Geometry Wars: Post Mortem

Our game was Geometry Wars, a real-time strategy game where you play with geometric shapes!

Tools

Languages: JavaScript / HTML5 / PHP
Frameworks: Node.js, Kinetic.js, Howler.js
Soundtrack: GarageBand

http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=6821

The Good

IT WAS A LOT OF FUN! This was our first Ludum Dare and I’m looking forward to the next one. Making this game was awesome! The music works (sort of), the sound effects are nice, and all in all I think this concept had a lot of potential. That moment when we could play or first death matches was simply magical! Wooo!!!

Streaming to Twitch was also an interesting experience, now everything is documented! (http://www.twitch.tv/udnozor)

The current version is (un)playable on the web: openfu.com/ld26/current/client/ – it doesn’t really work, but it’s there.

The Bad

The game is not playable as it is. The server crashes literally every 10 seconds.

There are a lot of bugs left in the game that we didn’t have time to fix. As it is, it hovers just below the edge of playability. Multiplayer combat actually works pretty well, so it’s possible to have actual matches between two or more players. The single-player content (this is what the Evil Potato base is for) simply does not work. It broke during the last minutes before the deadline.

Lessons Learned

Team development comes at a cost, and this project was no exception. Working in a pair requires a certain level of coordination that we did not apply consistently.

Eric was doing the Node.js server backend, whereas I coded the frontend. Of course we coordinated often, but over time it became clear that having two separate data models (one on the server and another one on the client) was a decision that cost us a lot of development time and broke the game on a deep technical level. We talked about our data models only after it was too late by about 2 hours. In hindsight we should have scrapped those two hours, because the cost was even higher during the rest of the development effort. It was a very bad decision to build something on a cognitively dissonant data model. Poor Eric had to maintain a translation layer to talk to the client and adding features became very painful over time.

We definitely got more done together, and the experience itself was an absolute blast, but I have the feeling that each of us would have been able to deliver something more complete if we had worked alone. For our next project, I think we need to focus a lot more on actual technical specification.

Going Forward

I’m exhausted now, but I am also determined to invest one or more days during this week in order to put a bugfix release together, even if nobody should care ๐Ÿ˜‰