BFG TD Post Mortem
Hello fellow Dare’rs!
So for this ludum dare tmtowtdi and I decided to make a multiplayer game for a difference. I’d done a lot of action-arcade type games before and I felt quite determined to make something I hadn’t done before. So we got together with my friend tmtowtdi, which is an exellent server/web/js ninja, and got to work for the LD25 jam.
Tools:
I feel comfortable using flash/as3 so it was a easy desicion for me, moreover we wanted to be able to deploy to mobile so starling, a framework for making gpu accellerated programs in flash, was a great fit.
Determining what to use on serverside was a bit of a challenge. As I said, none of us really did a multiplayer game before so we looked into java, Scala and c#.. Since we weren’t familiar with any of these tmtowtdi decided to go with node.js with javascript, a framework he often uses for his work. And for the socket’s we decided to use Socket.io which is well integrated with as3 and js.
Setting up our stuff:
This was the easist part of the jam, Node.js and socket.io just work! We immideately got our communications running with flash and started exchanging packets right away.
Implementing game logic into the client:
Starling is a great framework, I’d written a small game library a few weeks back that uses starling and does basic asset and scene management. Using this code to make the game interface and game logic for the client was an easy task.
Implementing game logic into the server:
Now this part is a different story
now since we used javascript we started banging into some problems as the game logic got a bit complicated. As you know, javascript is not type-safe, and also it is highly dynamic, that means you can declare variables and functions on the fly, these cool features of js kinda’ got us into trouble.ย We spent long hours ironing out bugs and parts of code just didn’t work for seamingly no reason. Features that enabled us to write fast code was breaking our game and small tasks started taking too long.
But by the last day we got things working, thanks to tmtowtdi’s experience with js and overall awesomeness ๐ and got to testing gameplay, adding small features like help messages and polishing the overall game.
tl;dr:
We had a blast working on something new, and personally it was my best LD so far. Yes, we missed quite a lot of things with game design and interface design. The game is obviously lacking a lot; most people don’t even get whats going on in the game :D. But it was worth it!
So if you feel like you want to do a whole new thing for the next LD and you have a friend that you work well together, just do it!
The game:
The result is BFG TD, a multiplayer tower defence game where two teams attack each other for all of eternity ๐ If you haven’t played the game please check it out here, and please comment on what you think could be added, what works or doesn’t.
Timelapses:
You can also check out timelapses of clientside work done on days 1 and 2. The last day was a bit chaotic so no recording was done there ๐
Cheers!
PS: Sorry about my spelling, my spell checker is acting up today ๐