PC Games

Lasagne Monsters
Three Guys Apocalypse
Water Closet
Blob Wars : Attrition
The Legend of Edgar
TBFTSS: The Pandoran War
Three Guys
Blob Wars : Blob and Conquer
Blob Wars : Metal Blob Solid
Project: Starfighter
TANX Squadron

Android Games

Number Blocks
Match 3 Warriors


2D shoot 'em up
2D top-down shooter
2D platform game
Sprite atlas tutorial
Working with TTF fonts
2D adventure game
Widget tutorial
2D shoot 'em up sequel
SDL 1 tutorials (outdated)

Latest Updates

SDL2 Shooter 2 tutorial
Tue, 13th July 2021

SDL2 Widget tutorial
Fri, 18th June 2021

SDL2 Adventure tutorial
Tue, 8th June 2021

New tutorials
Tue, 11th May 2021

Orb source code
Sun, 25th April 2021

All Updates »


android (3)
battle-for-the-solar-system (9)
blob-wars (9)
brexit (1)
code (6)
edgar (6)
games (37)
lasagne-monsters (1)
making-of (5)
match3 (1)
numberblocksonline (1)
orb (2)
site (1)
tanx (4)
three-guys (3)
three-guys-apocalypse (3)
tutorials (6)
water-closet (3)


Project Starfighter

In his fight back against the ruthless Wade-Ellen Asset Protection Corporation, pilot Chris Bainfield finds himself teaming up with the most unlikely of allies - a sentient starfighter known as Athena.

Click here to learn more and read an extract!

SDL2 Game Tutorials


This series of tutorials focuses on creating games using SDL2. The tutorials are split into several parts, to make it easier to understand the steps involved and not to overload the reader with information from the start.

Note: These tutorials assume that you are already familiar with C programming and you are comfortable with advanced topics such as pointers, as well as using Makefiles. You are also advised to follow the tutorials in order, rather than just jumping around as prior knowledge is assumed throughout. You can read more about setting up SDL2 on the API's wiki page: https://wiki.libsdl.org/Installation.

The SDL1 tutorials have moved here. Since these use SDL 1, they are considered out of date and it is suggested you use the SDL 2 tutorials instead.


You may purchase the complete set of tutorials (with on-going updates) from itch.io, using the link below.

You can also download some of the games created by these tutorials by clicking here.

Creating a 2D shoot 'em up

This tutorial will show how to create a simple 2D shoot 'em up, starting with opening a window, all the way to building a highscore table. If you're new to SDL2, this would be a good place to start.

  1. Opening a window
  2. Drawing the player
  3. Moving the player
  4. Firing
  5. Refactoring
  6. Enemies
  7. Shooting enemies
  8. Enemies fighting back!
  9. Effects and background graphics
  10. Sound and music
  11. Bitmap fonts and scoring
  12. Score pods
  13. Highscore table (Part 1)
  14. Highscore table (Part 2)
  15. Title screen and finishing touches

Creating a 2D top-down shooter

This tutorial will show how to create a simple top-down 2D shooter that we're going to call Battle Arena Donk! Mouse controls will be used extensively throughout.

  1. Reading the mouse
  2. Angles and rotation
  3. Mouse buttons and shooting
  4. Battling enemies
  5. Scrolling the arena
  6. Finishing touches

Creating a 2D platformer

Learn how to create a simple multi-scrolling 2D platformer, code-named Pete's Pizza Party.

  1. Loading and displaying the map
  2. Scrolling the map
  3. Controlling the character
  4. Interacting with entities
  5. Moving platforms
  6. Finishing touches

Creating a sprite atlas

In this tutorial, we'll demonstrate how to create and use a sprite atlas.

  1. Preparing the files
  2. Creating the atlas texture
  3. Creating the atlas meta data
  4. Using the atlas with SDL2
  5. Rotating, scaling, blending, and colour modulation

Working with TTF fonts

In this tutorial, we'll demonstrate how to use SDL2 TTF for text rendering.

  1. Basic font rendering
  2. Creating a glyph atlas
  3. Wrapping, aligning, and typewriter effect
  4. Unicode support

Creating a simple 2D adventure game

Learn how to make a basic 2D adventure game.

  1. Movement and map rendering
  2. Map scrolling and collisions
  3. Loading a map
  4. Entity interactions, part 1
  5. Inventory management
  6. Entity interactions, part 2
  7. Fog of war
  8. Message boxes
  9. Loading the dungeon
  10. The Grumpy Goblin
  11. The Cursed Maze
  12. Vampire Bats!
  13. The Escape Room
  14. Finishing touches

Creating a basic widget system

Learn how to make a widget system, for use with in-game menus.

  1. Basic non-functional menu
  2. Actionable menu
  3. Loading a widget set
  4. Select widget
  5. Slider widget
  6. Text input widget
  7. Control widget
  8. In-game menu
  9. Widget groups

Creating 2D vertical shoot 'em up

Learn how to create a vertical 2D shoot 'em up, that includes power-ups and enemy attack patterns.

  1. Setting up
  2. Enemy attack patterns (first sequence)
  3. Power-ups
  4. Return fire!
  5. Enemy attack patterns (full sequence)
  6. Bosses
  7. More power-ups
  8. Enemy attack patterns (final sequence)
  9. Finishing touches


Binary downloads (Linux + Windows) for some of the tutorials included here:

Mobile site