https://gamedeveloperspot.com/managing-complexity-in-game-dev/