The source code for this tutorial series can be found in this GitHub repository. The following list shows all articles of this series published so far:
<li>
<a href="/en/blog/2023/network-tutorial-1-overview/">Networking tutorial 1: General information and overview</a>
</li>
<li>
<a href="/en/blog/2023/network-tutorial-2-walking-skeleton/">Networking tutorial 2: The "walking skeleton"</a>
</li>
<li>
<a href="/en/blog/2023/network-tutorial-3-login-1/">Networking tutorial 3: Login 1 - The game client</a>
</li>
<li>
Networking tutorial 4: Login 2 - gateway and authentication server
</li>
<li>
<a href="/en/blog/2023/network-tutorial-5-login-3/">Networking tutorial 5: Login 3 - world server</a>
</li>
<li>
<a href="/en/blog/2023/network-tutorial-6-dtls/">Networking tutorial 6: Encrypted connections using DTLS</a>
</li>
In the last article we created the game client to the point where it wants to contact the gateway server with login data. In this article, we will continue at this exact point and take care of the gateway server and authentication server. However, before we can take care of the actual login process, we first have to make the gateway and authentication servers familiar with each other and make sure that they trust each other. We use a mechanism that allows mutual authentication already during the connection setup and that was only introduced in Godot 4 in November 2022.
Shortly after I posted my last article, Juan Linietsky, one of the founders of Godot Engine, published an article about the competitiveness of Godot Engine in AA and AAA game development.
The article is really worth reading, because on the one hand he goes into the technical possibilities with Godot 4 (renderer, physics, scripting, GDExtension, …) and on the other hand he points out what he thinks is still missing to develop AA/AAA level games with the Godot Engine.
If you want to deal with game development in this day and age, you are confronted with a luxury problem right from the start. While in the early days of video game development, the sound and graphics output used for almost every game was developed or reworked in-house, nowadays you can choose from a variety of possible tools.
I have “published” two computer games so far.
The first game was a 2D jump’n’run that told the story of my (now) wife and me, which we used as wedding invitations. I had written the game in Java without using any foreign libraries. The levels and game characters consisted of non-animated sprites, there was background music, and the different levels were stored in text files whose contents were interpreted as sprites etc. at runtime.
The second game was a small learning/thinking game for mental arithmetic, which I named Little Math Academy and published in the Google Play Store in 2015. In contrast to the Jump’n’Run, I simplified my life a bit and didn’t write everything myself, but used libGDX instead. Thanks to libGDX, I no longer had to think up and implement everything myself, but could essentially focus on programming the actual game mechanics. Taking a full game engine for such a game seemed unnecessarily complicated to me at the time.