Live data from Hacker News

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

gamedeveloper.com

101–110 of 189 posts

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

#101

Lots and lots of great things in here, thank you for sharing. > At first take it might seem that getting two pieces of identical code to run the same should be fairly easy and straightforward I found that a little funny. I would certainly not assume that. Synchronization problems are one of the scariest areas of programming in my opinion.

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

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

#102

Earlier quoted context omitted.

Man, this brings back memories. People fighting over char in the lobbies, some derivative of “laggy” used a slur to try and get someone you don’t like to leave the game before enough people joined, etc. fun times!

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

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

#104

I think this is a “must-read” for anyone, even if you aren’t in game dev or doing networking stuff. There’s just so many mini “eureka!” nuggets to enjoy. I think that internet multiplayer is possibly one of the hardest things in game dev (use an engine that gives it to you!!!) despite feeling like some little sideshow. I imagine Blizzard and Westwood have similar stories from the 90s.

https://www.codeofhonor.com/blog/the-making-of-warcraft-part...

there's this for Warcraft 1 development

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

#106

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

One of the unofficial solutions used in Warcraft 3 was to spawn an illegal 3D model object in the corner of the map by a trigger as soon as the map begins, or during random spot checks during the map gameplay.

The model would crash the game (and world editor, that's why we have to spawn it during runtime) when displayed, but it wouldn't get displayed when under fog of war, so you'd put it in a place that is impossible to be seen by a player under normal circumstances. But if someone uses a fog of war cheat or a maphack, it'd crash for them.

Of course it won't prevent you from more advanced hacks which e.g. modify the client and display an overlay of the enemy units rather than just revealing the fog of war.

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

#108

Seeing stuff like this on here fills me with nostalgia. I basically learned to code thanks to a few helpful and extremely patient IRC members in the Spring RTS engine[1] community (some of whom I spot in these comment sections on occasion - hi!), and deterministic lockstep simulation for online play was one of the first ideas that totally blew my mind when I learned about it ("b-but that means all the "random" number…

If the randomness is deterministic doesn't that mean players could peek into the future?

You can reseed with player inputs every cycle

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

#109
post #5

As someone who grew up playing Age of Empires II and still consider it among the best games ever made, reading this is nothing short of amazing.

I still regularly have dreams about it 20 years later. I take it as a sign that I'm in a good healthy place mentally when the most stressful and anxiety inducing thing my brain can conjure up is me being rushed by 3 units in the dark age.

"You slept two hours to die like this?!"

https://www.youtube.com/watch?v=SymyaU93C_4

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

#110

As someone who fixes up old games in my spare time, and Age of Empires II being one of them, I'll provide a bit of trivia about the game's internals: - The AI system is not part of the deterministic simulation. This was surprising to me, and after contacting one of the original programmers it was explained that it was due to a desynchronization bug that the "AI and network programmers weren't able to fix it in time".…

I remember using some kind of resource explorer, looking into the scripts powering the AIs. If I remember correctly, it didn't get "smarter" at higher levels, it just cheated and gave itself more resources every minute, lol.
Post reply on HN