Petr Kotáb

Blocky Adventure

GitHub download
blocky adventure
C++
Unreal Engine
procedural-generation
solo-made

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.

World Simulator

GitHub
world simulator
C#
MonoGame
entity-component-system
shaders
procedural-generation
solo-made

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:

  1. Be independent of any concrete ECS library.
  2. Compare the relative performance of popular ECS libraries for C#.

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.

Run To The Stairs

GitHub
code
C#
WPF
SkiaSharp
solo-made

Partial reimplementation of a game called "Run to the Stairs". The entire project is divided into three parts:

  1. GameLib: Game library for MonoGame framework, it is designed to be independent of any concrete rendering library and operating system.
  2. RunToTheStairs: This library implements the game itself by utilizing the GameLib library. Similar to GameLib, it remains independent of any rendering library and operating system.
  3. RunToTheStairs.WPF: Concrete implementation of the game for Windows. It makes use of WPF and SkiaSharp for rendering.

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.

Ray Tracer

GitHub
ray tracer
C#
OpenTK
procedural-generation
solo-made

A simple command line ray tracer. Both configuration of the ray tracer and the definition of the scene can be configured with XML files. It uses procedurally generated clouds as a background.