Learn through playing


Final year project for Computer Engineering Degree, University of Alicante. It is a 2D action-platformer video game focused on teaching programming. You play as a robot who has to overcome obstacles and kill enemies. You have to collect special objects called Codevice. On those devices you will be able to write code. If the sentences that you have written are correct, they will let the character perform actions to complete the objectives.

The project is divided in two subprojects: a videogame, and a C++ compiler.

For more information please check out the documentation:

From the external border proximities an unusual report has been received, it’s about a strange space-time disruption. You have got the coordinates, you have traveled to the conflict area to do research and accomplish your mission. You have been sent with minimal weapons in your spaceship, no threat had been detected yet. However, based on your experience in previous missions, we gave you a transmitter, through it you could ask for help to intergalactic headquarter in case of great danger.

On arrival you can see an intergalactic rift is being opened between different space-time planes and a horde of strange beings are coming through it. Because of hiperdimensional jump you have been trapped within the gravitational force of the vortex. Fortunately, you have been able to send a help request to the headquarter. In response they have sent you devices to keep you safe from the rift’s traction and some spaceship powerups to face enemies.


For this project we had to combine a few web technologies. It uses a Javascript game engine, for write code in-game we included an embedded text editor and we developed a toy compiler for evaluating and executing the user’s code. The compiler was made with a generator tool.

The game uses the engine PhaserJS 2.4.0.

The embedded editor code works with AceJS.

The compiler is generated using JISON.

Graphics are from OpenGameArt.

Some models of the architecture:

Project info


September 2015




Web browsers


Source code on Github