How do backend of these really cool games work

+6 votes
I’m a huge gamer and always been curious about how these games are developed, what are the programming languages used, how the backend works, etc.

Can someone explain this to me?
Jul 19, 2018 in Career Counselling by Hannah
• 18,570 points
10,120 views

16 answers to this question.

+1 vote

I can help you with the basics of what languages are used in different types of games. 

First lets have a look at different types of games. I'm sure you already know about this but still lets have a look.

First we have console game development, that's your Microsoft's Xbox and Sony's PlayStation. These consoles mainly use c# and c++. Additional development tools like blender, unreal engine, the newer versions of unreal engine such as unreal engine 4 are being used.

Next comes the desktop game development, that's your basic PC games. In the olden times languages such as pascal and delphi were used. Delphi was a pupolar programming language at that time but then c got popular too.Nowadays programming platforms like CUDA are getting more and more acceptance from game developers, mostly because of the demand for realistic graphics and textures, as well as high levels of animation and motion. Not very popular but Python does support game development. For example, few people know that EVE Online and Disney’s Pirates of the Caribbean were developed using Python. Flash was the leading platform for creating games but now webGL and javascript are getting more popular. 

Next are the mobile games. The mobile market has three big players from a platform point of view: Android (Java), iOS (Objective-C), and Windows Phone (with C#).

I hope this has satisfied atleast a little of your curiosity.

answered Jul 19, 2018 by Nilesh
• 7,050 points
Unreal Engine is the most promising development tool. The versions of Unreal Engine are very easy to use,
0 votes
Okay, in order to get a complete understanding of how games work, we need to start with the basic/fundamentals.

Gaming is one such domain that has grown in parallel with the growth of both hardware and software components of a system. When we refer to a 'system', it can a be any console, like a Play Station, Xbox, PC(my personal favorite) and the latest would be Oculus Rift with Touch-based Virtual Reality system. As you can see, the complexity of the systems has grown massively over time. This growth in complexity is proportional to the way a game is structured/designed.

The reformatory way in which the system architecture is designed these days is nothing in comparison to older systems. For example, (Nvidia has come up with the latest Pascal architecture and AMD have brought about their revolutionary Ryzen architecture). There exists a need for a constant change in this domain. Therefore, this constant reformation of the system requires the game developer to have a dynamic approach while designing and implementing different aspects of the game. It is crucial that one understands this before proceeding to other aspects such as: design, coding, structuring etc.

Coming to the programming part: The extensively used language in gaming is Lua. A majority of high-end games developed by Rockstar, EA are all based on Lua.

Why Lua?

It is mainly because of the interactive mode that is available in Lua. Each Piece of code that Lua executes in interactive mode is technically termed as "Chunk". Many chunks constitute as a complete code.

So, to sum it up, a basic understanding of system functionality along with extensive hands-on experience in Lua is a good start.

Good Luck:)
answered Jul 19, 2018 by Vijay
0 votes
The backend of the cool game you have is the programming language you have like C#,C++ etc. Basically Game programming is a part of game development and it is a part of software development. Now the trick part, for game development you need to know software development with other skill sets such as :-

Simulation

Computer Graphics

audio programming

for multiplayer games you have to know network and database programming aswell.

Generally there are game programmers but many do it as a hobby.
answered Jul 19, 2018 by Priyaj
• 58,090 points
0 votes

The back-end, or the "server-side", is basically how the site works, updates and changes.

This refers to everything the user can't see in the browser, like the database, servers, the mechanism etc. Back-end developers are mostly worried about things like security, structure, content and management.

The code they write communicates with the server and then tells the browser or the U.I. what to use from the database.

Hence behind the amazing games that you play the looks are designing and interface handled by the graphics or the front end team but all the working, all your score count, all your details, details about the game and all, server, database is handled by the backend team. 

answered Jul 19, 2018 by bug_seeker
• 15,520 points
+1 vote

Most of the games these days don't use any programming language directly for development, they use game engines that are made using programming languages such as c,c++ and java. Few examples of game engines are Unity, CryEngine, UnrealEngine etc. 

Lets understand what Game engines are

Game engines are software development environment that are used to develop video games. You can develop PC games, console games and even mobile games on it. The main functionalities provided by game engines are rendering engine ("renderer") for 2D or 3D graphics, a physics engine or collision detection (and collision response), soundscriptinganimationartificial intelligencenetworking, streaming, memory management, threading, localization support, scene graph, and may include video support for cinematics. 

One of most famous games right now, pubg has used the game engine UnrealEngine 4 that uses c++.

answered Jul 19, 2018 by Kalgi
• 52,360 points
0 votes

Behind the scene its all about the servers. You can classify the server as follows:-

The Game Server - store game state and trigger events and so on. It will be connected to database to store game stats from time to time.


Streaming Servers - servers that handle client connections and stream game state to them as far as players actions to server. Adding more streaming servers would allow to handle more client online.

Physics Servers - they would handle chunk physics and maybe some other heavy stuff. With adding new physics servers I can extend my system so that it would able to proceed more and more data, if needed.

answered Jul 19, 2018 by eatcodesleeprepeat
• 4,710 points
0 votes
I would like to add few problems that occurs for the backend team.

1. Cheating

The game is not affecting the audience when you are cheating in a single player game but when its multi-player game it affects the people playing with you and that has to be taken care by the backend team as there are no such scenarios.

2. Servers being smart and clients being dumb

Let server do all the controlling while the clients or the users are just the spectator and the ones following orders

3.The Network

