2D game library written in Odin
- Input
- Key states
- Key mapping/binding
- Rendering
- Quad batching
- Text rendering
- Ensure simplex API is graphics API agnostic as best as possible without knowing details
- Assets
- Shader
- Texture
- Texture atlas generation
- Max rects packing
- Pack into multiple files for
GL_TEXTURE_2D_ARRAYusage - Font loading
-
stb_truetypeloading - Multiple sizes
- Anti-alias for specific sizes,
- Basic kerning (might be more related to the flex layout engine)
-
- Entity Component System
- Component Storage using sparse set
- Paginated sparse set sparse arrays
- Light-weight view implementation
- Entity generation id
- Testing More important as complexity grows
- Event System
- Invesigate event system for ecs style game engine
- Flex UI system
Translate layout engine from C++ simplex with new found knowledge and experience
- Flex layout engine
- Sizing
- Positioning
- Text layout
- Reactive/dynamic elements/properties
- Minimal patching/re-renders
- Input/interactable elements
- Events - (bubbling, custom events, etc)
- Text input - (holding, modifier navigation, selection, etc, clicking)
- Dropdowns
- Checkboxes
- Buttons
- Scroll views
- High level components
- Menus/tabs
- Dialogs
- Toast notifications
- Flex layout engine
- Physics
- Dynamic BVH (Bounding Volume Hierarchy) 2D collision detection
- Multi-threading
- Worker thread(s) for background tasks: asset loading, saving game data, etc
- UI thread
- Investigate the suitablitity for render thread
- Multi-threading ECS systems