Skip to content

roadmap

Travis Vroman edited this page Jul 14, 2023 · 15 revisions

Kohi Engine Roadmap

The items in this list are not in any particular order. This list will be updated occasionally as development progresses.

Engine general:

  • mobile runtime support (android, IOS)
  • (SIMD)
  • dynamic arrays (marked as TODO because I want to revisit)
  • queue, pool, bst
  • logger (Multi-threading, channels)
  • particles
  • input (mobile)
  • input (gamepad support)
  • string library (kstring structure)
  • pool allocator
  • binary file format for textures (with converter)
  • resource hot reload
  • ECS
  • prefabs
  • Raycasting
  • Object Picking (1/2 done)
  • Gizmos (might fall under UI?)
  • AUDIO
  • PHYSICS
  • networking?
  • profiling
  • proper editor and 'runtime' binaries (alongside testbed)
    • world editor
    • UI editor
    • editor logic library (dll/.so) hot reload
  • timeline system
  • skeletal animation system
  • skysphere (i.e dynamic day/night cycles)
  • water plane
  • volumes (precomputed visibility volume and other types of volumes like triggers for gameplay, physics volumes, weather/weather occlusion)

Renderer:

  • DirectX/OpenGL/Metal? backend support
  • geometry generation (2d and 3d, e.g. cube, cylinder, etc.)
  • advanced materials (WIP)
  • PBR
  • multithreading support (Vulkan/D3D12)
  • batch rendering (2d and 3d)
  • shadow maps

UI: (separated section because number of controls)

  • UI system
  • Layering
  • UI file format
  • Load/Save UIs
  • UI 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

Other items:

  • Documentation

Done/Implemented Features

  • clock
  • event system
  • platform layer
  • cross-platform (desktop, Windows/Linux/macOS)
  • testing framework
  • math library (vector math, etc)
  • hashtable
  • freelists, plus use of them in buffers
  • input (desktop)
  • linear allocator
  • dynamic allocator (variable-size allocations)
  • resource system
    • loaders: binary, text, image, material, bitmap font, system font, scene
  • renderer front/backend architecture scaffolding
  • Vulkan backend support
  • textures
  • geometry
  • materials
  • Phong lighting model
  • Spec maps
  • normal maps
  • official mac support
  • job system
  • threads
  • skybox
  • renderable texture support
  • multiple renderpass support
  • configurable renderpasses (and framebuffers/use renderable textures)
  • UI Controls (in progress):
    • text control (system and bitmap font)
  • Auto-Generated code documentation.
    • Requires that entire codebase be gone over and commented.
  • in-game object unloading (meshes, etc.)
  • systems manager (plus 'system' interface which all systems should match)
  • Scene/Level
    • File format/load/save
  • keymaps/keybindings
  • kvars (configurable 'global' settings)
  • console/console consumer
  • console commands
  • application configuration
  • terrain
  • containers
    • stack
    • hashtable
    • freelist
    • dynamic arrays
    • ring
Clone this wiki locally