Well, maybe. I'm taking a month off web development and easing my XML
burn by turning my eyes towards the Twitter API. One of my first
experiments is running now (2009-Aug-01):
http://twitter.com/TwitDipl
I've dabbled enough on Twitter to understand that I don't really get it,
so I'd love to have someone who speaks native Twitter help edit the game
messages. It would also be good to have playtesters and those with more
real time play experience help with fine-tuning the play settings. I'm
not entirely sure whether I'm going to use nJudge, DAIDE (Eric Wald's
'Parlance') or Diplojuge for the backend. I'm putting hooks in the USAK
site to try to bring over some users, but unlike the web interface for
the judge I don't expect 100% command compatibility for the Twitter
implementation.
This the workflow for the 3 basic tasks that TwitDipl will need to
manage:
Registration
- Player follows TwitDipl.
- Twitter sends email notification to TwitDipl.
- Judge sends direct message to player with link to registration.
- Registration page contains:
+ Link to official Diplomacy rules
+ Rules of conduct for TwitDipl
+ "Do you also want to play by email?" question
+ Short quiz to prove that player looked at the rules.
+ Duplicate detection.
- TwitDipl follows registered players.
- TwitDipl sends "fresh meat" message.
Idle / Forming Game
- TwitDipl checks periodically for updates, DMs or @messages from
players.
- At a certain threshold, or if triggered by player, TwitDipl tries to
start a game.
- TwitDipl send @messages to recently active players to promote
forming game.
- Players reply to TwitDipl updates (send @message) or DM TwitDipl to
join forming game, set preference and/or set availability.
- TwitDipl tweets new player notice.
- When game fills, TwitDipl send individual links via DM to each
player asking for confirmation.
- TwitDipl attempts to secure alternates while waiting on
confirmations.
- First 7 players confirmed start the game. TwitDipl announces players.
Game in progress
- Players submit orders via DM. @messages will be accept if no DM
provided, but players will be cautioned that their order may be
visible to opponents.
- Players use @messages with #tags to TwitDipl to signal readiness.
Acepted tags are #ClearOrders, #PrelimOrders, #FinalOrders. Tags are
not case sensitive.
- Fuzzy matching will be use on all orders. Order sets requiring fuzzy
matching will be flagged with a warning but not an error.
- TwitDipl will poll for new @messages every 60-90 seconds during
negotiations.
- TwitDipl will accept orders during negotiations, but have a separate
order entry period. While negotiations can't be stopped, it would be
inprudent for players to continue if they have not submitted orders.
- There will be an undocumented ~30 second grace period on order
submissions.
- TwitDipl publishes result maps with the TwitPic API.
Any input on the language, the timing, workflow, etc. is welcome. I
don't expect Twitter and email to mix in same game here. I am mostly
looking for experience with a (near) real time server.
Chris