4 ms·
I've always wondered this-- in the game dev field, what're the standard options for server frameworks? Are Unity/Unreal the major players there too? Like in we
by aerovistae 6y ago
I've always wondered this-- in the game dev field, what're the standard options for server frameworks? Are Unity/Unreal the major players there too?
Like in web dev of course we have a million frameworks like Springboot, Rails, Django, Flask, Express, etc, but those aren't used for games like Call of Duty and Destiny and Fortnite etc-- they use something else and we never hear about that stuff at all in the "mainstream" software discussions.
Really interested in what's used there.
- balaam 6y agoIn most cases the server code is home rolled, especially for realtime networked games. Handling multiplayer at scale is hard to solve in house, especially for popular titles and that's usually handled by third parties such as Multiplay (https://multiplay.com/about/ https://multiplay.com/about/)
- Impossible 6y agoThe Call of Duty, Destiny (and I believe Overwatch and some other Activision games) backend is written by Demonware, which was acquired by Activision years ago. According to their website (https://demonware.net/ https://demonware.net/) We have a commitment to open source. Our core technologies are Python, Erlang, C++, and MySQL. Epic Games has Epic Games services, which is a set of backend services that includes matchmaking, achievements, peer to peer networking, lobbies, etc. Apparently Fortnite runs on Epic Games services. Consoles and Steam have similar backends. All of these backend services use variations on standard web stacks that, from what I can tell, don't look radically different than the variance you'd see among startups or big tech. Here is a postmortem of a Fortnite outage that talks about some of their tech stack, for example https://www.epicgames.com/fortnite/en-US/news/postmortem-of-service-outage-at-3-4m-ccu https://www.epicgames.com/fortnite/en-US/news/postmortem-of-.... They use MongoDB, Java, JAXRS, Redis, AWS, etc. All tech familiar to "mainstream" (web) software engineers. One thing that is different is game clients (which are obviously real-time 3D engines), and specifically game servers, which are either peers or headless server versions of the game. These run game sessions once matchmaking is resolved and connect to a fixed (usually 4-128) number of players in that given session. Sometimes the backend and game server code is more tightly intertwined, for example in an MMORPG or a Destiny style "shared world" game where matchmaking happens on the fly based on the player's location in the world. There are a variety of services that will help manage hosting game servers (Multiplay, Playfab, etc.) but most of them end up running on "standard" Cloud compute providers (Azure, AWS, GCP). Ultimately the only non "mainstream" thing about running large multiplayer games is the game engine piece.
- deleted 6y ago[deleted]
- pjmlp 6y agoMost game servers are a flavour of C++, Java or .NET.