Courtesy of Bonsai Collective

How Unreal Engine empowered a small team to build Luna Abyss’ beautiful bullet hell prison

Mike Williams
Bonsai Collective was founded in 2019 by Benni Hill, Harry Corr, and Hollie Emery. Like a Bonsai tree, the remote-based UK studio has been carefully cultivated to 16 full-time passionate Unreal Engine specialists, who all care about inclusion in the studio and representation in the games that they create. Their games all have epic world-building, storytelling, and classic gameplay experiences at their heart. Bonsai Collective's story begins with their debut title, Luna Abyss.
You can’t escape a prison if there’s nowhere else to go. That’s the problem ahead of the protagonist of Luna Abyss. Fawkes is a prisoner consigned to the faux red moon, Luna, which also doubles as a prison. Here, under the watch of an artificial prison guard named Aylin, Fawkes must head into the depths if they want to find out what’s going on and ultimately free themselves from Luna. 

Luna Abyss is the debut game from Bonsai Collective. In this first-person action adventure, you must dive into the derelict bio-mechanical ruins of Luna in order to survive. That survival means facing off against twisted monsters in “bullet hell”-style combat, while also completing platforming challenges across forgotten regions of Luna. The red moon itself is as beautiful as it is terrifying, with Bonsai Collective relying on a stark, two-tone aesthetic full of dark shadows and brilliant red highlights. 

We talked with Bonsai Collective about the process of developing Luna Abyss’ fast, frantic combat, a major inspiration for the game’s look and feel, and creating the horrific atmosphere of the prison moon. The team also explained how Unreal Engine and an Epic MegaGrant helped them bring their haunting vision into reality.

Can you explain the concept behind Luna Abyss?

Laura Mauro, Senior Writer:
Luna Abyss is a first-person, bullet-hell story shooter which takes place within a derelict megastructure on an alien moon. Our protagonist Fawkes has been sentenced to incarceration on this red moon, which mysteriously appeared in Earth's orbit 250 years prior to the game's events. They possess the “mark of Luna”—distinctive red eyes which are viewed by those on Earth as a curse. Fawkes is initially tasked with working off their sentence as a Scout, exploring the mysterious Abyss and completing mundane tasks, but is quickly tangled up in something much bigger and stranger than their own imprisonment. Exactly what's going on is up to the player to discover.

Why was Luna Abyss the right debut game for Bonsai Collective?

Benni Hill, Creative Director:
Luna Abyss has always been a passion project. Driving that passion for the type of experience, the world we are building, and the style of the Luna Universe is what made it the right fit for us. I think there was a natural and organic progression at the outset of development, when the team was just the founders, where all these wild ideas began to connect and bond together into the game that Luna Abyss is today. I think it is that organic process that made this the right debut game for Bonsai Collective.
Courtesy of Bonsai Collective
Can you tell us more about your studio?

Hollie Emery, Managing Director:
Bonsai Collective was founded in 2019 by Benni Hill, Harry Corr, and myself. We are an inclusive team of very passionate developers, working on our debut game, Luna Abyss. We specialize in Unreal Engine, and center our games with epic world-building and storytelling, whilst also creating classic gameplay experiences. Our studio is remote-based, with a majority of the team being located in the United Kingdom.

What other games, shows, or films inspired the creation of Luna Abyss?

Laura Mauro, Senior Writer:
We had a wide pool of influences while working on this game, and we've never been averse to wearing those on our collective sleeve. Tsutomu Nihei's Blame! was a significant influence on the early visuals, and you can see this particularly in the game's first level. The art team derived a lot of inspiration from Brutalist architecture. There's a broad palette of other influences, including Junji Ito, the Silent Hill games, Neon Genesis Evangelion, Destiny, and Doom, to name a few.

As a writer, my main influences come from the weird fiction genre—horror-adjacent stories and writers like Shirley Jackson, Daphne du Maurier, and Ryūnosuke Akutagawa. It was an interesting challenge adapting a more prose-centered style into the game narrative.
Courtesy of Bonsai Collective
Luna Abyss has a very striking art style. Can you talk about the process of iteration that landed on this style?

