Unity engine in the last few months introduced many changes encouraging multithreading and support for more complex game mechanics.
During this lecture, some new solutions will be presented, connected mostly with Entity Component System, Job System, Raycast Command and auxiliary tools.
The CPU in your machine holds probably 2-8x more computing power than you think, but the ubiquitous programming models we use make it difficult to access that potential. And while data-oriented programming and the Entity-Component-System pattern have been discussed time and time again, we still struggle with adoption. They seem like this weird, low-level thing that only AAA studios bother doing. This talk hopes to show that given the right programming model, viewing your program as a data transformation is not only easy, but - most importantly - fun, and isn’t limited to just AAA games and the Unity Burst compiler.
On the example of Unity3D, we will discuss the basics of server and client architecture, implementation of TCP and UDP communication and we will answer the question of why to write your own networking and explain the importance of the chunks.
All this will be summarized by the server overview in the context of multithreaded architecture also in the context of the Entity Component System in Unity3D.
A handful of useful tips on how to conduct your project and write clean, readable code in order to effectively maintain your game’s codebase.