- Use interpolated rotation
- Allow sparse maps
- Add GJK
- Prune collisions by using sweep-and-prune
- Use boolean GJK (bgjk)
- Take two shapes defined by vertices
- Add movement to vertices get new position
- For each such pair (old_x, old_y) and (new_x, new_y) create (old_x, old_y, 0) and (new_x, new_y, 1).
- Run bgjk on the shapes
- If true we have collision
- Obstacles: do not move if there is collision. Else move
- Items: interact
- Prune collisions by using sweep-and-prune
- Use 4D boolean GJK (bgjk4d) to determine intersections using continuous motion
This has to be worked out