A C++ game engine
Planet started as just a 2D hex and square grid infinite map implementation. Both make use of a chunking system that aggregates the allocation of larger parts of the map which are created lazily as required by the game.
Now it consists of several libraries:
planet
(this library) -- General game code. Includes 2d and 3d affine transforms, sound, UI, serialisation, an ECS, and more.planet-sdl
-- Wrapper for use of SDL2 C library with the rest of the Planet engine.planet-vk
-- Wrappers for the Vulkan C library with higher level engine code.planet-android
-- Android specific code needed to interface between Planet, SDL2 and the platform.
git clone --recursive git@github.com:KayEss/planet.git
cd planet
mkdir build.tmp
cd build.tmp
cmake ..
make
./examples/snake
On Linux you'll need some dev packages installed:
sudo apt install libasound2-dev libogg-dev libopus-dev liburing-dev libvorbis-dev
On Windows it's generally best to add these as submodules to your project and use add_subdirectory
from cmake to build them.
An incomplete list of the available modules are:
- Behaviours -- unstable
- Serialisation -- stable