Harry Corr, Art Director:
When we first started work on Luna Abyss, one of our goals when picking an environment for the game was one that would allow for complete design freedom. Setting a game in a modern day city environment for instance presents a lot of limitations on what you can do with level design. In order for that space to make sense, everything needs to be dressed in a way that contextually makes sense. As a smaller team, we knew we wouldn't have the resources needed to address those kinds of limitations across an entire game so we started looking at far more abstract spaces. We eventually decided to use Tsutomu Nihei's seminal manga Blame! as our core inspiration. The mega structure of Blame! is such an evocative and abstract space where anything is possible, so we felt it would work really well as an environment to set a video game in.

The initial concept demo we built was set in what was essentially a small recreation of the Blame! mega-structure. Once the concept demo was complete and we were confident that an abstract, brutalist environment was the direction we wanted to go in, we committed and began to roll in other influences and began work on creating our own story and lore that would help us develop Abyss' megastructure into something entirely its own.
Courtesy of Bonsai Collective

The lighting direction is largely responsible for Luna Abyss' unique look. Considering our smaller team size and the scale of the environments we wanted to build, we decided very early on against using baked lighting. The time it takes to iterate lighting when going through the baking process each time a change is made would have been too much of a bottleneck, so we made the decision to light all of our environments with dynamic lighting. Dynamic lighting does have its downsides, most notably it obviously does not support bounced lighting. We decided to work within this limitation and used a very high-contrast lighting style where the dramatic difference in light and shadow is emphasized and draws the eye away from fairly basic “fake” bounced lighting.

The abstract nature of the megastructure allowed us complete freedom in how we light spaces. Lights never need to be contextualized in a way that needs to make real world sense, so we have complete freedom to place light sources anywhere that looks good. This was also hugely beneficial when supporting the level design as in many of the environments the player is reliant on the lighting to guide them towards the critical path. Having no limits on light placement made this significantly easier.

Bonsai Collective says that Luna Abyss is narrative-driven. How does the game present the story of Fawkes, the protagonist, to the player?

From quite early on in the process, we decided we wanted to tell Fawkes' story in a multifaceted way. They're in an interesting position as a protagonist—we're experiencing the story from their perspective, but they're also part of something grander and older, which was set into motion long before their imprisonment. We wanted to align the player's experience with Fawkes' perspective, so that they are learning about the world and its history in concurrence.

We aimed to achieve this by employing several narrative strategies: there's the first-person player experience, which is the literal act of discovery with Aylin acting as a guide of sorts. The player can also interact with various NPCs, who help Fawkes navigate the strange world they've found themself in, but also provide insight into life on Luna from a range of perspectives. We also created a codex, which populates with discoverable entries as the player progresses through the game. It's more of an archive than an encyclopedia—little snippets of perspective from characters outside of Fawkes' immediate world, which we hope will add context to the events Fawkes experiences.

Benni, the creative director, and I are both keen on a more experiential approach to storytelling—so, rather than providing the player with a handbook to the world, and explaining everything in great detail, we prefer to let the player discover the story organically, and leave certain elements up to interpretation. Hopefully this process of discovery and piecing together the wider story makes for a world that feels lived-in and vast.
Courtesy of Bonsai Collective
Luna Abyss is a first-person shooter, but there are elements of the “bullet hell” genre as well. Can you explain how the team balanced combat while fusing both genres together?

Jonny Pickton, Senior Designer:
Figuring out bullet hell in first-person was a challenge, as the FPS perspective meant the player had very little peripheral vision. We balanced this by having quite grandiose over-the-top bullet patterns that are hard to miss, but offset by a relatively slow bullet speed and predictable attack patterns from enemies. By the time the player is in the thick of it in the later and more intense levels, they should have a good understanding of what to expect and focus their efforts on the "dance of combat"—ducking, diving, and dashing; in, over, and around whatever the enemy throws at them.
Courtesy of Bonsai Collective

