2D OpenGL gameworld
Explore a procedurally generated 2D gameworld with mazes and sokoban sublevels. Shows basic OpenGL, texture tilemap, and geometry shader usage examples.
Yet another boring block adventure (yabba
) comes with a procedurally generated 2D/pseudo-3D
gameworld including mazes and
sokoban
sublevels to find and solve. Apart from a generic OpenGL setup with geometry shaders for simple 3D
models, it mainly shows the basic usage of a texture tilemap on a mesh including static sprite
animations.
The goal is to find and solve all levels hidden in the overall gameworld – and to avoid getting trapped in a maze. As I stopped working on it after the “basically works” and “looks ok” state, it should rather be considered a PoC or engine to build on for upcoming ideas. There was not enough time or creativity for a proper concept, story, or elaborated looks.
Game installation & controls
Download the pre-built package provided below or build from source using make
, which requires
headers and libraries for GLEW
, glfw
, GL
, GLU
, and pthread
.
The game accepts the following optional runtime arguments:
--window[=WIDTHxHEIGHT]
- Run in windowed mode with given dimension in pixels. The default is to run fullscreen with native resolution.
--seed=…
- Set the seed (32bit unsigned integer) for level generation. Otherwise, one is pseudo-randomly chosen.
After startup, the controls are as follows:
- Arrow Keys or WASD: Move around.
- Mouse Click: Take the shortest path to the destination. Not available in puzzle sub-levels.
- Mouse Wheel or PageUp/PageDn: Tilt the camera angle, thus choosing between a 3D viewport and a top-view more suitable for solving puzzles.
- Esc: Exit.