FootieFrenzy

Footie Frenzy

Role: Gameplay Programmer
Size: 4 people
Time span: 5 months
Engine: UE 5

About

An intergalactic war fought through a soccer match!
Earth needs its mighty defenders as aliens try to take over earth with their oldest known method of inter-species invasion and extra-terrestrial entertainment...
Footie-Frenzy!
Play as either the invading Aliens or earths mightiest species: The Penguins.

Short-form summary:

Throughout this project I worked on the main prototypes of the running, kicking and ability system, aswell as finishing the alien ability, and making a custom UI system for controllers.
This project mainly taught me how important it is to plan out sprints, and stay in communication with artists and other colleagues.

Code snippets can be asked for but will not all be shown here to avoid plagiarism as the project is owned by Howest to. The project gave me tons of confidence in what I am capable of doing, and taught me how to program more methodically and slower, and putting a focus on refactor later instead of shotgun-program now.
I've grown to love working in a group, and following a sprint-based schedule helped a lot with estimating time and giving myself more time to explore and hone my skills while working, while still focussing on a set goal.

Introduction:

Footie Frenzy was a group project made by me, Nigel Huens(programmer), Alicja Pawelec(technical artist) and Remi Pallemaerts(artist).
In the period of 1 semester we had weekly meetings with 2 supervisors planning the prototyping, production and polish of this project.
The purpose of this course was to focus on learning to work interdisciplinary, go through a full development cycle, and learn tools such as Perforce and HackNPlan.

My contributions:

Core movement, ball shooting, prototyping Unreal

One of my biggest roles was creating, testing and tweaking the core movement and kicking system for the game, aswell as prototyping the ability system.
I started with testing some values in blueprints, after which I remade them with C++ code. It was important to look deeply into the documentation of UE5 to get the perfect feeling for the 2 types of kicking and the ball physics.
It was important to me to make the ability and character systems usage expandable and reusable in case we ever want to add more species to the game.


baseCharCode

Custom controller compatible UI:

The built in UI system for Controllers was deeply failing us, which gave me the opportunity to dive deeper into the c++ side of UE5 UI.
I inherited from some base UI elements and combined them with a self made own UI controller, allowing navigation between different elements made by us.
Something extremely important throughout this whole element was to make it easy to use for artists, which applied to other aspects of the project such as the looks of abilities(example: showing and dissapearing of UFO). This also gave me the chance to look into how Unreal registers controller input and switching their modes between gameplay and UI, aswell as implementing UI only inputMethods to the UI. It was really cool to build this up and could be a further project as I would like to see how the process is to make a UE5 plugin.
Something I'm quite proud of is making UI functionally modular, having some UI that are bases for, as an example, loading/quitting menu's. These can simply be inherited from and will be implemented already and very controlable by the artists.
Underneath you can see a screenshot of the overload of the keyDown, using a keyEvent to check what buttons are pressed and having the NavigationController move to the linked navigation element.

input manager example png


Post goal, Animation implementation and more

Besides these specific topics there were a lot more opportunities where I got to work closely with the technical artist to make animations transition smoothly, have more UI pop up on for example goals, and make the game clearer for players. Penguins and aliens had the same application of making a system that can easily be added on for their UI, animations and particles.
I also love being a part of the creative process and I find it important to be critical about the game, whether its fun, and improve teamwork.

What did I learn?

1. it's important to think about how artists will use my code and work on the game.
  An example would be to not take control over specific meshes to show up or be hidden, but instead work with an object root system so that the artist can always add/remove things like particles, effects and additional meshes as they please.

2. Documentation is awesome!
  This was my first project using C++ in Unreal, and the documantation can be hard to find sometimes... However it was very fun to try out new things while working on this project. New engines are always fun to learn, and this really showed me both how much you can keep learning an engine, aswell as how I would change certain aspects of the engine if it was my own.

3. Knowing what colleagues are doing is the key to a great project.
  Using HackNPlan has shown me how great it is to plan out a whole production sprint. We had very minimal task blocking as we could work parallel with the artists. Whenever we worked on for example the characters, we could constantly ask them what they need/want. This in turn allowed us to know how to implement things they needed, and more importantly allowed us to communicate on the structure and needs of the topic at hand.

4. Break down complex problems into smaller tasks.
  Running into problems such as the UI showed me to not try too much "shotgun programming".
I learned to be more confident in what I can do, which in turn taught me to work smarter when doing it.
Normally I would try out changings aspects of the code and seeing what works based on my programming knowledge. In this project it was however a great insight to talk to the programming supervisor aswell as my fellow programmer.
Relaying how code works and documenting it was of immense value for eachother. This allowed me to also to plan out how I'd make systems expandable and reusable, and refactor after getting feedback from my peers and supervisor.

Relevant Links

- Itch.io
- Youtube trailer
- No code snippets or git link as the project is technically owned by HOWEST. Further inquiries and looking into the code can be asked for!