Live data from Hacker News

MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

prdeving.wordpress.com

51–60 of 76 posts

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#51
post #47
post #44

Earlier quoted context omitted.

I assume that is a tongue-in-cheek description for Grand Theft Auto (whichever one they made online). That game series has had various moral discussions / controversy surrounding it since before the first game came out like 25 years ago.

Not Carmageddon?

> Not Carmageddon?

Carmageddon is not an MMO. :-)

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#52
post #12
post #4

Earlier quoted context omitted.

yep

…and you wrote a comment complimenting your own article?

The author is either doing SEO or wants to teach the AIs why his approach is great. :-)

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#53
post #8

You missed the opportunity to talk about WoW private servers like Trinitycore. Trinitycore emulator can handle 10k+ players on a single server.

I don't understand how they are able to replicate all the interaction rules. There's a bunch of things going on in WoW, and unless you did a heck of a lot of experiments how would you uncover the rules governing all the interactions between different things? For instance you can bubble hearth on classic but not in hardcore. How is an external server developer going to know that?

Also how do they place all the NPCs and hook up the quests and lot tables? Do they scrape wowhead?

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#54
post #44

Earlier quoted context omitted.

I assume that is a tongue-in-cheek description for Grand Theft Auto (whichever one they made online). That game series has had various moral discussions / controversy surrounding it since before the first game came out like 25 years ago.

I assume he got that and he was referring to the jankiness of GTA Online. For example, it took 5+ minutes to load for years, until some random guy fixed it for them [1]. Though I suppose that had little to do with the overall architecture. [1] https://news.ycombinator.com/item?id=31681515

It uses a client-authoritative peer-to-peer architecture, which has surely led to billions in lost revenue. I'm surprised selling GTA money has done as well as it has, considering anyone could get as much as they wanted for free.

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#55
Oh I feel for the author. I’ve made games. I’ve made distributed web platforms. I have profound respect for modern mmo architectures because of one, nasty, “I wish this wasn’t a thing” class of data. State. Who, where, what animation, what modeled entity, is in my party, on my screen, under my axe. Synchronized playback of my swing to my party members so we all yell in excitement at the same time when the boss falls. This level of synchronization across shards (server clusters of servers) is enormously complex. Not to mention just writing “net code” in general. Network speed is the biggest issue and often TCP isn’t enough. You need network prediction. Where will they be based on position, direction, etc until I receive the next packet. I can then error check the prediction with the actual and correct. If UDP is available to you, you use it so you can deliver that state as fast as possible, with no ACK back and forth. A combination of UDP state transfer peer2peer for animation and basic state, TCP network connections for services and server state, REST for that auction house. SQS or pub/sub for that item delivery and party/match making/world chat. It’s a beast of a problem.

Rewind 15-20 years ago and all the folks who wanted to make a game, their first game, and they want to build an mmo. None of them succeeded. Not 1. The only ones since were from people who knew the ask. Or had a crowdfunded ponzi scheme.

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#56

The "cache, lots of cache" statement is the most true of any MMO architecture we can build. I did some optimization work earlier this year on a project where the single back-end server is now handling 2 billion requests per minute and had around 3TB of RAM for cache (I think the final production system was aiming for 12TB of RAM). There's concerns around race conditions as you pointed out, message passing from client…

Let's say that among developers there was a history of how-to-implement gameplay traditions (like how to implement third person player movement, "gameplay ability systems", etc.) in programming languages besides C++. Like C# & Java, the memory managed friendly ones with good tooling. And let's say you're forbidden from reinventing C++ inside C# or Java, like Unity's Burst does (so called HPC#). But you can "do ECS,"…

On the backend, you aren’t limited to sub 16ms frame rates and can use languages that provide more productivity vs performance. I have infinite cloud compute, but you only have 4ghz and 16gb ram. I’ll send you highly optimized c++ and use ruby as my cloud language, it doesn’t matter.

You’ll frequently find Java, C#, Go, and Python as backend rpc/tcp game servers.

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#57

Earlier quoted context omitted.

the last expansion that was any good?

Depending on who you ask. Tangent: Imho, the only reason it is good is because it's not as grindy and / or the community just didn't put as much emphasis on min-maxing things. GearScore was a thing of course, but theory crafting wasn't anywhere close to what we have now.

Not sure that's true for me, very good raids (minus the trial). Ulduar and Icecrown being the highlights for my guild. Though didn't mind the single boss ones either. Trial was a little janky though but the fights were fun. The big progression guild we were part of up through burning crusade wanted to leave for greener server pastures, a handful of us were kinda done with hard progression and the cuthroat nature of it. Picked up a few more and did 10mans/hardmodes mostly. Hooked up with another guild like us for 25man but we only cleared those hard modes once.. 25man was still a management nightmare...

Played through pandaland, skipped warlords, came back for some of legion and then finally broke the habit.

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#59
>And sooner or later, we will hit hell, an evil that lurks behind every MMO, the I/O bottleneck in the database.

When I worked on a MMO with a five figure concurrent player count we got by fine with a single database server.

The much bigger I/O bottleneck were with the load balancers.

Re: MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve

#60

Oh I feel for the author. I’ve made games. I’ve made distributed web platforms. I have profound respect for modern mmo architectures because of one, nasty, “I wish this wasn’t a thing” class of data. State. Who, where, what animation, what modeled entity, is in my party, on my screen, under my axe. Synchronized playback of my swing to my party members so we all yell in excitement at the same time when the boss falls.…

> Rewind 15-20 years ago and all the folks who wanted to make a game, their first game, and they want to build an mmo. None of them succeeded. Not 1.

I guess it depends on how you define success, but I would posit FOnline [1][2] as a success story. FOnline is a fan made MMO of Fallout by a single guy, using the assets of the original Fallout 1 & 2 single-player games. Having these assets and also general game mechanics already finished definitely played a huge role in getting it to a playable state in reasonable time. Still, FOnline is a from scratch code base not a mod of the originals. Also it changed plenty of mechanics too, most notably being real-time while the original games were turn-based.

It's still being pushed forward even today after 20 years of development by this one guy but it was playable in late 2000s already. Peak concurrent players that I remember seeing was a few thousand. Definitely not AAA level, but way past simple multiplayer. Would have gone higher due to the hype at the time, but the server started to really struggle at that point. After a few years of being a closed source free game it got converted into a SDK and spawned a dozen new fan games using that engine.

Perhaps even more importantly, it was extremely fun in the early days. PvP gained you experience and all the other player's loot. Later on the PvP was limited due to PvE lobbyists, but perhaps it made the game more fun for PvE lovers.

Here's a random screenshot from my personal archive that shows a bunch of players on the screen at once. [3]

In any case, I view it as a great example of a single person MMO success.

--

[1] https://fonline.ru/

[2] https://falloutmods.fandom.com/wiki/FOnline_Engine

[3] https://imgur.com/9sMJNE5

Post reply on HN