Thanks for the reply.
Your saying about first creating the game before worrying about that kind of stuff is something I'd generally agree with. However, networking is such an integrated part of the game. You don't just patch it in later on. Not if you want good and stable multiplayer. So rewriting the entire network code later on is not something I would prefer.
I'm all for verification / validation, however I don't think it is as easy as you think. Let's say a player wants to cast a fireball spell. He sends his order to the server for validation. However, since the server isn't running the game logic, it doesn't know how much mana the unit has. Sure, it could send a request and ask the client, but that breaks the first rule of game network programming. Never trust the client.
Now sure, you could validate this with the other players instead. My game is divided into two teams of 6 players. Assuming an entire team hacked, they could confirm their own team mates' hacks. So maybe you should only be able to validate enemies orders? That has two problems. What if a player denies all enemy orders so they cant e.g cast their fireball. Also, it creates information problems. Let's say a player wants to build a new base. The resource verification is sent to the enemy. The only way the enemy will be able to confirm/deny that the player has enough resources is if the enemy's client knows the resource count. This is something that could possibly be accessed by the enemy.
In other words, just validating without running the logic creates a lot of problems and is a lot of work to get done. Not to mention the extra traffic from sending verifications to several different players to confirm orders.
Because of this, despite what you think is easiest, I would really like to know if there's a good way to run the game logic on the server, and to get it to interact with the Unity API.