Portfolio
LibCT
posted on July 23, 2010LibCT is the name of the project I made for part one of the Videogame Middleware assignment, the task was to create a middleware that would be useful for games.
So what does LibCT do? Well it aims to solve a common task that faces game makers today, that of creating conversation trees that a player can traverse.
Conversations are broken down into a number of phases, each phase has a ‘talk’, which is the text that is presented to the user (what the NPC is saying for example) and a number of choices (at-least one), a choice is obviously a response the player can give to the ‘talk’. Each choice has a text representation and a phaseId, the phaseId represents the phase that the conversation moves onto when the user picks that choice, there’s a special phaseId for exiting a conversation.
Thus conversations themselves are represented as simple tree structures (saved as XML files, of-course).
Conversations can make use of either local or global variables, which are parsed when the conversation is displayed, (e.g. the players name).
To avoid hand-editing XML files, LibCT comes with EdCT, a graphical editor for conversations, that allows you to quickly build conversations and run through them in the editor.
Although this was a University assignment, I plan to continue LibCT development after uni, the editor needs a bit of work and there’s a planned feature to allow variables to actually effect the path of a conversation.
Currently only the SDK for LibCT is released (we’re not meant to release the source until the 19th of April) The SDK includes the EdCT executable, and the LibCT (debug and release) .dlls (making it a .dll was a requirement) and an example project to get you started.
More information can be found on the LibCT wiki
Update:
LibCT V2.0 is currently in development, the editor is being re-wrote from scratch and large changes are being made to the core library, check out the project page for more info and download links
