Cinnabar  0.0
Modular Game Engine
Cinnabar Engine

Finished Good

GitHub issues GitHub license

Unit Testing Code Quality Documentation Generation Continuous Delivery

Prerequisites

Use the build tool CMake to build cinnabar.

Windows

Choose Compiler:

Visual Studio Installer

  • Desktop development with C++ (C++ core desktop features)
  • MSVC V142 - VS 2016 C++ x64/x86 build tools (Latest)
  • Windows 10 SDK (10.0.19041.0)

Download and extract the dependencies to a folder of your choosing, set the environment variables of GLM_ROOT_DIR and SDL2DIR, add the bins of pkg and glew to path, and put the .dll files in the res folder.

MinGW

pacman -Syu
pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
pacman -S cmake mingw-w64-x86_64-glew mingw-w64-x86_64-glm mingw-w64-x86_64-SDL2

pkg-config

On the gnome binaries website, navigate to win32 or win64 (for 32 or 64 bit), dependencies, and download the latest non-dev versions of gettext-runtime and pkg-config. Navigate back to the parent directory, glib, then download the latest non-dev version of glib.

Debian

sudo apt install build-essential cmake libglfw3-dev libglew-dev libglm-dev libassimp-dev

Arch

sudo pacman -S base-devel cmake glfw glew glm assimp

Redhat/Fedora

sudo dnf install kernel-devel cmake sdl // TODO

Build Instructions

mkdir build
cd build
cmake ..
cmake --build .

Running

Windows:

cd res
../build/run/cinnabar-engine.exe

Linux:

cd res
../build/run/cinnabar-engine

Dependencies

Libraries

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Todo

Moved to: https://github.com/cinnabar-engine/cinnabar/projects/3

Physics engine (make a seperate project)

  • [ ] Shapes
    • [ ] Point
    • [ ] Line segment
    • [ ] Rectangular prism
    • [ ] Sphere
    • [ ] Cylinder
    • [ ] Capsule
    • [ ] Cone
    • [ ] Ngon prism
    • [ ] Elipsoid
    • [ ] Mesh
  • [ ] Shape collision
  • [ ] Shape advanced collision (Get information like position, speeds, collision normals, etc. so that physics can be done)
  • [ ] Physics
    • [ ] Air resistance
    • [ ] Friction
    • [ ] Bounciness
    • [ ] Buoyancy
    • [ ] Fake fluid (fluid in small comtainers like bottles, get water level)
    • [ ] Soft body
    • [ ] Fluid
  • [ ] Portals
  • [ ] Port to Windows
  • [ ] Port to MacOS
  • [ ] Port to Emscripten
  • [ ] Port to Android
  • [ ] Port to iOS

Networking (make a seperate project)

  • TODO: Make todo list

SceneGraph (make a seperate project)

  • [ ] States
  • [ ] Scene Graph
  • [ ] Map management
  • [ ] XML based scene graph import

Misc

  • [ ] Events System
  • [ ] Make an Actual Game