-
-
Notifications
You must be signed in to change notification settings - Fork 99
roadmap
Travis Vroman edited this page Jan 12, 2023
·
15 revisions
The items in this list are not in any particular order. This list will be updated occasionally as development progresses.
- in-game object unloading (meshes, etc.)
- mobile runtime support (android, IOS)
- (SIMD)
- dynamic arrays (marked as TODO because I want to revisit)
- stack, queue, ring, pool, bst
- logger (Multi-threading, channels)
- particles
- input (mobile)
- input (gamepad support)
- string library (kstring structure)
- pool allocator
- systems manager (plus 'system' interface which all systems should match)
- resource system
- todo loaders: scene
- binary file format for textures (with converter)
- resource hot reload
- ECS
- Scene/Level
- File format/load/save
- prefabs
- Raycasting
- Object Picking (1/2 done)
- Gizmos (might fall under UI?)
- AUDIO
- PHYSICS
- networking?
- profiling
- proper editor and 'runtime' binaries (replace testbed)
- world editor
- UI editor
- game/editor logic library (dll/.so) hot reload
- keymaps/keybindings
- kvars (configurable 'global' settings)
- console/console consumer
- console commands
- application configuration
- timeline system
- skeletal animation system
- terrain
- skysphere
- volumes (precomputed visibility volume and other types of volumes like triggers for gameplay, physics volumes, weather/weather occlusion)
- DirectX/OpenGL/Metal? backend support
- geometry generation (2d and 3d, e.g. cube, cylinder, etc.)
- advanced materials
- PBR
- multithreading support (Vulkan/D3D12)
- batch rendering (2d and 3d)
- shadow maps
- 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
- Documentation
- 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
- 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.
All Content Copyright © 2020-2022 Travis Vroman. All Rights Reserved.