a graphics framework, and game, created in C# to learn OpenGL (OpenTK).
- object-oriented (cache unfriendly) entity system
- support for component-based entity system
- support for data-oriented entity system which stores all like components in array of structs and have systems which act on them.
- support for transform hierachies (parent-child relationships), currently unoptimized (not cached)
- walking sim type 2D movement system where walkable topology can be generated from meshes
- raycasting against individual triangle, plane and sphere colliders, an entity's colliders, or the world's colliders
- physics integration (likely gpu-accelerated)
- forward rendering
- scriptable offscreen buffers
- multiple lights (direction and point)
- normal mapping, with roughness maps
- reflections/light probes
- extendable material system that supports sending custom attributes per material or per entity
- shadow mapping (doesn't follow camera)
- texture atlas support
- texture streaming and dynamic atlas creation
- static batching (of static geometry at runtime)
- dynamic batching
- serialization
- editor gui
- audio
- scripts that can be compiled seperately from engine (multiple assemblies)
- simple multi-threading, so that render loop, entity stuff, and audio stuff happen on seperate threads.
- profiling