We wanted to make a game (just for the sake of it) and it also was a great opportunity to try new technologies like websockets and drawing with canvas.
What it does
Users enters the game with his browser and is dropped in a maze with rooms next to other players. Each player can shot others in order to kill (or to protect himself). Bullets kill other players (you have few lives, so be careful) and walls are actually walls (you're no ghost to pass through them)
How we built it
We used Meteor for fast prototyping, Socket.io for connecting clients to the server and EaselJS for drawing shapes on the canvas.
Challenges we ran into
Latency is by far the biggest challenge to overcome in a multiplayer game, and we realized that soon enough. If you try to compensate by drawing on the client first and then updating with data from the server, you’ll find your player jumps around a lot. We ended up drawing the players’ data as soon as it was received from the server even if it meant there was a small delay, and calculated the absolute position of other objects that moved more predictably, like bullets, which can only move along a straight line. Since all clients know the starting position, speed and direction of the bullet, they can calculate their absolute position at all times and ensure that everybody sees the exact same thing.
Accomplishments that we're proud of
Making it work
What we learned
We'd never used socket.io before or implemented any real-time synchronization. Canvas and the library we used was challenging to us, first time doing low-level graphics.
What's next for Omazing
Add more layers with increasing difficulty so that the first to reach 1000th floot wins. Implement team management to cooperate with friends