RufasGate is a first-person (you are the pusher) 3D sokoban puzzle game within a Stargate/Portal fantasy setting.
While exploring a remote south-seas island you find an operational stargate that lures you into a curious sequence of dungeons. Your escape will depend upon the logical rearrangement of weird power cells, called Zero Point Modules [ZPMs], that can roll in only two directions. You can shoot your portal guns at the dungeon walls to create a wormhole escape. But, in order to activate it, all of the ZPMs must be bumped into their sockets. Now, you can only PUSH the ZPMs. That means you will fail if you roll one into a corner or against a wall.
There are 4 dungeons and 5 degrees of difficulty [DoD] for a total of 20 user-replaceable puzzles to solve. Escape all 4 levels at the current DoD to reach an exotic lake on the surface, where the DoD is increased for your next game. Each game resumes at the DoD and level attained in the previous game.
In level 2 there is a modern implementation (glsl v330 core) of reflective water using environmental cubemaps. Such a coding example, that does not use OpenGL-deprecated functions, is hard to find. Thus, RufasGate is also a testbed for learning/illustrating various modern OpenGL techniques including cubemaps, water reflections, sound, and glsl shader capabilities. And for anyone planning to use SDL2, it illustrates key-mapping, to get improved keyboard responsiveness from SDL.
Works on Macs running OS-X and PCs running GNU/Linux. Supports Mac Retina displays.
Graphics card that supports OpenGL v. 3.3; GNU/Linux or OS-X