Owlet is a game project created in my second year of Breda University Of Applied Sciences. The game was created using a custom engine called Pepi Engine. Owlet is an RTS game where the player defends their base from waves of elementals trying to destroy the base.
14 people (8 Programmers, 3 designers, 3 artists)
The main task I was responsible for in this project was creating and maintaining the tool for simple creation of behaviors using finite state machines and behavior trees. The game's entire gameplay (from unit behaviors to enemy AI) was based on this system alone. The system had to be robust and well optimized to fit all the needs that the project had. The behaviors ran completely in pararel and communicated with the gameplay code via blackboards storing data, as well as gameplay events that were invoked after the update loop for the AI was executed, which worked very well with the ECS architecture of the engine. The performance of the AI framework allowed us to handle up to 10000 agents. For more information about the AI framework click here.
The game often reached higher waves with hundreds of units in the scene, which made the AI framework shine
Apart from working on the tools and the engine of the game, I worked on several different gameplay elements of Owlet, including:
All AI state behavior logic of the units.
Gameplay stat system with modifiers and buffs.
Wave generation system with an in-engine editor for areas where enemies should be spawned each wave
Resource gathering and spending system
Giving orders to units from the user point of view.
Gameplay video with all of the functionalities I created: Giving orders, AI, Animations, gameplay stats
In this project I was responsible for maintainance of several of different core features of the engine, such as: serialization of components, ECS, Level Editor, unit creator and animation editor system. To see more in-depth description of the engine. Press here
Basic engine UI with several functionalities showcased
As a little personal development side-quest during this project I decided to learn Github actions and create a pipeline for automatic builds. The CI/CD pipeline involved:
Unit test integration
Compilation checks
Clang tidy
Automatic submit of a build to itch.io after merge to main branch
Linter checks
Automatic Formatting
In this project I was responsible for managing the programming team, assinging tasks, working with the producer, as well as leads from other disciplines to ensure smooth communication in the project, as well as deliveries on features and milestones. I was also responsbile for communications with the 'stakeholders' to ensure the requirements for deliverables and their deadlines were feasible.