Skip to content
Markus-Hermann Koch edited this page Jun 4, 2015 · 42 revisions

About Free Sentinel GL

This remake of the 1986 C64 Firebird classic 'The Sentinel' was written during the weeks between April 29th 2015 and May 25th 2015 as a self-tutoring project in order to learn how to work with openGL in C++. It is also my very first GitHub online project which I hereby declare to be open source under the GPL 3 license! :-)

The object of the game is to ascend the mountain and replace the Sentinel on the top of his tower. Only from there a hyperjump will allow the synthoid (i.e. the robot consciousness that is the player) to progress into a new landscape.

Panorama view of a simple level Synthoid perspective after the game begins
Planning the ascend In the vales
Mars Caught by a meanie
The rocky road to Olympus Mons Caught by a meanie
TMA_4 outer_space
T.M.A.-4 Life in outer space

3D models were done in Blender, most of the textures were photographed somewhere between Bochum and Frankfurt am Main in Germany using my trusty smartphone and put together using the Gimp. Sound samples I took using the App "Smart Voice Recorder" (writing directly into .wav files) and pepped them for the game using Audacity. Development itself was done using both vim and KDevelop.

Installation procedure

So far this program was written with Linux in mind. However, being based on pure Qt 5.4 it should be a quite straight-forward task to bring it to alternative operative systems.

Prerequisites

On a Linux environment you are going to need
  1. A c++ compiler (I use g++ (Debian 4.9.2-10) 4.9.2; I read a comprehensive Debian/Ubuntu package containing all one needs would be build-essential)
  2. cmake support for compilation (version ≥ 2.8.11)
  3. appropriate openGL support. GLSL shaders use '#version 120' i.e. they require openGL 2.1. The program is tested using openGL version 3.0 though. I am not entirely sure, but I believe on a Debian-like system you ought to be fine with installing mesa-common-dev
  4. Qt≥5.4. If your distribution does not yet support it directly download and install it from http://www.qt.io/download/
  5. You may also want git for a stylish download of Free Sentinel GL.

Installation procedure

  1. Download this repository to your computer. To this end, using git, go to the directory you would like to have the program in and say
    git clone https://github.com/kochsoft/free_sentinel_gl
    
  2. Within ./free_sentinel_gl/sentinel/build say cmake . (mind the period symbol! It is important) to parse the CMakeLists.txt file into the required make file set. If cmake fails it probably could not find your Qt 5.4 installation. In that case take a look at the trouble shooting section below.
  3. Still within ./free_sentinel_gl/sentinel/build say make
  4. Then be patient. Especially the building process of qrc_application.cpp.o may take some time. There are quite a few resource files (most notably the texture graphics) to be processed. On my system (an acer aspire 5750g laptop with an 8 core intel i7-2630QM) it takes about an hour.

This should compile the game on your PC generating within ./free_sentinel_gl/sentinel/build the executable ./sentinel

Trouble-shooting

'cmake .' does not seem to find my Qt 5.4 installation.

If you have, like me on my almost clean Debian machine, a local installation of Qt 5.4 it may become necessary to set the cmake prefix path within ./free_sentinel_gl/sentinel/build/CMakeLists.txt to something appropriate so that CMake may find its Qt 5.4 cmake files.

On my machine this would be

set(CMAKE_PREFIX_PATH "/home/kochmn/sw/Qt/Qt_5_4/5.4/gcc_64/lib/cmake/")

You will find such a line commented out within CMakeLists.txt. Just decomment it and adjust the path to match the situation on your own system. Then try calling cmake . (still minding the period symbol) again. Note: After a failed first attempt CMake may already have generated some files from a putative system Qt of lower version contradicting the correct local Qt installation. This may lead to errors like QOpenGLWidget not found. If that happens simply run ./clean.sh and try cmake . && make again.

I'd like to change the framerate.

Some options, most notably the framerate setting (which defaults to 24), are not yet set into a proper Qt setup window. These settings may be found and adjusted within
./free_sentinel_gl/sentinel/src/include/config.h

I don't like the default settings for some of the game options.

For this, too, there is no setup form. Nor are these options held within config.h. Instead you will have to tinker with the qt user interface XML file, /free_sentinel_gl/sentinel/src/ui/dialog_setup_game.ui, directly. This is easiest using the Qt designer.

Acknowledgements

Prominent ToDos

  • Wait for Qt 5.4 to come out of 'experimental' and build a debian package.
  • Do a windows port in .NET.