Live data from Hacker News

1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

gamedeveloper.com

71–80 of 189 posts

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#71
post #6

It's interesting how the online gameplay has changed between the different versions of the game as network latency has improved. For example, being able to micro manage archers to dodge other archers, and time their shots is something that wasn't possible previously.

Has network latency improved much since this article's date? Bandwidth definitely, but latency?

Last mile latency has been reduced a lot as people moved to broadband, but also on longer distance routing where there are more paths from A to B than twenty years ago, and some of them are physically shorter. Higher bandwidth interconnects also mean less time in transit; it's not a lot, but it is some.

Also, some early broadband networks backhauled too much traffic to central locations. I recall commonly seeing traceroutes from my home in orange county, ca going to kansas, and then coming back to servers in los angeles. I still see some traffic that leaves my metro area only to come back, but it's less frequent, and it's usually only going one or two states instead of halfway across the country.

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#72
post #67

Earlier quoted context omitted.

As long as users are running the game on their own computers, preventing that type of read-only cheating is not possible. "Solutions" to this problem come in the form of invasive spyware, such as Warden (Blizzard), Easy Anti-Cheat (Epic), Vanguard (Riot), etc. These are programs that run with the highest possible priviledge, inspect all memory/storage/devices/input, and report what they find to a server.

Ok, so option 1) is to make internet multiplayer run on a game server, not peer to peer, but that's not exactly running the game on their own computers. Another option would be for the peers to only send data that the other should know (fog of war), but that's a lot trickier. Because you then need to figure out how to validate the unseen data wasn't cheating, too. You might be able to do something with this today, be…

And here we are using tech to try and solve social problems again :)

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#73

Earlier quoted context omitted.

I'm gonna take an uneducated guess that though the simulation is in lockstep, the order of inputs from all players is not known ahead of time so you can't peek too far. Though maybe a cheat engine could simulate a few branches of possible inputs a few steps ahead and adjust inputs when it discovers split-second advantages?

Everyone waits for your client's next step. Your client can basically pause the game whenever it wants, giving you time to do something. But there are bigger exploits. IIRC, the client sends separate actions for buying a unit/tech/building and paying resources, and the other clients don't enforce that they go together. This allows malicious clients to buy without paying. It's been seen a few times even in the ranked…

That problem doesn't seem inherent to the model, it's a flaw in the selection of client steps. Is there any reason transactions like building and paying couldn't be atomic?

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#74

> Cheating to reveal information locally was still possible, but these few leaks were relatively easy to secure in subsequent patches and revisions. I don't understand this. Running the whole simulation locally on both ends means that a modified client would have access to the whole game state, and I don't really see how you could patch that out. Anyone have any idea what they actually did? Try to detect modified cli…

As long as users are running the game on their own computers, preventing that type of read-only cheating is not possible. "Solutions" to this problem come in the form of invasive spyware, such as Warden (Blizzard), Easy Anti-Cheat (Epic), Vanguard (Riot), etc. These are programs that run with the highest possible priviledge, inspect all memory/storage/devices/input, and report what they find to a server.

So you're saying that in order to avoid the "elitist" nightmare world of "just play with your friends, and people you trust" and "normal people are never going to want to be able to run their own servers!" all we have to do is hand over unlimited powers of surveillance to games corporations and succumb to their daylight banditry, paying a premium price for the privilege of being able to play call of duty with the teenage edgelords you may know from such online wonders as "youtube comments"? Sounds like a bargain! Sign me up! :)

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#76
post #20

Earlier quoted context omitted.

Yes. Most people back in 2001 were not using fibre. Dial-up, DSL, etc are all much higher latency. In Dial-up you are easily talking at least 100ms slower, if not a lot more.

Ah. How I would have killed for a 100ms ping back in my 56k modem days. My average ping on any Quake2 server was 250-300ms. It’s amazing how times change, now I get annoyed when my ping is higher than 30ms.

man, from my memory, if you were getting 250, you were incredibly lucky and probably lived close to the exchange :)

300-350 was more the norm for where i was.

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#77

> Cheating to reveal information locally was still possible, but these few leaks were relatively easy to secure in subsequent patches and revisions. I don't understand this. Running the whole simulation locally on both ends means that a modified client would have access to the whole game state, and I don't really see how you could patch that out. Anyone have any idea what they actually did? Try to detect modified cli…

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 gettin…

How does that address map hacking?

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#78
post #67

Earlier quoted context omitted.

Ok, so option 1) is to make internet multiplayer run on a game server, not peer to peer, but that's not exactly running the game on their own computers. Another option would be for the peers to only send data that the other should know (fog of war), but that's a lot trickier. Because you then need to figure out how to validate the unseen data wasn't cheating, too. You might be able to do something with this today, be…

And here we are using tech to try and solve social problems again :)

Well sure. You could just play with your friends. But some people insist on playing with strangers?

Re: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)

#80

Earlier quoted context omitted.

Everyone waits for your client's next step. Your client can basically pause the game whenever it wants, giving you time to do something. But there are bigger exploits. IIRC, the client sends separate actions for buying a unit/tech/building and paying resources, and the other clients don't enforce that they go together. This allows malicious clients to buy without paying. It's been seen a few times even in the ranked…

That problem doesn't seem inherent to the model, it's a flaw in the selection of client steps. Is there any reason transactions like building and paying couldn't be atomic?

I don't know why it's that way. My guess would be complexity. Yeah, they could fix that later, but they can't fix the fog of war cheat, which would also be pretty powerful.
Post reply on HN