Developing a Top-Down Sci-Fi Shooter in Unreal Engine

The Ghost Pepper Games team told us about their upcoming game Project Hyperion, explained how some of the game's mechanics were made, talked about creating enemy AI for the game, and spoke about using Unreal Engine.

In case you missed it

You may find these articles interesting

Introduction

80.lv: Please introduce yourselves. What companies have you worked for? What projects have you contributed to?

Kaan Çakır: Our recently founded company Ghost Pepper Games currently consists of three team members from different parts of the world. Kyle is based in Canada, Daniel in Portugal, and I am residing in Germany.

As someone who loves learning and trying out new things, the processes behind game design have always been very intriguing to me. Be it coding, concept art, animation, or audio, designing games gives you the possibility of expressing yourself creatively using multiple formats. After completing my degree in Architecture, I decided to switch careers and venture out into game development. I finally got my start as a 3D Generalist working on Post Scriptum.

Daniel Alves: My start in game development was with the community-driven Project Reality many years ago. What started as an interest in level design, soon evolved into managing a WW2 add-on project called PR: WW2. The experience was so gratifying after witnessing its release, that I looked into a way to co-found a project in a similar vein but in Unreal Engine. So, Post Scriptum was born, where I had the role of an Executive Producer and Level Designer. It was there where Kaan and I met and the rest just started falling into place.

Kyle Wilcox: I studied Mechanical Engineering and currently run a small family business in western Canada. I’ve been playing computer games for about 30 years and teaching myself how to mod games and code for almost as long. Notable projects I helped on include the once-popular Arma 2 mods Invasion 1944 and A.C.E.. After these, I took a short hiatus for family reasons, and then I decided to shift my focus into independent game development after Unreal Engine 4 was released in 2015.

Project Hyperion

80.lv: How did you get started with your top-down shooter? What inspired you?

Daniel Alves: After years of developing multiplayer tactical shooter games, we felt the need to use our expertise and experience in a different creative outlet for something more unique to us. 

Another big drive for us was to step away from the constraints of realism and design a game where we could be freer with our ideas. Being huge science-fiction fans, we wanted to create a world that is rooted in technological changes and advances and explore the potential dangers of it. This also opened up the door to giving our characters superhuman abilities and interesting tools such as the grappling hook or the jump pack. 

We were always inspired by the world-building of movies like Blade Runner and Metropolis, or books such as The Foundation Trilogy. Other sources of inspiration for our project are games such as the original Fallouts and Disco Elysium.

The Game's World

80.lv: Could you tell us about the game’s story? Who is the main hero? What’s going on in the city?

Daniel Alves: After loyally serving in the military of the sky-high utopic state of Hyperion, Berik is dismissed from his service without an explanation and banished to the once-great megacity known as Axiom. As the people of Hyperion continue to live their lives lavishly, the citizens of Axiom struggle to survive as their city is overcome by crime as it slowly deteriorates beneath them.  

In his search for answers clouded by mysteries and conspiracies, Berik will have to fight his way to return to Hyperion. Equipped with a biochemical agent and armed with high-tech cyberware, he will make use of his abilities of environmental manipulation to overcome any opposition that meets his way.

In a world infested by gangs, terrorist groups and the repressive Erion military force, Berik’s biggest challenge will be to uncover the darkest secrets Hyperion has kept hidden from its people, while slowly puzzling together his past. 

Choosing Unreal Engine

80.lv: How and when did you choose Unreal? What made it perfect for your needs?

Kaan Çakır: Since we’ve been working with Unreal Engine for most of our professional careers, it only came naturally to us to continue using it with our passion project. We wanted to give this game a cinematic atmosphere that is completely different from what we’ve worked on before. Throughout the development of our project, we keep on discovering the diverse functionality of Unreal.

The Gameplay Ability System was a major discovery, it allows us to iterate our mechanics very easily. It made everything a lot more manageable and less convoluted, whilst also offering a solid foundation to build upon. As we continue on with our project, we’re excited to discover the many more possibilities we can utilize Unreal for.

Kyle Wilcox: Unreal Engine is an extremely mature game engine that offers an unsurpassed amount of high-quality tooling and functionality right out of the box. We get to spend fewer hours building common tools or low-level systems like pathfinding and other general game framework systems, and instead focus on building our actual game. The fact that the engine is open-source has also proven invaluable to let us create custom tools when we do need them and to quickly debug issues or understand why something is behaving the way it is.

Creating the City

80.lv: How did you create the city and its structure? How do you approach its multilayered look?

Daniel Alves: A top-down camera view enables us to do worldbuilding in both the background as well as the foreground. It’s a great opportunity for environmental storytelling that is detached from the player-controlled character.

Due to having the horizon shifted downwards, our immediate idea was to have an elevated environment and give depth to the background in which interesting scenes could play out. From the busy highways in the canyons of the city to squatters searching through trash piles on an elevated platform in the foreground, it completely immerses the player in the sensory overload of the busy city,

Its style is rooted in Brutalism and Art Deco – heavily inspired by the old-time movie Metropolis while adding some retro-futuristic elements. Our goal was to give the player the impression that this city is set in a universe that is rich with history, where the sci-fi elements adapted to its environment rather than forming its foundation.

Houdini

80.lv: You use Houdini a lot for the project, right? How does it help you build the project? What are you using it for? How do you mix tools from Houdini with Unreal?

Kaan Çakır: Houdini was a recent addition to our workflow and a very welcome one. Due to the small size of the team, the parametric, procedural, and easy-to-manage workflow is a god-send. 

