View Single Post
  #5  
Unread 10-11-2017, 05:47 AM
Garan's Avatar
Garan Garan is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: Oct 2010
Posts: 340
The need for an Author mode is twofold. First, the limits on plugins reading files. Plugins only have access to .lua source code files and .plugindata data files. Second is complexity in format. In order to control the flow of an application they would need to follow a fairly strict set of rules. There would be nearly as much source text defining the flow of the story as the actual content, thus the need for a tool to write them. The trick is to make the Authoring tool powerful enough to write complex, interesting interactive stories but simple enough for most people to use.

The Alerter interface is actually far more complex since much of its functionality revolves around the response where in this plugin, the response would be the "Reader" mode part of the plugin with basically a text window showing the current text, a couple buttons with appropriate responses and perhaps a "review previous" button to see the previous text and the chosen response. All of the complexity of this plugin's UI is either behind the scenes or on the Authoring side where all of the flow control stuff gets defined, like what kind of objective this step has, what are the valid choices, what step do you go to depending on which choice the user makes, are any choices "success" vs. "failure" choices and what happens for each, etc. Fortunately, it can be presented in a way where there are very few choices to make at each step (like a wizard), starting with type of objective, showing only the relevant choices at each stage so the author doesn't get overwhelmed. The finished script would then be saved as a .plugindata file that would have to be shared with the client. Imagine a plot with a dozen choices throughout and the amount of formatting required for a hand authored script where one simple typo would throw off the whole thing and the user having no idea why, people would get frustrated and never write stories. Also, by using a plugin, the author can define a location simply by going there and clicking the /loc botton to capture the in-game co-ordinates, or target an NPC or object and click a 'Target' button to capture the name, complete with accent marks, etc. making it easier to create the script accurately (with the ability to manually enter the info if the user so desires). I actually have a similar tool I use to capture the names and locations of annotations when creating the default data files for new areas for MoorMap and TerrainMap.

The biggest challenge for this plugin is actually distribution of the story scripts. The problem is that there is no way for a plugin to scan "all files in a folder", that is, the plugin needs to know what file it is looking for. There are two possible solutions, one is to have the user enter the name of a new story file once when importing a new story, the other is to have all stories use the same file name when importing (and get saved by the plugin as a distinct name once imported). That way, either the user provides the name or the name is a known value. The drawback to the first method is that users invariably find ways to enter information incorrectly and complain when it doesn't work. The drawback to the second method is that users would have to download and import files one at a time. I'm leaning toward the first method even though it does require some tiny amount of user input, it would be more efficient. It could even be simplified with a small external script the way songbook creates song libraries, but I am generally against telling users to trust executable code from an unknown source (there are bad people in every walk of life, even plugin authors...). Unfortunately, due to the different platforms that LotRO runs on, there are even some problems with using external scripts. The simplest and safest is still to just have the user save the .plugindata file in the correct folder and type the correct name into the plugin once per import.

The really cool (or scary) thing would be for someone to produce "LotRO-Zork" with the plugin...
"West of Hobbit Hole
You are standing in an open field, west of a white Hobbit Hole, with a boarded front door."... nooooooooooooooooooooooooooooooooooooo!

Last edited by Garan : 10-11-2017 at 06:03 AM.
Reply With Quote