Check out the GameRoom project, spawned from this braindump.

New interface for online Dungeons and Dragons

We will use a graphical interface with multiple channel windows. Channels marked as 'in character' will have action queues attached to them.

The queue will have a slot for each connected player. Players may enter text into the queue, which will fill their slot. Everyone will see some visual indication as to whether each player has entered an action (or indicated that they are not taking one) and whether the DM has approved it, but only the player and the DM may actually see the action on the queue. The DM may select a player slot, and either have a private chat with the player or approve the action. Slots in the queue may be dealt with in any order. Once approved, the action is sent to the channel, where the actual story is unfolding. Once each slot has been approved, the queue will be flushed and ready for the next round. We probably want a way for a player to begin entering their next action as soon as the previous is approved, but it should not be submitted until the round has ended.

This will allow everyone to prepare actions in parallel, and to have a good sense of the passage of time. The DM's ability to have private chats before approving actions will give a chance for die rolls, seen only by the dm and player. If the action fails, the DM can move on to another player while the failed action is rewritten. The DM's ability to approve actions in any order will allow the DM to order things for initiative or to prevent events from happening out of order. The DM should be conscious that players may want to alter their actions based on previously-approved actions, and should probably give them the chance before approving.

Each player may be joined to multiple channels. At the very least, this will likely be one 'in character' channel and one 'action discussion' channel (which is shared only with the DM). If the party splits, players should leave the main in character channel and join a new one as appropriate. If discussion is happening in a language not known to all players, those who DO know it should join a new in character channel in addition to the main one. Again, each in character channel will have its own action queue.

The DM may join channels multiple times under different names, and those names will also have slots in the action queue. This is useful for NPCs and monsters.

Each In Character channel will have a 'game time' property. The action queue will have a 'round duration' field which will be added to the channel's game time every time the queue resets. The DM has the ability to select several players and split them off into a new IC channel, which will start with the same game time as the original channel. The DM may set an option to merge the channel back after the current round. When the queue next resets, the split players will be paused until the original channel's time is greater than the split channel's. At which point they will be rejoined to the channel.

The DM will also have the ability pause the game, either immediately or when the queue next resets.

The interface will also have a flexible logging system, so PCs can review the logs based upon their own points of view, and the DM can select any player, as well as an overall omniscient view. There will also be an option so that all players can view the log with DM rights, such as once the campaign is completed.

Player status should be visible on the interface, which will likely consist of In-Character (IC), Out-Of-Character (OOC or ACTive), and Away-From-Keyboard (AFK) settings, with more or fewer as deemed necessary. Additionally, there should be a subtle indicator of when a player is actively typing.

GameChat (last edited 2008-06-08 01:49:13 by calin)