Replays Are Here!

I just released build v0.1.3240.0 to the beta, which has some minor bug fixes, but also In-Game Replays, the coolest thing since the new art went in!

I am incredibly excited about the potential for replays!  I can’t use enough exclamation points!!!

Update:  zerotka made a cool trailer showing them off:

I wrote about replays a bit, but seeing them in action is way cooler.  As usual, I streamed the release notes on the SpyParty twitch channel, but I cleaned up the video and put it on the YouTube channel.  It’s about 35 minutes long, and shows off some of the cool aspects of replays, and then I answer some interview questions from the beta testers until Comcast decided it was time for the stream to end:

I think replays are going to really help people take their play even deeper than before.  Even in the few games I’ve played with it in the wild, it’s made me think about how things I did as a Spy looked from the Sniper side, and how better to protect my Spy actions.  I used to think replays were going to help the Sniper more, since you could study Spy moves, but now I’m not so sure…it’s really useful to be able to see your mistakes from the Sniper’s perspective, so you can learn to blend into the crowd more effectively.

And, now that the “hard part” is done, onward to Spectation and the Replays Database!

Oh, I put this note up after editing this stream:



  1. Hey Chris, have you considered “gaming” the replays? In other words, people can play as the sniper by either joining a multiplayer game or by being served a random replay in which the goal is the pick the spy before the real sniper did (or did not). Seems like it would provide a nice, low-pressure way for people to practice or just get their feet wet in the game without the anxiety of facing a real person.

    • checker says:

      Yeah, I definitely plan to do this, but the thing that will keep it from being as useful as I originally thought it would be when I realized you could “play the replay” as the Sniper is that the replay-Spy won’t react to the position of the Sniper’s laser, which is a huge piece of feedback between the players.  So, it’ll definitely be cool, and like you say, a lower pressure way to practice, which is super important and worth doing, but I also want to be careful not to teach people bad habits (meaning Snipers won’t learn laser management playing replays).

    • You probably should to think of it as an entirely different game mode, with likely a different audience. The sheer volume of replays available could lead to some interesting things. Since you can track people’s success on beating specific replays, you could sort the easier ones and the harder ones. (“Only 6% of replayers were able to find the spy!”) You could score people on not just finding the spy but how fast. You could have a replay ladder!

      (You should probably show the time left on each replay so that the player always gets a chance to guess… maybe even pause the game before the final frame. Maybe even let people rewind to specific segments based on some limited resource. I dunno, I just can’t think of anything quite like this, so it’s an interesting option. One part of your audience would be generating content for the other part just by playing the game…)

    • checker says:

      Yeah, I definitely agree it’s better thought of as a different game mode entirely, and it has some cool potential.  When Dota2 announced their “replay takeover” thing I was thinking about what that would mean for SpyParty, and it’s clearly something in this area.  One thing I want to push on is a kind of “” thing where there are lots of little training challenges you can do to get better, and thing is definitely one of them.

  2. Tytalus says:

    Great post and the replay stuff looks fantastic!

    Can you comment on why you decided to write replays prior to writing a spectator mode?  From a coder’s perspective I would’ve assumed that spectating would be a good “first step” approach to replays, and that you could’ve built the replay system off of the spectation code.  Your thoughts on this would be appreciated.

    • checker says:

      Thanks, and good question!  The replays are the lower level and simpler technology than spectation.  Replays just work with a file on the disk, which is then loaded into memory, so I could test it locally, and not have to fake up games and have a spectation server working and all that.  I needed all the UI and whatnot as well, which they’ll share.  Now that replays are working, I can make them incremental and delivered over the network, and that’ll be a start for simple spectation.  Then there’s all the other additional stuff, like how to manage the matches when there are spectators since I want to do cool stuff like round-robin and mini-tournaments and whatnot.  So, in terms of technologies from low level to high level:  the regular game networking -> replays based on networking -> specation based on replays.  Now, next up was going to be the Replay Database, but I’ve been thinking that I might just do spectation and the db at the same time, since they’re very close and I really want spectation in, but even then, I probably _should_ do the db first, because the core of that’s the first half of spectation, where the replay packets get sent to the replays/spectation server, and then if there are specatators, they’d get sent back out, etc.  So I dunno.

      I might do a new map before I do any of this, just to mix things up.  :)

    • Tytalus says:

      I was thinking along the same lines–spectation is essentially “replay in real time”, hence my confusion when you said you wrote replays first.  I suppose you’ll hit the same end-goal, and your comment regarding networking is also relevant.  From my perspective I would’ve said, “Replays are just a spectator who writes down everything that happens” then designed a centralized solution rather than a disk-based one.  After reading your comment I’m not sure which direction I would’ve gone first–both have their merits.

      Thanks for your thoughts on this!

    • checker says:

      Yeah, programming anything significant is full of these “hmm, not sure which way to go, oh well, better pick one and keep going” choices.  :)

I have temporarily disabled blog comments due to spammers, come join us on the SpyParty Discord if you have questions or comments!