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 18, 2018 in Career Counselling by Hannah
• 17,060 points
802 views

15 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 18, 2018 by Nilesh
• 6,920 points
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
• 56,960 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,360 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
• 45,740 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,670 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,670 points
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 19, 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 19, 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 19, 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

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 in Career Counselling by Suman
68 views
0 votes
4 answers
0 votes
3 answers

How do I get job in hadoop as a fresher?

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

answered Feb 27 in Career Counselling by Rishi
212 views
0 votes
3 answers
0 votes
2 answers
0 votes
3 answers

Trying to upload files using Selenium(C#)

You can try using Javascript Executor to ...READ MORE

answered Aug 23 in Selenium by Abha
• 27,180 points
1,479 views
+5 votes
3 answers

How to execute a python file with few arguments in java?

You can use Java Runtime.exec() to run python script, ...READ MORE

answered Mar 27, 2018 in Java by DragonLord999
• 8,380 points

edited Nov 6, 2018 by Omkar 11,079 views
0 votes
1 answer

How to handle drop downs using Selenium WebDriver in Java

First, find an XPath which will return ...READ MORE

answered Mar 27, 2018 in Selenium by nsv999
• 5,110 points
2,394 views
0 votes
1 answer

What are the differences between getText() and getAttribute() functions in Selenium WebDriver?

See, both are used to retrieve something ...READ MORE

answered Apr 5, 2018 in Selenium by nsv999
• 5,110 points
6,191 views
+10 votes
5 answers