Skip to content
Caleb Derrickson edited this page Mar 14, 2024 · 1 revision

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
  • quadtrees/octrees
  • logger (Multi-threading, channels)
  • billboards
  • particles
  • input (mobile)
  • input (gamepad support)
  • string library (kstring structure)
  • pool allocator
  • binary file format for textures (with converter)
  • resource hot reload
  • ECS
  • prefabs
  • Object Picking (1/2 done)
  • Gizmos (might fall under UI?)
  • Viewports
  • 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
  • terrain
  • chunking/culling
  • LOD/tessellation
  • holes
  • collision
  • 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
  • texture mipmapping
  • 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
  • pixel picking
  • containers
  • stack
  • hashtable
  • freelist
  • dynamic arrays
  • ring
  • Raycasting