rss feed of the blog sol stuff discord follow sol email sol Sol::Code

DialogTree (d3)

Game dialog tree middleware engine

D3 Studio Tutorial

Here's a brief tutorial to the workflow with the D3 Studio. The tool is currently in alpha, meaning there's plenty of missing functionality and also plenty of ways to shoot yourself in the foot. Nevertheless, here goes:

When you first fire up the studio, you're greeted with something like the above. The UI is based on wxAUI notebook layout, which is ridiculously powerful for what we'll be using it for; you can drag tabs around, split them and so on. But let's ignore all that for the time being.

The D3 dialogs consist of "cards". Each card contains a question and zero to any number of answers. Each answer leads to another card. A bunch of these cards is called a "deck".

So each dialog between the player and a character is contained in a deck.

So let's create a deck. You can do this through file -> new deck, or by double-clicking on "loaded decks" on the project tree.

The studio now asks you for ID for the deck. No two decks should have the same ID. This ID is mainly used for the generation of unique IDs for questions that are only meant to show once, but having something meaningful here is useful, so..

Let's type in something simple, replacing the autogenerated string. (The default is based on timestamp, so it should be pretty unique).

Now you should see the new deck ID appear in the project tree, and the deck editor tab open. You can modify the deck id here if you really need to. As you can see, the pulldown list of cards is empty, with only the "new card" entry available. To create your first card, click on "Go to card" while the "new card" option is selected.

Again, you're asked for an ID, this time for the card. Having something sensible here makes things much easier in the long run as you don't have to jump back and forth to remember what the heck CF6CB0EB was about again.

So let's type in something and press enter. Note that these IDs do not need to be unique for the whole game, only for the currently edited deck.

Now you should see the card appear on the project tree, as well as the card editor tab appear. You can close tabs as you wish, you can get the editor tab back for any card (or deck) you want by double-clicking on them in the project tree.

Also note that you can edit the card id here. Doing so will break any references to said card, so it's prefable to not to do so. This is one of them alpha features I mentioned earlier.

Next we'd fill in the question. Nothing special here. To add an answer, click on the "add answer to card" button.

A few new fields will appear for the answer. As you can see, there's the card selector and "go to card" button again, which, if "new card" is selected, will create a new card.

So let's write an answer, after which we could add some more answers or new cards where the answers lead to.

That's basically it, for now!

Additional features I haven't mentioned before are the tag fields and userdata fields. You can make d3 studio show those fields by selecting them from the 'view' menu. I'll go deeper into those as the D3 studio progresses.

Be sure to save your work using file->save deck! It will save the currently edited deck, in case you have several open at the same time. (Alpha warning applies here too). XML and json formats are supported.

Have fun, and don't forget to send me comments. Further development is always affected by feedback.


Comments, etc, appreciated, as always.

Site design & Copyright © 2022 Jari Komppa
Possibly modified around: August 06 2011