Status
In Progress
Duration
~4 Months
Team Size
7
Role
Gameplay Programmer
During my first Game Jam experience, I realized how much more enjoyable, educational, and fulfilling it can be to collaborate with others on a project, especially by interacting directly with designers and artists. This led me to enroll in the Digital Bros Game Academy, an Italian game academy.
Fortunately, they offered an online course, allowing me to work on the project and attend the lectures after my regular working hours.
The course focused on simulating every aspect of working environment of a self-managed game studio while developing a game using Unreal Engine 5.
The theme for the game was “Survival” with the only constraint being that had to be a 3D game.
This project was a real challenge. Not only did we have to meet strict deadlines while overcoming the difficulties faced by a self-managed team of people learning everything of game development, but we also had to find the right balance between rest and work.
For me, that was the hardest lesson to learn throughout this project. Everyone was so focused and dedicated that sometimes it was hard to stop working, risking the well known and feared burn out. Fortunately, our team communicated well, and we managed to avoid it. But it was still a tough trap not to fall into.
Overall, this experience was far more rewarding than simply studying or replicating online materials. It allowed me to grow, learn in a practical setting, and connect with many talented people whom I will continue to collaborate with in the future.
My contributions for this projects were:
- Main Character
- Interactable Items
- Post-processing VFX
- Saving / Loading
- Widgets
- Repository Management
Here the trailer of our work
Contributions Details
During the development of the project I structured the code with the goal of ensuring ease of use and customization for designers, as well as improving perfomarnce and reusability. Specifically, I implemented an architecture based on event dispatchers (subsystems) and managers to centralize common operations, such as managing VFX, widgets, ecc.
Each actor is responsible solely for its specific logic, while communication between actors is handled thorugh event dispatchers, avoiding strong coupling between entities. Managers subscribe to subsystem dispatchers to centrally manage shared functionalities, ensuring a clear separation of concerns and improving code maintainability.
This allowed me to efficiently manage events and distribute logic in a modular way, simplifying integration and project extension.
Section in progress (photo, video and code)