The items in this list are not in any particular order. This list will be updated occasionally as development progresses.
- platform layer (Windows, Linux, macOS)
- UTF-8/Wide character handling for Win32 windowing.
- Wayland support
- event system
- clock
- testing framework
- math library (vector math, etc)
- Memory system
- Generic sorting function/library.
- Allocators:
- linear allocator
- dynamic allocator (variable-size allocations)
- pool allocator
- Systems manager
- Resource system
- Resource Loaders:
- binary
- text
- image
- material
- bitmap font
- system font
- scene
- mobile runtime support (Android, iOS)
- SIMD
- Containers:
- stack
- hashtable
- freelist
- dynamic arrays
- ring buffer
- queue
- pool
- bst
- quadtrees/octrees
- Threads
- Job system
- Job dependencies
- Job semaphores/signaling
- ThreadPools
- Multi-threaded logger
- Textures
- binary file format (.kbt)
- Renderable (writeable) textures
- Static geometry
- Materials
- billboards
- particles
- Input:
- desktop
- touch
- gamepad
- keymaps/keybindings
- Conosole
- Console consumer interface
- Logger as consumer
- Debug console as consumer
- kvars (console variables)
- Console commands
- Application-level configuration
- high-level string structure library (not c-strings)
- resource hot reloading
- prefabs
- Simple Scenes
- Base implementation
- Load from file
- Save to file
- Renderer System (front-end/backend plugin architecture)
- Audio System (front-end)
- Physics System (front-end)
- networking
- profiling
- timeline system
- skeletal animation system
- skybox
- skysphere (i.e dynamic day/night cycles)
- water plane
- Raycasting
- Object picking
- Pixel-perfect picking
- Raycast picking
- Gizmo (in-world object manipulation)
- Viewports
- terrain
- heightmap-based
- pixel picking
- raycast picking
- chunking/culling
- LOD/tessellation
- holes
- collision
- volumes
- visibility/occlusion
- triggers
- physics volumes
- weather
- Multi-window applications
- geometry generation (2d and 3d, e.g. cube, cylinder, etc.)
- advanced materials (WIP)
- PBR Lighting model
- batch rendering (2d and 3d)
- instanced rendering
- shadow maps
- PCF
- cascading shadow maps
- texture mipmapping
- Specular maps (NOTE: removed in favour of PBR)
- Normal maps
- Phong Lighting model (NOTE: removed in favour of PBR)
- Multiple/configurable renderpass support.
- Rendergraph
- Linear processing
- Rendergraph Pass Dependencies/auto-resolution
- Multithreading/waiting/signaling
- Forward rendering
- Deferred rendering
- Forward+ rendering
- Compute Shader support (frontend)
- ECS (Entity Component System)
- Audio (OpenAL plugin)
- Vulkan Renderer Plugin (WIP)
- multithreading
- texture data upload
- mesh data upload
- pipeline statistic querying
- compute support
- multithreading
- Direct3D Renderer Plugin
- multithreading
- Metal Renderer Plugin
- OpenGL Renderer Plugin
- Standard UI system
- Layering
- UI file format
- Load/Save UIs
- UI Editor (as a plugin to the editor)
- control focus (tab order?)
- docking
- drag and drop support
- UI Controls (one of the few engine-level areas that uses OOP):
- Base control - all controls come from this
- panel
- image box
- viewport control (world/scenes will be switched to use these as render targets)
- rich text control (system text w/ multicolour, bold/italic, etc. and bitmap text with multicolour only)
- button
- checkbox
- radio buttons
- tabs
- windows/modals (complete with resize, min/max/restore, open/close, etc.)
- resizable multi-panels
- scrollbar
- scroll container
- textbox/textarea
- In-game debug console
- Editor application and 'runtime' executable
- World editor
- UI editor
- editor logic library (dll/.so) hot reload
- Move .obj, .mtl import logic to editor (output to binary .ksm format).
- Move texture import logic to editor (output to binary .kbt format).
- DDS/KTX texture format imports
- FBX model imports
- Auto-Generated API documentation
- Documentation
- Continuous Integration
- Add git tags to mark version releases (travisvroman#174)
- Nix build compatability (travisvroman#175)
Back to readme