RufasGate is a combination of Portal and Sokoban written in C++...wandering on an isolated tropical island, you stumble upon an operational stargate that sends you into a curious dungeon. Finding your way back up to the surface will require ingenuity to solve some 3D sokoban puzzles.
The Zero Point Modules [ZPMs] that you find lying around provide power to the portal guns. You can shoot these guns at most walls to create a wormhole, a shortcut through space-time. But, in order to empower the portal guns, all cylindrical ZPMs must be bumped onto their base receptacles. Not easy! Note that you can only PUSH the ZPMs. That means you will fail if you roll one into a corner or against a wall.
Transcend each level and make your way back up to the cool night air on the surface.
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.
Now supports Mac Retina displays.
Graphics card that supports OpenGL v. 3.3; GNU/Linux or OS-X