Hack day 3: dreaming of Micro Machines

Our third hack day started with a clear vision 'create an online multi-player racing game using the latest web technology'.

Inspired by the classic racing game Micro Machines, we planned to create a fun sandbox game where the visitors would be dropped into a world along with fellow site visitors. They could race around, bump into other people and generally explorer.

The day was off to a good start. We had the idea, knew what technology we were going to use and even converted a nearby window into a post-it note task list. It was only several hours later that we realised all was not well.

It turns out node.js is hard, and using undocumented second generation ports of physics engines is even harder. While Jon was busy creating some sweet vector artwork, myself and Kenneth were in constant state of code rewriting and caffeine drinking. A few hours later and the coffee had been replaced by some lovely ale, but the code refused to fit together.

After some pizza and another ale, we finally got the code running. Little vector cars were driving around, colliding and bouncing using real world physics. The problem was it didn't work particularly well, only running smoothly a quad core CPU.

We decided to call it a night and head to the pub, where we'd figure out what our next steps would be. Jon had almost finished the artwork but we didn't have the code to use it, so we made the decision to simplify. Out went the Box2D physics engine and in came a simple driving system. If we could manage to get the cars driving around without slowing down the system we might be in with a chance.

A bacon and scrabbled egg breakfast was the perfect start to day two. We had four hours to rewrite the driving code, integrate the SVG artwork and get node.js up and running. With bellies full of bacon and all the coffee we could drink, we set to work.

It was around this point it began to dawn on us we might have bitten off more than we could chew. Software like node.js and Box2D might seem like simple solutions when looking at carefully crafted examples, but when it comes to using them in your own projects you soon realise they have a complexity all to their own. I wanted Box2D to model simple forces, but the lack of clear documentation and abundance of obscure methods made the task difficult. Writing your own simplified solution from scratch is time consuming. Choosing the write solution can make or brake a project.

While we didn't manage to completeour vision of an online racing game, we did get to use some amazing technology and Jon made some gorgeous artwork. I also gained a new found respect for game programmers, especially those who write for the browser.

And so ended hack day three that also marked the end of an era as one of the fellow hackers is leaving for bigger and better things. I hope that it in some small way his good fortune was influenced by the few projects we made on our hack days, and if so I would like my 33% share of the stock options ;-)
(download)