Cheating is something I've spent some time thinking about, so I'll write my opinion here.
As far as I know it's generally accepted in gaming circles that completely stopping cheaters is not possible, most big name games have cheats available. The best method to stop cheaters is to have a threat related to being caught, such as permanently disabling their Steam account or revoking their license key to the game. We are at a further disadvantage because we are fully open source. I can't see any way to stop people from creating cheats in an open source project. We have checks to try and prevent modified versions of the game from being used in multiplayer, but they could be bypassed with enough time/knowledge.
But first of all let me make it clear exactly what kind of cheating is possible and not possible by briefly explaining how our network synchronisation works. In the KaM Remake the game is simulated on every players computer. When the player interacts with the game, the command he ordered is scheduled to be simulated in a few moments (depending on ping) and sent to all the other players. There is only a limited set of commands that can be sent, and other players will not accept commands unless they believe the sender is authorised to be sending them (e.g. we can stop you from controlling somebody else's army because other clients will only accept commands for your own army). Because every computer playing the game executes the same commands at exactly the same time they stay in sync. If two players ever become out of sync then the game detects this and displays an error.
This system is already very strong at stopping cheaters. Lets say a cheater modifies the game code (bypassing our checks to prevent this) and makes his game spawn 20 knights for himself. Those knights will only appear in his simulation, because nobody else knows about them. He can't send a command to other players asking them to spawn the 20 knights for himself because there is no command that does that, and if there was the other players wouldn't accept it anyway. So cheats that affect gameplay are not possible because the other player's simulations won't see the changes.
The only kind of cheats that are possible is getting the game to tell you stuff that the game needs to know, but is normally hidden from the player. For example someone could theoretically create a cheat that makes the entire map revealed for himself. But it would take a considerable amount of time, effort and knowledge to do so. Most people don't have the necessary skills to recompile and modified the game code, and if they do they probably have better things to do with their time than create a petty cheat for some 14 year old game that will only give them a small advantage anyway
But even a highly skilled programmer prepared to spend weeks working on a cheat would not be able to create a proper cheat that would say spawn 20 knights or allow you to control the enemy's army, UNLESS there is a loophole in our code that he could exploit (and fixing such exploits is not hard, we could quickly issue a patch to fix it and then the time he spent to make his cheat would be wasted).
Then there is the "exploit" that started this topic, where you could view a replay of the current game on another computer or a virtual machine (it won't work on one computer because we don't allow multiple versions of the game in multiplayer mode at once). We could (and might) take some further steps to prevent this in the future such as an option to only let the host save the game (or even only store the save on the host's computer once we have file transfers). But as it stands right now it takes a moderate amount of effort (having two computers side by side where you can quickly copy files between them), it will waste some valuable time to do the copy and start the replay (presumably the cheater would want to do this multiple times to get the most up to date information) and it's really not such a big advantage to see exactly what your enemy is doing.
tl;dnr: I am not concerned about cheating at the moment. Very committed cheaters with the right knowledge can find ways to view your enemy's village/army, but that's really quite a minor advantage for the amount of effort it takes (reprogramming the game or having two computers and wasting time copying replays across every few minutes). If there was a way for cheaters to spawn 20 knights for himself, then I would be concerned. But seeing what your enemy has will definitely not will you the game, in fact in many cases it might not help you at all.
Thanks for reading
Maybe parts of this post should go in our FAQ or something? Do you think it's interesting?