[Happy Birthday, Robot!] Firan-style

edited June 2010 in Actual Play
So you may already know that I run this text-based internet role-playing game called FiranMUX. My wife and I opened it about 12-13 years ago and it's been entertaining hundreds of players pretty consistently for most of that time.

I decided to code up Daniel Solis' game, Happy Birthday, Robot!, as a game that Firan players can play. The players need to know the rules to a certain extent. That was one of my personal design constraints. That is, I didn't want to take money away from Daniel.

Coding it was harder than I thought. First of all, the game interface is entirely text-based (as it must be for a game like Firan). Managing text required commands to append words, insert words, and edit words in sentences. A lot of the code just manages state: Whose turn is it to be the Storyteller? Whose turn is it to add to the sentence? Has Epilogue been triggered yet? If so, has the round been completed for all the players? Who writes next? Who writes next if it's in the Epilogue? These things would be slightly tricky to manage in a normal language. The MUX scripting language has its own arcane problems that made coding HBR extra difficult.

I set up the game so that anyone on Firan can play, even if they're otherwise occupied with normal role-play. All HBR output goes to a [HBR] "channel" (out-of-character communication stream) that players can "spawn" to a separate window of their client, if they like. It also gives them a place to chat about the game.

The most important command turns out to be the "hb who" command, which lists all the players, their dice and coins, and the story-in-progress. It also marks the Storyteller and the person currently writing with * and > characters, respectively. Firan players become HBR players by typing "hb join" and can leave the game with "hb leave."

This report is the third game I ran on Firan. The first two were riddled with halts while I fixed bugs. The first two used the traditional start, "Happy Birthday, Robot!", with "Robot" and "Robot's" as free words for BLANKs. The third game, discussed here, switched up things a bit. We used a Firan-themed start: "Welcome to the Masked Ball!" and made two characters free BLANK words: "Lucretia," "Lucretia's," "Waldrik," and "Waldrik's." I used the game's "hb conf" commands to reconfigure the starting parameters. I should have then run "hb new story," but I forgot and ended up tweaking some data elements manually.

We had five players. Daniel tells me the game breaks under a load of five players, but I did not see this problem any of the times I ran the game. Each game I ran took about 2-2.5 hours to complete. Everything takes longer online.

I found that I didn't have to explain all the rules (or all of the commands) at once. I explained the goal of the game (cooperate to tell a story), the dice (only that they had BLANK, AND, and BUT sides), and that three people at a time would write a sentence. Then I showed them the "hb who" command and the "hb roll" command, and told the first Storyteller to roll until it stopped them. The code does detect when a Neighbor has 4 AND or 4 BUT dice and it prompts the Storyteller to start a sentence, and it tells everyone how many words they get to write (including free words for TAILS). It lists the words the player can use for free at that time. It tells them to use the "hb write" command to start or add to the sentence. The "hb write" command limits the number of words the player can write. If you write less than you're permitted, it tells you how many are left, but also offers "hb done" as a way to discard any leftover words.

Once the Storyteller writes, it prompts the AND Neighbor. Once she writes, it prompts the BUT Neighbor. Once he writes, it prompts the Storyteller to type "hb next" when "everyone is satisfied with the sentence." I explained that they could use "hb edit" to fix grammar or spelling here. This was also a good time to tell them that anyone could use those commands, for instance, to add a comma to the end of a word before writing their words. They caught onto this quickly. I also offered them the "hb insert" command to push commands into the middle of the sentence.

The "hb next" command also awards HEADS coins to the Storyteller. I explained that these had no value except to give them away. That giving them away flipped them to TAILS and gave that player extra words for the rest of the game. That the sooner they gave out their coins, the longer their story would be. After one or two turns, and the group moved quickly through their sentences. They had a ton of fun and laughed at the Firan in-jokes in the story.

New players have trouble understanding that the BUT Neighbor is supposed to close/complete the sentence, despite my telling them this and despite the code telling them this. Once corrected, they learn quickly, however.

