AdaGate is a Portal-style escape room game in a Stargate setting. Runs on Windows and GNU/Linux -- all distros. A tribute to Narbacular Drop, it is delivered as 7z archive. (ɔ)
The proper command to extract the archive and maintain the directory structure is "7z x filename".
# AdaGate
## Recent Changes
**ver 7.4.2 -- 14jun2023**
* Discontiued OSX support, greatly simplifying game package.
* Added music to flyover intro screen.
* Restored best kawoosh sound.
* Avatar now rises & falls with ocean waves when swimming.
## AdaGate Game Description
AdaGate is a strategy game with escape rooms in a Stargate fantasy setting. It is a fully elaborated example of modern OpenGL programming using the Ada language that runs on Windows, OSX, and GNU/Linux. A tribute to Narbacular Drop & Amelia Earhart.
While searching a remote south-seas atoll for remnants of a lost American heroine, you find a nearly operational stargate. If you can get it working, you will be transported into an off-world temple with multiple chambers. You'll need to power up the gates & portal systems by rolling alien power cells onto their sockets. Simple, right? Then use your portal gun to bypass obstacles through another dimension.
Escape all chambers to ascend to the lake sanctuary, where the level of difficulty is increased for your next game.
Use "freshStart.bat" [for Windows] or "freshStart.sh" or simply delete the file "resume_ag.txt" in order to begin the game for the first time. This resets the game to use the easiest of 5 versions of the puzzles to be solved.
## AdaGate Game Features
* The windows executable runs on linux under wine!
* Windows users type "adagate.bat" at the commandline. Linux users type "adagate_gnu"; Mac users type "adagate_osx".
* Works on PCs or laptops running Windows, OSX or GNU/Linux. And if GNAT is installed you can rebuild it yourself! But first try the delivered binaries.
* Windows, GNU/Linux and OSX binaries provided, as well as full source.
* Note that both 32 and 64 bit builds for Windows are delivered.
* Laptop friendly controls; supports Mac Retina displays.
* A 3D Sokoban puzzle game that uses the intersection of two cylinders as a puzzle piece that rolls in two perpendicular directions.
* New stargate dial-home-device [DHD] allows non-linear play; see the island setting evolve.
* Roll the ZPM power cells to empower the portals and escape thru a wormhole
* Four rooms and five degrees of difficulty for a total of 20 challenging puzzles. And now solutions are available in the file ./data/solns.sok.
* Serves as a blueprint for modern OpenGL programming in Ada or C++ using GLSL 330, shaders, uniforms and textures.
* Note that Sangwine's PNG-IO library, and the Ada bindings to OpenAL, OpenGL & GLFW in this app constitute a complete, yet easily extendable Ada library that could be used for most any modern OpenGL project including games, animations, simulations, modeling, or engineering.
## mouse/touchpad/keyboard controls
[You might need to disconnect unused gamecontrollers to prevent spinning!]
Look direction is controlled by touch pad or mouse;
The mouse wheel controls camera zoom. On MacBooks, a 2-finger swipe simulates the mouse wheel. Zoom can also be controlled with keys n, f, z [Nearer,Further,default];
Movement is controlled by the WASD keys or the arrow keys:
(Up)
(Lt) (Dn) (Rt)
Shoot the two portal guns using: (L)-key (R)-key, or (if you have two) the two mouse buttons.
(space)-key => jump up/over short walls
(esc)-key => exit;
* (m)-key or (F1)-key => toggle mouse-view (1st-person) or avatar(3rd-person)
In case of control problems with the game, or if you want to easily inspect something, temporarily switch to 1st-person mode.
### joystick
* joystick : attitude
* center thumb btn: forward
* trigger btn: backward
* Ltop/Rtop btns: select/shoot
* 1st base btn: jump
------------------------------------------------------------
### gamecontroller
* Lpaddle/Lhat : attitude
* Rpaddle : movement
* L/R Shoulder btns: select/shoot
* 1st Dpad-down btn: jump
------------------------------------------------------------
### controller settings
If the need arises, copy the file "default_settings.txt" to "settings.txt". Then you can manually edit the integers that define the button-bindings or the floats that define the sensitivity.
------------------------------------------------------------
If you ever get stuck, try to jump up + forward or back.
------------------------------------------------------------
------------------------------------------------------------