A key to a great bullet hell game is great bullet patterns. Can you tell us about how you approached the task of designing bullet patterns within a first-person perspective?

Matthew Reynolds, Programmer:
First-person perspectives give a more restricted view than traditional bullet hells, so to design fair patterns, we first had to work out a few key rules that all attacks would have to follow that aren't always needed with other camera approaches. The player is only able to see in front of them, so we had to make sure that no element of any attack would hit the player from the side or back, all bullets should approach the player head-on if they are looking at the attacker.

We then had to consider that the player may not be looking at the attacker. To protect the player from taking a barrage of bullets from a target offscreen, we ensured that all bullet patterns either had slower moving bullets or a significant telegraph time, so the player has time to look around and notice any attacks before they're too close to dodge.

We then noticed that the lack of a visual hitbox made attacks involving squeezing through tight gaps in bullets harder to dodge. To help against this, all our attacks were spaced a little further apart than is common in other perspectives to prevent any bullets hitting the edge of a shoulder that you only roughly knew was in the line of fire. When pairing all of these with strong audio cues for the attacks, the restricted view no longer led to unseen damage.

Once we'd designed these guidelines for bullet patterns, we had to make them engaging to play against. Each attack was designed with a specific way to dodge it, whether that was moving out of the way, weaving between streams of bullets, or using some traversal mechanics such as jumps. It can be harder to gauge whether movement such as a jump will clear a bullet in first-person as you cannot see your feet, so the heights and shapes of the attacks had to be carefully adjusted and iterated upon to both make them fun to avoid, but also to make the method of dodging obvious.

Once the attack was exciting to play against, we'd finally add visual flare by firing extra "decorative" bullets to give more energy to the attacks without affecting the core shape, and hence gameplay, of the attacks we'd made. This ensured our attacks were visually exciting but still clear about how to dodge in first-person.
Courtesy of Bonsai Collective
The bullets themselves are also objects in the game world. How did you optimize Luna Abyss to retain its high-speed combat while hundreds of bullets are onscreen?

To ensure our bullets still performed well with so many around, we had to target two main areas. The first thing we needed to approach was the bullets themselves. With so many spawning and moving at once, the CPU takes a significant load. We further broke this down into two parts: ensuring we could spawn many tens or even hundreds of bullets in a frame without any noticeable frame drop, and ensuring we could move hundreds of bullets every frame. 

We'd noticed that attacks spawning many bullets at once would cause a frame drop, since spawning actors is quite an expensive process. When we're asking for many of these at the same time, it's a lot for the CPU to handle. We therefore opted to make pools of bullets, so we'd create all the bullets needed for combat at the beginning of the game, and simply teleport them in and activate them whenever an attack needed them. Once they collide with anything, we can just turn them off and return them to the pool, ready to be teleported in again when needed. 

We ensured we had performant array handling to decide which bullets to grab, and then we had efficient spawning. This had an overwhelming benefit for performance, as we no longer needed to create or destroy bullets, they were always around ready for use whenever we needed them. This method meant we needed to ensure their memory cost was as small as possible though, as they now always existed, so we kept a close eye on this and kept the bullets as simple as possible.

With the spawning addressed, we focused on movement. This is also a big load on the CPU, as the bullets need to check for collisions every frame. We therefore kept the bullet movement as simple as possible. When more complex behavior is required, we turn it off on the bullets as soon as those behaviors are no longer affecting the flight. We also ensured that all bullet logic was performed natively in C++ as this gives some performance gain over Blueprints script.

Now that our bullets were as efficient as we could make them, we needed to minimize CPU usage elsewhere so that these bullets wouldn't cause frame drops in levels with many moving parts. For this, we used Unreal's Profiling Tools to monitor the CPU times both in and out of combat: stepping through the levels to see what's taking up time and reducing this time as much as possible without affecting gameplay elsewhere. We would do this out of combat first to reduce the background CPU usage, then focus on combat specifically to ensure that the combat systems were not struggling due to anything specific to that level, such as larger spaces causing bullets to survive longer, meaning we had more of them moving than intended. We could then address these issues on a case-by-case basis, usually modifying the combat systems to ensure they were efficient regardless of how our environments were designed.

