Fey Foray

Trailer for “Fey Foray”, a 7 week long school project, created with Unity

Team size:
6 team members, 3 designers

Project length:
7 weeks

Contribution and role:
Gameplay design, content design, scripting, general design

Fey Foray is a lane warfare game where the player commands the native fairy units to stop an invasion of alien robots. Summon your troops onto the different lanes and stop the onslaught of enemies and push their base back to where it came from!

The game is developed during a game project at FutureGames 2021 and is made with Unity.

Core loop & player agency

To keep the scope small the team focused the first week of production to narrow down and focus different game ideas. The result of a carefully planned concept helped us a lot to keep the game within scope and in return gave us a game where we could put most of our focus as designers on the games core loop.

The core loop of the game is fairly simple. The player summon units on a selected lane, the units walk one direction and starts fighting with enemies in the same lane.

To expand territory the player can summon a seedling who take over tiles, making them ‘friendly’.

On certain tiles the game summons energy rifts, a resource gatherer, that seedlings can convert into a steady income. …and so it goes.

Since the game is based on a rather simple core the question about player agency became very important whilst designing the aspects of the game. We wanted the mechanics to be straight forward and simple to learn. Because of the games mechanics where you more or less just summon units, and the game does the ‘rest’ for you, we put a lot of attention on trying to make the player feel like it has influence over what is happening in the game.

Player agency was implemented through having a dynamic camera, more or less free movement and active interaction to gather resources. A lot of testing went in to how to make the game feel as if the player choice mattered more than just the choosing of a lane. Most of our tries to create player agency were scrapped and we found a middle way where the core loop takes up the most space.

Scripting in C# & HDRP custom passes

In this project we did not have any programmers and me and another team member got to do all of the scripting. It had been a long time since I scripted anything ‘advanced’ in C# so the tasks and functionality took a lot of my focus. I ended up doing scripts for the GUI, sound and level manager, and a resource manager.

GUI scripts
(click for more)
Tooltip system
(click for more)

We started the project as an HDRP project in Unity and was soon stuck with shaders not working accordingly. I took it on myself to find a way to solve outlines for lanes and troops. After an immense time of reading up on the HDRP settings and its custom passes in Unity I managed to find a way to properly show a custom outline shader as a custom pass.

Outline shader used for lane highlighting and unit outlines.

AI design

Designing an AI system for the game was a tricky challenge since we wanted the AI to feel responsive to player actions without being too much of a ‘fortune teller’. The first implementations of the game included a direct response from the enemy which made the game feel unfair. To solve this I designed a system that is supposedly to act as a ‘player’ rather than a response purely based on player input.

The core of the AI is based on 3 states and a set of responses to the player actions. A combination of the three states creates a feeling of the AI being responsive but not ‘god like’ in its choices and behaviour.

Initial idea of how the AI system would look like and what properties its behaviour have to consider.

One of the parameters for the AI to blah blah…..

Concept system of AI response to lane occupation


Want to know more about the project? Contact me!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a website or blog at WordPress.com