Dinodeck is a game engine that aspires to let you make video games quickly and easily that run anywhere. (Anywhere being Mac or Windows machines). It's strongly inspired by a number of game engines I've used in the past.

It's not trying to do anything new but instead provides an easy way to iterate on game ideas.


Documentation is now available here for version 1.1.

Hello World

Let's jump right in and show some code. Here's a simple program that writes "Hello World" to the screen.


gRenderer = Renderer:Create()
gRenderer:AlignText("center", "center")

function update()
    gRenderer:DrawText2d(0, 0, "Hello World")

Run Dinodeck with the above code set as the main script and you'll see a program like below. "Hello World" is written to the center of the screen.

Dinodeck Hello World.

Where things get cool

You can change the program's code, while it's running, to say "Goodbye World". Change the code file, then press F2 on the Dinodeck window and it will hot swap the code. The program instantly changes from rendering "Hello World" to rendering "Goodbye World". This really speeds up game dev iteration. This isn't limited to code, you can add sprites and sounds at runtime and instantly see them in-game.

Download: Version 1.1.2

[Windows] Download

[MAC] Download

This download contains a simple Hello World project.


Project using Dinodeck

All projects here are mine but they give some idea of what can be done. (If you've made something and would like it featured here let me know!)

How to Make an RPG: Section III - Quests

A classic old-school Japanese style RPG example game. In this screenshot the player is solving a puzzle in a cave. If you want to find out more about this project click here.

Dinodeck Hello World.

Cat's Tale

A match-three game based on columns.

Dinodeck Hello World.

Word Witch

Yes, Dinodeck can be made to run on Android but it's not officially supported. This is a daily word search game.

Dinodeck Hello World.


The source code is available here.

It is (to some extent) considered finished. (Though there are still many improvements that could be added and a few bugs to fix.)

It was made to scratch my own itch for a rapid game development environment. I've used it for game jams and also as the engine for the book How to Make an RPG.

Want to develop Dinodeck?

Dinodeck can be quite hard to build because it uses a number of external libraries, it's cross-platform and I'm terrible at build scripts.

My advice would be to start with the small step_01 project, that's a simple game loop. If you can build this, you're more likely to be able to build Dinodeck.

Nice to Haves

Render to a Framebuffer I'd modify step_01 first to get this working. Rendering to a framebuffer means that buffer can then be used to draw the game canvas at different resolutions. This is now in.

glScissor Support this would allow better menus. This is now in.

OGG SoundStreams The API is there but not the functionality. This would allow for streaming background music

Shader Support instead of the fixed function pipeline. This would need to be something like CG and also support hot-reload like the other assets. This is a big task!