Antonia Kiili

Game Designer & Gameplay Programmer

Engine: Unity     Language: C#
Duration: 7 weeks     Team size: 10

Ley Lines is a first person shooter/platformer in which you use your weapon not only to vanquish enemies, but also to solve the puzzles and progress in the story. Using a vast movement-set you can swiftly traverse the world both horizontally and vertically, use the environment as well as your gun “Ra” to open hidden path ways and bounce far out of the reach of enemies.

Nominated for Best Technical Execution & Best Art
in Swedish Game Awards 2018

My Role: Game Design & Scripting

I started with prototyping the ammo types and their interactions. After several iterations we settled on the idea of the game and I branched out and worked mostly on the interactable objects – both designing and scripting them. But before I did that we discussed the technical architecture and built the base of the ammo- and interaction systems by pair programming.
WHat I Learnt

When this project started in early 2018, I had roughly 3-4 weeks experience in writing C#( I’d only been blueprinting for about a year ). In the prototype stages my production rate was slow, but I got a lot of help. That help improved my skills very fast and my production rate increased throughout the rest of the project.

I learnt that inheritance can be bad, especially if you overuse it and don’t keep your base classes clean enough. Talking about code structure is important when working with others. I also learnt to not be afraid of refactoring if needed since it saves time in the end.

The interactable Object System

I aimed to make fewer, well polished objects with more interactions instead of putting something unpolished into the game that doesn’t have enough gameplay value. The ice and fire ammo complements each other well because you can change the state of an object with one of them and then change it back with the help of the other. The default ammo is mostly used for basic interactions and activation of objects.

This is the base class that all the interactable objects inherits from. It contains basic functions and variables, I tried to keep this class as clean as possible.

Spikey Block
An environmental hazard that doubles up as a traversal element by being able to become a platform in its frozen state. To make it easier for the level designer it is possible to set the original state of each block in the inspector.
Contains functionality for the movement of the spikes and the states.
Contains functionality for damaging the player.
Gas Pipe

An Environmental Hazard that can damage the player. In the inspector you can set the interval of the fire, as well as the original state.

Contains functionality for setting the states and intervals of the fire.
Contains functionality for damaging the player.
Breakable Wall
This is an Environmental Obstacle. This wall always explodes away from the player with a direction of -1 or 1, calculated with some simple math.
Contains functionality for the explosion of the wall.
Power Supply

This can be “connected” to any interactable object by setting a reference in the inspector, such as the door and moving platform.

Contains functionality for activating and deactivating the power supply and its connected objects.

This is just a basic door that can be activated through the power supply, or be used by itself.

A basic elevator that can be used by itself or connected to a power supply. It’s customizable in the inspector, so that the level designer can set the movement speed and height themselves.