Hobgoblin is a small game engine, intended to serve as a basis for small and games. It provides often-needed facilities such as object and timing measurement, graphics, physics, networking and various other utilities.
It is written in C++20 and uses SFML as the core for many of its features.
It is tested most thoroughly on Windows (built with MSVC), and semi-regularly on Linux and Mac (built with Clang and GCC). Basically: It should work without issue on major platforms and major compilers.
The idea is that when you're using Hobgoblin, you use it in two parts: The Core and an Engine Overlay. The core provides a collection of generic and modular tools for various things needed in game development, and then an Overlay is put on top to tie them together into a cohesive whole and something that looks more like what you'd expect from a game engine.
Here you will find:
- EngineCore: The core of the engine.
- Overlays: Various ready-to-use Overlays that can be combined with the core.
- ProjectSkeletons: Standalone projects that you can copy to quickly get started with making a game with Hobgoblin.
- ProofOfConceptProjects: Projects which are used either to develop future Hobgoblin features, or depend on Hobgoblin and serve as showcases and examples of its usage. They also test whether the API is user-friendly, so they are placed in the same repository for faster development in case something needs to be changed.
- Scripts: Various helper scripts for building and exporting the engine.
Most of the directories have their own Readme file which describes relevant contents in more detail.
If you don't already have it, you will need to install the package manager Conan (version 2.0.0 or higher) in order to be able to fetch all of Hobgoblin's dependencies and build it successfully. Other than that, you will need CMake (version 3.23 or higher) and a C++ compiler that supports C++20.
Before anything else, copy the appropriate Conan profile (from Conan\Profiles\Windows
) into your .conan2\profiles
folder.
- Run
Scripts\Get_conan_dependencies.bat
. - To build and install all the dependencies, run
Conan_install_dependencies.bat
. - To edit or build the engine, open the root folder in Visual Studio.
- Run
Scripts\Get_conan_dependencies.bat
. - Run
Scripts\Conan_export_engine.bat
. - Copy one of the skeletons from
ProjectSkeletons
and adapt itsconanfile.py
andCMakeLists.txt
files as needed, then run itsConan_install_dependencies.bat
. - Open the project in Visual Studio.
Before anything else, copy the appropriate Conan profile (from Conan/Profiles/Linux
or Conan/Profiles/Max
) into your
~/.conan2/profiles
directory.
- Run
Scripts/Get_conan_dependencies.bash
. - To build and install all the dependencies, run
conanw.bash install <profile> <type>
. The profile can begcc
orclang
for Linux, orapple-clang
for Mac. The type can beDebug
orRelease
for either platform. - To edit the code, open the root folder in your favourite editor or IDE. To build it, run
conanw.bash build <profile> <type>
, using the same parameters as you did forinstall
.
- Run
Scripts/Get_conan_dependencies.bash
. - Run
Scripts/Conan_export_engine.bash
. - Copy one of the skeletons from
ProjectSkeletons
and adapt itsconanfile.py
andCMakeLists.txt
files as needed. - To be continued... (TODO)
The engine is licensed under the MS-PL licence.
This EXCLUDES certain files which are modified versions of SFML code and Chipmunk Physics code - these files retain their original copyright notices.