Page 1 of 1

Best practices

Posted: Thu Aug 04, 2016 3:12 pm
by Roncin
I am cleaning up my 1000 node dialogue today and just reflecting on the early design decisions that made thing easy/hard to work with. I think it would be useful for people starting out to sea your suggestions on best practices/lessons learned while using the Dialogue System. This has been a great product to work with but some design decisions I made early on affected how easy my dialogue was to maintain.

My two cents...

EASIER:
* Asking for help. The support has been consistently outstanding.
* Use nodes with the "group" flag to identify entry and exit points into a conversation.
* Using the Title field to describe entry and exit conditions. This is really useful when checking things in excel.
* Using the Description field to describe the scene. So when you come back, you can remember what the key decisions were.
* Use a big monitor. With a 40" monitor I was finally able to read the Unity default fonts. Thank you Toni for the scaling the node editor!
* Use the watch window (~L).
* Use the folder structure style naming scheme... root\child\grandchild it cleans things up a lot.

TRADEOFFS:
*Big conversations are easier to create and follow but if you re-import the database they become a rats nest.
*Big conversations (multi-screen) are harder to document and screen capture. Had to use photo stitching software to make the images. Still this might be easier then jumping from one conversation to the next. I tried both and ended up favoring smaller dialogues.

HARDER:
* Consider where your dialog will exit to. Can your players restart the conversations if the dialogue system exits unexpectedly? In my case exiting the dialogue left the players at a blank screen. That was a bad choice. Particularly because typo's in my function calls caused the dialog system to close the conversation. (Note the game did not become corrupt or crash so kudos to Toni).
* Deciding to support up to 5 decisions per dialog choice. My graphs grew insanely complex very quickly.
* Adding/revising conversations non-sequentially. It would have been nice if my Conversation ID order matched up to my conversation order. Doing this again, I would leave an extra conversation node for expansion when I was finished working on a conversation. From experience, changing the conversation ID value before you write any nodes than the database will not be corrupt. Changing the conversation ID after the nodes are written will probably cause your dialog to fail.
* Spell checking in excel. I wrote a lot of dialogue late at night. The embedded field codes made things really hard to spell check. Turned out Notepad++ was much easier to use then excel. The Dialog system supports normal returns, so avoid putting in the \n and | symbols that are expected in Chat Mapper.
* Not reading about "episodic writing" techniques before starting. Utilizing check points and circular soap opera type stories would have made things easier. At the end of my project I found a good book on this.
* Using Lua functions with mixed case name "Acode()" a typo on the function call kills your dialogue. I ended up creating a second function acode() just to catch the typo's. Calling undefined Lua functions causes the conversation to end.
* The Game Manager changed where I had to put my work. I traded one set of problems for another.
* Asking for the ability to backwards in the conversation. This creates a lot of problems and revisionist play.

Re: Best practices

Posted: Thu Aug 04, 2016 4:14 pm
by Tony Li
Good stuff!

>* Use the watch window (~L).
Remember also the Watches tab on the Dialogue Editor window. It becomes available during gameplay. You can add auto-updated watches and also enter Lua code to run. Really useful for debugging.

>*Big conversations are easier to create and follow but if you re-import the database they become a rats nest.
The CSV (Excel) import/export will retain dialogue entry node positions in the next version or two. This should help a lot.

>* Not reading about "episodic writing" techniques before starting. Utilizing check points and circular soap opera type stories would have made things easier. At the end of my project I found a good book on this.
May I ask what book you found? I'd be interested in checking it out.

>...Calling undefined Lua functions causes the conversation to end.
This is only on Conditions fields, right? Typos will cause Conditions to evaluate as false. If you have Conditions on all of the choices and they all evaluate false, the conversation will have to stop.

Re: Best practices

Posted: Fri Aug 05, 2016 1:24 am
by Roncin
These two books stick out in my memory, I grabbed several the same day from the library.
The real key is the call number GV 1469.

Library of Congress Category
GV1469.15-1469.62 Computer games. Video games. Fantasy games

//-----------------------------------------------
Persistent links to the RRC library. It has a few titles in this area

Title:Character development and storytelling for games / Lee Sheldon.
http://icarus.rrc.ca/vwebv/holdingsInfo?bibId=98494

Chris Crawford on interactive storytelling / Chris Crawford
http://icarus.rrc.ca/vwebv/holdingsInfo?bibId=98495

Digital storytelling : a creator's guide to interactive entertainment / Carolyn Handler Miller.
http://icarus.rrc.ca/vwebv/holdingsInfo?bibId=98496

//------------------------------------------------
GV 1469.17 .S86 S54 2004
Character development and storytelling for games /
Bibliographic Record Display
Title:Character development and storytelling for games / Lee Sheldon.
Author:Sheldon, Lee.
ISBN:9781592003532 (paperback)
1592003532 (paperback)
Publishing Details:Boston, Mass. : Thomson Course Technology, [2004]
©2004
Description:xiv, 474 pages : illustrations, portraits ; 23 cm
Format:Book
Summary:This is a book of ideas and of choices. Knowing which choices to make is not teachable. It's part of that creative instinct we call talent whose secret voice guides us every time we sit down at the keyboard. All stories are not identical

//----------------------------------------
GV 1469.34 .A97 G36 2007
Game writing : narrative skills for videogames /
Bibliographic Record Display
Title:Game writing : narrative skills for videogames / edited by Chris Bateman.
Other Author(s):Bateman, Chris Mark.
ISBN:9781584504900 (paperback)
1584504900 (paperback) (alkaline paper)
Publishing Details:Boston, Mass. : Charles River Media, [2007]
©2007
Description:First edition.
xxvii, 308 pages : illustrations ; 24 cm.
Format:Book
Summary:"As computer games become more and more like Hollywood productions, the need for good story lines increases. Research shows that stories are highly valued by game players, so today's studios and developers need good writers. Creating narrative - a traditionally static form - for games is a major challenge. Games are at their heart dynamic, interactive systems, so they don't follow the guidelines and rules of film or T.V. writing. Game Writing: Narrative Skills for Videogames addresses these issues and is the first book written to demystify this emerging field. Through the insights and experiences of practicing game writers, the book captures a snapshot of the narrative skills employed in today's game industry. This unique collection of practical articles provides the foundations to the craft of game writing. The articles, written by member of the International Game Developer's (IDGA) Game Writer's SIG, detail aspects of the process from the basics of narrative and non-linear narrative to writing comedy for games and creating compelling

Re: Best practices

Posted: Fri Aug 05, 2016 9:36 am
by Tony Li
Thanks! I have a few of those books, but I'll definitely check out the rest soon.

Dille & Platten's Ultimate Guide to Video Game Writing and Design is another interesting read, although it's more of a career guide to the game writing business.

I've found that Alexander Freed (http://www.alexanderfreed.com/) writes some really good articles on interactive dialogue, too. A lot of his articles get featured on Gamasutra.