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)
SceneGraph (make a seperate project)
- [ ] States
- [ ] Scene Graph
- [ ] Map management
- [ ] XML based scene graph import
Misc
- [ ] Events System
- [ ] Make an Actual Game