Sokoban

By Thomas Jebson
(Created: February 2026, Updated: July 2026 - Finished)
Academic Project
Back to portfolio

Skills & Technologies Used

C++ OpenGL GLFW GitHub Visual Studio Visual Studio Code

Supported Platforms

Windows

Links

Awards

🏆 Academic Result: 93%

About

Sokoban is a classic Japanese puzzle game initially released in 1982 by Hiroyuki Imabayashi. The recreated version of the game, is known either as just Sokoban or Sokoban (ILA). The objective of the game is to push crates around the level in order to place them on the marked goal tiles. The aim is to complete the level in the least moves possible. The player can use WASD or the arrow keys to move, and can push crates by moving into them. Crates cannot be pushed if they are blocked by a wall or another crate and you cannot undo more than one previous move.

Credits

This game was designed and programmed by Thomas Jebson exclusively, using the following third-party assets:

Textures

Fonts

Reflection

This game was initially developed as part of an academic project for the University of Northampton. In this assignment, the objective was to recreate the core mechanics from the original game, and then explore introducing more advanced topics. This assignment required direct interaction with the OpenGL API through GLAD.

Previous assignments had exposed me to multi-media APIs like SFML and game engines like Unity and Unreal Engine. This meant relying on my previous extra-curricular work including (but not limited to) PMMA, which was OpenGL based for a large portion of it's development, although has since switched to BGFX.

My familiarity with OpenGL meant that just four weeks into the approximately 13 week development window I had a complete base version of the game. This allowed me to spend the remaining nine weeks adding advanced features and exploring more advanced optimisation strategies for both the CPU and now also GPU. These are listed in detail below:

Extra Features

Optimisations

To conclude, the game produced for this assignment ended up meeting all the brief requirements. Further to this the game also explores a variety of extra features which further improved my understanding of game engine less development. This game uses ideas inspired by (but developed in isolation from) PMMA 5.0, such as the interface for some of the shape and text rendering APIs. However, the development of this game went on to inspire exploration into Signed Distance Field (SDF) rendering in PMMA 5.1. SDF rendering was explored as a potential optimisation technique for the Sokoban game, but disregarded for being too complex for the time allocated for the assignment. SDF rendering will now be considered for future 2D rendering assignments if applicable.

Images

Level One Level One (In Progress) Level Two Level Three Credits Menu Options Menu