Last year I made a simple physics engine Ball.js that handles collisions and rendering (DOM or canvas) of balls, with a few built-in visual effects (glowing/blinking colors, explosions, opacity …).
This year, I released in june 2013 an other game engine – more evolved – based on Box2d/Box2dweb (the physics engine of Angry Birds, a game you should know 😉 ) : boxboxevents.
I didn’t start from scratch like last time, I forked the boxbox framework made by Greg Smith that provided an abstraction layer to box2d and added to it the support for :
- mouse/multitouch events on entities (jQuery style)
- viewport (zooming/dezooming with mouse wheel or fingers)
I learned a lot about box2d, as well as multitouch …! And as you’ll see, you can make an Angry Bird like game that will work on desktop as well as on mobile very easy and quickly …
You can try the demo I made with boxboxevents : smileyFaces.
The sources are on github. I am also working on a game based on boxboxevent (still a work in progress).
I released a first version of Topheman Bombs in april 2012 which worked in the browser for the iOs devices and in an app for the android devices (both platforms were sharing the same source code, thanks to phonegap). The game is simple, it takes advantage of the gyroscope/accelerometer of your device :
- Tilt your device to manage the blue dot
- Tap the screen to drop bombs and kill the red dots
- Grab the green dots to get more bombs
- offline gaming (using Application Cache with the HTML5 manifest)
- optimized build file (refactored my source code to use require.js and generate a minified build file with r.js/grunt)
- built-in device motion emulator (using remote-tilt)
Try Topheman Bombs
I started Topheman Bombs to test the accelerometer features of HTML5 (almost two years ago), but I surely finished it to release a real project that was using Ball.js at the time.
You can find the Ball.js source code on github as well as a documented API.
The little Story
Topheman Bombs sources are on github under Creative Commons license, if you want, you can also take a look at the grunt workflow I implemented.
As I couldn’t find it anywhere on the net, I decided to code it myself.
Try it yourself