I also explained that as soon as a player had 10 coins, the Epilogue would be triggered, except that everyone got to finish their turns first. I had some trouble interpreting the rule here. Code is very picky, where game texts are not. Who edited this text, anyway? Geez. I interpreted the rules as this: If a player has 10 coins even for a brief moment, Epilogue is triggered, but does not actually start until the player who started the game is Storyteller again. For example: Adam, Beth, Carol, and Daniel are playing, and Adam started as the first Storyteller and they play in alphabetical order. Carol has 6 coins, writes 4 BLANK words, and at the end of that sentence earns 4 more coins. She instantly gives them to Daniel, but it's too late. She has triggered Epilogue. However, no one writes an Epilogue sentence until Daniel finishes his turn as Storyteller.

Furthermore, the rules call for people to play in order of how many coins they have (most to least). What if people give away HEADS during Epilogue? I interpreted this rule as requiring the code to find the player with the most coins and who had not yet written an Epilogue sentence. If a player gave away coins during Epilogue, this could change the order of play, but no one would be asked to write a second Epilogue sentence.

Once everyone had written their Epilogue the game tacked "The End" onto the story and printed out the entire thing. For space reasons, I jammed all the sentences together in one paragraph rather than put one sentence per line.

One of the most useful commands I coded was "hb undo," which rewinds the game state to the last action. The game checkpoints every internal state variable on every meaningful player action, and can back up to the last, one at a time, all the way back to the game's beginning if you want. This was helpful when the game failed to detect the Epilogue condition and the "last turn before Epilogue completed" condition. I tweaked some code, ran undo a few times, then ran "hb next" to advance and retrigger the conditions. It took two or three attempts, but I fixed the code and the players continued. It only took me 3-4 minutes to fix things.

If you're curious, read the complete transcript of play. Because it is online, every conversation and every step is recorded.


  • Ha! I love any story that ends with "Everyone went to jail."
  • Once I have some free time, I'll be happy to drop the HBR code onto The Foundry. I'll also post the MUX code for anyone who is curious about such things.
  • Does the game publish a little advert for HBR at the end? That could get Daniel some interest and revenue!
  • The 'hb help' command lists the Kickstarter URL. I will update it to use Daniel's HBR page. I don't know where people can buy the game these days, now that the Kickstart is closed. Daniel?

    I certainly remind players to go buy the game, over and over. =)

    Oh, when I got home from work yesterday, I saw that the players had organized and played a game on their own. That made me pretty happy.
  • Oooh, got a link to that game's story?

    RE: Sales: A PDF should be for sale very soon. The book will be printed and shipped to retailers in late July.
  • I don't have the story now but I think I can get it.
  • Posted By: Adam Dray I don't know where people can buy the game these days, now that the Kickstart is closed.
    I think this is were you go:
  • Thanks, Scott. It should be available in other online stores soon, too.
  • Posted By: DanielSolisThanks, Scott. It should be available in other online stores soon, too.
    No problem. It was the only place I knew.
  • edited June 2010
    w00t! Looks like it's on Drive-Thru RPG and RPG now, too. That reminds me, I should make a new video that doesn't mention the Kickstarter. :P
  • By the way, here's the story they created yesterday. Elianos and Sabine are great heroes of myth who left the Firan lands on an adventure but never returned. "Ranivor" is a terrible title we made up for their kingish position.

    Elianos has returned!
    Riding upon his horse, Elianos arrives, and pulls the reins, but Sabine is not there.
    Elianos's intimidating horse finally stops at the palace and the Ranivor dismounts but it is into a mud puddle.
    Elianos's shining boots splash right into the mud as he dismounts, causing him to shout, "Zutiv blast it!"
    The Clan Council saw Elianos's muddy boots and said, "Take those things off now!"
    Which he did under protest of aching feet.
    Sabine just sat and smiled.
    "Now give me a kiss."

  • Aw, that's a sweet little story. What were their reactions/comments?
  • Here's a sample of comments:

    [HBR] Cortik says, "and eolaus can donate coins"
    [HBR] Cortik says, "but don't give them all to paulina or the game will end"

    [HBR] Cortik says, "Haha, that's cool."
    [HBR] Cortik says, "we rolled really well, though"
    [HBR] Eolaus says, "Enough creativity helps, too."
    [HBR] Eolaus says, "So what now?"
    [HBR] Cortik says, "That's it. :P"
    [HBR] Cortik says, "tell people what an awesome story we wrote"
    [HBR] Paulina says, "it was pretty fun!"
  • Awesome. Maybe there will be a supplement/expansion for HBR with new scenarios and settings. Hmmm... :)
Sign In or Register to comment.