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.
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.
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.
Procedural rendering at big scale. I will show how to implement a system to procedurally render a galaxy of stars, as well its planets and moons. You will learn about various types of problems that are encountered during rendering such big worlds, we will deal with troubles related to precision of 3D calculations. I will present numerous techniques used to generate needed data, such as value noise and fractal brownian noise, as well how to use them to generate unique set of data required by the application. All of that working on Vulkan and GLSL.