Advertisement

Custom Writing Software - Opinions Needed!

Started by June 16, 2005 09:50 AM
40 comments, last by sunandshadow 19 years, 5 months ago
You might want to take a look at visio, I find it an increadibly powerful tool for buildings stories.
Yeah I use Visio a lot but it is quiet cumbersome at times. Still it is a good suggestion thanks Technogoth. I'm not sure how helpful it would be at creating stories cause I really haven't tried it. Perhaps you could writeup a tutorial Technogoth I would be interested in how to use some Visio features to write a story.
Advertisement
Visio is a flowcharting software, right? I mentioned flowcharting a player's path through a level, and flowcharting is also great for representing branching dialogue. How do you use it for building stories? I wouldn't think it would be good for regular fiction, since it's pretty much linear...

I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.

Re:

I am suspecting that I am not running the demo correctly.
Could you describe a sequence of operation and their effects so that I can test it? would you also describe the functions of the following:
- Character Builder
- Dialogue Builder
- Arc Builder (you already did this)
- Outline Builder
- Timeline Builder
- Map Builder

Re: TechnoGoth
I have visio also but I found that it is too bulky. The chart you drew earlier was too bulky in my opinion. Also, arrows can become quite miserable miserable for large designs, especially when they start crossing one another. This also go for 5MG's demo. At one point it is not good to show lines. An integrated story game does not have a branching structure but a finite-state-machine structure.

Re: From the other thread
Automation tool is essential if you want to do anything about summarizing the timeline. Because the initial conditions do not determine the timeline. (You also need the intermediate choices)


Demo

I took out the contents in LRRH to show you what I had. If you click enough and read the code in the nodes, you will having a better idea of the capability.

What my demo does not show is the design process. In general, you do not design it from begining to end. It is possible to document the entire design without ever seeing the editor screen. All of those are for simulation. This demo also shows a 'summary' at the end. If you know how the nodes work, you should be able to tell that it is quite easy to add new events, plot elements, and story arcs.

[Edited by - Estok on June 17, 2005 3:36:10 AM]
- Character Builder
- Dialogue Builder
- Arc Builder (you already did this)
- Outline Builder
- Timeline Builder
- Map Builder

Well as for explaining these features in the software. I don't have that much knowledge about what other people think should be included but these were the obviously different story creation tools that I thought would be wanted.

Character Builder - I imagine both a wizard and the ability to add in custom fields for instance you would want to specify the characters name, height, wieght, eye color, time of birth, location of birth, etc... And you would also want each field to be option when exporting the data into a dialgue or a character summary.

I was hoping that people would give me more insight into what they would like as part of each story development tool!

Dialogue Builder - From your own database of Characters or from those created within your story you can choose which ones you like and then give a general desciption of the scene and a little narrative. There will be a template and wizard to help you go through the standard screen play format for Dialogue and Script writing. I will attempt to make it very easy to input conversations between multiple characters in a scene.

Outline - I'm not sure exactly how this was supposed to work. I might just as soon remove it than attempt to explain what I had in mind for an Outline Builder but if anyone can think of any other appropriate substitutions please let me know.

Timeline - A standard timeline graphically setup to show the progression of whatever time units you wish to use or by levels, each event can be either a scene selected from the Dialogue database or a level and you should be able to add in world events that cause changes in the world. I am still very much in the design phase of the software and any information you can give me will help.

Map Builder - I thought a visual world mapping tool to place bulidings, structures, creatures, artifacts, and terrain, would be helpful since a lot of things within your story depend on their location.

I am doing research into the writing process for story development so that I can add in the necessary elements and features for a versitile game story development.

Estok - As far as running the demo version make sure that you have java on your computer and that the PATH enviroment variables are set. If you need instruction on setting up java then goto suns website for further information.

Note: If your on a macintosh computer and you have the current Java Runtime environment installed just run the WritingUtil.class file.
Was outline supposed to be the same thing as plot arc? There are several templates/theories of plot structure you could use, but some are copyrighted, you would have to decide whether you wanted to try to do all the public domain ones or pick one and make your outline based on it.

How much work are you willing to put into this software? If we just keep dreaming up features and adding them in it could easily get to be as complicated as something like microsoft word. Should we restrain ourselves and aim for just essential features in the first version?

I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.

Advertisement
The first version will definitely only contain the essential features. I am willing to put in as much effort until we are satisfied with the end product which hopefully will be an extremely useful story development program that we all use and enjoy.

And yes if we just keep adding in features the program bulk will quickly rise. That is why all the suggestions I get are going to determine the course of development and what features get added in first and hopefully I will find a way to integrate all the features suggested but the more things that you would like to see in a story writing software the better the program will be and I'm really trying to make something that is useful and needed. So feel free to go absolutely crazy with features I will jot them all down and combine similar ones and collate them so that the program doesn't get out of hand.

And I think you are right that Outline was supposed to be similar to the plot arc. I might have been thinking more along the lines of either a chapter outline or a level outline for documentation and the like.
Okay, here's my thought - you are going to want a master screen that has two parallel timelines/outlines/flowcharts:
- Plot Arc (Act/Chapter/Scene Outline)
- Play Timeline (Intro, New Game, Levels, FMVs, Subgames, Credits)

