Another complication is stateful processes like abilities: exactly how to sync, predict, lag compensate, and prevent cheating etc for a multistage ability. Lots of little edge cases to deal with, but I also read several interviews by indie devs who claimed that this wasn’t the hard part: the hardest was all the other tasks like matchmaking, hosting/joining games, invites, sdk integration, chat, voice, etc. It was just a mountain of small tasks