Prior to using Houdini, we did a lot of KitBashing to populate our levels which resulted in an inconsistency in the quality of the overall looks. Having a more focused workflow and the tools that Houdini provides eliminates these problems. It has a great effect on not just the art department but also on the efficiency of level design, where in our case the designer is also the world builder.

The ability to easily construct your environment from basic shapes and curves, especially if you are utilizing the common whitebox->greybox->fullbright design workflow, and the inclusion of parameters and the overall purpose of the tool gives the designer the direction and a clear set of rules the original artist intended.

As a simple example, the railing tool has a bunch of parameters that let us easily influence the looks or even completely swap out its style by referencing another .JSON file that contains the "chunks" of the models out of which Houdini assembles the railing on the curve.

Whilst Houdini makes up a big part of our workflow now, we still use standard unreal tools especially when it comes to gameplay-specific assets or blockout helpers. 

The Whip

80.lv: Could you tell us about the Indiana Jones-style whip? How does it work? What are the main abilities?

Kaan Çakır: The whip, which we have named The Gravler, is a tool that gives the player the possibility to interact with their environment and use it to their advantage.

Lore-wise, it is cyberware and made from a material that can dynamically strengthen, loosen, retract or extend to perform various interactions.

We divide the interaction methods as follows:

  • Free flow interaction: This means that certain, loose, objects can be grabbed and thrown at the player's targets. These can be explosive barrels, loose signs, or just debris. Such objects have varying degrees of damage or just mostly stun the enemy to give the player a bit of breathing room when pressed too hard.
  • Traversal: By attaching to grappling points the player is able to swing from point A to B or vice versa. This allows them to reach new locations and progress through the level.

In the future, we’re planning to experiment with a "gesture" system that would enable more interaction types such as powering up objects through a circular motion or shaking to break off structures or objects from a fixed point.

Optimization

80.lv: Making such a detailed city top-down shooter run smoothly is a tough challenge, isn’t it? How do you optimize the game and its city? What are the main tricks?

Kaan Çakır: Through extensive use of atlas materials across assets, we are keeping the draw call count pretty low. And Unreal's Auto Instancing manages the rest. With our upcoming engine upgrade to UE5, we intend to make use of Nanite meshes to further optimize our scenes as much as we can. 

The fixed camera perspective and the set minimum distance to the ground level let us curate our scenes a lot easier in contrast to first-person games. Close-up, high-definition details are not required, draw distances are generally shorter.

Switching from Cascade to Niagara also gave us a huge improvement in the past.

Enemies' AI

80.lv: The game also needs clever enemies, right? How do you approach their behavior in Unreal? 

Kaan Çakır: Our main goal with enemy AI is to give them readable, distinct, and consistent behavior with patterns that are easily recognizable by the player. Cleverness might result out of a situation or in relation to their environment or their specific abilities, but in essence, the AI system is not meant to be super complex. 

We intend to have a multitude of enemy types and behaviors that offer variety through the way the player needs to counter them with the tools they are given.

Kyle Wilcox: I think AI is the most challenging technical topic of game design. We originally started out building a complicated system using “Utility AI” concepts as pioneered by people like Dave Mark, and for a while, it was showing good results, but we found it becoming too confusing to use as our AI grew. We realized that such a custom solution would require a large investment in designer tooling which we couldn’t take on yet.

As of this writing, we are using the built-in behavior tree system provided by Unreal. The system has its quirks, but it works, is easy to understand, and easy to debug. Building fun and reliable AI takes lots of planning and never-ending trial-and-error! Our AI design is still very young, and I’m excited to see where it goes. 

Challenges

80.lv: How difficult is it to develop such a project as a small team? What are the main challenges?

Kaan Çakır: The main challenges but also a great source of enjoyment for me were taking on multiple tasks across the board. With such a small team, it’s a given that people need to take on multiple responsibilities. Again, however, it was a great reason for me to dive back into C++ and polish up my skills. 

The other, more pressing challenge, was finding the time and energy to work on the project while balancing responsibilities at our day jobs. So as you can imagine, it’s taken a lot of blood, sweat, and tears to work on this project. But with all that hard work comes this great sense of achievement and fulfillment, especially with all the great response and support we’ve received from friends and online in our community. 

Kyle Wilcox: Making any video game is a lot of work. Even after gaining many years of experience, there’s always a new challenge waiting right around the corner. In general, one of the most obvious challenges is to make sure we’re building something that will be fun and innovative while still making sure it’s small enough that we can actually finish it. 

Daniel Alves: There is a "glass-of half-full" perspective that I think is worth keeping at the forefront when dealing with such a small-sized team developing a passion project. It’s a good source of learning experience in which I could delve further into my area of expertise and have the freedom to learn new skills.

It’s an environment conducive to growing as a developer while also trying new and radical ideas, which the indie scene is known for. However, it can also be risky if the scale of the project becomes too bloated in vision. I believe we’ve done a good job of basing the game’s design framework on what each one of us has to offer.

Future Plans

80.lv: What are your goals now? Where can people follow your progress? 

Next to upgrading our engine version to UE5 and integrating Houdini even more into our workflow, we’re planning to build upon the whip mechanics and expand its features to allow for more satisfying environment interaction.

We’re also looking into expanding our narrative universe and fleshing out the dialogue, character, and skill tree systems as our combat gameplay loop is nearing its final state.

The ultimate goal is to receive funding to be able to switch our focus to the project completely, hire some additional help and realize our vision of the game so that other people can finally enjoy what we have created.

You can follow the development process by visiting our Twitter, Instagram, and YouTube pages.

This content is brought to you by 80 Level in collaboration with Unreal Engine. We strive to highlight the best stories in the gamedev and art industries. You can read more Unreal Engine interviews with developers here.

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more