Blank page that doesn’t want to be filled is a curse known for many creators. Luckily, there is a variety of techniques and tips which are aimed at solving that issue. Even though it is hard to give one solution that will always work, I will try to present as many of them as possible, based on our experience taken from the development of the new game - Ancestors Legacy from Destructive Creations team.
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.
As a gameplay programmers we want to create game features and mechanics as a whole, perfect and complex systems. Unfortunately, often we have to fight this desire, because of two main reasons. Firstly, we cannot forget about a performance, so we should calculate and process only what is necessary, nothing more. Secondly, there is no point in wasting time and resources on things impossible to notice from the player perspective. Those two aspects often overlap each other and are forcing a programmer to focus on an approximations, estimations and good enough solutions, rather that on complex and extensive systems. Examples from the game Ancesors Legacy will be provided.