Retro game engine for creating games like it's 1997
qengine is a cross-platform retro game engine. It is aimed at nostalgic game
developers that miss simple times and enjoy creating games like it’s 1997. The
software renderer provides the aesthetic that we all love and the engine
limitations exist to make your creativity shine.
The engine is a fork of the Quake II codebase that focuses on serving as a base
for standalone games. Unlike other ports, it does not aim at being compatible
with mods or the base Quake II game. In fact, many features were removed to
reduce the complexity of the codebase and make the process of creating new
games on top of the engine easier and faster.
Some notable changes include:
qengine stands on the shoulders of giants from the Quake II community. The code
is built upon Yamagi Quake II, which itself contains code from other amazing
projects:
qengine is released under the terms of the GPL version 2. See the LICENSE
file for further information.
$ mkdir build
$ cd build
$ cmake ..
$ make
If you don’t want to build the docs, or you don’t want to install the deps
they require, you can pass -DBUILD_DOCS=OFF
to cmake.
$ cmake -DBUILD_DOCS=OFF ..
$ make
The engine will look for game data in the assets
folder. You can start from
scratch, or use the original Quake II game data if you own it.
Included with the engine there are quite a few useful tools. They are:
$ tools/qbsp3 assets/maps/sample.map
$ tools/qvis3 assets/maps/sample.bsp
$ tools/qrad3 assets/maps/sample.bsp
In order to run, the engine needs a few base assets, such as sounds, models
and UI textures. Most of them are already included in the assets
folder.
The engine works with a 256 color palette. However, the colormap.pcx
file is a 256x320 color re-arrangement of those colors, resulting in 64 shades of each.
A GIMP palette is included to facilitate creation of new graphics for the engine: assets/palette.gpl
If you want more creative freedom, you can easily create a new palette. Create
a PCX file with the 256 colors you have chosen and then:
$ tools/pcx2pal palette.pcx palette.pal
$ tools/colormap palette.pal colormap.pcx