hibiscus/TODO.md
2023-07-30 17:38:20 +02:00

53 lines
1.7 KiB
Markdown

# Hibis Engine - Feature TODOs
## Core Module
### Base
- [ ] Base Renderer class
- [ ] Base Physics class
- [ ] Figure out how scenes should be handled
- [ ] Split other sections into seperate modules (renderers, physics)
- [ ] Application class (where the main loop is handled)
### 2D/3D
- [ ] Texture loading
- [ ] Model loading
## Audio Module
### Base
- [ ] OGG and WAV support (do first)
- [ ] Soundfont and Midi support (ideal)
- [ ] MP3 (later, can just ignore)
- [ ] Loop audio (with timepoints)
- [ ] Modify sound/pitch of outputted audio
### 2D/3D
- [ ] Position-based audio
## Hibis UI (NEEDS A NAME)
- [ ] GUI creation
- [ ] Text Object (rendering via FreeType2)
## Aethiopicus (Vulkan renderer, 2D and 3D)
### Base
- [X] Window creation (via GLFW)
- [ ] Basic deferred renderering system
- [ ] Render present
- [ ] Clear renderer
- [ ] Figure out how the renderer should even work
- [ ] (DO FOR A VERY LATE VERSION) Replace GLFW with a custom window creator to reduce bloat (I will not be using most of GLFW's shit)
### 2D
- [ ] Texture drawing
- [ ] TileMaps
- [ ] TileMap Culling
### 3D
- [ ] Model drawing
- [ ] Model Culling (hiding what you can't see)
- [ ] Level of Detail (3D ONLY)
## Hibis Physics (NEED A NAME)
### Base
- [ ] Physics Shape creation
- [ ] Option to *allow* for Physics Shapes to be able to be drawn (on by default, both compile time and run time, turn off at compile time via a flag (`-DNoPhysShapeDraw=1`?)) (official releases will include PhysShapeDraw capabilities)
### 2D/3D
- [ ] Raycasting
- [ ] Collision via raycasting
- [ ] Space type-specific shapes
## Examples
- [ ] Example: UI test
- [ ] Example Game: Megaman clone (external repo)
- [ ] Stress test using sprites
- [ ] Stress test using models