o
odinpkg.dev
packages / app / simplex-odin

simplex-odin

29a87f6app

2D game library written in Odin

MIT · updated 2 weeks ago

simplex-odin

2D game library written in Odin

Feature Plan

  • 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_ARRAY usage
      • Font loading
        • stb_truetype loading
        • 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
  • 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