# 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