I recommend making these go from top to bottom, rather than left to right. These should have a template form, or a choice of a few template forms, to start with, and the user should be able to right-click to insert/delete/split/merge/edit a node or left-click to zoom in on that chapter/level. And you'll want to make both the zoomed-out and zoomed-in versions exportable/printable.

A wizard will guide the user through choosing a template, adding initial data to the template, modifying the template, adding more data, then zooming in to create individual levels/chapters. Character creating will be part of the Plot half of the process, while diaogue, puzzle, and subgame design will be part of the Play half of the process. (Hmm, you could call the software Plot&Play...)

How's that idea?

I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.

I like your ideas SnS I'll redesign the prototype with those in mind and you can let me know if that is what you were thinking of. All ideas are welcome and I'll try to come up with a number of different prototypes and we can put them to a vote one which ones are most liked and then we can attempt to get the best design.

Note: Another thing is that we were talking about Visio, if anyone (TechnoGoth) want to use Visio to come up with a GUI layout that would be cool as well. Since Visio offers GUI design shapes it might be a tad bit quicker than my prototypes are coming along.
Re: running the prototype
I think I can run java. This is the screenshot of your prototype running on my pc. I was asking the question because your prototype didn't do anything. (i.e. I can click on the the buttons but none of them seemed functional). I don't know whether you hadn't implemented them or that I was running it wrongly. Are the buttons implemented? You can see that I can add nodes, how do I connect them or delete them? How do I input text? What is it supposed to be demonstrating?


The premises and untilities you and s/s are accepting in the most recent posts are too low. You can already do those really quick with any kind of zoomable flowchart utilities. It is the standard functionality of any CAD tools for circuit designs. (i.e. being able to click on it and expand to show a more detailed flowchart of a component that is previously shown as a blackbox.) The plot and play dual visualization is a sign that you are not heading toward the designing of an integrated game story--a game where the story is the game, and a story where the game is the story. You are still at the stage where the story is just the explanations and transitions. The tool that you are heading provides not much benefit because the data you are trying to organize is too simple and too low level for me to consider as 'designing' the story.


The following describes what I would shoot for for an integrated game-story design CAD tool.

Motivation:
During a design, ideas are flooding out, and there is only time to implement a very small number of them. Every idea that did not make it to the final design due to the overhead of manual integration is a waste of the imaginative power of the designer. The objective of this CAD tool is to minimize the cost of integration.

Defining the Problem:
Imagine, if you can do the following:

1) Think of the unconnected beginning, ending, and the intermediate events of the story;
2) Input all of them to the CAD tool;
3) CAD tool outputs the connected network from beginnings to ends, and also lists errorous components that cannot be reached, or with no endings.

Terminology:
State (or State Vector) - The set of most significant variables that define the state of the story
Sources - Beginning Plot Elements and Initial States
Sinks - Ending Plot Elements and Final States
Operators - Intermediate Plot Elements, nodes where the states are changed


Formal Problem Definition (Strong):

"Given the set of Sources s, Sinks t, and Operators r, find the set of transitions G that drives the Inital States u to the Final States v that minimizes the cost function J(G)."

This is not an AI implementation where the CAD tool uses some kind of database to interpret and fill in the blanks for the story. This is a realisable optimization problem.

Components of the cost function J may include: d(s,t) (i.e. the min/max length of a path from an s to a t), d(r,r) (the min/max distance between related or similar events), %r(s,t) (the min/max percentage of r used for a path from s to t, or the covariance between the percentage from different s to different t), f(r) (the min/max frequency/hitcount for a node r, this is part of the cost such that the algorithm is rewarded to use more nodes to differentiate the plots)

This problem is well-posed but probably NP-complete. It is in general not convex, not differentiable. Although it is discrete time system it can't be solved by dynamic programming. If you see the situation in terms of a control system, you are trying to design the optimal controller(C) that gives you the best transition(g*) given the current state x at iteration k. The controller C is the set of rules that determines the next input to the system plant P that represents the dynamics of the system. Metaphorically, C is the eyeball that looks at the connected graph G and pick the transition to the next node given the current node. In implementation, there is no C, C is distributed as the set of extended conditions of the event triggers (i.e. during the design phase, the designer does not give the assembler the transition rules, therefore, many operators will have the same entrance rule. The algorithm links the events.)


Problem Definition (Weak):

The above is not the practical situation. There is no reason why the algorithm has so much freedom. Usually, the designer begins with a rough outline of the story instead of starting blank. So this is the more likely problem facing the desginer:

"Given a graph G(i) that connects from a set of Sources s to Sinks t through Operators r, and a set of unconnected Operators r', find the new graph G(i+1) that minimizes the cost J over G(i+1)."

In other words, add the new contents to the system. Intuitively, you know that you should probably add the most crucial plot elements first. When you do this, you are using the top-down design method, where you iteratively add/elaborate on the design at finer and finer dimension.

The Strong Problem Definition was probably an NP-complete problem, so the heuristic would probably use some kind of top-down design, where the set of Operators are ordered by their importance, and the heuristic iterative pick the next batch of similar Operators and to integrate with the current design. (i.e. solving the TSP by a clustering approach.)

