Sam Gentle.com

Git strategy game

I had a fun idea for a game the other day: a Git-based strategy game. Any multiplayer game at some point has to deal with the question of how to handle multiple players acting at the same time. Normally the way you deal with that question is by saying "you can't", and either going turn-based or placing restrictions that prevent actions from really happening at the same time, just very close to each other. But that doesn't have to be the case.

One of the more intriguing alternatives I've seen was in a game called Diplomacy, where every combination of moves has one defined resolution. This means that the moves can all apply simultaneously without having to apply an arbitrary ordering on the players or any kind of tiebreaker process. It was quite elegant! In fact, the whole thing reminded me a lot of the different solutions to conflict resolution problems in distributed systems.

So why not go all the way and make a strategy game based on an existing distributed system? A Git strategy game could end up with quite a complex notion of time, with multiple diverging and merging timelines happening at once. You'd want to set the merging rules up in such a way that you'd have to make certain tradeoffs and sacrifices for your timeline to merge. I haven't thought a lot about what the actual mechanism for winning would be, but I there are a lot of things you could do with that system as a base.

I think it'd be quite an interesting way to introduce people to distributed version control, and distributed systems in general. Plus I think it could be a fun game.