Game:
Will You Be The 1. is a 48h compo game made using HTML5/Javascript.
Using your mouse, you have to survive through three short levels avoiding all kind of moving obstacles.
Inspired by this awesome interactive video: http://donottouch.org/, I wanted to work on a game where other players would be part of your game experience.
To do so, here’s the trick: each session is recorded, and then sent to the server. In order make the experience more “realistic”, the game will load 20 records on startup, each with different completion rates going from 33% (previous player died quickly) to 100% (level was completed).
The last level only loads sessions going up to 66% of completion, to create the feeling that you are the only one to finish the game.
Synopsis & Twist:
Here’s the synopsis:
“So many of them… it’s comforting to not be alone in this adventure.
But somehow the saddest part is probably to know that only one of us will survive.
Life is too precious, we have to succeed. I have to succeed. “
If you manage to beat the game, you then realize that all along, your cursor was nothing else than a spermatozoon, looking for… the egg. By finishing the game, you become the one.

Level Concepts
What went right:
The main idea came up pretty fast (less than 5h). The main challenge was to find both interesting and challenging level design patterns. Since player sessions are recorded, no randomness was introduced, and the redundancy in the level patterns might create boredom.
The basic core engine was pretty easy to implement. Designing the game “server ” was a lot of fun, and also my first experience in making such a program. It’s basically a RESTful node.js server responding to all kind of GET & POST requests. The data formalism might not be the best, but it works fine given the scope of Ludum Dare. Since the beginning of the votes, I only got one crash, and the server auto-saves its data, making things easier in case of emergency.
What went wrong:
Many things. First of all, I got really frustrated by HTML5 on this one. I wanted to save time during development by using pure canvas calls. That turned out to be a bad idea since performances were taking a huge hit. WebGL would have been a way better choice for the low level rendering layer.
Second, the HTML5 Audio API. For some reason, sounds and music are not playing correctly when the game loads assets from the server on the first time. Once these assets get cached by the browser, everything magically works. This is a very frustrating bug remaining unsolved as of today…
Third, level design. Each level basically consists in succession of timed events. For instance, at t=0 make square_1 appear, at t=1 make square 1 spin around for 1000ms, and so on. It’s quite painful to polish your levels this way. You have to keep in head the timing and think ahead of what it might look like. It also implied numerous play testing sessions.
Lastly – and that was to be expected- one of the main issue is the visible latency when playing on a real server (vs localhost). Each cursor replay data has a noticeable lag, and that kind of killed the concept of playing with real players at the same time. Some people actually thought the cursors were some shitty cheating AI (it’s not :D).
Conclusion:
Even though this Ludum Dare submission wasn’t my best, I’m proud to say: “I did it!”. This is a complete game, I had lots of fun making it, and it was also the occasion for me to learn something new concerning basic game server designs (it’s still far from real-time scenario using sockets, but that’s a start!).
Feedback so far is pretty good and people are having fun, that’s all what matters

Level 3
Thanks for reading this short post-mortem! Please feel free to ask me anything in the comments section 😉
You can play & vote for this game over here ===> http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=6851