Behind the Scenes: Programming
Hey guys, I am Niklas, the lead programmer of our game “Reaction” and I will explain you the steps and mechanics that will power the gameplay and multiplayer of this project.
A typical problem that arises of such security critical games is the cheating aspect. Through memory manipulation, packet sniffing and scamming, users can highly affect the game flow and fun. There are several ways to eliminate these problems, mostly through shifting game logic to the backend of the servers. Because of this, I decided to leave out existing libraries including Photon and the build-in Unity networking. The current client frontend runs on the Unity game engine whereat the server that controls the gameplay is constructed in a .NET application. This backend construction allows us to bundle both the simulation of all objects and their behavior.
Structure of the game network
As you can see the game client is not sending commands or actions, just requests. The network of Reaction is authoritative which means that players cannot influence the world directly. They send requests when something happens, for example they activated a spell which then gets wrapped into a request, is sent to the server and processed. The server sends events whenever something happened, for example a player casted a spell. This technique is used by many games that put an eye on any aspect of cheating, including Counter Strike, DotA and League of Legends.
In the picture above you can also see a square called “Game Data”, which contains all resources you can interact with. Spells, buffs and element or map information are stored in these databases and grabbed by the game servers. This bundle of data is then spread to the clients which makes patching and updating game content a matter of seconds for us, the developers as much as you because no new versions need to be downloaded for such fixes.
In the current state of development I created the game server and simulation, including the connections and basic game client. In the next months I will finish up the game data and resource management, which means that we also already ran first stability tests.
This was it with the first behind the scenes with me, if you have questions feel free to ask me.