top of page

FIGHT FOR FLIGHT

STUDENT PROJECT
Genre: Platformer, Battle Royale
Platform: PC
Technology: Custom Engine, C++, Git, Trello 

Development Team
(Team size: 8)

Producer: Yee Yong

Technical Lead: Seam Leonard 

Graphics Programmer: Mohammad Khairi

Physics Programmer: Zenson Lim

Musical Director: Ivan Tan

Art Lead: Jun Ling

Artist: Regina Pang

Design Lead: Ivan Tan

TitleThumbnail.png

OVERVIEW

A 2D platformer battle royale of up to 4 players as each player plays as a flightless bird with unique abilities, competing for a mythical Tipare that was rumored to give them the ability to soar high into the sky! 

Inspiration

Inspired by King of the Hats, and my love for couch co-op party games. We were inspired to maximize the excitement and thrill of mini-competitions that pits friends (or foes) amongst each other and have a great humourous time.

 

To prevent exhaustion from the intensity of from the fast-pace rumble, each round of the game was designed specifically to be as short as a minute, allowing players immediately jump right into action and master the game with simple controls through repetition.

Screenshot2.png

Production Challenge

Without prior experience of developing a custom engine using C++, it was tremendously terrifying yet exhilarating.  As a student project, we were limited to time constraints and uncertainty of the workload that we will face across the trimester. We dedicate ourselves to familiarising the system utilised that is essential to our game production after assigning our roles in the team. An added challenge was as all members of the team were handling multiple modules throughout the semester, in addition to the research and development of the game project whilst managing the project timeline and sprints, we simultaneously handled assignments, submissions, quizzes, and exams.

With each member undertaking different modules, it was a challenge to establish a consistent time for us to discuss the issues pertaining to the project. The varying modules of each member led to external workload and stress, resulting in interference in the development. It was also our first opportunity to collaborate with different disciplines such as Art and Game Design specialization. Having artist and dedicated designers in the team, with almost zero knowledge of how each discipline is capable of delivering and their scope. We had plenty of ambiguouity in terms of skillset, capabilities, personality, and endurance.

We overcome these concerns by first getting to know the capabilities and limits of each individual member through ice-breakers and deep-dived discussions of our previous projects and assignments. Every week, we conduct meetings and task updates through messengers, mini group meetings, full team meetings, and updates & reports ensuring all members are up to date with the latest development and changes which facilitated in prioritizing our focus on what is most crucial without sacrificing the vision of our game.

Screenshot4.png

Engine Technology

By taking up the role of the Technical Lead, I was entrusted an important role to oversee the development of Dodo kueh Studios's custom Engine, F.F.Engine, developed from scratch using C++. Prior to the commencement of the project, we dedicated ourselves to better understand how game engine functions and how to modularize the systems.

We developed using an Object-Oriented Programming to encapsulate data and utilise structures to ensure we have sufficient memory and resources to facilitate smooth and reliable using design pattern such as singletons.

Systems are designed as singletons and data structures are encapsulated, following the S.O.L.I.D. principle to provide efficient data retrieval, allowing the technical team to smoothly work on their respective allocated tasks without heavy implications and messy code base.

One of the many challenges faced was to assemble the systems together and figuring how to ensure the system run in a seamless loop without conflicting data. As different programmer has different methods of writing code, the usage of variables and constants, utilising macros and static global values. 

To resolve that, we established our own coding guideline to ensure all code are written in a format we can easily understand instead of guessing or constantly checking what it the system is called. Implementing a guideline streamline the process enhanced our productivity. We refrained from using globals and utilised the sington heavily to prevent duplicated system from being created, and unnecessary memory utilised during runtime.

Due to the limitations of time and external workload from other modules that heavily impacted our development progression, we prioritized on the gameplay experience of the player through code and removed the scripting language of LUA as we believe that player experience is our priority.

Audio and SFX

Developed and composed by our designer, Ivan Tan, the inspiration was drawn from the natural habitats of the characters to build a sense of place and believability. By researching on the characters (i.e. the origins of the birds) gave us insights on what is most appropriate to implement and simulate the similarity to the actual birds.

We aspired to make the project more personal as a personal milestone of our very first engine created. We decided to voice over the characters to further enhance the personality of each character without compromising the natural traits of their origin. The inspiration came from Pokémon, where the characters make sounds similar to their identification, giving them an identity.

Screenshot3.png

Personal Thoughts

As a Technical Lead, the initial idea of building an engine from scratch was daunting, and the uncertainty was tremendous. Despite all, I looked upon as a Challenge and an Opportunity for Improvement and growth. As I adapt to the new project guideline and challenges, I adapted and rise up to the challenge.

Throughout the development phase, we take each iteration with utmost care and considerations of the implications that might occur and set the project back. Having to make difficult decisions with utmost precaution and consideration, it was a remarkable experince. With each idea was brought to the table, we valued every feedback and take opinions seriously without biasesness and prejudice, and attempt to build on each other's ideas to motivate the inclusion and harmony within the team. 

This project has given me the opportunity to work with people of different disciplines, learning the process flow of how designers and artists conceptualize ideas and thought processes. It facilitated our development and understanding of the art and music pipeline intertwined with technology from the technology, as well as coming up with proper integration with said aspects.

I believe that no ideas are bad ideas, and the interaction with different disciplines taught me the limitless possibility of game development.

The sky is the limit.

bottom of page