There is nothing that prevents you as a designer to do TDM manually. The objective is to automate this process to speed up the growth of the design. If the full automation is out of reach, the next best objective is to provide tools to aide the manual process. (Note that this is a very realisable shortest path traversing path find algorithm. Up to this point there is nothing related to AI or knowledge base. This is just a normal graph problem. The trick here is that the cost of the edges are time-variant)


Aiding Manual Integration:

The previous section described the specific problem that the CAD tool is designed to solve. There are realisable automations. This section describes the other CAD tools that aide the manual process for the same specific purpose.


CAD1 - Active Linker
This is the next best thing to automated integration. The plot elements are shown in a catagorized view based on location, time, or other catagories. Then the designer can declare a possible path from s to t by clicking on the corresponding elements in sequence (either from beginning to ending, or from ending to beginning). The elements are connected as the designer manually step through the possible strands of the story line. (The path is created by walking over the grass.)

CAD2 - Event Log and Timeline Report
As the designer is stepping through the possible sequence on the catagorized view of plot elements, a current strand is presented on the side so that the designer can keep track of what happened to decide what is good to happen next.

CAD3 - Choices Eliminator
While the designer is clicking through the plot elements, those that are impossible to be future elements are visually removed from the catagory view. This can be governed by very simple rules, such as a if a plot element requires a certain NPC to be present, but that NPC is not there, the choice is automatically removed from view. When the designer see a node that is impossible to be the next choice, but it is still visible, the designer can assign that node further conditions.

CAD4 - Possible Choices
After the elements that can never happen in the present or future are removed, the designer can select a number of elements as the possible choices. After that, the designer will continue the active linking with one of them.

CAD5 - Visually Assign Elimination Conditions
When the designer tries to assign the condition that will eliminate an element, the designer does so by dragging the element into sets or buckets.

CAD6 - Equivalent Element Sets
It is very common that there are branches that are very temporarily. The situation: the PC can do six things that are more or less equivalent, but the PC can only pick one or a couple. To represent this, the designer will drag the equivalent choices into a labeled blackbox, which allows the designer to take out two elements and then disappear. If you are using TDM this will actually go in the reverse, where you are refining the components of an element that was a black box.

CAD7 - Node Templates
The situation above is so common that it would be templated. Other common situations include nodes that are accessed once and disappears; nodes that belong to a set, that the player can pick one at different time. To set a node to these templated sets, the designer drags the node to the set.

CAD8 - Dependency Linker
This is similar to the Active Linker interface, but instead of linking possible sequence of events, this links the dependency of events that cannot be easily described by catagory. The designer will select a node, and select its dependencies. This is when you don't want to declare a variable just for this. Back to the Active Linker, after the designer selected the next element, elements with dependencies that can never be satisfied are removed from view.

CAD9 - Transition Effect
In order for the dependency to work better, you need to let the nodes change variables. Variable changes can be too cluttered if represented graphically, so this is probably lines of scripts. Variables are treated visually as nodes. After select a node, the designer can click on a button to show or hide variables that uses it, changes it, inc, or dec it, etc...

CAD10 - Dependency Watch
As the designer is steping through Active Linking, the designer can set certain nodes as 'goal nodes' (aka t). Graphically, the nodes that t depends on are highlighted, and those the highlighted nodes depend on are highlighted, and so on. The dependency is highlighted with an inclusion shading. Those that are not relevant to the goal are white, while those that must be included to satisfy the goal will be in saturated color. For example, if t depends on A AND (B OR C), then A will be given 100% shading, while B and C will be at 50% shading each It means that A is absolutely needed, and B and C are needed 50% of the time. If in the process C becomes a dead node (a node that can never be reached from the current state), then B will be 100% shaded. If you don't like single color shading you can use the blue to red temperature color scale. The idea here is to help the designer find the sequence that will reach the set of goals. Note that if the dependcy is elaborated enough, the an automation can be used to find the sequence that satisfies the constraint (to get to t) by going backward in time. The path IS the plot. This is why the automation I talked about in the previous section was not bogus.

CAD11 - Editing Tools
Functions that s/s said that can insert/delete/split/merge/edit/group are pretty standard and are included here. I don't really consider these design tools. When you compared these editing functions to those above, I hope you see the difference. A design tool is definitely not the same as a documentation tool, although it helps the design by letting you visualize it.



Final Notes:

The 'path' that the designer traces during Active Linking phase is the Presentation Order, not the chronological order of the events. This concept is probably easier to understand when you imagine a mystery story. The beginning node, s, may be the node where the body is discovered, while the ending node t may be the node where the detective reveals the motive of the murderer.

Now, if you ask any writer to create this story, they will all take out their notepads to jog down the possible events, motivations, and discoveries by the detectives.

What if a software can be developed to crank out a plot based on the scraps of those ideas?

Automating the linking of ideas based on logical and presentational dependencies is the motivation of the described CAD tools.

[Edited by - Estok on June 21, 2005 5:51:29 AM]

This topic is closed to new replies.

Advertisement