Esker
Description
An endless runner about flowing through a city, floating on a holographic rail. Smoothly land on the shop signs passed by to keep up speed, and balance the safety of height with the risk of speed to push for the longest distance travelled.
The players starts the run many stories up above the city, travelling forwards away from it on a hologram coming from their feet. They can angle themselves downwards to the city floor to gain speed, letting them gain even stronger speed boosts. They also can instead angle themselves up to the sky to expend some speed for height, giving more room for error without hitting the city floor.
The player cut off the rail to drop through the air and land on shop signs. Landing on shop signs on the builds passed by will grant a speed boost based on how smoothly they landed on the signs curve, and how far they travelled off the rail before landing. Landing poorly will instead give a speed penalty, making it dangerous to attempt risky landings.
The player’s required speed to keep the rail up is always increasing, pushing them to take riskier landings at higher speeds. When this becomes too much and they drop to the city floor, the run will end and they can try again to beat their distance record.
This game has reached an alpha stage of development where the primary gameplay loop is fully implemented with placeholder visuals. Plans to expand this with larger scale goals and refinements to the core gameplay are in place for when it is deemed an appropriate time to continue work on this project.
Goals and Achievements
Programming
Bezier Curves
Bezier curves were implemented to give perfect accuracy to the shop signs collision and curve angles. Methods for these curves have been created to utilise the constraints of their use case to mitigate potential performance impacts they could otherwise cause. They have tools to make creating editing them as easy and intuitive as possible, including automated hitbox sizing.

Procedural Building Generation
The shop signs positions are an important variable to the games difficulty, and so buildings were made to be procedurally generated where needed to fit a sign. Building blocks contain meta data to help construct better looking and more believable buildings, including ensuring an appropriate block for holding a sign is always paired to one. This also aid in breaking up the visuals, and the same system has been reused for the ground visuals. To make all this more performant, it utilises object pooling. This has been implemented to simple building pattern while the visuals are only placeholder, and room has been left to create more complicated building rules.
Design
This was designed to optimise for the feeling of flow, and in doing changes many of the core tenants of an endless runner.
- The player has control of their speed, requiring they instead keep pace rather handle a set one.
- Obstacles are proactive rather than reactive, allowing the player to skip signs they’d likely fail to land on well at the expense of missing out on the needed boost it provides.
- Obstacles can be tackled with varying levels of risk for varying levels of reward.
- The players success will directly feed back into the games difficulty, naturally raising to meet the players ability with higher speeds to try make jumps at.
It’s unusually unrestricted gameplay style for an endless runner has left room for many ways to improve on the gameplay experience, such as challenges for playing in certain ways, or speed boots for riding in smooth waves as opposed to more carefully aimed lines.
Project Details
Role: Programmer and Designer
Group Size: 1
Game Engine: Unity
Code Language: C#
Project Purpose: Acedemic