GO BACK

About

This project began as a group assignment at the start of my 3rd year, serving as our first project in Unity. We worked on it 1 day a week from October to mid-December. Afterward, we continued developing it as a learning tool for Unity. I primarily served as the Lead Developer, focusing on implementing and integrating various features into the game while also working on individual mechanics

Project Info

  •  Role   :  Gameplay Programmer | Lead Developer

  • Team Size   :  4  Programmers  |5 Artists.>>>>>>...

  • Time Frame  :  8 Days

  • Engine  :   Unity | Using C#

Introduction

Muscle Birds was an exciting and challenging group project that marked our first experience with Unity at the start of my third year. Developed one day a week from October to mid-December, it served as both a team collaboration and a valuable learning tool for refining our Unity skills

As the Lead Developer, I focused on implementing and integrating various gameplay features, ensuring smooth functionality while also working on individual mechanics. This project provided a great opportunity to deepen my understanding of Unity’s systems, optimize workflows, and enhance my problem-solving skills in a team environment

Continuing development beyond the initial timeframe allowed me to further experiment with Unity’s tools and solidify my knowledge, making Muscle Birds not just a game but a key learning experience in my journey as a game developer. I primarily worked on the player round logic, handled the build process, and ensured that all systems functioned correctly together

I worked on :

Implementing multi-scene loading using asynchronous loading to replicate a loading screen. At that time, as a novice, I used an external library to help me manage scenes

Eflatun Scene Reference

This allowed the team to work on their own scenes and add them to the main scene instead of going through the usual process of creating a main scene and then adding assets to it. It was a nice perk to have at the time, but looking back, it was overkill

The great thing about this approach was that I first learned to use Unity, then took a deep dive into its functionality to properly manage scenes. After that, I worked on implementing player round logic and player data. Since this was a local 1v1 game, this feature needed to be implemented quickly. To achieve this, I completed the first iteration a few days after pre-production, allowing the rest of the team to test their features


Finally, I worked on implementing and debugging multiple features as they were integrated into the main build. This was my first time working on a mobile game and creating an APK. It wasn’t easy at first, but the more I worked on it, the better I became

Github - Source Code

What I learned

In this project, I deepened my understanding of Unity, particularly in scene management, integrating various systems, and ensuring smooth functionality across different mechanics. By allowing team members to work on individual scenes and later merge them into the main build, I gained insight into more flexible workflows, though I later realized it was overkill for the project’s scope

I also improved my ability to structure game logic in a modular and maintainable way, making it easier to iterate on features such as player round logic and data management. This experience reinforced the importance of writing clear, well-organized code to facilitate debugging and future improvements

Additionally, working on a mobile game for the first time taught me valuable lessons about the build process, including APK creation and debugging features as they were integrated into the main build. Initially, it felt challenging, but as I kept working, I became much more comfortable with it

One of the biggest takeaways from this project was shifting my coding approach. Previously, I focused heavily on making my code as flexible and abstract as possible, anticipating future additions that might never be needed. However, through this project, I started adopting a more practical mindset, coding only what is necessary and refactoring when required. This made my workflow more efficient and enjoyable while keeping the project manageable