neuromancer / gengine

A 3D game engine capable of parsing and running data files from the classic Sierra Studio's adventure game Gabriel Knight 3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

G-Engine

G-Engine is a C++ game engine that is capable of reading and using the data files from the 3D adventure game Gabriel Knight 3: Blood of the Sacred, Blood of the Damned (GK3), developed and published by Sierra Studios in 1998.

The goal of this project is to create a cross-platform game engine that can be used to play GK3. The original game only supported Windows, and it is also a bit buggy on modern hardware. Since GK3 is a heavily data-driven game, the idea is to build a newer, more modern engine that can use the original's data files. Completely new features can also be implemented.

See my blog post introducing the project for more in-depth info!

Getting Started

The project builds and runs in Xcode and Visual Studio 2019.

  • Xcode: build/run the GEngine-MacOS target
  • Visual Studio: build/run the x86 configuration

Supporting new platforms or build tools should be as easy as creating the necessary build tool files, making sure all required libraries are implemented on those platforms (see below), and probably implementing a few platform-specific File & System functions.

GK3 Data Files

This repository does not contain the data files from the game, since those are copyrighted material. You will need to obtain a copy of GK3 (available on Steam or GOG) to get the data files.

The following data files are needed at the moment; copy them into the "Assets/GK3" folder before building/running:

  • ambient.brn
  • common.brn
  • core.brn
  • day1.brn
  • day2.brn
  • day3.brn
  • day23.brn
  • day123.brn

Libraries

The engine currently uses the following libraries:

  • fmod
  • GLEW
  • minilzo
  • SDL
  • stb
  • zlib

All library files are included in the repo, so no software need be installed before running the game.

Running Tests

This project uses Catch for unit tests.

The Xcode project contains a build target called GEngine-Tests. Simply build and run this target to run all defined unit tests. Tests are not yet implemented in Visual Studio.

Built With

  • SDL - My training wheels for cross-platform OS polling, rendering, and input
  • fmod - Made SFX and music way easier than I thought possible
  • zlib - For GK3 asset decompression
  • minilzo - Also for GK3 asset decompression
  • stb - Handy public domain utilities; I'm currently using the image resize algorithms

Contributing

G-Engine is kind of a pet project of mine, and I'm using it primarily as a learning tool. As such, I am not actively looking for contributions.

That being said, if you are interested in contributing, shoot me an email and we can discuss!

Authors

License

This project is licensed under the GNU GPLv3 License - see the LICENSE.md file for details.

Acknowledgments

  • Sierra On-Line, who inspired me as a kid and still do today
  • Jane Jensen, for creating and designing the GK series
  • GK3 Tools, which provided some guidance on BRN, BSP, and ACT file formats

About

A 3D game engine capable of parsing and running data files from the classic Sierra Studio's adventure game Gabriel Knight 3

License:GNU General Public License v3.0


Languages

Language:C 74.1%Language:C++ 25.1%Language:CMake 0.3%Language:Objective-C 0.2%Language:Yacc 0.1%Language:Lex 0.1%Language:GLSL 0.1%Language:Makefile 0.0%Language:Shell 0.0%Language:Batchfile 0.0%