Niklas Briselius

Level Design | Scripting

Scripter - Level Designer 


Introduction

BattleTank is an Arena game where the player will try to take out enemy AI tanks and turrets to win the game. The gameplay involves moving the player around the environment, killing enemy tanks and turrets while avoiding running out of ammo and health. BattleTank is made by Andreas Gustafsson and me. The project was created by us during the course of a month. The purpose of this project for me as a level designer was to script and design a nice game with good game play while my colleague did C++ programming for the AI and player.

Major Features

An input system that handles movement and combat.

Projectiles with physics that affects the world.

A winter environment, with specific points

A damage and health system

An AI system that uses the navigation-mesh.

Start Menu, UI and pausemenu

Specifications

Created in four weeks

Using Unreal Engine 4.17

All models are from the Epic Games market place

Collaboration Project

 

UpdatedVersionHomepageCloseUp.png

How battle-tank came to be

In the summer 2017, Andreas(Student on Malmö University) approached me to help him work on a project for his education on Malmö University. The project was due on September 1st as he was about to show it on an exhibition in Malmö University. We wanted to create a game that was easy to test for all visitors that were coming by Andreas stand. I think it was a big challenge to create a game that was about to be displayed to a lot of people but at the same time a good opportunity to recieve feedback. We decided to make an Arena Game with Andreas focusing on C++ AI while I focused on Scripting, Environmental Design and Gameplay

Project Goals

Create a project that is easy to pick up and play in 3-5 minutes.

Create a project that showcase efficient collaboration between a Designer and Programmer

Challenge myself to create a design that is a good showcase for an exhibition

Challenge myself to learn new aspects about the Unreal Engine

Enjoy creating a game with a friend!


Pre-production and Planning

Since I had a tight deadline I wanted to get the project rolling as fast as possible. We settled on creating an arena game involving tanks. I planned and started to look at how we could do this well relative to the time we had to do it. I already had a modeled tank so we started to work with it and around it.

The layout for the map came at an early stage after paper designs and top down designs in Photoshop, soon after this I looked at assets we could use and relative to this we also chose the setting. After I was remotely happy with the design I started to othe level. Now we had an arena environment good enough to test the tank, the AI and the physics.

Image on one of the later paper/Photoshop designs. Normally I start my work on paper, drawing some of my ideas than I move to engine to get a check on how big I want the level to be. Then I do a top down in photoshop that I will work after.

Image on the finished level in top down view. You can notice that I've added some roads a lake and a forest patch in the middle of the map. I've also tighten up the map compared to the paper design. But overall the design is very similar.


My work as a Level Designer

Designing the world

To create an Arena game it was important to create boundaries for the player, since arena games is about wiping out all enemies in a specific area. As the game setting was a winter landscape I made mountains, frozen water and a forest as boundaries for the player. 

The most important thing regarding the level design in this project was that the levels should be easy to play and traverse through, but still feel like part of a larger world. The design was based on a gameplay of 3-5 minutes, so I wanted the player to feel like it was in control of the tank and be able to figure out the environment fast. To solve this I created roads, letting the player know where to find most of the turrets and tanks and also pinpointing some landmarks.

The environmental design was based on an abandoned village somewhere on the north coast of the Ural Mountains in Russia. I decided to have some kind of landmarks in each corner of the level, The landmarks were a lighthouse, a rock formation, a tunnel and an electric tower.

My main focus was to make player be able to detect the level and terrain and traverse through it by detecting enemies and roads. I had some problems with the terrain that I will explain further down the page under the Main Problems section.

The lighting, post processes and fog were the last things I did with the level, and learned a lot from diving into the second grade at the game assembly. I think I managed to create an environment that immersed the level design and made the level easier to play and be able to complete in 3-5 minutes. The game is in itself really simplistic but most of the comments we got on the game was that it was fun and beautiful.

Here are some screenshots from the working process. One image were I'm looking at the lightning and size of the map. Some tests with the tank and the scrips and one just to help Andreas try out the navmesh and UI. 


Node based scripting

Tank AI Component

Once Andreas basic systems were in place and somewhat finalized, it was a matter of iteration and optimization to make everything stable and expandable. I did the node based scripting from scratch with help from tutorials and some scripts in cooperation with Andreas and his C++ code.

Here are some of the scripts explained, click on them to make them larger:

Movement Input and Camera Swapping

Balistics Input Binding


Main Problems

Traversing the terrain

Regarding the level design, a big problem we hit at the end of the project was that there were some physics problem with the tank in relation with the environment. We had managed to get the physics for most of the objects to work really well but the tanks physics did not like to much variation in the terrain, we quickly tried different solutions quick since we had the deadline to meet, but I settled on solving this problem by flattening the terrain and adding much foliage to cover that there was not big variation in the terrain. This made the game not feel as realistic as we wanted but we wanted it to be finished in time, which we did and the result was good and accepted by everyone playing the game in the exhibition.

Collaboration over the web

Andreas and I are good friends but we don't meet up as often and we don't live in a place where we both could sit and work together to make the work and the workflow as optimal as possible since Andreas is not a student at The Game Assembly. We had to collaborate over the web using GitHub and Google Drive. During this busy month we created the game we bumped into some problems. My first problem was that I’ve never worked with an unreal project also containing C++ code. Andreas had to explain the setup to me and which versions of visual studios that I had to download. We also had some problems regarding the version of the Unreal Engine with me using 4.16 at the start and Andreas later converting to 4.17 making us both lose some work hours setting up the project in the right ways. Overall I think collaborating over the web was a good experience, since we are good friends we figured out eachother's workflow and managed to get our collaboration work well and efficiently.


Closing thoughts

With the time limit I had, I’m very happy with the results and also the results at the game exhibition with lots of people trying out the game. It was nice to make a game that you knew that people were going to play making it a lot more exciting and longing for feedback. I found myself delving deep into some areas in Unreal that I’ve never ventured before. I’ve made some fixes now after the exhibition based on feedback from some players and since I’m more comfortable in unreal now I think I will continue polish this game during the summer again to fix the problem with the terrain and making another map. I feel like I now can be confident in my abilities to do Node Based scripting, level design, environmental design and collaboration. This project opened up some great possibilities and new directions for me with my level design. I can now be confident in my ability to develop my skill set independently and take responsibility for my own learning process.



Niklas Briselius © 2022 | briselius@hotmail.com