From Free Software Directory
Jump to: navigation, search

Broaden your selection: Category/Game

Category/Game Search icon.png

adventure (43)

AdaVenture is a kid-friendly retro point & click game, essentially intended to be a minimal extension to 3D of the original 2D Atari game named "Adventure". Set in ancient Persia, it begins outside the castle of the young King Xerxes, who inherited a golden chalice from his father, Darius the Great. Coveted by Greek foes King Leonidas of Sparta and King Minos of Crete, the chalice has been stolen. Your quest is to seek and return the royal chalice to its pedestal within the castle of Xerxes...a stealth mission to avoid open hostilities. But, there will be obstacles to overcome. You must find the keys to various realms, defend yourself against dragons and the Minotaur, avoid pesky bats who steal things only to drop them in random locations, and survive the maze of the green mamba.
    1. AdaVenture Game Features
  • When looking closely at a pickable object, a hand will appear indicating that a click will pick up the object. When holding an object, another click will drop it at the current location. Only one object at a time may be carried.
  • Works on PCs or laptops running OS-X or GNU/Linux. And if GNAT is installed you can build it yourself! But first try the delivered binaries.
  • Both GNU/Linux and OS-X binaries provided, as well as full source.
  • Laptop friendly controls; supports Mac Retina displays in high DPI mode.
  • Serves as an example of modern OpenGL programming in Ada or C++ using GLSL 330 and shaders.
  • The Ada bindings to OpenGL & SDL2 in this app are usable as a standalone library for most any modern Ada graphics project.
  • Currenly, the game has two easy campains: Greece or Crete. So there is not yet any reset must replay from the beginning if you die. You select the desired campain at the beginning of the game.
  • To change the appearance of the avatar, simply download your favorite MineCraft Skin, rename it to "skin.png" and put it into the ./data/ directory. You should probably backup the current skin before you do this, in case of trouble. See
    1. Portable Avatar Using Shaders
  • This approach encapsulates the details of avatar shape, color, and movement within GLSL shaders and a related code object that defines vertices and texture maps. The object may be an Ada package or C++ class.
  • Programmatic inputs include uniforms for time, position, and attitude. The shaders then offload the realtime computational burdens onto the graphics processor.
  • Data that defines shape and color, as well as the uniforms and functions that define behavior, reside completely within the object and shaders. This data can ultimately be as detailed and refined as your imagination permits. And any refinements made are not obfuscated in some esoteric or proprietary format with a limited audience, but remain fully portable and easily enhanced by most any developer using mainstream programming languages.
  • One approach would be to completely define the avatar within the shaders alone, possibly without using any texture files. Just look at the creatures in ( This would require advanced GLSL skills.
  • But a huge selection of available MineCraft skins lead to this avatar object design.
  • In this example, the texture object is a cube with radius one that is defined in 6 disjoint cubelets. The 2 upper quarters map to the head and torso. The lower half is divided into 4 cubelets that are mapped to arms and legs. The Minecraft images used for the texture also have 6 parts that map to the limbs, head and torso.
  • The result is an utterly portable avatar defined by an image and 4 text files:
* texture object body, avatarobj.adb * texture object spec, * vertex shader, avatarobj.vs * fragment shader, avatarobj.fs * any MineCraft Skin png file
  • Interfacing game code with such an avatar is simple. Essentially you need only pass the required uniform values prior to drawing.
  • Of course one still needs a decent camera positioning and pointing policy within the game code in order to fully appreciate and exhibit the avatar.
    1. mouse/touchpad/keyboard controls
[You might need to disconnect unused gamecontrollers to prevent spinning!] Look direction is controlled by touch pad or mouse; Movement is controlled by the WASD keys or the arrow keys: (Up) (Lt) (Dn) (Rt)
  • (esc)-key => exit;
  • (space)-key => pick or drop
  • mouse-click => pick or drop
  • (m)-key or (F1)-key => toggle mouse-view (1st-person) or avatar(3rd-person)

In case of [unforseen] problems with the game, please switch to 1st-person mode with the (m)-key.

      1. joystick (optional)
  • joystick: attitude
  • thumb btn: forward
  • trigger btn: backward
  • other btns: pick or drop items

      1. gamecontroller (optional)
  • Lpaddle/hat: attitude
  • Rpaddle : movement
  • btns: pick or drop items

      1. 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 controller-button-bindings or the floats that define the sensitivities.

    1. required for running:
  • graphics card & driver that supports OpenGL version 3.3 or later;
  • GNU/Linux or a Mac running OS-X;
  • optional game controller or joystick.
  • OS-X: must have OpenAL.framework, which comes on v10.4 and newer

    1. Open Source libraries included for rebuilding:
  • SFML, SDL2, FLAC, ogg, vorbis, freetype, jpeg, openal
  • the included "bindings" directory contains Ada interfaces:

* AdaPngLib * gl * sdlada

    1. Rebuild Requirements:
  • systems: OS-X or GNU/Linux
  • a recent gnat compiler
  • Xcode g++ compiler, if using OS-X

Note that the module that defines the Ada interface to SFML-AUDIO,, was created with the command: "g++ -c -fdump-ada-spec -C snd4ada.hpp" which references a minimalistic C++ utility snd4ada. Thus, if you redefine the interface snd4ada.hpp, you will need to recreate the interface spec by this method.

    1. Running adaventure:

Unzip the archive and you will see a new directory appear with a name like "bundle_date", that you should rename to something like "install_directory". Linux users should then cd to install_directory, then type "adaventure_gnu" to start the game. You may also double click its icon in file manager.

Mac users may initiate the game by opening a terminal, navigating to the install_directory and typing "adaventure_osx", or by navigating to the installation directory in Finder and clicking the "" icon named "AdaVenture".

The install_directory should contain a subdirectory named "data". It contains shaders, skyboxes, sound and texture data, as well as the puzzle definitions.

Open source Ada developers are welcome to help improve or extend this game.

Developer or not, send improvements, comments, suggestions or questions to:

    1. Build instructions for AdaVenture:

Two [pre-compiled] binary executables are delivered, one for gnu/linux and one for OS-X. The Mac binary, adaventure_osx, should run on most any standard Mac with a recent version of OS-X. The linux binary, adaventure_gnu, is intended to run in the presence of the directory "./libs/gnu", which contains some dynamically loaded libraries that can be, but need not be present on a target system: SDL2, SFML, FLAC, ogg, vorbis, freetype, jpeg, openal.

Build scripts for GNAT2015 or newer are provided. Suggestions or help improving the build process is welcome. And if anyone succeeds in building for the Windows platform, please let me know so I can try to include that too.

Three scripts for each OS have the form,,, where the "d" represents "dynamic", and produces the smallest executable. The "ss" represents the "most static" choice, using more static libraries making its executable larger. I believe that all of them should work.

Note that due to a recent script change, a linux build machine need not have a C++ compiler installed. Only GNAT is required.

    • MacOSX** =>,

build scripts for generating a portable executable that will run on most OS-X platforms whether or not they have non-standard libraries SDL2 or SFML installed. This is used to build the executable named adaventure_osx. Macs with a recent but standard configuration of OS-X should be able to rebuild using these scripts, assuming you have GNAT GPL installed, as well as g++ from Xcode.

    • GNU/Linux** =>,,

utilize increasingly static linking, especially for the non-standard libraries SDL2 & SFML, as well as other more common shared libraries that are delivered in this bundle under ./libs/gnu/. These are used to build the [gnu/linux] executable, which should run in the presence of ./libs/gnu/, whether or not your system has those shared libraries installed.

If the delivered linux binary does not run...

  • Manually install GNAT GPL from
  • Rerun the compile script
      1. Link Problems during linux build:

On a linux build machine, you might have repairable link errors, depending on its configuration. If you are missing "libz", you can simply copy "" from /usr/gnat/lib/gps/ into /usr/local/lib/. If "libGL" cannot be found, this literally means "" was absent. But you might have "" present. In this case, simply create a softlink by changing to the libGL directory, then type the line:

sudo ln -s (and enter the admin password)

whence the linker should now be able to find what it wants. But if there is more than one file present on your system, make sure you use the best one; i.e. the one that uses your accelerated-graphic-driver.

    1. what is special about this project?

Uses the Ada programming language and fully modern OpenGL methods, with textures, shaders and uniforms. Achieves version 3.3 core profile contexts. Compiles and runs on both GNU/Linux and Mac OS-X systems.

Focusing on portability and freedom, no compromises have been made to accomodate proprietary operating systems. This project uses only free open source software: a thin SDL2 binding from Dan Vazquez, a thin OpenGL binding from "Lumen", a PNG reader by Stephen Sanguine, and SFML-Audio (because of its elegant audio interface).

The Ada bindings are thin, so the relationship to C++ methodology is transparent. Developers should note that these Ada bindings can be used for any OpenGL Ada project.

For the C++ programmer the code should be easy to comprehend; and for the experienced Ada programmer there are many potential improvements to be made. Suggestions are welcomed, as are coding or design improvements. If you make improvements, please send then to

    1. Legal Mumbo Jumbo:

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

Copyright (C) 2017
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
GNU General Public License for more details.
You may read the full text of the GNU General Public License
at <>.

    1. Media Files:
      1. General Note

The particular choices of sound, image, and fragment shader files [x.fs] delivered are not essential to the function of the game and are easily replaced.

      1. SoundFiles

Many sounds are from and are covered by the Creative Commons Attribution noncommercial license documented in the accompanying file ccnc3_license.txt. see also: (

Some original Atari sounds were also used.

Credit and thanks to the Godfather of Exotica, Korla Pandit, for the excellent renditions of Turkish Dance and Miserlou...a song so old that its origins are vague, yet was known to have been popular in ancient Persia and the middle-east, as well as to all us fans of Dick Dale!

      1. ImageFiles

      1. ShaderFiles

Several fragment shader files used were downloaded from and put under ./data/. All frag. shaders from glslsandbox are under the MIT license (see mit_license.txt). Existing comments or any identifying information was retained.

In order to make these usable, I had to modernize them to glsl version 330 specifications, and adapt them to utilize some programatic uniforms for input.

      1. SkyBoxes
  • Some beautiful hi-res skyboxes used [from] are the work of Heiko Irrgang <> and licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit ( or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. See also the accompanying file ccsa3_license.txt.

    1. Best Download Sites for my games:

    1. Tags


    1. Update History
    • ver 1.0.9 -- 5jan17**
  • Corrected a duplicate window glitch.
  • Refined compiler scripts.

    • ver 1.0.8 -- 29dec16**
  • Revised the avatar programming to allow the use of any Minecraft Skin. You can simply rename your favorite png file to use it in the game. See instructions in "game features".
  • Added WASD keys for movement.
  • Improved build system to be compatible with more linux distros.
  • Improved OpenGL coding to run on less capable graphics hardware.
    • ver 1.0.7 -- 20dec16**
  • Added a Tux-the-penguin avatar. Use the (F1)-key or (m)-key to toggle between mouse view (first person) and a third person avatar view. This enhancement required the implementation of a preliminary camera handling strategy, which in general can be quite complex.
  • Fixed the handlers for game controllers: joysticks or gamepads.

    • ver 1.0.6 -- 2dec16**
  • Improved linux build scripts, with varying degrees of static linking. See build instructions.
  • Now uses an improved interface binding Ada to SFML audio.
  • Now using SFML 2.4.1.
  • Repaired OS-X bundling.
  • Revised labyrinth.
  • New prolog screen allows user to select game (1 or 2).

    • ver 1.0.4 -- 3nov16**
  • Enhanced castle.
  • Added second level. The Greeks are at it again! This time the Minoans steal the coveted chalice. The "orange" Atari maze leads to the labyrinth of the Minotaur; the Red Dragon and the Bat are increasingly problematic.
  • Added an endgame tribute to Korla Pandit, an extraordinary musician, and one of my favorites.

    • ver 1.0.3 -- 10oct16**
  • Improved sword & chalice icons.
  • Fixed bad dragon behaviors.
  • Added water feature with moorish pillars to castle.
  • other minor improvements including a brighter world upon success.
  • improved drawing methods for moorish arches using distance-sort.

    • ver 1.0.2 -- 22sep16**
  • Maze has many improvements. It is now redesigned to match the "blue" maze from the original Atari Adventure game. This involves weird and puzzling interconnections.
  • Added a pesky bat, a lethal red-dragon, and an avoidable green-mamba to maze. Beware!

    • ver 1.0.1 -- 16sep16**
  • improved final sound sequence; added original roar to dragon encounters.
  • significant improvements to scene transitions and views through doorways.
  • larger, actual size castle within skybox exterior scene.
  • improved dragon trajectory.

    • ver 1.0.0 -- 9sep16**
  • Initial version with only 1 level. Enhancements and more levels coming.
  • Foggy maze; dragon, keys to various realms, bat, golden chalice.
antimicro is a graphical program used to map keyboard keys and mouse controls to a gamepad. This program is useful for playing PC games using a gamepad that do not have any form of built-in gamepad support. However, you can use this program to control any desktop application with a gamepad; on GNU/Linux, this means that your system has to be running an X environment in order to run this program.
Asgard Free Software RPG
Join "Hand"; in an all new epic adventure to destroy an ancient sealed enemy. Asgard is a role playing game complete with menus, random battles, maps, towns, and dungeons.
Avaneya: Viking Lander Remastered DVD
Whether you are a fan of science fiction, a space–science enthusiast, hobbyist, photographer, gamer or a patron of grass–roots libre arts and technology, you are sure to find the first successful images from the surface of Mars highly captivating. These mind blowing images were taken by NASA's Viking landers during the highly ambitious, billion–dollar mission first launched in 1975. However, many images were nearly lost to history due to magnetic tape deterioration and archaic proprietary technology. With NASA's blessing, our team developed the technology to recover many of these images. This research tool was part of the design phase of our parent project, Avaneya — our upcoming libre cerebral science fiction game for the GNU operating system set on Mars, described in the words of Richard Stallman as an exciting, pioneering project. Originally an internal research tool, overwhelming public interest compelled us to release the technology on this DVD for all. Now everyone can relive the original breathtaking experience that captured the world's attention and marked the first successful moment in history that humanity saw Mars — not as a distant, impersonal, celestial body, beheld through a telescope for centuries, but as a tangible and alien world well within its reach.
Beyond The Titanic
Adventure awaits you onboard the RMS Titanic. Can you survive the sinking and make it home to San Francisco?
CF Client
Crossfire is graphical multi-user 2d tile-based role playing game similar to Moria, Angband, Omega, Nethack, Rogue, Gauntlet, and Muds. The bulk of the game is based on predefined maps, however some areas are randomly generated.
Castle Game Engine
Castle Game Engine is a cross-platform 3D and 2D game engine for Object Pascal (FPC and Lazarus). - It supports many formats for game assets, including X3D, VRML, Collada, Spine JSON, MD3 and others. - Many graphic effects are possible, including bump mapping, shadows, shaders, mirrors, screen effects. - Animation, collision detection, 3D sound and more features are available. - An extensible system of 3D objects can be used, with out-of-the-box levels, items, intelligent creatures and more. - The engine is portable -- for desktop, mobile, web plugin. The engine is also used to develop view3dscene - a full-featured X3D / VRML browser and a viewer for many other 3D and 2D game formats.
Crossfire is a graphical, multi-user, 2D tile-based RPG (role playing game) similar to Ultima Online, Everquest, Moria, Angband, Omega, Nethack, Rogue, Gauntlet, and MUDs. Most of the game is based on predefined maps, but some areas are randomly generated. Since its initial release, Crossfire has grown to encompass over 150 monsters, about 3000 maps, an elaborate magic system, 12 races, 15 character classes, a system of skills, and many artifacts and treasures. It is based in a medieval fantasy world.
DataMonster is a d20 D&D command line management program written in Python (there is a C++ version in CVS, but it is not currently being developed). It provides an exp calculator, and access to monster information in the 3.5 SRD. It is not yet feature complete. It uses libxml2 and readline to provide many of its features.
Deliantra Archetypes
Deliantra is a free software cooperative multiplayer RPG and adventure game, much similar in style (and setting) to nethack and moria, but is fully graphical and runs in realtime. It is set in a classical medieval environment with ubiquitous weapons and magic. What makes this game special is its depth and the sheer amount of maps to explore: The world is vast (multiple continents, over 4000 manually designed maps, hundreds of monsters and countless variations of generated content) and complex (16 unique races, 17 classes, 40 skills and hundreds of spells to choose from and combine with each other), so there is a lot to explore. The game play is open and sets very few limits on character development. And of course a lot of fun is to be had by playing cooperatively with others exploring the same world.

... further results

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.