Alongside my two teammates, I worked on game development, design, and pixel art. I put together the GitLab CI/CD pipeline for testing, documentation, cross-platform builds and releases, and optimized it tirelessly.
A game made over the 2025 spring semester with two fellow students. It was the first project where I took full advantage of CI features, and the build pipeline I put together by the end of the project is the part I am most proud of.

Run a safari
Safarimacik is a safari-management game built with Godot 4.4, C# and .NET 8. The player buys animals, builds roads and runs jeeps to attract tourists. Keeping the park’s animal population, visitor numbers and finances healthy for long enough wins the game.
The game uses a 2D map with a 2.5D presentation. It has mouse controls, camera movement and zoom, adjustable simulation speed, keyboard shortcuts and an in-game help menu.
A pipeline that produces something useful
This year’s course was the first to require all students to create a CI pipeline. My pipeline builds the Godot C# solution, runs the tests under a virtual display, and produces machine-readable test and coverage reports.
Coverage is published both as Cobertura data for GitLab and as an HTML report. Doxygen generates the API documentation, and a Pages job puts the documentation and coverage results together. The pipeline also configures static analysis, dependency scanning and .NET code-quality jobs.
It was not easy to get the tests and coverage working properly: only gdUnit supported it, with special configuration, and I also needed to give it a handle of the Godot engine, so it could use the built-in functions, like the A* algorithm for the tests.
From a tag to a downloadable game
The export jobs create native Linux and Windows builds. Version tags publish the binaries to GitLab’s package registry, then create a release with download links for both platforms. That leaves teammates and players with a concrete build they can download, rather than instructions to install the engine and compile the project themselves.
The course organised the work into planning, two prototypes and a final product milestone. Safarimacik was subsequently included in its Hall of Fame. The repository contains the source and links to the original documentation, release artifacts and design wiki. My final grade for the course was 5 (5 is best).