top of page

Trials of Pandora

Introduction

Prometheus grants the last descendant of Pandora the power of the ancient Greek gods in the palm of their hand. Enter the world of the damned and embark on a narrative-driven FPS adventure. Uncover the missing piece hidden within Pandora’s Box and save the world before it’s too late.

Project details
  • Group Project

  • Developed during the Summer Period

  • Ongoing

  • Game Design Document

  • Team Size:

    • 4 Designers​

    • 1 Programmer

    • 3 Procedural Artists

    • ​5 3D Artists

  • Made in Unreal Engine 5

  • First-Person Experience

  • Fast-paced Hack and Slash

  • Focus on creating a Horizontal Slice

  • Contributions:

    • Technical Design​

    • Ai Design

    • Game Design

    • Perforce Server Administrator

Gameplay Prototyping
Goal

Our goal for the project was to create a horizontal slice of a game that we could show in our portfolios, learn to understand the agile workflow better and improve in our respective discipline specialisations.

My personal goal was to apply and learn more about how the technical design role worked in a group project setting and to improve my visual scripting knowledge.

Miro Board
Pre-Production

During pre-production, we researched various games, narrowing down what our game would be. We also decided on the scope of this project, taking the amount of time each person had to spend on this project into consideration.

 

While the art team decided on the art style and gathered references, the design and technical team decided on the mechanics and gameplay loop we were going for.

Prototype

Once we had decided on the type of game we wanted to make and the basic mechanics, I sat down and made a quick prototype so my teammates could try it and get a feel for the game loop.

Using Mixamo characters and animations, I made some quick and simple scripts with a very simple AI to accompany them. This took about a working day, but it gave everyone something to test out and understand what we were going for.

Gameplay
Ares Sword

When developing the melee combat, I wanted to ensure the player could not miss when the sword went through an enemy's body.

 

For this, I scripted a trace system that takes several points along the sword. As it swings, it draws a line between the current position of the sword and the previous position it saved. With this, I can catch any enemy that is inside these lines, and the player can slash enemies and not worry about missing

Blueprints
Zeus Lightningbolt

I decided to keep the ranged combat system very simple. When the player fires, a projectile with a projectile movement component actor is spawned in front of the player. If it hits an enemy, it calls the on damage event and destroys the actor. If it hits any other object, it just destroys itself.

To ensure missed projectiles would not linger in the level, I added a simple delay as it spawns, which destroys it after 4 seconds.

Blueprints
The Aegis

The shield's setup is very simplistic. By hitting the block button, the shield sphere around the player appears. If the AI hits it during this time, the player takes no damage.

To limit it and not make it too powerful, the shield only lasts a few seconds and has a cooldown. This makes it so the player has to choose more carefully when using the shield to block.

Blueprints
AI
AI Design
We decided to have three different AI types as we felt this was enough for our little project.

The first type was to be small and quick, with little health and not dealing much damage. The second would be large and slow but would have lots of health and deal a lot of damage. The last one was to be a ranged enemy who would try to keep their distance from the player while shooting at them, dealing a lot of damage if they hit.
Minotaur and Satyr
The Minotaur and the Satyr share the same basic behaviour tree, with roam and chase behaviours.

I run an Environmental Query around the player when they attack to ensure that they will not place themselves inside the player when attacking.

The trace logic for dealing damage is the same as the one I made for the player, with traces going from the current to the previous position.
Harpy
With the harpy, I had to design its environmental query system a little different, as it was supposed to try and keep the player at range while attacking. At the same time, it has to keep the player in its line of sight.

To simulate that it's flying, I just raised its mesh a little off the ground. It's still technically connected to the floor and using the navmesh to move around, but it can't traverse gaps in the levels.
Gameplay Showcase
Reflections
Ai Improvements
The AI works well, but there are a few improvements I would love to add to it. 

One would be to give the harpy the ability to fly, giving the player more opportunities to utilize the lighting bolt. If not full flying, at least so it can traverse gaps and plan in places the player would have a hard time to reach.

Then there is an assortment of bugs and polish I want to do with them.
Gameplay Improvements
One thing planned from the beginning was for the ranged and melee to have a more powerful special attack. This was something that I began to work on but never finished. The idea was that if you held down right-click, you would charge it up. Depending on how much you charged it before releasing it would deal a different amount of damage.

I would also improve the shield ability, allowing it to stun melee enemies if they attack you while it's active or to reflect the ranged enemies' attack, making it fly right back at them.
Boss
Something that I was excited to add to the game was a boss that had three different stages and behaviours that you would have to fight in the final level. We started to plan and design this boss, but we never finished it.

Unfortunately, neither the person modeling the boss nor I had enough free time during the summer, so it was decided to put the boss on ice until later when we would have more time and instead focus on other parts of the game that felt more important.
Ongoing Project
Luckily, many of the things I mentioned are things that I am going to work on, as the team decided to pick this up again during the following summer break and sit down and fix many of the major issues.

This has been a great project, as I have had the opportunity to work with some very talented people on a project that we were all excited about. I have also improved my knowledge of working within the agile framework and learned how to set up and manage a Perforce server, which I had never done before.
Thanks for reading

Erik Wahlström

Email: erikwa@telia.com

I am part of The Game Assembly’s internship program. As per the agreement between the Games Industry and The Game Assembly, neither student nor company may be in contact with one another regarding internships before April 19th. ​

Any internship offers can be made on April 26th, at the earliest.

  • LinkedIn
bottom of page