top | item 34396626

(no title)

sonjaqql | 3 years ago

In age II, it was CRC checks of game state that prevented cheating! Games would get out of sync if there was a mismatch, which could happen for various reasons.

I worked at MacSoft during the Age2 and Age3 days. The ports were faithful to the windows versions, but cross platform hadn’t been solved at the time because of this problem.

It also made long game play sessions longer because the calculated state kept getting more complicated.

There was one particular Mac OS X update that broke math interoperability for multiplayer because they changed how math worked on the OS. This meant we had to bundle a common math library to ensure the game the game states would line up, preventing unnecessary CRC checks.

discuss

order

yarg|3 years ago

He wasn't asking about that - as far as I can tell - but rather about read-only cheating.

Which would let you know what your opponents are up to, without impacting state.

alternatetwo|3 years ago

Do you still remember what actual toolchain you used to build Age2? I have been looking into these games for some time, and the Mac build has been helpful, but has some oddities, like very weird floating point argument passing to functions, or unpredictable vtable placement ... knowing which exact compiler toolchain was used, would be incredibly helpful! I know it's probably some VisualAge C++ version because of the name mangling, but not exactly which.

hot_gril|3 years ago

In the Definitive Edition, there has been observed cheating in online ranked mode where players give themselves infinite resources. Evidently there's a way to do that without going OoS. This was probably the same in the original. This is besides the less complex cheat, removing fog of war. Seems the only thing stopping most people from cheating is, they don't want to.

Also, I used to play the Mac version a lot. It was great! Shame they made the remakes Windows-only.

brnt|3 years ago

> Shame they made the remakes Windows-only.

They run brilliantly through Steam on Linux, fwiw.

lamacase|3 years ago

But CRC checks wouldn't prevent things like revealing units through fog of war right? The presentation of the game state couldn't be CRCd because each player has a different view of it. And the cheat client doesn't have to modify the actual game state to get that information out.

alternatetwo|3 years ago

The game actually tracks this too, what is visible for each player, which gets slightly complicated with diplomacy changing. Of course this doesn't prevent you from just patching other parts handling this, but you cannot just simply modify this value, it will desync as well.

ilyt|3 years ago

There is whole slew of cheats you can do without changing games state.

From maphacks to automatic reaction and microing units

Salgat|3 years ago

How does that address map hacking?