Building A Conversational Interface

April 13th, 2009, By Duncan Gough

ForumWarz

 

ForumWarz Chat

 

ForumWarz Conversation Editor

As a result of a number of different threads, I ended up playing ForumWarz again. The in-game sTalk is a scripted, conversation interface dressed up to look like an IM client, in this case Google’s gTalk, and the interactions it affords are varied enough to avoid seeming overly forced.

Of more interest, though, is the fact that the creator is quite happy to discuss the DSL he created in order to help the writers create dialogue trees for use in the game:

“The second problem was that conversations could trigger so many different things. Sometimes they might give you a bookmark, a mission, flezz or items. Upon realizing this limitation I basically threw away the database storage system and cooked up a DSL for Ruby where conversations could be written simply.”

https://www.forumwarz.com/discussions/view_post/17258

Behind the adult-rated nature of the game, there’s some clever things being done with Ruby:

“What I ended up doing was loading all the data you’d possibly need when you enter a battle, then creating a state machine in Ruby with everything a battle could need. This state machine is serialized into a string and shoved into a memory store (Memcached.)

Every time you attack, it retrieves the state machine from memory, does the operation, sends it back with virtually no database access. The great news of this approach is it’s very fast. The bad news is it doesn’t work for long lasting operations. In fact, if you don’t finish your battle within 60 mins the memory will expire.”

https://www.forumwarz.com/discussions/view/546-accurate-forum-visit-tracking

In fact, there’s a whole post on the ForumWarz blog about The ForumWarz Admin Tab which is a place to create cinematics, events, shots and, of course, conversations – see it here.

« Virtual Depth And Casual MMOsJetpack: Recently Closed Tabs »