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.
Planning the ascend | In the vales |
The rocky road to Olympus Mons | Caught by a meanie |
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.
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.
On a Linux environment you are going to need- 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
) -
cmake
support for compilation (version ≥ 2.8.11) - 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
- Qt≥5.4. If your distribution does not yet support it directly download and install it from http://www.qt.io/download/
- You may also want
git
for a stylish download of Free Sentinel GL.
- 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
- Within
./free_sentinel_gl/sentinel/build
saycmake .
(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. - Still within
./free_sentinel_gl/sentinel/build
saymake
- 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
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.
./free_sentinel_gl/sentinel/src/include/config.hFor 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.
- The eye icon of the game is based on an Eye of Horus icon I found on http://www.clipartbest.com/. I would like to credit the artist here, however no name was attached to the graphic.
- The dome image of the mars scenery is based on a picture taken by the Pathfinder in 1999 as depicted in Wikipedia: http://en.wikipedia.org/wiki/Extraterrestrial_skies. The original of the icon hidden on that scene may be found here.
- The sky above the moon scenery, too, is based on a picture I found on Wikipedia: http://en.wikipedia.org/wiki/Extraterrestrial_skies. The picture originally was taken during the Apollo VIII mission on December 24th 1968. Also I credit A.C. Clarke for the inspiration to an especially sentinel-like 'moon tree' bearing the most simplistic texture ever :-)
- For the asteroidical scenery Wikipedia was still absolutely indispensible. First the horizon is a section of P67 http://en.wikipedia.org/wiki/67P/Churyumov%E2%80%93Gerasimenko as photographed by Rosetta in September 2014. Second the hidden icon in the background is the artistic picture on http://en.wikipedia.org/wiki/Rosetta_%28spacecraft%29 or more precisely on https://www.flickr.com/photos/europeanspaceagency/11206647984/. There they state anonymously: 'Credit: ESA/ATG medialab'. The stellar background is a depiction of the horsehead nebula: http://en.wikipedia.org/wiki/Horsehead_Nebula.
- My gratitude also goes to numerous people who seemingly enjoy answering noob questions on the stackoverflow.com forum. Their competent advice was invaluable for my work on this program.
- Wait for Qt 5.4 to come out of 'experimental' and build a debian package.
- Do a windows port in .NET.