Skip to content

tx00100xt/BerserkerQuake2

 
 

Repository files navigation

Berserker@Quake2 Engine

Build status License: GPL v2 GitHub release (latest by date) Github downloads

Berserker@Quake2 engine that modernizes some elements of the Quake 2 graphical system.
This Berserker engine supports real-time per-pixel lighting and shadow volumes, parallax,
mirrors, fog, decal system, high resolution textures, and more.

Screenshot 00 Screenshot 01 Screenshot 02 Screenshot 03 Screenshot 04 Screenshot 05

Berserker@Quake2 has been around since about 2005, but only supported on Windows. Russian
developer behind this engine has finally published his code under GPL-2 license in hopes of
someone porting it to Linux. Game resources for this engine pulished under GPL-2 license.
See COPYING.txt file in root folder of the game engine resources archive.

Links:

This is a port of Berserker@Quake2 engine (1.45) to SDL2 library.

Building

CMakeLists.txt and the makefile in the Sources directory should create the executable
file berserkereq2 and the library libgame.so, provided that you have all the necessary
libraries installed.

Depends

  • libjpeg (v8)
  • libpng
  • libogg
  • libvorbis
  • libvorbisfile
  • SDL2 (v2.0.4 or newer recommended)
  • zlib
  • libminizip

NOTE:

On some Linux, like Gentoo, you can use libjpeg (v62). In Debian based Linux use libjpeg (v8).

For Debian based linux type this in your terminal:

sudo apt-get update
sudo apt-get install libsdl2-dev libogg-dev libvorbis-dev
sudo apt-get install libjpeg-dev libpng-dev libminizip-dev zlib1g-dev

Setting up the repository

Type this in your terminal:

git clone https://github.com/tx00100xt/BerserkerQuake2.git

Copy official game data (optional)

If you have original Quake II CD, the data can be found in Install/Data/baseq2. In addition to
the data on the CD, you will need the data from the official Quake II 3.20 patch, which you can get from
http://deponie.yamagi.org/quake2/idstuff/q2-3.20-x86-full-ctf.exe
The content can be extracted using any utility for working with ZIP files.

If you have access to a copy of the game (either by CD or through Steam),
you can copy the (pak0.pak-pak2.pak) files and (player,video) directory from the game
directory to the repository (put it in the baseq2 repository directory).

NOTE:

The (pak0.pak-pak2.pak) files and (player,video) directory must have lowercase names.

Building with CMakeLists.txt

Type this in your terminal:

cd BerserkerQuake2/Sources
mkdir build
cd build
cmake ..
make -j4
make install

If you prefer ninja, then add key -GNinja to the cmake. And replace the make command with ninja.

Building with Makefile

Type this in your terminal:

cd BerserkerQuake2/Sources

make release
make install.local

Building and install to the system

Type this in your terminal:

cd BerserkerQuake2/Sources
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
make -j4
sudo make install

or

cd BerserkerQuake2/Sources

make release
sudo make install

You can view additional commands for make by typing the make command in the terminal without arguments.

Extra data game content

Then you will have to get some extra data that comes with this engine. You can get it from
Release section. The content itself is identical to those hosted at official website and ModDB,
except all file names were converted to lower case. The contents of the *.fx and *.sp3 files
were edited so that the paths to the textures files were in lower case and references to them,
as well as paths have been fixed to use slashes instead of backslashes. Each pk2 archive
contains a GPL-2.0 license file copied from the official archive on ModDB.

Location of game content

Game content can be located in three places.

  • In the directory ~/.berserkerq2
  • Anywhere with portable installation

The file tree should be like this:

.
├── baseq2
│   ├── bsq2-01.pk2
│   ├── bsq2-02.pk2
│   ├── bsq2-03.pk2
│   ├── bsq2-04.pk2
│   ├── bsq2-05.pk2
│   ├── bsq2-06.pk2
│   ├── bsq2-07.pk2
│   ├── bsq2-08.pk2
│   ├── bsq2-09.pk2
│   ├── bsq2-10.pk2
│   ├── pak0.pak
│   ├── pak1.pak
│   ├── pak2.pak
│   ├── purepaks.lst
│   ├── cache
│   ├── player
│   └── video
│       ├── end.cin
│       ├── eou1_.cin
│       ├── eou2_.cin
│       ├── eou3_.cin
│       ├── eou4_.cin
│       ├── eou5_.cin
│       ├── eou6_.cin
│       ├── eou7_.cin
│       ├── eou8_.cin
│       ├── idlog.cin
│       └── ntro.cin
├── modelist.txt

The file purepaks.lst contains the names of the packs that will be used in the game.
Without it, the game will not start.
The file modelist.txt contains a list of allowed screen resolutions. You can edit it and add your own non-standard resolutions.

The configuration file (q2b_config.cfg), as well as save and cache files, will always be located in directory ~/.berserkerq2.

Additional missions in the Linux/BSD version are not supported, as they require the presence of an external q2dedicated.exe must be exist in Quake2 folder.

NOTE:

All file and directory names must be in lower case.

Running the game

Before the first launch, it is recommended to unpack the cache directory
from the bsq2-10.pk2 archive into baseq2 game data directory.

cd <place where bsq2-10.pk2>
unzip -LL "bsq2-10.pk2" "cache/*" -d ~/.berserkerq2/baseq2

After building and placing the game data, you can launch the games.
Type this in your terminal:

cd BerserkerQuake2
./berserkerq2

or or just type in the terminal:

berserkerq2

if you installing the game on the system.

NOTE:

Non-standard screen resolution can be specified in the modelist.txt file.

AppImage

Get Appimage

Type this in your terminal:

cd ~/.
mkdir .berserkerq2
mkdir .berserkerq2/baseq2
wget https://github.com/tx00100xt/BerserkerQuake2/releases/download/1.45.1/berserkerq2-1.45.1-data.tar.xz
tar xJvpf berserkerq2-1.45.1-data.tar.xz -C ~/.berserkerq2

Copy Quake 2 commercial data (files: pak0.pak,pak1.pak,pak2.pak dir: video,players) from you CD,GOG or Steam to ~/.berserkerq2/baseq2

Run AppImage.

Supported Architectures

  • x86
  • aarch64

Supported OS

  • Linux
  • FreeBSD
  • Raspberry PI OS

Build status

CI Platform Compiler Configurations Platforms Status
GitHub Actions Ubuntu, FreeBSD, Alpine, Raspberry PI OS Lite GCC, Clang Release x86, x64, armv7l, aarch64, riscv64, ppc64le, s390x, mipsel, loongarch64 GitHub Actions Build Status

You can download a the automatically build based on the latest commit.
To do this, go to the Actions tab, select the top workflows, and then Artifacts.

License

  • BerserkerQuake2 is licensed under the GNU GPL v2 (see LICENSE file).
  • BerserkerQuake2 extra data game content is licensed under the GNU GPL v2 (see LICENSE file).

About

Berserker@Quake2 game engine, ported to SDL2 library. (Linux, FreeBSD, Raspberry Pi OS)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 99.0%
  • CMake 0.6%
  • C++ 0.2%
  • Objective-C 0.1%
  • Makefile 0.1%
  • Shell 0.0%