I'd love a write up from the devs on how these type of games are built. I understand arcade style games, but not how you write structs to support these types of games.
It looks very challenging to design and program by the sheer amount of stuff happening in real time, and the careful balance of gameplay. Then again I could be completely outdated and it's not a technological feat in today's standards.