Did the team use Niagara to generate its bullets? 

 We initially used Niagara particles for our bullets, but after some iteration, we eventually moved to static meshes. With so many bullets on screen at once, their visuals were kept simple and so they were not using much of the power that Niagara offers. Both as a result of this, and the fact that some aspects of Niagara's particles are calculated on the CPU which we wanted to free up to handle our bullet behavior, we decided that meshes would give us better performance without a drop in visual quality.

Corr: In the early days of the project, we were exclusively using Cascade to handle all of our particles as no one on the team was familiar with Niagara. As the project progressed ,we started exploring Niagara and quickly learned how much more powerful and flexible it is over Cascade and we now exclusively use Niagara for all of our particles. There are way too many benefits of using Niagara to go over all of them, but the ease in which systems can be modified via Blueprints is easily one of my favorite things about it.
Courtesy of Bonsai Collective
As players try to escape from the environment of Luna Abyss, they’ll run into all sorts of inhuman monsters. Can you talk about the process of designing these creatures?

Lenny Ilett, Character Artist:
We started off with our art director's initial ideas and concepts of how our characters might look and feel. These motifs were created in the early concepting stages. The dark gooey skin and exposed skulls for our enemy characters, and a cyborg-like element for our warden characters.

When asked to come up with some ideas with creatures following these themes, I felt having a symbiotic relationship with our art director was the most important aspect to keeping things consistent in our world.

Early on, we throw as much stuff at the wall as possible and see what sticks; often the weirder designs are pushed to the top. From there, we do an interactive process of adding some personality to these lifeless concepts and layer on all of the signature elements we established from the beginning to keep everything consistent. The “axe cat,” for example, wasn’t even a cat to start off with, but it was the culmination of just thinking of as many cool shapes we could think of, but also something the audience could connect with. The sphinx is a wise mythological creature, how would it exist in our world? These are some of the questions we asked ourselves.

How did your team land on the combination of organic life, lost ruins, and industrial corridors that makes up the game’s environment?

Jake Guest, Senior Environment Artist:
With the overall art direction of the game leaning into the more abstract and supernatural, it became clear that we had to tie the spaces, the stories, and the design together with environments that not only stuck to the abstract direction we were going for, but managed to tie everything together in a grounded and cohesive way. 

The world of Luna Abyss tells a multi-faceted story, telling the tale of an ever shifting mega structure, beautiful fields ravaged by rot and decay and a mining colony down in the depths of the moon. It became the art team's job to figure out how to tie all these spaces together to make them feel as if the player is progressing through a connected space instead of individual ones. To tackle this, we began creating asset kits that could be used in all areas of the game, giving the presence of rot, rust, and grime across the whole game world making the most of large vista reveals to tie all the spaces together.
Courtesy of Bonsai Collective
What inspired the horrific atmosphere of Luna Abyss?

We wanted to create something that was horror-inspired, but not necessarily outright horror. We looked to Silent Hill and Junji Ito for inspiration in building strange and eerie spaces—places that feel uncomfortable even when nothing horrific is happening, building a sense of oppressive tension.

I'm a big fan of Mark Fisher's thesis on the eerie: he characterizes this as a "failure of absence or a failure of presence." The Abyss is predicated on failure of presence—those long stretches of silent corridor or vast, empty rooms, the nothingness where there ought to be something. Or else, the presence of strange sounds where there should be nothing—our sound designers have done a stellar job in threading subtle audio cues into these oppressively empty spaces, which cause an interesting cognitive dissonance as you move around. The overall effect leans more towards the uncanny than the horrifying: the sense that something is amiss, but you're not quite sure what. That's the kind of atmosphere we were aiming for.

