Steam Punch

Project Type: PC Game (Windows)

Software used: Unreal Engine 5.1, Git

Languages: Blueprints

Team Size: 7

My Responsibilities: Lead Programmer, Gameplay Designer, Character Implementation, Producer

Duration: 7 weeks

About

Steam Punch is a 3D platform fighter built in Unreal Engine. After humanity is plunged into a nuclear winter, most of humanity’s resources have disappeared, causing a mass extinction. After 25 cold grueling years, humanity is finally making the plunge to re-explore the surface and claim what land and resources they can. In order to combat the harsh cold on the surface, people have augmented their bodies with Steam Powered cyborg enhancements. Fight other factions in order to reclaim the surface, but be careful; if your steam levels drop below 0, your systems will malfunction and it’ll be easier to knock you out!

Creating Steam Punch

Steam Punch was created in Unreal Engine 5.1 in my IMGD 4000: Technical Game Development II course. This course covered my now favorite game engine, Unreal Engine. We learned programming techniques in both Blueprints and C++. This course covered working in a 3D pipeline from creating assets, texturing them, importing them into the game engine, and using them within the game. For Steam Punch, I worked on combat, data persistence, stage mechanics, and character implementation.

Combat

Steam Punch Combat Animation Editor

For our combat system, I created a custom hitbox class that was created during a hitbox animation notify state. This gave a number of benefits including:

  • Viewing the hitbox in the animation preview and while playing
  • Creating completely customizable hitboxes for each animation
  • Hitboxes deleting themselves on notify end
    • This ensured that no hitbox would persist, hitboxes would end when being attacked and interrupting an animation, and make the clean up process for removing hitboxes seamless.
Hitbox Animation State Details Panel
Steam Punch Hitbox Animation Notify Begin
Steam Punch Hitbox Animation Notify Tick

I was also responsible for the implementation and creation of our characters. I was given the character models from the art team and implemented them into the character blueprints I created for combat. The character blueprint creation included making systems for linking combat to animations, a steam system, jumping and utilizing steam to fly, ground and aerial attacks, receiving damage, and air-dodging and parrying.

Stage Mechanics

Steam Punch Main Stage

There are 3 main stage mechanics:

  1. Platforms,
  2. Blast-zones,
  3. and Item Spawning
Steam Punch Platform

This is the platform used on the stage. It has 2 box collisions to control interaction. When standing on the top platform, players can collide with the platform itself. When pressing down on the platform, they will change their collision to overlap with platform and pass through. Players and items also can pass through the bottom platform allowing for fluid combat.

Steam Punch Blast-zone

Blast-zones were created with collision boxes on the edges of the screen. When players collided with them, particle effects created with the Niagara VFX system would spawn, the player would be killed along with their lives being decreased and steam being reset. When killed, if a player has lost their last life, the game ends, plays a victory screen for the winner, and goes back to the character select screen.

Steam Punch Items

Items were spawned automatically after a random set amount of time. Items were given a rarity that influenced what item would be spawned when the map decided to spawn another one. Each item had different functionality, sharing a common interface for grabbing, throwing, and/or using said item.

What I Learned

This project was the first large game project I had worked on. It taught me how to create a game within a 3D pipeline as well as how to effectively work with multiple members of a team while minimizing merge conflicts. I learned extensively how to use Unreal Engine and its many features including Blueprints, animations, camera mechanics, particle effects, collision system, input system, local multiplayer, and more. I also learned how to create a complete game-loop, transitioning from map to map with persistent data between each level transition. Steam Punch became the foundation of my Unreal Engine knowledge, allowing me to become comfortable with my use of Unreal Engine while fueling my motivation to grow and learn more.