TUXDB - LINUX GAMING AGGREGATE
by NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 8 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Benedikt][David Martínez Martí]

Steam ImageSteam ImageSteam ImageSteam ImageSteam ImageSteam Image
Blog post #4 - Game loop

Hi and welcome to our next blog post about the more slightly technical side of game development. In todays post, well cover almost the whole game because well be looking at the game loop: what it is and how it looks. Game loop is the main part of a game program, where the game spend most of it's time. It is a basic logic which manage the whole run of a game. Of course there are step which are taken before and after the game loop but these are not important for this article. The basic architecture of a game loop may have many forms, but the the most simple and often sufficient looks like this:
Thats it. But dont forget, under each of these parts there may be thousands or even millions of lines of source code. So lets look at these parts in more detail. At the beginning of a game loop its necessary to handle all the inputs which may affect the state of the game. Typically this input comes from the players devices like a keyboard, mouse or controller. But in a multiplayer game, input may come from the server as well. In VR games input may be derived from the position or movement of the VR controller. There are also other sources for input. This is the simplest function of a game loop but no less important. The second part is simulation of the game world. Each pass of a game loop moves game time forward and its task, at this point, is to compute how the game world is altered during gameplay. Typically, this means: go over the games objects, compute their mutual interaction ( i.e. a bullet hitting a wall) and also compute interactions with handled inputs from the previous part of game loop. ( i.e. player press key to move forward) After the computation the game stores this new world state and goes to the third part. The last part is rendering. In this part, we render the current state of the world to output devices. In modern games, this part of the process is the most performance consuming. But in games focusing on advanced simulation, the simulation part may be more demanding.

Parallelization


The biggest disadvantage of the mentioned model is that it doesnt use modern hardware in an optimal way. Thats to say, the usage of multiple processor threads. The most straightforward multi-thread model is to compute inputs and simulation on one thread and render on another simultaneously, or in parallel. But theres a problem. If we simultaneously change the world state in the simulation phase of game loop and render the world state in the rendering phase, then we will often render parts of the world before computing the next state. So the game loop process will get ahead of itself, and we dont want that.
One of the solutions would be to wait until the simulation thread is finished before moving on to the render thread but that would bring us back to the original model and with a useless thread. The better solution is to compute only the simulation in the first iteration, and to store the results. Then in the second iteration, we can compute both simulation and rendering concurrently, because the rendering phase uses data computed in the previous iteration and does not collide with the running simulation thread. The only disadvantage is that the rendering is one iteration delayed, but players wont notice in most situations. Even in this little problem you can see that, in general, the parallelization in computer games is complex and difficult because in games you typically have many dependent computations that are not easy to parallelize. Of course, even the mentioned parallel model is very primitive and modern games use very complex game loops consisting of many threads with different degrees of dependency to one another. Or even multiple parallel game loops where each one computes its own part of simulation or rendering. And that is, in short, a basic explanation of the function of a game loop: the process running in the background of every game, including ours. We hope you enjoyed the post and that you learned something new. Share your thoughts with us and others on our forum, Twitter, Facebook or Reddit. See you soon! And as always, you can also read and discuss this blog post on our websites, forum or reddit.


[ 2020-01-17 14:53:42 CET ] [ Original post ]

Nebuchadnezzar
Nepos Games Developer
Nepos Games Publisher
2021-02-17 Release
Game News Posts: 115
🎹🖱️Keyboard + Mouse
Very Positive (1310 reviews)
Public Linux Depots:
  • Linux Depot [24.74 M]
Nebuchadnezzar is a classic isometric city builder game inviting players to experience the mysterious history and culture of ancient Mesopotamia. In the campaign, players get to rule over influential historical cities filled with magnificent monuments.

Gameplay

From plowing fields to creating products, players must oversee the manufacturing of agriculture and goods for the city population. Players have an arsenal of tools to optimize their objectives. In addition, a maximum overview of their city helps players to solve problems and prevent population loss. Nebuchadnezzar’s gameplay is geared towards all types of players: from beginners of the genre to experienced strategists.

Campaign

Nebuchadnezzar’s main campaign contains 16 historical missions covering the colonization of ancient lands to the conquest of Babylon by Persians in 6th Century BC. Each mission summons a different time period in Ancient Mesopotamian history. Players must carry out tasks important to the specific time and place of each mission, including the construction of historical monuments.

Monuments

During the campaign players will not only build complex ancient monuments, but design them too. Nebuchadnezzar features an in-game “monument editor” giving players complete control over their buildings. From structural design to color scheme to final details: it’s in the hands of the player. Will you recreate history or make history? It’s up to you.

Mods & Localization

Nebuchadnezzar was created with mods and localization in mind. Modders will be able to create their own buildings, goods, and monuments. And in addition, they can invent new missions and campaigns. All definition files are written in the easy to read Lua language. Localizing mods will not be a problem. You can create mods in multiple languages and/or add languages to existing ones. This applies to the base game as well.

MINIMAL SETUP
  • OS: TBA
  • Processor: TBA
  • Graphics: TBA
RECOMMENDED SETUP
  • OS: TBA
  • Processor: TBA
  • Graphics: TBA
GAMEBILLET

[ 6107 ]

8.27$ (17%)
8.59$ (14%)
8.39$ (16%)
8.89$ (11%)
14.95$ (47%)
12.74$ (15%)
8.49$ (15%)
4.09$ (18%)
15.95$ (16%)
15.11$ (16%)
33.57$ (16%)
12.74$ (15%)
16.57$ (17%)
9.33$ (38%)
5.94$ (15%)
16.79$ (16%)
16.52$ (17%)
13.79$ (8%)
13.34$ (11%)
7.99$ (20%)
20.74$ (17%)
12.74$ (15%)
17.54$ (12%)
41.99$ (16%)
19.95$ (20%)
6.95$ (13%)
10.19$ (15%)
24.95$ (17%)
33.97$ (15%)
10.78$ (17%)
GAMERSGATE

[ 1061 ]

4.0$ (80%)
7.2$ (76%)
4.25$ (79%)
5.1$ (74%)
5.6$ (53%)
0.9$ (92%)
3.83$ (87%)
2.13$ (79%)
9.49$ (50%)
14.99$ (40%)
1.02$ (91%)
0.43$ (91%)
3.4$ (66%)
3.28$ (84%)
0.68$ (91%)
14.88$ (70%)
1.02$ (91%)
5.0$ (50%)
3.3$ (78%)
4.46$ (70%)
10.62$ (58%)
13.49$ (10%)
7.64$ (36%)
11.24$ (55%)
1.7$ (91%)
31.49$ (48%)
0.56$ (81%)
9.99$ (50%)
8.5$ (66%)
1.91$ (87%)

FANATICAL BUNDLES

Time left:

18 days, 9 hours, 26 minutes


Time left:

25 days, 9 hours, 26 minutes


Time left:

14 days, 9 hours, 26 minutes


Time left:

11 days, 9 hours, 26 minutes


Time left:

19 days, 9 hours, 26 minutes


Time left:

21 days, 9 hours, 26 minutes


Time left:

42 days, 9 hours, 26 minutes


Time left:

356467 days, 1 hours, 26 minutes


Time left:

24 days, 9 hours, 26 minutes


Time left:

53 days, 9 hours, 26 minutes


HUMBLE BUNDLES

Time left:

6 days, 3 hours, 26 minutes


Time left:

8 days, 3 hours, 26 minutes


Time left:

13 days, 3 hours, 26 minutes

by buying games/dlcs from affiliate links you are supporting tuxDB
🔴 LIVE