Project time

10 months / (11 weeks with me)

Team size

8-16

Tags

Moba Modulair character Skill loadout system

Tools

UE4 Visual Studio Perforce Draw.io C++ Unreal Blueprints

Cyber Crawler

Introduction

This game is a 3rd person MOBA with a cyberpunk cyberspace theme made in UE4. What sets it apart from other MOBAs is that instead of heroes, you can customize your hacking bug in a similar way as in mech games where different abilities, durability, and speed is based on the parts picked.

What I learned

  • I learned more about Implementing and making a UML.
  • I Improved my program structure design.
  • I Improved my communication skills within a large team.
  • I learned about online replication and what should be handled client or server side.
  • I Learned more about C++ in unreal and integrating it with Unreal Blueprints.

Development

Restructuring code structure

I joined this project after the prototype face. Since it was time to start the real development of the game we decided it was time to put a proper class structure and UML in place. We used the lessons learned from the prototyping face and research into how Unreal itself is structured to come up with a proper class structure for the project.

After the redesign, I became the authority on replication and deciding what needed to run server side and what client side. Because this was my first multiplayer game I needed to study up on replication and Unreal’s multiplayer features.

Because I put the most time into researching proper class structure and had the most UE4 experience, I also oversaw the implementation and progression of the class structure and UML. I did this partially by making the base classes. And being asked for input on feature implementations or asked to review them.

Parts based character loadout

I was tasked with making and designing the character class and the interchangeable body parts. At first, I tried to do it using actor components but later used actors.

Actor components didn’t work as body parts since actor components can’t have a position or be attached to a socket or bone. Actor components worked fine for implementing the abilities but failed to display the body part. I learned actor components are used to give functionality to actors. So, you could, for instance, make an actor component that gave the actor floating capability. You can then attach that actor component to any actor you wanted to float.

I moved to using Actor classes for the skills. Actors are the base class for objects that can be placed or spawned in a level in Unreal. For the final implementation, I spawned the actors I needed for the selected skills as children of the player character class. The skills themselves would already have their corresponding skeletal mesh in them. The skills needed to be spawned in order from legs to head. The order was needed so they could be attached together. The body would be attached to the legs and the head to the body. The character class gave the input to the body parts that would then execute their abilities.