ShaderToy

Tengo Calor!!
Obsidian
PBR - Poke Ball
Ray Tracer in GLSL
Quesitos Mágicos
jello
PlasmaBoy Cartridge
bouncy
1999

Experiments

JS1K 2019 - X
Phaser V3 - WebGL 3D Renderer
2D Ambient Light and Shadows
WebGL2 Deferred Lighting
WebGL SDF Demo
Ada's Room WebAssembly Port
WebGL 2D Lighting
JS1K Demo - 2017
Bunnymark WebAssembly Demo

Personal Projects

Gaius Profiler

Personal

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

Personal

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

Personal

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 https://www.youtube.com/watch?v=zKCJqFtEQXk.

TinyCanvas

Personal

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.

JS6502

Personal

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

Personal

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 https://www.youtube.com/watch?v=R78IVB5AjBs