Imagine a scenario when you are trying to move your player and it moves with a lag and you are out of the game because of that. This doesn't happen because of the efforts put by the backend team to build a error free or less latency server for the audience.

I have quoted few of the problem but the real world scenarios are way more than this. So the next time when you are playing a game be thankful for the team behind the scenes that made it possible for you.
answered Jul 19, 2018 by eatcodesleeprepeat
• 4,710 points
I really would like to learn more about back-end focused in games development. Got any tips to where shoul I look for ? Thanks upfront.

Hi, @Victor,

I would like you to suggest go through this https://www.edureka.co/blog/snake-game-with-pygame/ as a sample you asked regarding backend games. If you have any other query related to any other technology or anything it could be, try to post your query as a fresh new thread.

Happy Learning!! 

0 votes

There are many programming language that are used for building a full fledged game. Out of which most commonly used are C++ and C# but now there are many platforms that makes these task less to just 5 mins of work and you are ready to play a multiplayer game but still there lies many responsibility such as designing and taking care of the network(server) and all the malpractice that happens. 

Overall networked multiplayer games are incredibly fun, but introduce a whole new class of challenges. The authoritative server architecture is pretty good at stopping most cheats, but a straightforward implementation may make games quite unresponsive to the player.

answered Jul 20, 2018 by Abhinav
0 votes

I'll explain how the backend of a game on unity works

  1. A backend framework (PHP, Nodejs, Crow, etc) are picked.
  2. JSON is sent to the backend which manages state storage of data objects, and decoded from the backend.
  3. Unity web request functionalites are used.
  4. Backend is built along RESTful standards, with some form of sessions and authentication to avoid undesired cross-traffic between users.
  5. Scaled on the cloud using something like EngineYard.
answered Jul 20, 2018 by jarvis
0 votes

Most of the games use the real-time multiplayer API in Google Play games services to connect multiple players together in a single game session and transfer data messages between connected players. Using the real-time multiplayer API can help to simplify game development effort because the API handles the following tasks on your behalf:

  • Manages network connections to create and maintain a real-time multiplayer room (a virtual construct that enables network communication between multiple players in the same game session and lets players send data directly to one another).
  • Provides a player selection user interface (UI) to invite players to join a room, look for random players for auto-matching, or a combination of both.
  • Stores participant and room state information on the Google Play games services servers during the lifecycle of the real-time multiplayer game.
  • Sends room invitations and updates to players. Notifications appear on all devices on which the player is logged in (unless disabled).
answered Jul 20, 2018 by Aru
0 votes

According to me, there are two main things to develop a game:

  1. Graphic Engine
  2. Logic

Graphic Engines are used to create characters, objects, interfaces of the game that a user can see and interact with. Some popular graphic engines are Unity, Unreal Engine, Blender, Construct.

The logic is the decision making part. It controls what happen when a particular event occurs, the flow of the game etc. You can use programming languages like python, java, php, C, C#,Ruby etc..

answered Jul 22, 2018 by Shergil
0 votes
OpenGL is one the platforms used.. It is simple.. It is very similar to C language but with lots and lots of packages. But it is not possible to create high graphic and complex games
answered Jul 22, 2018 by Madhu
0 votes
The backend generally consists of these huge databases, non-stop working servers, great development and really cool graphics!
answered Jul 25, 2018 by Ritwik
0 votes
I am not really sure about my answer but i think the way video games work is that they create the graphics and add functions to it.. Then they create a story-line for the game and use languages like C#, python, Ruby etc., to let the user interact and let the software decide how to react to it.
answered Jul 25, 2018 by Renku
0 votes
5 main backend tools used by every game developer

High performance cloud infrastructure

NoSQL database

application and server monitoring

log management

mobile app tracking
answered Jul 26, 2018 by drishti
0 votes
The Maine thing to develop a game is the Game Engine platform.  Game engine include characters, objects, interfaces of the game.
answered May 13, 2020 by Niketa
• 140 points

edited May 13, 2020 by Gitika

Related Questions In Career Counselling

0 votes
2 answers

How much do people in the field of Digital Marketing get paid?

The average salary for fresher is around ...READ MORE

answered Apr 4, 2019 in Career Counselling by Suman
718 views
0 votes
4 answers
0 votes
1 answer

How do I begin a career in Internet of Things(IOT)?

Hello @kartik, Hello IoT being a buzz word in ...READ MORE

answered May 22, 2020 in Career Counselling by Niroj
• 82,880 points
728 views
+1 vote
3 answers

How do I get job in hadoop as a fresher?

It is hard for a fresher to ...READ MORE

answered Feb 27, 2019 in Career Counselling by Rishi
1,237 views
0 votes
0 answers

Update test results @ test step level in Azure DevOps during test execution through automation scripts

My automation framework is writtin in Java, ...READ MORE

Aug 21, 2020 in DevOps on Cloud by Anand
• 120 points

recategorized Aug 21, 2020 by MD 950 views
0 votes
1 answer

Correct syntax for main method

Both ways are correct. But taking the ...READ MORE

answered Jun 7, 2022 in C# by pranav
• 2,590 points
286 views
0 votes
1 answer

What are major differences between C# and Java

Instead of listing out mutiple points, I ...READ MORE

answered Jun 9, 2022 in C# by rajiv
• 1,620 points

edited Jul 4, 2023 by Khan Sarfaraz 258 views
0 votes
1 answer

How to open a huge excel file efficiently

A good example is using PIA's/Interop or ...READ MORE

answered Oct 27, 2022 in Others by narikkadan
• 63,420 points
363 views
+10 votes
5 answers
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP