Live data from Hacker News

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

gamedeveloper.com

161–170 of 189 posts

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

#161

Earlier quoted context omitted.

IRL it was not simple. The game usually worked, but occasionally things would go out of sync. The biggest downside is mentioned in the article: If one person lags, everyone lags. In an 8-player game, the chance that at least one person lags was pretty high. I used to play on the Mac version of GameRanger, a small community. That was 2008, when reliable internet wasn't as common. Players had personal reputations, and…

Red Alert 2: Yuri's Revenge was pretty similarly infamous for this If your ping in the lobby was 1000ms (effectively "timeout") or you took too long to download a map, most players would just kick you preemptively

In AoE2 custom scenario lobbies like CBA, people would often see the file transfer as an indicator that you're a n00b since you didn't already have the scenario, and you'd get kicked.

"Bro I'm just playing on my other iMac G3!" kick

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

#162

Earlier quoted context omitted.

That's not intrinsic to this style of netcode, though. Company of Heroes, for instance, just keeps the game running and your input is delayed until you can communicate it to the server. You'd generally want an authoritative server to accomplish this. Having it also execute the inputs prevents most cheating, too.

> You'd generally want an authoritative server to accomplish this That makes it very different from this model in my eyes. You wouldn't have every client running the game in sync. The AoE devs had this dilemma and chose the other path.

No, it's the same model - the clients run the game in sync and the server does too. Only inputs are transferred.

It wouldn't surprise me if the AoE remakes do this to work out who won the game.

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

#163

Earlier quoted context omitted.

Giving the undesirable experience to one player is strictly superior to giving it to all of them. There just aren't many modern multiplayer games where slow players can negatively impact the experience of others, and that's because the industry has learned how terrible the experience is. And that's for players playing in good faith on bad connections - abuse by inducing latency was a big thing in the past. Think a pl…

I'm of the opinion that it's an acceptable concession that a brief pause occurs in gameplay to permit another player to recover from transient issues (network hiccups, brief machine resource starvation, or generally: stalling ) in favor of fairness rather than punishing the player too harshly for factors that are frequently out of their control. Consider for instance the situation where-in one player's simulation ent…

The spiral of death trade-off does not happen as you describe.

While a client is catching up, you run the sim in a loop and don't render the game.

The deterministic simulation code is only a small part of the overall game logic, and you can run it much faster than real time.

If a client is slow enough to genuinely experience a spiral of death, the game will not be playable for them, and "mild annoyance of brief pausing" is not remotely what the other players will experience if they're forced to stay in sync.

Wait time is the common solution in older games to prevent abuse, yes. But it doesn't prevent somebody with high ping making a game run at half speed.

Go play Company of Heroes 2 with a packet loss simulator. Even as the bad client, it's totally playable. For everyone else, it's silky smooth.

I don't think you'll come back and tell me you prefer the implementation in AoE II Definitive Edition.

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

#164

Earlier quoted context omitted.

> You'd generally want an authoritative server to accomplish this That makes it very different from this model in my eyes. You wouldn't have every client running the game in sync. The AoE devs had this dilemma and chose the other path.

No, it's the same model - the clients run the game in sync and the server does too. Only inputs are transferred. It wouldn't surprise me if the AoE remakes do this to work out who won the game.

Don't you have to handle the situation where one client falls behind? That means asking for the latest state and figuring out what happens to the stale inputs it sent. It's a nontrivial difference.

Definitive and HD Edition both seem to use nearly the same netcode as the original game. And the whole thing lags if one player lags. Yes it handles situations where all players leave, so there's a server doing something, but the glitches in Elo changes hint to some weird edge cases. I even found an easily triggered bug in HD Edition where both players would gain Elo at the end of a ranked game.

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

#165

Earlier quoted context omitted.

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

You can call the command creation functions yourself, making the game think it's part of the simulation [1]. These types of cheat have been around ever since the original game, and the HD edition [2]. [1]: https://redrocket.club/posts/age_of_empires/ [2]: https://www.youtube.com/watch?v=3tl8AjDfnBk

I was thinking of reverse-engineering the game's calls out of curiosity, but I figured someone else already did it and wrote a nice article about it... and there it is.

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

#166

Earlier quoted context omitted.

When the game lags, the witch hunt begins, and the red ping or turtle shows on your name despite it not being your fault.

