Download Latest Version ag8jul24.7z (102.5 MB)
Email in envelope

Get an email when there's a new version of AdaGate

Home / 22oct14_update
Name Modified Size InfoDownloads / Week
Parent folder
READMEag.txt 2014-10-23 6.8 kB
bundle_22oct14.tar.gz 2014-10-23 171.0 MB
Totals: 2 Items   171.1 MB 0
AdaGate v 1.5 beta  22oct2014
=================================================================
What's new :
. both GNU/Linux and Mac OS-X binary executables included:
  adagate_osx, adagate_gnu;
. added level 5 epilog;
. reflective water in levels 2, 5;
. added GNU GPL statement to sources;
. code corrections/improvements;
. now allow key-left/key-right [in addition to mouse] rotations in epilog;
. added level 0 prolog;
. various corrections and improvements;
. now fully matches rufasgate;
.................................................
. revised/restored mood music that ends when wormhole becomes active;
. cleaned code, improved robustness;

==========================================
what is special about this project?
==========================================
Uses fully modern OpenGL methods in Ada using textures, shaders and uniforms that achieves version 3.3 core profile contexts in a way that is sufficiently mainstream that it easily compiles and runs on both GNU/Linux and Mac OS-X systems.  This project serves as a testbed for learning the complexities of modern OpenGL and GLSL.

Absolutely no coding efforts or compromises have been made to accomodate proprietary operating systems except for learning how to compile on OS-X.

It relies on a GLFW3 binding by Felix Krause, a thin OpenGL binding from "Lumen", and a PNG reader by Stephen Sanguine, as well as my own poor-man's "sound4ada" libraries.

If one defines "modern" OpenGL to mean version 3.3 or beyond, then this may be the most functionally advanced demonstration of "modern" OpenGL using Ada to be found.  The code itself is far from elegant, but serves as a working example, whose focus is learning OpenGL.  The Ada bindings are thin, so the relationship to C++ methodology is quite transparent.


==============================================================
AdaGate Game Introduction
==============================================================

AdaGate is a combination of Portal and Sokoban...While exploring an isolated tropical island, you find an operational stargate that transports 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 provide power to the two portal guns.  You can shoot these guns at most walls to create a wormhole shortcut through space-time.  But, in order to empower the portal guns, all cylindrical ZPMs must be bumped onto their base receptacles.  Not easy!  You can only PUSH the ZPMs.  That means you can fail if you roll one into a corner or against a wall.  Note that the ZPM shape is the intersection of two cylinders, which means they roll in only two perpendicular directions.

Transcend each level and make your way back up to the cool night air on the surface.

There are currently 4 levels, not counting the prolog or epilog and, each game resumes at the level attained in the previous game.

 

-----------------------------------------------------------
-- controls
-----------------------------------------------------------
Pointing is by touch pad or mouse;

Movement is by arrow keys:
     <Up>
<Lt>	<Dn>	<Rt>

L-key,R-key, or  
L-Mouse,R-Mouse : shoot the two portal-guns

<space> = jump

<esc> = exit;  

at the command line type "adagate <enter>" to begin.
------------------------------------------------------------



required for running:
-------------------------------------------
. graphics card & driver that supports OpenGL version 3.3 or later;
. GNU/Linux or a Mac running OS-X;
. command-line version of mplayer for sound effects...
  (I just installed one on my MacBook Pro that works great)
. note that the delivered executables were statically linked
  to glfw so you should not need GLFW3 just to run.
. adagate_gnu is executable on GNU/Linux.
. adagate_osx is the executable for Mac OS-X.

. mplayer note:  you might need to download/install YASM first;
  then download mplayer source code, build & install @
	  http://www.mplayerhq.hu/design7/dload.html


Open Source libraries required for building:
-------------------------------------------
. a recent gnat compiler
. GLFW3 libraries
. Mac or GNU/Linux
. libs directory contains interface bindings
. see example scripts linux: lcmp.sh;  osx: ocmp.sh


Running adagate:
-------------------------------------------
You'll need the "data" directory local to the executable.  It contains shaders, skyboxes, sound and texture data.  




AdaGate itself is covered by the GNU GPL v3 as indicated in the sources:

--
-- Copyright (C) 2014  <fastrgv@gmail.com>
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
-- You may read the full text of the GNU General Public License
-- at <http://www.gnu.org/licenses/>.
--
======================================================================
Open source developers are welcome to help improve or extend this game.

Feel free to send comments or suggestions:

<fastrgv@gmail.com>
September 2014


========================================================================
Media Files for AdaGate:

General Note
============
The particular choices of sound, image, and shader files (*.fs) delivered are not essential to the function of the game and are easily replaced.  This software is primarily intended as a tutorial example of modern OpenGL methods.  The only requirements are that sounds be in WAV format, images be in PNG format, and shaders be updated to GLSL 330 specifications.  Skybox images have an additional constraint, they must also have a 90x90 degree field of view [for a correct perspective], and all 6 must have the same pixel dimensions.

SoundFiles (*.wav)
===========
...are all from freesound.org and are thus covered by the Creative Commons Attribution noncommercial license documented in the accompanying file creativeCommons.txt.

ImageFiles 
==========
...for textures were freely [no copyright indications] available on google images.


ShaderFiles 
===========
Some fragment shader files used were downloaded from http://glslsandbox.com/ and put under ./data/ that are not labelled as GNU-GPL'd, namely:

clouds.fs, darkwater3.fs, starfield3.fs, volcano.fs

...these appear to contain comments from their authors so were left unchanged.


SkyBoxes 
========
Two were used from www.redsorceress.com/skybox.html


Source: READMEag.txt, updated 2014-10-23