Skip to content

Latest commit

 

History

History
104 lines (97 loc) · 7.44 KB

TODO.md

File metadata and controls

104 lines (97 loc) · 7.44 KB

Global

  • Performance
    • OPTIMIZATION (minor): Use PGO in g++

3d Engine

  • Graphics API
  • Rendering
  • Model
    • OPTIMIZATION (major): Remove the ModelInstanceDisplayer in ModelSetDisplayer#removeModelFromDisplayer() for models not displayed for a long time
    • OPTIMIZATION (medium): Draw calls batching
    • OPTIMIZATION (medium): Parallelize the creation of the ModelDisplayer
    • OPTIMIZATION (medium): Models LOD
  • Lighting & Shadow
    • NEW FEATURE (major): Shadow on omnidirectional light (check Sascha Willems: deferredshadows)
    • OPTIMIZATION (medium): Avoid to render all the frustum models for each cascade: use the split frustum models instead
    • OPTIMIZATION (medium): Create shadow map texture only for visible lights
    • OPTIMIZATION (minor): Use models LOD
    • OPTIMIZATION (minor): Create specific render passes with less restrictive memory barrier between the shadow map cascades rendering
    • NEW FEATURE (minor): Implement scalable ambient obscurance
  • Anti-aliasing
  • Landscape
  • UI
    • OPTIMIZATION (major): Remove the WidgetInstanceDisplayer in WidgetSetDisplayer#removeWidgetFromDisplayer() for widgets not displayed for a long time
    • NEW FEATURE (medium): Render UI into texture to avoid depth shift in 3d UI
    • IMPROVEMENT (medium): Add missing characters dynamically in the atlas texture(s)
    • IMPROVEMENT (medium): Dynamic scaling of characters (see https://github.com/Chlumsky/msdfgen or distance field font)
    • IMPROVEMENT (minor): Handle scrollable containers in UI 3d
    • NEW FEATURE (minor): Combo list

AI engine

  • Navigation mesh
    • BUG (major): Surrounded faces are not walkable (NavMeshGeneratorTest#surroundedWalkableFace)
    • BUG (major): Union of room walls create wrong polygons (PolygonsUnionTest#roomPolygonsUnion)
    • NEW FEATURE (major): Add possibility to exclude dynamic objects from navigation mesh
      • Note: worth it only when steering behaviour will be implemented in pathfinding
    • BUG (medium): Jump from an edge created by an obstacle should be allowed only if target is this obstacle and vice versa
    • BUG (medium): Jump links visualization are not exact
    • OPTIMIZATION (medium): Exclude very small objects from navigation mesh
    • NEW FEATURE (medium): Create jump/drop links from an edge to a walkable surface (+ update AABBTree margin accordingly)
    • NEW FEATURE (medium): Insert bevel planes during Polytope#buildExpanded* (see BrushExpander.cpp from Hesperus)
    • OPTIMIZATION (minor): Reduce memory allocation in NavMeshGenerator#createNavigationPolygon()
    • OPTIMIZATION (minor): TerrainObstacleService: apply a rough simplification on self obstacles polygons
    • NEW FEATURE (minor): Exclude fast moving objects as walkable face
    • OPTIMIZATION (minor): NavMeshGenerator#computePolytopeFootprint: put result in cache
  • Pathfinding

Network engine

Physics engine

  • Broad phase
    • OPTIMIZATION (medium): Implement double AABBox trees: static and dynamic (see Bullet)
    • OPTIMIZATION (medium): Re-balance AABBox tree for better performance
  • Narrow phase
    • NEW FEATURE (medium): Support joints between shapes
    • OPTIMIZATION (minor): GJK, don't test voronoi region opposite to last point added (2D: A, B, AB | 3D: ABC)
    • OPTIMIZATION (minor): EPA, add new point on convex hull to improve thanks to adjacent edges: find faster the triangles visible by the new point (see Reactphysics3d code)
  • Island
    • BUG (medium): A body balancing from one side to the other side (e.g.: cone on his base) could be disabled when velocity reach zero
      • Tips: don't disable bodies when there is only one contact point
  • Constraints solver
    • BUG (medium): A restitution of 1.0 introduce new force in the system. Example: a superball bounces higher and higher at each collision
  • Character
    • NEW FEATURE (medium): Handle stair for character controller
    • NEW FEATURE (medium): Apply impulse on objects hit by character or falling on the character

Sound engine

  • Sound trigger
    • NEW FEATURE (medium): Support convex hull sound shape
    • NEW FEATURE (medium): Support portal IN and portal OUT to trigger sound
  • Listener
    • NEW FEATURE (minor): Define a velocity to the listener

Aggregation

  • Object entity
    • NEW FEATURE (major): Attach a sound component to an object entity (or create new game object)
    • NEW FEATURE (major): Generate collision convex hull shapes from meshes inside a urchinMesh file

Map editor

  • Render
    • NEW FEATURE (medium): When change orientation of cylinder/capsule: resize physics shape to fit the object size
    • NEW FEATURE (medium): Make objects without physics selectable with left click
    • NEW FEATURE (medium): Display box around objects which don't have mesh (allow to select them easily with left click)
  • UI
    • NEW FEATURE (minor): Allow undoing the actions