Live data from Hacker News

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

gamedeveloper.com

111–120 of 189 posts

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

#111
post #90

Earlier quoted context omitted.

They renamed it because they decided being a pun on "Kama Sutra" was just weird and unprofessional. (Same for the NIPS conference. But oddly not for the science journal PNAS.)

Shame that. Sutra is a word all on its own. Gamasutra was a nifty name. It works. One day sex positive triple-breasted feminist whores of Eroticon Six are all the rage the next you're sunsetting harmless Sanskrit puns. Y'all strange.

Misogyny isn't cool nor wanted here

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

#112

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…

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.

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

#113

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…

Yup. That’s how networking basically worked for Army of Two. We only sent controller input over the network. Everything else was deterministic.

That was more or less the case for Starcraft 1 as well.

It made for incredibly funny replay of matches if you happened to own a newer version of the map, as the game starts to diverge from reality and enter some parallel universe where players do nonsense actions and movements.

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

#114

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?

The problem is simply the lack of validation -- I detailed it a bit below in my top-level comment.

The only exploits that are inherently applicable in the case of a simultaneous deterministic simulation model are those of the information-revealing class (e.g, "maphack"). This is where a standard AH system comes in.

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

#115

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

Absolute left field question. Have you touched the other RTS contemporary of the time, Red Alert 2 in any detail?

I've been told the source code for it leaked some long time ago and has floated around for the past two decades or so. While most people contend that EA had lost the source code to the Command & Conquer series games many years ago when the studio was closed down and assets were shipped to "DICE" in Stockholm

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

#116

Earlier quoted context omitted.

uBlock Origin works on Firefox mobile, there are no ads on the page for me.

iPhone, homie

I use Adguard on iPhone with uBlock filters, zero ads and popups

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

#117

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?

Not to any meaningful degree -- inputs (from humans) permutate the state. You can, however, compute say the initial world state, revealing the map/resources/ect. Ofcourse in this case you'd may aswell just look for some sort of maphack.

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

#118
post #21
post #4

Maybe a 2001 in the title would help?

We've 10/100mbps in 2001 and I think 1500 archers on 28.8k hayes is a great challenge no matter what the year.

Reminds me of the anecdote of John Carmack developing Quake in the early to mid 1990's

He put out a comment effectively saying "I forgot not everyone has a T1 line. I'm going to order Dial-Up for real-world testing"

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

#119

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…

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.

It is, in fact, inherent to this model. While there will be some tolerance threshold as to how far behind in the simulation a machine may fall, it still must be rather conservative (generally a few seconds), as elsewise the context (state-) sensitive inputs start frequently failing -- if I issue a command given at world-state time t, will it be meaningful/valid at state t2? The answer is where you get your threshold and it's always just a conservative approximation.

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

#120
post #90

Earlier quoted context omitted.

Shame that. Sutra is a word all on its own. Gamasutra was a nifty name. It works. One day sex positive triple-breasted feminist whores of Eroticon Six are all the rage the next you're sunsetting harmless Sanskrit puns. Y'all strange.

Misogyny isn't cool nor wanted here

That's the kind of nonsense I mean..

https://hitchhikers.fandom.com/wiki/Eroticon_VI

Post reply on HN