Skip to content

Native Layer Overview

Eric Froemling edited this page Oct 13, 2020 · 27 revisions

Ballistica consists of two layers; a low level 'native' layer written mostly in C++ and a high level layer written in Python. While the high level layer is generally more interesting for modding purposes, most of the low level layer is publicly available too for those so inclined to mess around with it.

Building From Source

While the easiest way to run Ballistica is to use the prefab Makefile targets, it is also possible to compile most of the native layer from the source code on this repo.

First, a few caveats:

  • Some portions of the game/engine source remain closed; namely parts dealing with sensitive areas such as user accounts, network protocols, etc. The build pipelines here will automatically fetch precompiled libraries for these parts (you may notice names such as libballisticacore_internal.a) and the rest will be compiled locally. I will work to minimize the parts that need to be kept closed, and in the future I hope it will become possible to compile and run a 100% open-sourced version (perhaps just with some functionality missing).
  • Building from source is only supported on a few platforms currently. See below for specifics. Hopefully this can expand over time. However note that any contributions made here will make their way back to all supported platforms.

Building with CMake

Clone this wiki locally