In late September, Odd Gryphon Entertainment collectively decided to transition BBEG's development from Unity to Unreal Engine 5. The GitHub repository for the Unity version of the project as well as a drive link to a testing build from July can be found below. I programmed a vast many of the core gameplay systems myself (Player, minions, enemies, attacks, dungeon generation) and I'm overall happy with how I implemented them. While it will take a while to get back to where we were with the Unity prototype, this is an excellent opportunity for the programmers and I to learn more about Unreal Engine.
As we spent the first couple of weeks of October researching and familiarizing ourselves with Unreal Engine 5, we decided to enter Scream Jam 2023, a Halloween themed game jam. This was an excellent way to motivate the team to get hands-on experience collaborating in Unreal Engine. The game we submitted is called "Planetary Panic", a horror themed spin off featuring Squimbus, the mascot character of "Planetary Planter" (our previous game) as the main antagonist. The goal of the game is to keep all your ship components running while avoiding Squimbus at all costs. My contributions to this game were the interaction and ship component systems, all done through Blueprint. Below is a link to the itch.io page for the game if you'd like to take a look.
Once Scream Jam concluded, it was time to get back to rebuilding our previous systems in Unreal Engine. Before all of this, I had created some small games and systems utilizing exclusively Blueprint, but for this project I wanted to make it a point to use C++ and Blueprint in tandem.
My current task is to port over the character attack system. I decided to break it up into two classes, one blueprint and one C++. First I made a C++ class called Hitbox extending from Trigger Sphere for collision detection, where it checks for characters of the opposing allegiance within its vicinity (if an enemy owns the hitbox, it checks for players, and vice versa). Currently, it only prints a string to the console since health systems aren't implemented yet.
Here's some collision code:
Next, I made an actor component blueprint which contains variables and logic for spawning Hitbox objects called Attack. Each character actor will have one or more of these attached depending on if they're a player character, boss character or standard enemy. The idea behind making this object a blueprint is to allow designers to adjust the high level logic of an attack in blueprint, while the lower level collision detection logic stays in C++.
Here's a rough draft of what the blueprint looks like now:
And here it is in action. I have a debug shape set to appear only during the active time of an attack.
It's not much to look at yet, but the little victories like this one help keep me motivated as I continue to learn Unreal Engine 5. Thanks for reading.
コメント