# Hibis Engine - Feature TODOs ## Core - [ ] BetterC compatibility - [ ] Texture loading - [ ] Model loading - [ ] Base Renderer class - [ ] Base Physics class - [ ] Base Node class - [ ] Base UI Node class - [ ] Base Audio Playback Node class - [ ] Split other sections into seperate libraries (renderers, physics) ## Audio - [ ] OGG and WAV support (do first) - [ ] MP3 (later) - [ ] Audio playing nodes ## Hibis UI (NEED A NAME) - [ ] GUI creation - [ ] Text Object (rendering via SDL2_TTF (RSDL) or FreeType2 (EVERYTHING ELSE)) ## RSDL (2D ONLY) - [X] Window creation - [X] Renderer creation - [X] Render present - [X] Clear renderer - [ ] Texture drawing - [ ] Draw section of texture from sprite sheet ## RVK (2D AND 3D, NEEDS A NAME) - [ ] Window creation (either using GLFW or a custom window creator) - [ ] Basic deferred renderer - [ ] Render present - [ ] Clear renderer - [ ] Texture drawing - [ ] Model drawing - [ ] Culling (hiding what you can't see) - [ ] Level of Detail (3D ONLY, might not impl (developers using Hibis could do this themselves)) ## Hibis Physics (NEED A NAME) - [ ] Physics Shape creation - [ ] Collision via raycasting - [ ] 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 version(`-version=NoPhysShapeDraw`?)) ## Examples - [ ] Example Game: Megaman clone