PhotonStorm LTD

This is a JavaScript game engine created by Richard Davey for developing 2D games that run on browsers. My main tasks have been developing a new version of the graphics API and implementing a 2D WebGL renderer for it. I’ve also worked on developing new Arcade Physics system adding support for polygon based collision. Other features I’ve worked on are adding multi-texture sprite batching and support for GPU compressed textures.

Grumpy Cat: Worst Game Ever

Lucky-Kat Studios

Grumpy Cat’s 1st official mobile game is here!

Play awful mini games starring: Grumpy Cat Unlock Grumpy Cat characters and use them as stickers in iMessage (iOS only) Share Grumpy Cat memes Get high scores and challenge your friends Groovy chiptune music by Maxo It’s the WORST-GAME-YOU-WILL-EVER-PLAY.


DamnBrain & Giant Enemy Labs

Bonds is a charming platforming-puzzle game that delves into the concept of human bonding through mind-bending levels that challenge the player to explore and solve puzzles in two separate yet connected worlds.

Cute Jungle Hospital


The patients in this hospital are fuzzy and wuzzy and they need your tender loving care.

Dragon Flow


The Dragon Flow is a puzzle game in which you control a dragon to bring life & prosperity back to A Far Away Land. The beautiful ‘paper-like’ art style in unique to the genre and a pleasure to look at. The game is also filled to the brim with Chinese wisdom, fortune cookies and an intriguing story to boast!

Ninja Joe


Ninja Joe is the third part on the Ninja Joe saga, it was the last game I worked on at AmnesiaGames, before going full indie. This game runs on multiple platforms like iOS, Android, Windows Phone, Windows 8 and Blackberry Playbook.

Personal Projects

Gaius Profiler


Gaius Intrusive Profiler is a tool I built for my own engine. It allows me to profile a game remotely using a web interface. The profiler runs a WebSocket server and services the frame data to a client so it can be displayed on the screen.



DamnFlixel is a port to C++ of the popular AS3 engine called Flixel. The engine can be compiled for Desktop and Nintendo 3DS (using the oficial CTR-SDK). The engine features multiple core features like custom memory allocators, multi-threaded job system, efficient containers like intrusive lists, fixed arrays, ring buffers and small strings. For graphics it uses OpenGL 4+ for desktop development and Nintendo’s GX API for rendering to the 3DS.

Ada's Room


Ada’s Room is a small platformer game about a fighting nightmares as bosses developed for Ludum Dare 37. The really simple story of the game is that Ada is going to bed. She’s going to have nightmares and she must confront her fears. This nightmares will be presented as enemies or bosses she has to defeat. Her room will mutate with each boss battle. Each boss would represent a different fear and would need different strategies to be defeated. At the end the core is a platformer skill game. A mix between super crate box, shovel knight and in some way binding of isaac.

This game was developed by myself in C++ using my own engine DamnFlixel. The game can even run on Nintendo 3DS thanks to that. Here you can see a video



Tiny-Canvas is composed by two minimal and lightweight rendering modules. One called TinyCanvas and the other one called TinySprite. Both of this modules use WebGL as a rendering backend for high performance. None of them falls back to canvas to keep the size of the library as small as possible. Tiny-Canvas modules are great if you have limited space (ex: Limited size contests) and want to have WebGL features like custom shaders.



6502 Emulator and Assembler written in JavaScript.

The emulator has:

  • 64 KB of memory.
  • Screen memory starts at $0100 and ends at $04FF.
  • Background color is defined at address $E400.
  • Text color is defined at address $E401.
  • Color values go from $0 to $F.



DAMN-BASIC is a programming language I designed for writing programs for obsolete CPUs. The main target I focused was the MOS6502. I implemented a compiler and assembler in C++ which generate 6502 instructions. Here is a video demo of it