The Aurora Dialogue System is a proprietary game dialogue system for the [[Aurora Engine|Aurora Engine]] written in [[C++]]. > QUOTE # Notability Used by all(?) of the classic Aurora titles and used to make many of the best narrative driven games of all time. The "conversation file" `DLG` binary format is a subset of the Aurora's `GFF` "Generic File Format" [Resource](https://github.com/Liareth/NWNFileFormats/blob/a13236d06e3a0da86948acc8270bd0a95de2891c/FileFormats/Gff/Gff_Raw.hpp#L46) files. [[AuroraExt Dialog Source]] is a markup format which when compiled generates `DLG` files. # OS Support The games using this system have been made available on many different operating systems. To my knowledge the original NWN editor tools were only released for Windows. # Philosophy / History The original editor was built into an SDK that came with the game *Neverwinter Knights* which allowed conversations to be edited in a classic 90s Windows visual paradigm. Considering the era, it's not bad looking. Later versions change very little, mostly just reorganizing the UI. ## Odyssey The Odyssey version of the engine used for KotOR and Jade Empire never enjoyed a toolkit release, so the community stepped up to build their own tools like the KotOR Dialog Editor. This application wasn't fully integrated with the rest of the tools and has a very different UI compared to the official editors. Instead it was built like a slide show emulating the view in-game, flanked by buttons and parameters. Games made with Odyssey and later engines tended to only put text references into the `DLG` file and the actual text into the `TLK` files to keep all translations in the same format. # Features It is based on a strict tree structure. Each entry is added via a text box. There are a few attributes associated with each node of the tree: - Speaker Tag - Text - Text Appears When... Script - with key value pairs to send the script - Actions Taken Script - with key value pairs to send the script - Other Actions - Comments - Other ## Context The conversation itself belongs to an NPC (called the `OWNER`). This provides some context to the conversation so that the name and attributes of the NPC can be used in the dialogue without hard coding them. ## Markup ## Conditionals Stat checks can be specified in a response using an HTML-like syntax, but this is only cosmetic. The conditional itself must take place in a specified external [[NWScript]] file. In the editor there is a script wizard to automate most of the simple tasks that are common. This includes an `AutoDC` function, which sets the difficulty class of checks based on a selected 3 tier system (easy, normal, hard), and takes into account the player's level as well as the level of the NPC that owns the conversation. ## Responses The first valid response from an NPC will always be the only one displayed. Responses are arrange in top to bottom format, with each subsequent response being a fallback line should the previous line's condition fail. ## Voice Over / Narration Later versions, starting with Odyssey had voice actors with movements synced to the audio, like the Dragon Age Toolset for [[Aurora Engine#Eclipse Engine]]. This information was connected to the DLG files, but there are separate lip sync files used. # Tags See also: [[AuroraExt#Variables]] # Philosophy The requirement that all logic takes place in an external script does mean some extra work, but because they're independent, it keeps all logic outside of the dialogue. This can mean that the script could get out of sync with what is written, but that the is trade off for keeping your logic and dialogue separate. This also means that there is no need to decide at what point the logic is too convoluted in the conversation and when scripts should be introduced, because the answer is "always". It also provides a lot more flexibility and power to every script, which could be worked on by different people than the conversation writers. No special functions need to be remembered or looked up. Just files and that key value table. Basically no other system I've looked at does it this way, and I probably won't do it this way either, but it is very compelling. # References - Converter from DLG to [[NWScript|NSS]]: https://web.archive.org/web/20080401130722/http://home.woh.rr.com/nwmovies - https://github.com/Liareth/NWNFileFormats - https://deadlystream.com/files/file/1731-kotor-dialog-editor/ - https://neverwintervault.org/project/nwnee/other/tool/flamewind-conversation-editor-20 - https://neverwintervault.org/project/nwn1/other/tool/nwn-toolbox-editor-generator-tool-and-utility-collection - https://nwn.wiki/display/NWN1/Aurora+Toolset - https://deadlystream.com/files/file/280-kotor-tool/ - https://www.nexusmods.com/dragonage/mods/4512 - https://www.nexusmods.com/kotor/mods/56 ## Tutorials ### Aurora ```cardlink url: https://www.youtube.com/watch?v=3epWJM-w9ao title: "RPG Design Workshop using NWN Aurora Toolset: Part 4 - The Conversation Editor" description: "Intro/Outro Music:\"The Journey Home\" by Vindsvept, used under CC BY 4.0 License, more information about it can be found here:https://creativecommons.org/lice..." host: www.youtube.com favicon: https://www.youtube.com/s/desktop/dbf5c200/img/favicon_32x32.png image: https://i.ytimg.com/vi/3epWJM-w9ao/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AHUBoAC4AOKAgwIABABGEQgWShlMA8=&rs=AOn4CLDJ0LZBTsKkOAJVsqbLvZ9Yw55L8w ``` ```cardlink url: https://www.youtube.com/watch?v=C3sVaHgEVeg title: "RPG Design Workshop using NWN Aurora Toolset: Part 5 - More Conversations and Scripting" description: "Intro/Outro Music:\"The Journey Home\" by Vindsvept, used under CC BY 4.0 License, more information about it can be found here:https://creativecommons.org/lice..." host: www.youtube.com favicon: https://www.youtube.com/s/desktop/dbf5c200/img/favicon_32x32.png image: https://i.ytimg.com/vi/C3sVaHgEVeg/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AHUBoAC4AOKAgwIABABGGUgZShlMA8=&rs=AOn4CLDBSI-ilNBMcmgdxnAU0faWywh8ag ``` ### Eclipse ```cardlink url: https://www.youtube.com/watch?v=LD8bNQPER0M title: "Dragon Age Toolset - Creature and Dialogue - part 1, basics" description: "Creature and Conversation Tutorial Created for the Dragon Age Community Contest 3: Character Contest" host: www.youtube.com favicon: https://www.youtube.com/s/desktop/dbf5c200/img/favicon_32x32.png image: https://i.ytimg.com/vi/LD8bNQPER0M/maxresdefault.jpg ``` ## Conversation File Format Specification ![[Bioware_Aurora_Conversation_Format.pdf]] ## Internationalization File Format Specification ![[Bioware_Aurora_TalkTable_Format.pdf]]