Eternally immortalized in the sequel as a taunt "Sure, blame it on your ISP!" https://www.youtube.com/watch?v=HGBOeLdm-1s

I was always confused about that taunt. It sounds like, blame your poor play on your ISP, but this is one of the few games where laggy internet doesn't affect your moves.

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

#167

Earlier quoted context omitted.

I understand what was said. I'm saying that sucks. I don't really care about the tiny minority of people who care about the skill ceiling within a super low level micro. RTS entices people into a strategy game. But the games are so similar that everyone but the top 1% of players will do better by simply following a predefined strategy and executing it as tightly as they possible can. And that sucks. Nudging guys a fe…

Nah, micro can definitely be exciting for even more casual players. They'll be worse at it, obviously, just like casual FPS players are worse at headshots, but it's not like they can't do those things at all. The data we have suggests that people with your opinion -- "people want RTSes just about the strategy, not about control" -- are dead wrong. The most enduringly popular RTSes are mechanically demanding games: St…

> The data we have suggests that people with your opinion -- "people want RTSes just about the strategy, not about control" -- are dead wrong. The most enduringly popular RTSes are mechanically demanding games: StarCraft 2, Age of Empires 2, StarCraft 1.

I think this data suggests the opposite. These titles are all more than a decade old. They have endured, but the genre has died. People often find it really compelling to get into these games and do the singleplayer stuff. The multiplayer experience didn't live up to that. Limited strategic choices and a demanding micro are not what most people liked when they first entered the genre.

There are some indie titles that seem to understand this.

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

#168

Earlier quoted context omitted.

No, it's the same model - the clients run the game in sync and the server does too. Only inputs are transferred. It wouldn't surprise me if the AoE remakes do this to work out who won the game.

Don't you have to handle the situation where one client falls behind? That means asking for the latest state and figuring out what happens to the stale inputs it sent. It's a nontrivial difference. Definitive and HD Edition both seem to use nearly the same netcode as the original game. And the whole thing lags if one player lags. Yes it handles situations where all players leave, so there's a server doing something,…

You definitely can build out functionality in the authoritative server, like drop in. I did that with my games.

But you could keep it strictly as cheat prevention, which keeps it very close to the AoE model.

I wouldn't start a game in 2023 trusting any input from players, including win reporting - but I understand if their hands are tied by a legacy system, and the players vote on outcomes.

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

#169

Earlier quoted context omitted.

Don't you have to handle the situation where one client falls behind? That means asking for the latest state and figuring out what happens to the stale inputs it sent. It's a nontrivial difference. Definitive and HD Edition both seem to use nearly the same netcode as the original game. And the whole thing lags if one player lags. Yes it handles situations where all players leave, so there's a server doing something,…

You definitely can build out functionality in the authoritative server, like drop in. I did that with my games. But you could keep it strictly as cheat prevention, which keeps it very close to the AoE model. I wouldn't start a game in 2023 trusting any input from players, including win reporting - but I understand if their hands are tied by a legacy system, and the players vote on outcomes.

Dropping in a server like another client might be what they did in HD/DE remakes to allow the game to continue without a player host present. It doesn't help with cheating, cause other players are already interested in enforcing the rules. And doesn't help with lag ofc.

Yes, the remakes should've had new netcode. They had full freedom to redo it, no legacy compatibility to deal with. Maybe they wanted to totally emulate the old experience, but ya know, I can just play the old game. DE at least seems to be working out the kinks better; HD was a total mess even after years of patching.

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

#170

Earlier quoted context omitted.

You definitely can build out functionality in the authoritative server, like drop in. I did that with my games. But you could keep it strictly as cheat prevention, which keeps it very close to the AoE model. I wouldn't start a game in 2023 trusting any input from players, including win reporting - but I understand if their hands are tied by a legacy system, and the players vote on outcomes.

Dropping in a server like another client might be what they did in HD/DE remakes to allow the game to continue without a player host present. It doesn't help with cheating, cause other players are already interested in enforcing the rules. And doesn't help with lag ofc. Yes, the remakes should've had new netcode. They had full freedom to redo it, no legacy compatibility to deal with. Maybe they wanted to totally emul…

The specific way running the simulation on the server helps with cheating is if client A and client B both claim they've won.

As you describe, during the game the clients are enforcing the rules, so a player can't eg teleport their units.

Post reply on HN