All the latest version and update information can be found on the changelog page.

R-cade is a simple, retro, game engine for the Racket programming language with a few, specific goals in mind.

Designed for Kids

It is as simple as QBASIC was for me when I was learning to program oh-so-many years ago. But, as they become more comfortable, they can expand to a whole world of possibilities and learn some very powerful concepts provided by Racket.

No External Assets

You will never find asset loading code in R-cade (e.g. sprites, sounds, levels, etc). This is for a few reasons:

  1. Often, what holds kids back is the presumption that they can’t create good assets. Or they lack access to the tools to make them.

  2. I wanted all games to be 100% self-contained in code. Sharing a source file should be all that’s needed to play.

  3. Sprites, sounds, etc. require added libraries that abstract away what’s really taking place. I want to expose the wires.


Those of us who grew up programming the Trash-80, C64, Atari 2600, GameBoy, NES, … learned a lot about VRAM, wave functions, virtual registers, etc. I want to expose kids to these in a safe environment where they can experiment without worrying about crashing.


With these goals in mind, here are the main features of R-cade:

  • Locked framerate with simple game loop
  • 16 color palette with 1-bit draw operations
  • Simple input controls and user-defined action bindings
  • 16-bit, PCM sounds with wave function and envelope
  • 16-bit, PCM music with wave function
  • Optional fullscreen, CRT shader

I also have a roadmap of features I’m working on.


If you think R-cade is for you, head over to the setup page and then read the tutorials to get up and running.