Minecraft-like game made in one week. The game world is procedurally generated and composed of sectors. Each sector is loaded when the player comes close to it and unloaded when the player is far away from it.
Sectors are composed of chunks, with each chunk having its own mesh. Meshes are created using the greedy meshing algorithm, which attempts to create as large a stripe as possible for each face of every block.
Chunks are saved to a file upon the destruction of any block. When the player enters the chunk for the first time, all chunks are randomly generated. Upon subsequent visits, the chunk is loaded from the file.
Each chunk is composed of blocks, which can be destroyed and placed. Different blocks have varying destruction times.
Simulation of a world with villagers. The villagers have a simple AI that utilizes behavior trees. The terrain is procedurally generated at runtime using pixel and compute shaders.
This game, a major part of my bachelor's thesis, is implemented with the entity-component-system (ECS) architecture and has the following goals:
An important part of this project is the abstract ECS layer, which serves as an interface for ECS libraries. The game operates with this layer, making it independent on any concrete ECS library.
Partial reimplementation of a game called "Run to the Stairs". The entire project is divided into three parts:
One notable feature of this project is its abstract design, enabling expansion onto different operating systems and rendering libraries. Additionally, the project uses abstraction for textures, allowing, for example, the implementation of the game in a console environment.