Skip to content

cinnabar-engine/cinnabar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cinnabar Engine

Prerequisites

Use the build tool CMake to build cinnabar.

Windows

Visual Studio VSCode

Debian

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

Arch

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

Redhat/Fedora

sudo dnf install kernel-devel cmake sdl // TODO

Build Instructions

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

Running

Windows: /build/run/(Debug/Release)/engine.exe Linux: /build/run/engine

Libraries

Contributing

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

Todo

  • CMake
  • Logger
  • SDL2
  • GLEW
  • GLSL
  • Triangle
  • Vertex Colors
  • Indices
  • Shader Class
  • Quad Rendering
  • Texture Mapping
  • Uniforms
  • Mesh Class
  • Texture Class
  • Matracies
  • Pespective Camera
  • 3D Cube
  • 3D Transforms
  • WASD
  • Basic input handling
  • Mouse controlled camera
  • Window Class
  • Resize context on window resize
  • Time Class
  • Camera Class
  • Smooth Input
  • Materials
  • Render System
  • Multiple Objects rendering at the same time
  • Mesh Importing
  • Full UV mapping support
  • Full vertex color support
  • Multi-texture materials
  • Normals
  • Normal maps
  • Matcaps (SArpnt will do this)
  • Simple object classes (combine assets and automatically manage render commands)
  • Depth manipulation
  • Skybox
  • GL lines
  • Sprites (i think you can do GL_POINTS and draw the images in a frag shader)
  • Supersampling and subsampling
  • Antialiasing
    • MSAA
    • FXAA
    • MSAA with FXAA
  • Mipmaps
  • Anisotropic filtering
  • Texture filtering
  • Nearest
  • Linear
  • Bilinear
  • Trilinear
  • Supersampling / subsampling Interpolation
    • Nearest
    • Bilinear
    • Bicubic
    • Trilinear
    • Lanczos
  • Lights
  • Text
  • GUI
  • Portals
  • VR Support
  • Test on Windows
  • Port to Emscripten

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
  • Test on Windows
  • Port to Emscripten

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