You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2.8 KiB

TODO:

  • move populateHex functions from scene_loader to hexgrid and refactor
    • consider that the hexgrid hash map needs to grow and shrink
    • hexgrid render_group buffers need to be updated when size changes
  • better (flat) level mesh for testing grid position
  • make hashmap grid type
    • in-game editor for adding removing hexes to line up with terrain/indoor meshes
  • position entities on grid hexes
  • gooey
    • add object inspector window
      • modify position, scaling, rotation
      • show vertex count, mesh filename, ...
    • add 3d orientation widget to gooey
  • renderer
    • consolodate textures into just the render_state->palette_image
      • update copyMeshInfo() and meMeshInfo struct to remove image loading from filename
      • update rgInitEntity() to set tex_id of palette_image
    • check over renderer, camera, gooey init after changes
    • pass in frame time to camera movement functions to decouple speed from framerate
    • test camera speed when moving with composite vector
      • may be fixed?? need to test by examining camera position between frames and compare the distance
    • debug lighting (using multiple lights doesn't add correctly atm
      • move glUniform call to lights[i].position out of rgDraw, and into scene_loader init phase
      • show debug mesh for light positions
      • attenuate point lights in shader
  • remove checks for colors, textures from render_group functions
    • actually cannot remove checks for texture because some meshes aren't loaded properly
    • maybe can cause loading mesh to fail when more than one mesh per file
  • figure out bug in fragment shader when removing commented line
  • move input handling out to new file, controller?
  • map generation
  • pathfinding
  • assimp animation
  • replace aixlog with custom logging iostream?
  • think about combining mesh data and render_group data to save some memory
    • actually don't need to save the vertex/normal buffers after passing to opengl
  • use a storage pool for assimp meshes allowing reuse across entities
    • also cache textures from loaded meshes for re-use
  • replace remaining calls to malloc/free with safe(r) function in util.h
  • remove v2i/v3f... etc from util.h and either use glm everywhere, or write a smaller linear math.h

LATER TODO:

  • add initial opengl constant for INT_MAX, and checks in render_group functions
  • try out YAML instead of JSON (make sure can still use schema validation)
  • move from COLLADA output to glTF (GL Transmission Format) https://www.khronos.org/gltf/
  • add config.js/yaml for application config (remove some defines everywhere)
  • maybe try deferred rendering at some point to use a ton of lights
  • use assimp material info in shaders for fancier lighting
  • add cpu performance counters in render loop
    • hgUpdateUV buffer can probably be improved by adding selected hexes to a small cache structure
  • check for memory leaks w/ valgrind

DONE: