Makers Academy - Week 11 & 12 Final Project
Overview | Approach | Progression | Features
Story | Level Design | Player Hero | Enemy Golems
Hero Blueprints | Golem Blueprints | Golem AI
For our final project, our team decided to build a game that would allow us to utilise the programming skills we learnt at Maker's Academy, whilst also exposing us to the game engine Unreal, a leading creation tool used by gaming companies across the globe.
Our original goal with this project was to create a turn-based battle game, where a hero fought against enemies using elemental projectile spells. But as we approached the end of the first week, we decided to pivot the core mechanic of our game to the more contemporary open-world style of game - Where players could freely move around, encounter enemies in different environments throughout the world, and then battle using a dynamic targeting system with a combination of physical and ranged attacks.
Maker's Academy teaches us to take a very methodical approach to building a program. Using test-driven development, we were able to visualise the features we wanted to create, create an environment to run our test, setup the variables needed, expect an outcome, and then work towards passing that test in the simplest way possible.
An early-stage view of us testing two core mechanics - projectiles and damage
We focused on using agile methodologies throughout the project, organising ourselves with daily stand-ups and retrospectives to ensure we were always aligned and prioritising well at all times. We reviewed each others code before every merge, ensuring that all our tests were passing and we had high coverage of all our features and user edge cases.
During our planning process, we created a simple mockup of the map the player would traverse. We planned on having 3 battle zones and a boss zone, indicated by the circles of sand on the left-hand map below.
Map Creation: Day 1 Outline & Final Map
Our final map on the right follows a very similar design pattern. Players start in the upper-central forested area and make their way through the smoke into a fire-lit cavern, the first battle zone we envisioned. After defeating several enemies in this zone, they move deeper into the rocky cavern to the next battle zone, where they encounter several similar enemies but of a different type. The third battle zone is located amongst frozen wooden huts in the bottom-right of the map. This is the final zone and enemy type the player encounters before moving to the boss zone, inside the castle the player first sees in the distance when they start the game.
During our planning process, we also outlined many features we wanted to include in our game, which I've listed below. The list shows all the features we hoped to implement into our game, and this list will be updated regularly to indicate the features that are finished and implemented into the game, the bugs still present, and some additional features we'd love to implement in the future.
- Open-World Map with multiple environments
- Health System for players and enemies
- Magical attack spells that vary in effectiveness against different types of enemies
- Dynamic Targeting allowing players to lock-on to nearby enemies and switch between targets.
- Player respawns upon death
- Player health bar that changes colour and size depending on the amount of remaining health points
- Players can cast magical attack spells inspired by the elements of Fire, Ice, and Rock
- Players have a physical attack that deals a fixed amount of damage
- Players can use a physical combo sword attack (Animation)
- Combo attacks multiply attack damage
- Different attack animations for physical and ranged attacks
- Blended movement and attack animations
- Enemies have AI that allows them to move randomly within a designated area
- Enemies have AI that allows them to follow a patrol path of set points in a designated area
- Enemies have AI that allows them to see the player when they're in the enemies line of sight
- Enemies chase and attack the player upon detecting them
- Enemies have a simple physical attack that deals a fixed amount of damage
- Combo attacks not working as expected in terms of damage output
- Overlap with a dead enemy body causes them the mesh to stand upright and then fall
- Player has different animations for each spell
- Enemies have multiple attacks
- Enemies have more advanced AI - More senses, able to raise alarms, and alert other enemies when the player has been detected
- Enabling VR controls
Story | Level Design | Paladin Hero | Enemy Golems
In Paladin's path, you'll move through an open-world with different environments for you to explore. Your goal is to reach the stronghold castle in the distance, where a powerful enemy awaits you:
Along your path, you'll encounter enemies, called Golems. Golems are magical being made of inert matter like rock, fire, and ice. That have been animated to life by mysterious forces.
In Paladin's Path, you'll be guided through multiple environments as you make your way through our world:
- The Forest
- Fiery Cavern
- Dark Cave
- Snowy Village
- Castle Stronghold
Movement | Targeting | Health | Physical Attacks | Magical Attacks | Death & Respawn
You can move around with either A(Left), W(Up), S(Down), D(Right) or the directional arrows on your keyboard. You can also jump by pressing the space bar.
The player can also use dynamic targeting, which allows a player to lock-on to the nearest enemy using (T), and switch targets left or right using the (Q) and (E) keys respectively.
Targeted enemies are shown by a glowing red ring at the targets feet
The hero starts out with 100 health points. Golem attacks deal 10 damage, so decrease your health by 10% for every hit. As your health points decrease, the health bar next to the hero's head will both deplete and change colour from green to amber to red.
As a Paladin, you have a sword to defend yourself against the enemies you face on your journey:
A single slash of your sword is an effective way to deal damage to your enemies. A single slash deals 20 damage points.
Press [4] to slash with your sword
Sword slashes can be chained together to multiply their attack power. 3 successful sword slashes will add 40 bonus damage points to your attack.
Quickly press [4] three times to unleash your sword slash combo attack
As a Paladin, you can also use magic. You have three spells, fireball, ice shard, and boulder.
Fireball is a fire-type attack that hurls a ball of fire at your target, dealing 20 damage points. Fireball is weak against earth-type enemies, dealing a reduced 15 damage points, and strong against water-type enemies, dealing a boosted 30 damage points.
Press [1] to cast Fireball
Ice Shard is a water-type attack that shoots a high-speed shard of ice at your target, dealing 20 damage points. Ice shard is weak against fire-type enemies, dealing a reduced 15 damage points, and strong against earth-type enemies, dealing a boosted 30 damage points.
Press [2] to cast Ice Shard
Boulder is an earth-type attack that hurls a rock straight at your target, dealing 20 base damage. Boulder is weak against water-type enemies, dealing a reduced 15 damage points, and strong against fire-type enemies, dealing a boosted 30 damage points.
Press [3] to cast Boulder
In Paladin's Path, when you die, you immediately respawn at the beginning of the level, ready to continue your journey.
Along Paladin's Path, you'll encounter a variety of different environments where you'll meet different type of golems. Recognising each type is important, as each of your spells deals varying damage depending on the type of golem you're facing.
A Fire Golem's skin is made of molten rock, softened from the heat emanating from their bodies. Because of this, the hero's boulder spell is very effective at disfiguring their bodies shape as well as smothering their flames. The hero's ice shard, however, spell melts before it can pierce it's skin, causing it to less effective.
Fire Golems are found in the fiery caverns between the forest and caves of Paladin's Path.
An Ice Golem's skin is made of thick shards of ice. Because of this, the hero's fireball spell is very effective at melting their bodies, turning them to slush. The hero's boulder spell, however, freezes before impact and shatters against their dense icy bodies, causing it to less effective.
Ice Golems are found in the snowy village between the caves and castle in Paladin's Path.
A Rock Golem's skin is made of dense boulders that grind against one another as it moves. When the hero's ice shard spell freezes these boulders just before the moment of impact, allowing the force of impact of the shards to shatter the boulder to pieces making it a very effective spell against them. The hero's fireball spell, however, doesn't have anything to burn or melt on their rocky bodies, causing it to less effective.
Rock Golems are found in the dark caves between the fiery caverns and snowy village in Paladin's Path.
Golems out in the world are known to have in one of two different ways. They either move randomly within an area or move between spots on a patrol path.
When a Golem sees the hero, they immediately begin chasing the hero, and when they're in range, they attack!
Hero Blueprints | Golem Blueprints | Golem AI
All credit for this targeting system goes to Grzegorz Szewczyk, whose targeting system we purchased on the Unreal Marketplace. The red targeting ring is our own addition.
You'll find Grzegorz's dynamic targeting system here.
In our blueprints, our spells are separated into their respective skills of fire, ice, and rock. Each playing an animation when cast, and then releasing the spell towards the direction the player is facing.
Launching the spell projectile
Check out our one-minute cinematic trailer on YouTube:
If you know a way to host our game online for free so everyone can play, message me on LinkedIn