That’s probably the most non-sensical post title I’ve every come up with. Anyway, just wanted to  do a quick update post on Outwitters. I’ve got a few longer-form entries in the works but I’m letting them cook a little bit before posting. There’s a lot of moving parts right now in trying to get this game looking presentable, and all at different stages of completion. Over the next couple of weeks I’m focusing on getting this thing ‘feature complete’ so we can start iterating on the stuff we want to touch up on.

I just recently did an overhaul of our replay system. Before, you could only watch the previous round (1 turn for 1v1 or 3 turns for 2v2), and it required you to press replay to see it. The benefits:

  • Smaller data footprint
  • Simplified replay UI. The replay was short enough that there didn’t need to be anything beyond ‘play replay'.
  • Quicker access to the games. You either watched the replay if you truly cared about the game or if the game was still in the early stages you just played your turn and moved on

So those were nice things to have. But then we started having a lot of conversations between players and us that they wanted to see more info on how the game played out, and there was a desire from several that wanted the replay to automatically play when you loaded the game so you could regain the context of where you were in that particular game. I think it came down to personal preference as to whether a player wanted opt-in or opt-out replays, but we sided on the more ‘invested’ players who always wanted to know what’s up with their current game. We even noticed some players didn’t realize there was a replay function until we actually told them. In the end, defaulting to having the replays auto-load seemed like a nice compromise to allow the hardcore to keep tabs of the game and for new players to become familar with the functionality.

On the topic of data footprint size, I wasn’t concerned that much because our game state data is tiny to begin with, so that was kind of a weak plus. So expanding to ‘full game’ replays wasn’t a big data size hurdle. Now, with the UI that became a much more complicated affair, both technically and design-wise. We were moving from a simple, single button to a full-fledged UI with a tool bar and other data to display. I hated the feeling of that. But I think we were able to keep it looking simple enough (despite the crazy technical details in the background to keep it all running smoothly), so I was happy with how it worked in the end:

It’s always amazing to me how an outcome can look so simple but the details are so complex behind the scenes. If this was a single player game, then changing data format is not a significant matter. But given how online-centric Outwitters is, changing replay formats has huge implications to the game’s protocol with our servers. So adding this ‘full game replay’ functionality affected client side gameplay code, UI code, and backend server code. Phew.