Lunar Mercenary


The gameplay of Lunar Mercenary mainly consists of exploring space and destroying enemy spaceships. The player can control the spaceship using standard first person shooter controls.

During the course of the game, the player gains access to different kinds of weapons which he or she can use to defeat the enemies.


  • Space Shooter Game
  • Created in 10 weeks half-time
  • Created by three level designers, five programmers and four artists

My Contributions

  • Level Design
  • Created two levels
  • Created a space shooter prototype using Unity
  • Created various scripts for exporting scenes in Unity into a readable XML-document
  • Created a script which exported missions and objectives into a readable XML-document
  • Filmed, directed and edited a developer diary
  • Balanced the manueverability of the spaceship

The Team

Design Philosophy

This was the first game we created at The Game Assembly during our second year. This meant that the people we worked with during this project would be the same people we worked with during the remainder of our time at the school. It also meant that many of the things we did in this project would later be reused in our other upcoming projects.

We had ten weeks to work on the project but we wanted to have all of the features needed for the game to function properly ready by the fifth week. Therefore, getting the core functions of our own 3D engine working as soon as possible was a priority. This would give us a solid foundation for the game, paving the way for polish later on.

We knew we wanted to create a space shooter which would first and foremost feel good to play from the gamer's perspective. Things like story and lore was initially not prioritized, making sure that everyone on the team was directing their focus on what was necessary, e.g. the gameplay.

A mockup of one of the environments in the game

From Unity to XML

In order for us to create levels for our space shooter, we needed some kind of engine to work with. The programmers already had their hands full making their first game engine, so making an editor as well, such as Unity or Unreal, was out of the question. There just wasn’t enough time.

We decided therefore to use Unity to implement 3D assets and build levels, and then export that level with all of the props and their positions using a C# script into a readable XML-document. I was in charge of modifying and maintaining the script, but the ground work was laid out for me by Henrik Sandin, a level design student from my class.

The prototype that I created using Unity

Part of the script that we used to export levels from Unity to XML

Preparing a Prototype

Knowing that we would want to test our levels once we were finished with the ground work, I scripted and created a space shooter prototype within Unity during the first two days of the project. After that, we level designers could move around our levels, shoot three types of bullets and destroy asteroids without leaving Unity. This enabled us to early on get a sense of how big our levels were as well as how they felt in game, before the game was created.

Later on I created a script that exported in-game trigger boxes (and objectives connected to them) from Unity to XML.

Spotting Flaws and Fixing Them

Having never created space shooter levels before, I initially struggled to create levels that were fun for the player. My levels lacked verticality and they felt really empty. The quality of the gameplay suffered because of it. In order to solve this, I decided to look at other games I liked and found that many flight simulator games had similar core mechanics to the ones we had, but their games were heavily polished.

Using those games as a reference, I reimagined and drastically changed the layouts of my levels for the better. After these changes, the game had a faster pace and felt much less linear. This was mostly due to the way missions were introduced to the player, dynamically and with the flow of the level in mind.

The missions in the game were introduced to the player dynamically

An example of a focal point in one of my levels

Perfection Through Iteration

Another challenge we were faced with was getting the speed and manueverability of the player's spaceship to feel good. I was in charge of tweaking the XML-documents related to those things and I had to heavily rely on feedback in order to find problems with the movement of the ship and iterate the documents based on that.

Eventually, after extensive testing and tweaking, we ended up with a spaceship that felt responsive enough to make the player feel like he or she was in control, yet fluent enough to make that player feel like he or she was in space.

The developer diary template that I created

Shaping Focal Points

One thing that we noticed people had trouble with in our levels was navigating through them. We tried to solve this many different ways, but we found that guiding the player using focal points was the best solution to the problem.

The focal points in themselves consisted of  bigger asteroids which formed some kind of recognizable shape. Using those shapes, the player was able to get a sense of context in the level which solved the issue with navigation.

Making sure the spaceship feels good requires testing

Developers, developers, developers!

Towards the end of the project I also created a developer diary during my spare time. One day, after school, I filmed a bunch of interviews with the team members where they answered questions about their design philosophies surrounding the game.

After that I edited the footage, added some music and finally uploaded it to YouTube.

Special thanks at the end of the video is dedicated to Max Forsberg since he originally came up with the idea for the video.

Closing Thoughts

I had tons of fun working with this project and I loved being given so many responsibilities. Exporting levels from Unity, using the modded C#-scripts that I was in charge of, was something that we decided to use throughout our second year at The Game Assembly.

The levels produced by the level designers in the group were well recieved by the people who played our game and I received a lot of positive feedback about the spaceship's controls. My team members also appreciated the developer diary I put together, so hopefully I will have time to make more of them during my spare time.