Can you explain how the team designed unique weapons that fit within Luna Abyss’ mutated prison world? Are there any weapons you’d like to highlight?

When we were designing our combat system, we knew we would be limited by how many weapons we could create for the game—so our goal was to really create memorable weapons that all had specific uses within combat. Combat was set-up to have a rock, paper, scissors approach, forcing players to switch weapons to tackle certain scenarios. An example of this is with the Monarch’s Lance—a railgun-type sniper—that is used to stun enemies when their invulnerable shields flash purple. Players need to be aware of the heat the weapon is generating when used to ensure it doesn’t overheat, allowing them to use it at just the right moment. This approach guided all of our weapons, with each having their own unique uses in combat.

Corr: In terms of their visual design, they were almost entirely designed and iterated on in 3D. This is the first project where we've started handling most of the concept iteration work in 3D as it allows us to review assets as they would be seen by the player in-game.

The workflow for designing the weapons starts with an idea on how the weapon should feel. For instance, we wanted the Shield Breaker to simply feel “chunky” and “heavy” when firing. From there, we create some very loose sketches and then immediately move into 3D, modeling and kit-bashing a weapon concept together which we can quickly bring into Unreal and review as it would appear in first-person. We continue going back and forth between 3D and Unreal, iterating on the design and testing any moving parts until we're happy with the design. Once we've signed off on the design, a final 2D paint-over is created and then the final optimized game asset is built with the concept mesh serving as a super-accurate 3D reference.
Courtesy of Bonsai Collective
How did receiving an Epic MegaGrant help the team at Bonsai Collective?

The MegaGrant helped us in the early stages of development—we were able to make additional hires into our Art team earlier—this really supported us exploring art pipeline and asset creation. We were also able to offer additional company perks such as a desk and computer chair allowance, which supported team wellbeing.

Hill: The Epic MegaGrant really helped us achieve our original vertical slice as well and gave the team the space to explore what a benchmark vision of Luna Abyss could be. Without Epic’s support, I don’t think we could have built the game to the quality it is today!

Why was Unreal Engine the right choice for Luna Abyss?

Unreal Engine is one of the best engines for collaboration across all departments, making it the right choice for a small team with big ambitions. Moreover, Epic goes out of their way to make their tools as user-friendly as possible, with an intuitive interface, their proprietary visual scripting language Blueprints, and many many detailed tutorials and guides on the forum and information hub. Hands down the most accessible engine for developers and one of the most powerful on the market.
Courtesy of Bonsai Collective
Were there any Unreal Engine tools that were helpful in developing this title?

Blueprints scripting for certain has allowed us to rapidly prototype mechanics and test out features very early on in development. Aside from that, all of the built-in Unreal features like Navigation Mesh and Perception for our AI characters, which allow them to move through the world and react to the player essentially out of the box. Likewise, the animation systems in Unreal are really powerful, meaning we can implement and iterate on character animations very easily, without the need to develop our own tools or systems first.

What did the team learn in the process of creating Luna Abyss?

The team has learnt so much through the development of Luna Abyss, but I think the most important thing that we have learned is the need for good pipelines and clear lines of communication. For example, where the pipeline was well-established in development, we have really seen how the process pays dividends in quality, whereas areas that perhaps need more improvement and thought have seen the greatest challenges to overcome. Growing from three team members to 16 plus, meant that pipelines that worked early on didn’t fit into a medium-sized development studio. 

Emery: One of the most surprising discoveries for us wasn't in-fact game development, it was the impact that operational management had on other facets of our games development. Recruitment pipelines for a mid-sized team were things that grew with us along the way, and on reflection, it's something that we need to commit more time to when we move into the future.

Thanks for your time, where can people learn more about Luna Abyss?

If you want to learn more about the game or the studio, there are a variety of places you can find below.

    Get Unreal Engine today!

    Get the world’s most open and advanced creation tool.
    With every feature and full source code access included, Unreal Engine comes fully loaded out of the box.