Core

  • Base library containing cross-platform:
    • Custom simple containers (Array, Dictionary)
    • String class (utf8)
    • Threading classes (atomics, safe containers, threads, mutex, semaphore)
    • Class Registry – simple factory for named classes
    • Code Coverage
    • Dynamic library
    • Stream (file on disk, memory, custom)
    • File change monitor
    • Logger (text, html, colored console)
    • Custom fast JSON parser/saver (support SJSON/simple INI format-like)
    • Memory custom allocators/logging
    • Various cross-platform functions (file/directory, time, threading, process, etc.)
    • Statistics data gather
    • Task scheduler
    • Variable Repository (console vars)
    • Variant data class
    • Command line arguments parser
    • Windows and Linux backends
  • Cache friendly Entity Component System
  • Systems based ECS, components are just data
  • Property system for exposing entity component data to editor or serialization
  • Bundle system for assets
  • Module system, plugins that extend the engine
  • Resource Repository, the optimized compiled assets for each platform
  • Currently input, audio using SFML
  • NVIDIA PhysX for physics

Graphics

  • Currently using OpenGL, with a Vulkan backend in the future
  • Shape renderer for debug visualization and editing gizmos
  • Currently using Cg for the shading language
  • Materials, shaders, all specified in JSON

Tools

  • Asset Compiler – compiles source assets into final optimized resources for each platform
  • Current asset types:
    • FBX
    • Animation
    • Font
    • Gpu Program
    • Material
    • Mesh
    • Texture
    • Texture Atlas

Documentation

  • API Reference
  • Structural Overview
  • Tutorials
  • Tech Demos Explained

Roadmap

See Tasks & Roadmap on Trello