\r\n
To make video games talk to each other, they require some kind of networking component built in to them. These can be built into game engines, built from scratch, or built using a third-party networking library.
\r\nSome game engines feature some built-in networking features. Engines like Source and CryEngine include a networking stack designed for real-time multiplayer action games and FPSes that are commonly built on those platforms. Built-in game engine networking is usually sufficient for most games, but in some cases you’ll be able to get better performance by building it yourself or using a library.
\r\nMany game engines don’t include networking components, or they may not meet the needs of the game you’re designing. In that case, you’ll need to build and implement networking features yourself.
\r\nTo build networking features, you’ll need to understand things like protocols (TCP vs. UDP), encryption, compression, and latency mitigation. Building networking into a game is complex, but is often the only way to obtain the features that your game needs. This can also involve building the server software that handles communication between the server and game clients.
\r\nA third option for incorporating networking into a video game is to use a third-party networking library. These can either be standalone libraries that are intended for client-server or peer-to-peer game communications, or they can be bundled with a game platform service, such as Photon.
\r\nThere are dozens of game-focused networking libraries available, so you’ll need to determine which one will meet the requirements of your game and will be compatible with your game engine and programming language.
\r\nOnce your game is able to talk to the network, it will need something to talk to. That’s where video game backend and server software comes in. Depending on the multiplayer modes and features of the game, backend software can vary in complexity and the technologies used. Below are some examples of how backend software is used and developed for video games.
\r\nAt its most basic, multiplayer backends for video games take the form of a simple web server accessible over a REST API. The video game makes REST calls to the server, and it responds with information that’s used to fill in and update high score tables, usernames, friend lists, and even head-to-head challenges.
\r\nLike any web server, there are many different options available to develop this part of the stack, depending on the features and performance needed. For many games making use of scalable cloud infrastructure, using a modern server software like Node.js gives good performance while keeping things simple.
\r\nFor games that use a server software to facilitate real-time multiplayer games, the server software needs to be lightweight and fast to reduce latency and give players the best possible experience. For this reason, most developers turn to the ever-popular C++ for video game server software. Server software also handles things like hit detection and lag compensation, to ensure that all connected players are experiencing the same game actions at the same time.
\r\nSome game engines and networking libraries include tools to build server software. For example, the Source engine includes tools to build and customize game servers for games built using its networking engine.
\r\nFor popular video games that draw millions of players, the backend software needs to be robust and scalable enough to handle the load without crashing and making the game unavailable to players. This is where cloud software comes in.
\r\nBy running the video game server software in the cloud, the game publisher can access additional resources on demand. This can even out spikes in resource use that could take down a single server during heavy load.
\r\nTo build cloud infrastructure for video games, standard cloud development practices can be used. This includes things like a microservice architecture and data storage using NoSQL components like Redis.
\r\nAlternatively, dedicated gaming cloud platforms can be used. Big players like Google (Firebase) and Amazon (GameSparks) as well as third-party services like Photon and PlayFab offer game-focused cloud game platforms and SDK integrations that can simplify the implementation of multiplayer for your video game.
\r\nSo far, we’ve covered selecting a programming language, using a video game engine, creating graphics and audio, and multiplayer features. In the next and final article of this series, we’ll look at how video games are finalized, packaged and distributed.
',createdDate:"2020-12-21T00:00:00.000Z",metaKeywords:null,metaDescription:"Do you know what goes into creating a multiplayer video game? In this article, learn about how multiplayer games are made and the tech that powers them.",topicId:3,topicName:"Insights",minutesToRead:7,mainImageUrl:"https://api.sololearn.com/Uploads/Backend_And_Multiplayer_In_Video_Games_blog_01.jpg",userAvatarUrl:"https://blob.sololearn.com/avatars/eadec77c-c7a4-4b21-aa0b-029bd599b2d9.jpg",relatedPosts:[{id:233,userId:18654115,userName:"Seth",title:"How To Break Into Data Science",shortContent:"Careers in data science offer exciting and innovative opportunities for talented programmers. From AI to machine learning, deep learning to pure research, some of the most exciting advancements in technology today are thanks to data science. But what do you need to learn and do to become a data science professional yourself? How can you couple the concepts from your programming classes with real-world knowledge, in order to make yourself an attractive candidate to hire? This guide explores how to break into data science, and four key steps you should take to do so.
",fullContent:null,createdDate:"2022-05-23T00:00:00.000Z",metaKeywords:null,metaDescription:"Interested in machine learning, AI, or deep learning? This guide explores how to break into data science for careers in these exciting fields.",topicId:3,topicName:"Insights",minutesToRead:4,mainImageUrl:"https://api.sololearn.com/Uploads/How_To_Break_Into_Data_Science_blog.png",userAvatarUrl:"https://blob.sololearn.com/avatars/eadec77c-c7a4-4b21-aa0b-029bd599b2d9.jpg",relatedPosts:null},{id:232,userId:18654115,userName:"Seth",title:"Why Is Python So Huge In Finance?",shortContent:"Python has built a reputation over the past three decades as one of the most versatile and widely useful programming languages out there. The benefits of Python’s ease-of-use, flexibility, and scalability have made it an asset in a number of different industries, and finance is no different. But why is Python so huge in finance? What advantages and benefits does the language offer over alternatives for finance professionals? This guide explores some of the most popular use cases of Python in finance today.
\r\n",fullContent:null,createdDate:"2022-05-16T00:00:00.000Z",metaKeywords:null,metaDescription:"Why is Python so huge in finance? Learn how this immensely popular programming language has become an essential tool for fintech professionals",topicId:3,topicName:"Insights",minutesToRead:4,mainImageUrl:"https://api.sololearn.com/Uploads/Why_Is_Python_So_Huge_In_Finance__blog.png",userAvatarUrl:"https://blob.sololearn.com/avatars/eadec77c-c7a4-4b21-aa0b-029bd599b2d9.jpg",relatedPosts:null},{id:231,userId:18654115,userName:"Seth",title:"3 Languages You Should Know To Become An Android Developer",shortContent:"
Android development continues to explode as more and more devices are released by major names in tech like Samsung, Huawei, and LG, among others. Because of the greater variety of hardware and software needs for these varied Android devices, Android developers are always in high demand and a career as an Android developer is a great choice for both creative and financial reasons. For newer developers, here are 3 languages you should know to become an Android developer, as well as the positives and negatives of choosing each.
",fullContent:null,createdDate:"2022-05-12T00:00:00.000Z",metaKeywords:null,metaDescription:"What are 3 languages you should know to become an Android developer? Here are three great choices, plus a few bonus options to consider.",topicId:3,topicName:"Insights",minutesToRead:4,mainImageUrl:"https://api.sololearn.com/Uploads/3_Languages_You_Should_Know_To_Become_An_Android_Website_Developer_blog.png",userAvatarUrl:"https://blob.sololearn.com/avatars/eadec77c-c7a4-4b21-aa0b-029bd599b2d9.jpg",relatedPosts:null}]}}}