top of page

TOWN TO CITY

GAME DESIGNER

Project role

UNREAL ENGINE 5

Engine

24 MONTHS

Duration

Build an idyllic 19th century Mediterranean town and help it flourish into a prosperous city. Freely place and customise each element to create the perfect home for your growing population in this cozy city builder.

ABOUT

StationToStationAbout

​Shape Your City

Truly grid-less building sets you free to lay out your town however you like. Plan out carefully ordered rows of houses and city districts, or grow outwards organically with residences, amenities, parks and plazas connected by winding streets and alleys.

​

Unleash Your Creativity

Beautify your settlement to your heart's content with a plethora of customisation options. Set up lighting, plant flowers and wooded parks, and decorate houses and buildings to complement or contrast. With gorgeous voxel graphics as a base, it's easy to create something beautiful that you'll want to capture with the in-game photo mode.

​

Nurture Your Community

As your town flourishes, you’ll need to meet the needs of your growing population. Provide amenities that will cater for everyone – from workers to artisans and the bourgeoisie – alongside specific requests by individual residents. Get to know each person as they arrive in town and watch them settle down to form new families in the homes you built for them.

​

Grow Your Economy

Assign workers to jobs, research new buildings and decorations, and boost your sleepy settlement into a bustling centre of commerce. As you expand beyond the bounds of your first town, you'll pursue new developments in farming and tourism by building new towns, all connected by trade and travel routes.

PROJECT ROLE

StationToStationProjectRole

From February 6th 2023 on I have been part of the team creating Station to Station at Galaxy Grove. At this point the game was already in development for a few months by a small team. My first 4 months on the project were as part of an internship for my graduation track, after this I stayed on the team full time. My main responsibilities were:

As a game designer...

  • Creation of level design pipelines and tools to assist in level design

  • ​Full ownership over the level design of the 40+ levels main campaign

  • Extensive playtesting, data gathering and data analysis of difficulty through campaign

  • Creation of set-ups for the custom game mode

  • Technical implementation of settings menu

    • Graphical settings, Screen settings, Audio Settings, Control Settings​

  • Technical support in implementing of audio assets and music​

CAMPAIGN

StaionToStationCampaign

Procedural generation or handcrafted content?

My first task on the project was to determine the direction for the main campaign. Should levels be procedurally generated or should the levels be created by hand by me, the level designer. To determine the answer to this question I made a set of procedural levels and a set of handcrafted levels which were both tested internally and with a few external testers.

image.png

   Handcrafted experience

image.png

   Procedural generation

Creating a procedural level

The creation of procedural levels happened entirely in text files. Here you would set the level size, level biome, buildings, cards and props. The game then generates the landscape and buildings positions.

However, this would often lead to annoying or illogical buildings placements.

image.png

   Notepad++ level file

The switch to handcrafted experiences

Because of the problems with the procedural levels, the handcrafted levels were chosen as the victor. These handcrafted experience levels were instead created with a combination of the text file, an image file and an editor tool created by co-worker Jordi van der Hulst.

 

Creating the levels allowed me to ensure the experience wouldn't be frustrating:

  • Enough space around buildings to place your stations

  • Buildings spread evenly through the map

  • Pathing designed to get the most out of the cards players can use

  • Visual consistency between levels in regions


The image files were created in photoshop, utilizing color channels to pass along different types of information so the game could turn it into a level:

Red Channel: Height map

Green Channel: Water
Blue Channel: Biome map

To aid in the process of creating these level texture images I created custom photoshop brushes to help detail cliffs edges, biome transitions and plan buildings layouts.

image.png

   Custom dithering brush

image.png

   Editor Tool for buildings

Playtesting and data analysis

Throughout the designing of the campaign I did large scale analysis of playtesting data. To make this task manageable I set up Google Sheets documents that would automatically take the data and calculate useful statistics and compile lists of data on specific topics. The data was automatically gathered and sent to a Google Sheet by the game using a small end of level survey.

​

By using this method of data analysis I could easily...

  • Find problematic levels for players

  • Find balance in optional challenges

  • See player retention

  • Establish difficulty curve

  • Find the fun

   Playtest data analysis

Comparison Analysis

I also created a sheet to quickly compare the feedback from different build versions. This allowed me to see whether my iterations to the levels were actually having a positive overall effect on the campaign.

With 3000+ raw data entries received from the gameplay surveys this method of data analysis was crucial to understanding the difficulty progression of the levels and making targeted iterations for the betterment of the game.

   Example received raw data

   Comparison Sheet

SETTINGS MENU

StationToStationSettingsMenu

Graphics settings

A large part of my work on the menu went into the game's graphics settings. While most of the graphics settings could be saved through the built in GameUserSettings system of Unreal Engine, I did have to create some of the environment and camera settings myself. These were saved and made through a struct, created in C++, that was then included in our save files. 

Another important part of this menu was the User Benchmark settings. This would automatically tailor the graphics settings to those suitable for the player's system. For this system to work well I performed data analysis on gathered benchmark results on a wide variety of high and low end systems. Compiling all this data into the sheet helped determine the correct values to ensure great performance on the auto detected settings in most user cases.

   User Benchmark Results

   Graphics menu in game

Keyboard settings

Another complex system within this settings menu were the control rebind options. For this I blueprinted a system that would allow the rebinding of the controls in the game. This system was created from scratch by me using the Unreal Engine GetInputSettings nodes.

To push the quality of my work as high as I could I added multiple quality of life features to the menu such as:

  • Overwrite check: Warns the player when a key is already in use and if overwritten automatically unassigns the old key​​

  • Deleting keys: Hover over a key and press 'Delete' to instantly unassign the binding

  • Disabled keys: An array of keys that can not be found such as F11, which is already the full screen toggle

image.png

   Keybind overwrite check

   Keyboard menu in game

OTHER WORK

StationToStationOtherWork

VFX implementation

I also spent a short while implementing VFX for our game. Here my work consisted of blueprint implementation of Niagara effects created and tweaked by one of the artists on the team. One of the most complex VFX systems in our game is the one of the smoke on our locomotives. The intensity of the smoke is affected by the angle of the locomotive. When the train goes downhill there is never any smoke, when the train goes uphill the smoke is always on and intensifies based on angle of the slope. When the train is going relatively horizontally it occasionally puffs out some smoke

Audio implementation

I also performed in a supporting role for the implementation of audio on the project together with audio outsource company SonicPicnic. For this I implemented audio in both our UI and various blueprint actors. 

Lisa van Beurden

bottom of page