AdaGate is a Portal-style escape room game in a Stargate setting. Runs on Windows, OSX, 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.3.5 -- 16apr22**
**ver 7.3.3 -- 29dec21**
* Replaced all cc-by-nc-licensed sound files due to incompatibility with GPLv3.
* Made final, minor adjustments to new sounds.
* Minor visual tweaks to kawhoosh.
* Moved auxillary source code directories (from ./) into ./src/.
**ver 7.3.2 -- 25nov2021**
* Updated all GLFW libs to newer [static] version, & scripts.
* Updated build scripts for OSX.
**ver 7.3.1 -- 24oct2021**
* Improved adaOpenAL binding code...AdaGate is now buildable with [GNU Compiler Collection] GNAT, as well as all AdaCore versions.
* Updated glext64.lib (w64).
* Updated glfw libs.
**ver 7.3.0 -- 07nov20**
* Installed completely new cross-platform sound system using OpenAL.
* Revised sounds for event horizon & lava pool, lava pool speedup.
**ver 7.2.0 -- 18sep20**
* Updated all glfw libs to v3.3.2.
* Added Windows launcher adagate.bat.
## AdaGate Game Description
AdaGate is a strategy game with escape rooms in a Stargate/NarbacularDrop fantasy setting. It is a fully elaborated example of modern OpenGL programming using the Ada language that runs on Windows, OSX, and GNU/Linux.
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 portal system 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.
## 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.
------------------------------------------------------------
------------------------------------------------------------