Skip to content

Latest commit

 

History

History
157 lines (142 loc) · 3.95 KB

README.md

File metadata and controls

157 lines (142 loc) · 3.95 KB

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