Gamedev https://gameprogrammingpatterns.com/ https://en.wikipedia.org/wiki/Finite-state_machine Observer Pattern Event pub/sub Final Fantasy 7 engine breakdown