Files
enduro2d/ROADMAP.md

2.2 KiB

Roadmap

Milestone I (basic math and utils)

  • basic math

    • vec2, vec3, vec4

    • mat2, mat3, mat4

    • unit<T,Tag>

    • basic math functions

      clamp, min, max, approximately etc.
      
    • basic trigonometric functions and constants

      pi, sin, cos, to_deg, to_rad etc.
      
  • basic utils

    • path

      functions to manipulating paths in a portable way
      
    • color, color32

    • basic string functions

      unicode convertions, wildcard patterns, type safe format
      
    • timer and time functions

    • image, image loaders

      basic true color formats
      internal: g8, ga8, rgb8, rgba8
      external: png, jpg, tga
      
    • streams and native file system

    • thread pool and async tasks

Milestone II (basic core)

  • basic core

    • engine

      game loop
      frame timers
      core initialization
      
    • logger

      levels, sinks
      
    • basic input system

      events, listeners, polling
      devices: mouse, keyboard
      
    • basic window system

      GLFW, Windows, Linux, Mac OS X
      windowed and fullscreen modes
      
    • basic render system

      OpenGL only
      index and vertex buffers, render state,
      textures, blends, pixel and vertex shaders
      
    • virtual file system

      path aliases, archives, async loading
      

Milestone III (basic high)

  • basic high

    • library

      resource management, abstract loaders
      groups, dependencies, async loading
      
    • resources

      meshes, shaders, textures, materials
      
    • scene graph

      nodes, scenes
      parent child relationship, bounding boxes, event bubbling
      

Milestone IV (advanced high)

  • advanced high

    • sprites

      static and frame-by-frame animations
      
    • ECS

      basic entity component system
      component processing and joins
      
    • animations

      tweeners and spine runtime
      
    • labels

      ttf, bmfont
      
    • scripting

      lua runtime and bindings