Ask HN: What is the ops architecture like for AAA multiplayer game servers?
31–40 of 82 posts
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#32I hesitate to comment because I don't have AAA experience (thank god) but I made this simple platform from scratch that would be good enough for AAA FPS: https://github.com/tinspin/fuse Among the unique features are globally distributed hot-deploy of server side code/resources and globally distributed JSON database over HTTP. It's completely async. concurrent and all threads work on all memory which is not what most…
I think you should post some sources or more detailed arguments if you are going to make that claim.
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#33I 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…
Very interesting to see a GGG answer here! I admit to being very curious about the Path of Exile architecture, and your answer has barely whet my appetite. I have some questions that might give me better clarity over architecture if you are up for answering them: 1. How is data replicated across regions? And how is trade across regions handled? Do the instance servers hand over character data to the account authority in the new region? 2. I remember speculation about some builds that caused extreme amounts of server side compute and slowed things down, was this compute performed on the instance servers? Like poison/chain/monster damage calculations? 3. Is there any sort of automated detection of inconsistent game states done by the instance servers? Duping protections or some such? 4. What is the scaling plan like at GGG? Does the system have obvious bottlenecks that are known or is it easy to scale for the near future?
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#34Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#35Halo 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…
Orleans provides higher level abstractions than Akka. It is literally a plug 'n play distributed application kit and consequently very opionated. It took me quite some time to shift my mental model and decide I prefer it over Akka. It's also worth noting that Orleans is open source. There is also an excellent operational dashboard named OrleansDashboard.
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#36I hesitate to comment because I don't have AAA experience (thank god) but I made this simple platform from scratch that would be good enough for AAA FPS: https://github.com/tinspin/fuse Among the unique features are globally distributed hot-deploy of server side code/resources and globally distributed JSON database over HTTP. It's completely async. concurrent and all threads work on all memory which is not what most…
> Only Java (begin the down vote without arguments) has good enough non-blocking IO and memory model for networked concurrency to be workable on the server side I think you should post some sources or more detailed arguments if you are going to make that claim.
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#37Maybe they have some information on some of the methods they use, when googling for them (haven't searched myself)
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#38Halo 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…
I use Orlean’s, have contributed to it, and have interacted with the dev team quite a bit.
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#39Earlier 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…
Luckily, you can do C# without having to use Windows with .Net Core.
Re: Ask HN: What is the ops architecture like for AAA multiplayer game servers?
#40Halo 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…
Orleans provides higher level abstractions than Akka. It is literally a plug 'n play distributed application kit and consequently very opionated. It took me quite some time to shift my mental model and decide I prefer it over Akka. It's also worth noting that Orleans is open source. There is also an excellent operational dashboard named OrleansDashboard.
I’m only pointing this out because it’s easy to spend a lot of time trying to use the dashboard as a dev tool instead of focusing on good logging techniques. There has been a lot of great work put into the dashboard and I certainly don’t want to take away from that.