Live data from Hacker News

Ask HN: What is the ops architecture like for AAA multiplayer game servers?

news.ycombinator.com

51–60 of 82 posts

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#51
If you want to learn more about this in person, in 2020 there will be the first "Online Game Technology Summit" at the Game Developers Conference.

(Disclaimer: I'm one of the summit advisors)

We're trying to grow the education in this space of game development, because currently it is very sparse. AFAIK, this is the only event that is dedicated to the technical aspects of online, connected or multiplayer games.

Details, and CFP, which is currently open: https://www.gdconf.com/summits/c4p

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#52
post #10

Earlier quoted context omitted.

Real reasons for: * One platform to develop on; back-end coders tend to go back and forth between client and server programming. * Faster iterations. (just hit F5 in visual studio) * IOCP Stupid reasons for: * Old IT Director denied the use of virtualisation software. (mac address randomisation wasn't great and it caused a switch crash if two people had the same mac) * Windows licenses are really cheap compared to de…

I no longer do windows development, but I miss it. It's strengths are greater than you portray. The C# / .NET libraries are really beautiful and well thought out. I most often program in Python, and while the Python language is more concise and elegant than C#, the Python libraries are not nearly as well organized and consistent as C# / .NET. Java libraries are better than Python but worse than C#, and the Java langu…

Is C# more performant than Java? It was my understanding that HotSpot's JIT performs significantly more optimizations, almost bordering on esoteric magic, compared to the CLR.

I can understand how value types would help a lot, but it is possible to optimize Java to avoid object headers on the heap at great pain, i.e. avoiding classes and doing index arithmetic on flat arrays of values. Value types coming to the JVM will obviously help here.

Curious to hear about other advantages the CLR has.

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#53

Earlier quoted context omitted.

I was an exclusive Microsoft developer for a little over 20 years. It wasn’t until I started doing cloud deployments - like the original poster implied - that I started avoiding Windows as often as I could. Once you add Windows to the mix, everything gets worse - startup time, resource requirements, automation, snd costs. Luckily, you can do C# without having to use Windows with .Net Core.

Ooh, you may be the perfect person to ask a question that I've been wondering about. Is .NET Core on Linux viable yet for serious use? I've done some tinkering with it and gotten a project working on MacOS but I did the development in Visual Studio on Windows. Is it realistic to do your development in Rider, with the open source version of msbuild for CI, and have it perform reasonably on Linux in production, without…

My “Linux deployments” with C# have been Docker and Nginx with Fargate (AWS Serverless Docker) [1] and Lambda. I haven’t had to worry about performance, stability, or scalability. With either technology, you get scalability for free and with Fargate you don’t have to worry about cold starts.

I develop on Windows with Visual Studio and deploy to “Linux”. We use CodeBuild to compile and create the zip file (lambda) or Docker Container (Fargate).

CodeBuild basically is “Serverless builds”. It launches s prebuilt or custom Docker Container and you just run .net core “publish” command line and it gets all of your Nuget packages and then you run your standard packaging commands.

But Rider should be good. I’m a huge fan of R# and you can cross target Linux, Mac and Windows from either host using msbuild.

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#54

If you want to learn more about this in person, in 2020 there will be the first "Online Game Technology Summit" at the Game Developers Conference. (Disclaimer: I'm one of the summit advisors) We're trying to grow the education in this space of game development, because currently it is very sparse. AFAIK, this is the only event that is dedicated to the technical aspects of online, connected or multiplayer games. Detai…

I'm very glad to see this summit is happening. I missed GDC Online after that got discontinued a few years back.

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#55
post #23

Earlier quoted context omitted.

>> (until we went to cloud, where Microsoft charges insane amounts for licensing) Did you move to Azure?

No, it's cheaper on Azure (and they give us some huge discounts because we're so MS heavy). But they really gouge the other cloud providers (GCP/AWS) on licensing, more than a third of our infra costs are just windows licenses (when looking only at cloud).

> more than a third of our infra costs are just windows licenses

Wow, that is brutal.

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#56

Earlier quoted context omitted.

I was an exclusive Microsoft developer for a little over 20 years. It wasn’t until I started doing cloud deployments - like the original poster implied - that I started avoiding Windows as often as I could. Once you add Windows to the mix, everything gets worse - startup time, resource requirements, automation, snd costs. Luckily, you can do C# without having to use Windows with .Net Core.

Ooh, you may be the perfect person to ask a question that I've been wondering about. Is .NET Core on Linux viable yet for serious use? I've done some tinkering with it and gotten a project working on MacOS but I did the development in Visual Studio on Windows. Is it realistic to do your development in Rider, with the open source version of msbuild for CI, and have it perform reasonably on Linux in production, without…

The kind of development we do probably wouldn't count as "serious" here on HN, but since the other comment didn't really answer your question, I'll pitch in. We've been developing using .NET Core/Linux/Rider for the past two years. It's been pretty great. Once you get to know the IDE really well, I'd say Rider beats VS in terms of functionality and usability.

.NET Core was developed with CLI usage in mind and common operations (like migrations/boilerplate generation) can be driven from CLI or Rider, you don't need VS for that.

You may have some problems with 3rd-party libraries. Not all of them have been ported to .NET Standard. I'd recommend checking your project's dependencies in advance. (We did have some problems with legacy COM-based cryptographic libraries and had to build a separate "microservice" hosted under Windows to offload this stuff to. COM stuff works fine under .NET Core, but only under Windows (obviously).)

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#57

Not related, but relatable. I often wonder between Games and Enterprise Software, who has a more complex backend architecture? At the outset, it seems like Games are complex as hell, in the sense that when a gamer shoots another gamer dead, there has to be freeing and re-allocation of processes/ resources, and with tens or hundreds of persons playing the same game over the internet , both the gaming architecture and…

I never worked with games infrastructure, but I can tell first hand about enterprise software (I am a manager & architect for a ~ 1000 server platform): I think it is easier for us. We have very few cases that are really time-sensitive (mostly in manufacturing execution systems), the responsiveness of the rest of the systems is quite relaxed, nobody cares about a few seconds here and there.

In the same time we are seen just as cost, not revenue enablers (no comment on this), so we are very limited in money and technologies we can buy. It is also a very limited market where most companies buy, don't build, so you are usually stuck with the 3-5 real offers for any area and I personally know 2 products we use that are considered industry best, but they are pretty bad. There rest of the similar products on the market is worse - about 10 years in the past.

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#58

I created an RPG game backend for a game called Path of Exile. Not an FPS but similar challenges. I don’t know how similar any of this is to other game backends, but I’ll supply a few details. Our backend consists of a few somewhat large services that are broken up mostly around how they are sharded. The biggest one is the account authority which contains most of the accout/character/item data and handles the vast ma…

How do you structure your database schema and handle things like upgrades or versioning? Also curious how the game instances interact with the database and at what frequency and granularity.

Thanks for taking the time to write up that overview, very cool to read!

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#59

Halo 4 and 5 use a project developed “in house” at Microsoft called Orleans. Roughly speaking it is similar to Akka. It’s an actor based distributed system which attempts to hide the implementation of distributed networking. In essence, each match and each player get their own “network attached“ object (a “grain” in Orleans terms.) So: var player = new Player(123); is actually instantiated _somewhere_ on the network…

We used Orleans for our service framework for Breach, a 4v1 asymmetric action RPG built with Unreal Engine 4. While all the real-time simulation was implemented authoritatively as part of an Unreal Engine 4 server, we used Orleans/SignalR for the service backend. Services included: matchmaking, (voice)chat, character/account persistence, quests, microtransactions, customer service, and friends among others.

It's a great framework and I hope others adopt it for backend services. My only complaint, and it isn't particular to Orleans, is that there isn't a lot of examples that demonstrate best practices for building large applications with it. There is definitely a "right" and wrong way to build with Orleans and it can take you a while, and a lot of refactoring, to discover that.

Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?

#60

at electronic arts the ancillary stuff like matchmaking, stats etc is C# microservices stuff in AWS.

It varies quite a bit between studios and game. Some legacy games have C++ service backends. There is a lot of java throughout the org. I am currently working in node/typescript.
Post reply on HN