Home

Awesome

Esoterica Prototype Game Engine

Esoterica Logo

Esoterica Engine is an MIT licensed prototype game engine framework. It’s intended as a technology demonstrator, an educational tool and an R&D framework. It contains a lot of the boilerplate machinery required for resource management, serialization, gameplay, etc. It provides a lot of references for how to potentially build a resource system, basic reflection and a AAA-level animation system. It could be a good framework for experimenting with game, AI, renderer tech or as a teaching aid for how to build game engines. Additionally, if you are more interested in building your own engine, Esoterica is a really good starting point.

Important Note: Stability

Esoterica is a prototype engine that's being developed in our spare time and as such there will likely be bugs and crashes (primarily with the tooling side). It is not intended as a stable production tool. If you encounter any crashes or bugs, please file issues and we'll try to get to them as soon as we can.

Help Needed: Rendering + Test Assets

There are no examples of any of the tech supplied unfortunately since we do not have any assets that I can release publically. We are looking for folks that can create some test assets that we can distribute with the engine (e.g., a character model and some animations). We can then use those assets to provide a set of examples of the various tools and features.

We are also looking for a someone to help us build out the renderer. More details can be found here: https://www.esotericaengine.com/contribute

What's included

Screenshots

Resource PipelineBasic Editor
Esoterica Resource ServerEsoterica Editor
Animation GraphRagdoll Editor
Esoterica Animation GraphEsoterica Ragdoll

Requirements

Building Esoterica

Esoterica uses vanilla msbuild for its build system. There are a set of property sheets that control all the build settings for Esoterica in the "code/property sheets" folder.

  1. Get the external dependencies set up: there are two ways to do this:

    • Run the DownloadDependencies.bat script found in the root folder
    • Manually download the external dependencies archive and extract into the Esoterica root folder (X:/Esoterica Path/). You should end up with 'X:/Esoterica Path/External/'
  2. Open the solution "Esoterica.sln"

  3. Manually rebuild the "Esoterica.Scripts.Reflect" project (under the "0. Scripts" solution folder) - this will generate all the required Esoterica reflection code needed for the project to compile.

    • Note: I'm using a semi-flaky VS feature to auto-include generated c++ files so this might require you to reload the solution for it to detect the new files (this is current a WIP feature and will improve...)
  4. Build the solution

Applications

Easiest way to get started, is just set the "Esoterica.Applications.Editor" as the startup project and hit run. If you want to run the engine, use the "Esoterica.Applications.Engine" project with the "-map data://path_to_map.map" argument.

Thirdparty projects used

These middleware packages are also integrated but require a license to use (so they are disabled by default)

Extra Info

If you use the SmartCommandLineArguments plugin for VS then there are supplied saved arguments to help you start the engine.