Inspiration

Well, we originally set off to make a Chrome extension that would read gamepad inputs and then trigger the event handlers for WASD, the arrow keys, and other common keys used for games. This would theoretically allow you to use a gamepad with any browser game since browsers now have native gamepad support. However, it wasn't until about 2am on Saturday that we learned it's impossible due to Javascript preventing that functionality for security reasons.

So, we did the next best thing. We made a browser game that just works natively with gamepads!

What it does

It's an all HTML5 canvas game that works natively with gamepads. Plug in your XBOX360 controller (or whatever you prefer) and you're ready to play. The game itself is sort of like Agar.io, only with shooting and being in space.

How we built it

We used Node.js for our server with Express.js to handle serving our web content. We also used Socket.io which served as the backbone of the game. It links all of the players together with the server and allows us to communicate as real time as an all browser game can get.

The game itself is rendering to an HTML5 canvas element and we wrote the game from scratch. Lastly, we're using Webworkers to thread our engine for the best possible performance.

Challenges we ran into

  • Had to ditch our project and start fresh after spending hours on the first one (See: www.github.com/nawilson9/BINAK).
  • Webworkers don't have access to the document object which makes doing page manipulation from events being handled by a worker a pain

Accomplishments that we're proud of

  • There are no bugs (that we know of), none of it is BS'd, it all works!
  • Sticking with the 'good' socket implementation we did would EASILY allow this to scale into handling multiple lobbies. It's all setup for it, we'd just have to implement the option to make and select new lobbies to play in.
  • It's actually a very responsive engine. The controls are pretty darn crisp.

What we learned

  • FAR extended knowledge of the Socket.io framework due to the extensive use of it.
  • Webworkers are easy to use and effective.
  • Actually understand what goes on 'under the hood' of a multi-player game engine.

What's next for GarbageCollection

  • We spent a lot of time working on the engine so it really needs a better interface. An intro with a description and instructions would be nice.
  • Adding support to make your own lobby. Like mentioned, it's ready to handle it but it just needs to be implemented via an interface.

Built With

Share this project:

Updates