openquell/TODO.md

1.6 KiB

Levels:

  • ignore comments in lvl files

  • Start the game end timer and add a score FIXME: put the actual max reachable score into the level definition along with the minimum steps required to reach it, also add a step counter

  • Grid Observer: https://github.com/mlange-42/arche/issues/374

  • Add some final message when the player reaches the last level, start from scratch or a message to buy me some beer, whatever

  • Add shaders for animation (player destruction etc)

  • Add Score system, see game_observer.go bottom.

    • add MinMoves to each level (one line) [min moves to win]
    • count moves in player_scene.Update (put to observer as well?)
    • reset counters when new level starts
    • display level score in level select

Collider Rework

  • do not use the map anymore for collision detection
  • central collision_system
  • add Collider component with callback funcs to call on certain events
  • callback types:
    • rect intersect (== future collision)
    • collision resolve (set new position)
    • pass over foreign rect (to e.g. change sprite while flying over sprite)
    • pass over done (switch sprite)
  • check for all moving objects against non-moving ones like moving obstacle, player, bullet, laser
  • check if executing callbacks within query loop is allowed
  • callback function needs to be able to modify other components, so possibly use observers for them, e.g.: Collider.IntersectResolve => func(newpos) {player.pos = newpos; player.vel = stop}
  • in the end it must be possible to add new entities without the need to write a collision check for them, but have collision detection anyway!