Write.io weeks 2–3

Hi everyone,

I’ve been meaning to write every week about our progress developing the write.io game. Last week I went into an under-motivation slum … we did make progress, but I couldn’t find the energy to post. I’m back now :)

Before detailing our progress, I’d like to explain in a few words what it is we’re building:

write.io (codename) is a collaborative writing game. You connect to the server, which quickly matches you with a few fellow players to form a new writing group. All members of the writing group are online now, and start collaborating on writing a new story. The game works in rounds: in each round, players suggest different continuations to the current, ongoing story.
Every player sees in real time what every other player is writing, and can vote on his preferred continuation to the current plot. Once a particular continuation gets enough votes, it gets added to the ongoing story, and the round finishes (round often take around one minute). When a player suggests “The End” of the story, and his suggestions gets enough votes, the game and the story end.
The end result is a collaboratively created story.

Week 2 — User testing

Last week, we did some user testing on a manual version of the product. We used a Google Doc with four players competing and collaborating in real time to create one story from scratch. We decided to use Hebrew for this version as our player/friend base is fluent in Hebrew.

We got a ton of product feedback from this early experiment:

  1. No timer — we initially planned to user a one minute timer to make players vote on different suggestions for plot continuation. Instead, we’ll try a “threshold model” without a timer, where the first continuation to reach N votes is chosen.
  2. Reduce the number of players — having the game with four players creates a situation where your suggestions are chosen on average only a 25% of the time on average, which is frustrating. Also, it’s hard to navigate a coherent plot line with everyone driving the story to different directions. We decided to reduce the number of players for our next trial.
  3. Anonymous Voting — a few players suggested that voting should be anonymous — otherwise players might be inclined to “revenge vote” or “mercy vote”. Something we definitely need to test in the future.
  4. Pre-filled “plot lines” — a problem we noticed was the lack of coherence in the generated plot. Something we want to try out next time is using pre-filled plot lines, taken from example from /r/WritingPrompts.

Week 3 — Vue & Socket.io

After playing a bit with the Angualr and React generators, I decided to ditch them in favor of the simpler Vue.js framework (thanks @ronreiter for that solid advice). Vue has a super easy learning curve, and we quickly managed to setup a basic single page app with Home page and a Game page. Then, using socket.io turned out to be a breeze, and we got the Game page to show who is logged in right now and maintain that state over users joining and leaving.

We also added a basic admin page.

Next up: grouping players into groups of three, allowing players to write suggestions & sync them to other players, and voting.