Sketchman Run
Professional projects | | Links: Android | iOS

Overview
Type : Professional
Technology : Unity
Introduciton
My first professional project was a promotional game for la Mobilière a Switzerland Insurance company during my internship at Sunnyside games.
The game is a 2D infinite runner, our character constantly running to the right of the screen, you need to collecte coins and objects while avoiding obstacles. Each level has a different location and a game mechanic linked to the different locations. The game takes its design inspiration from the famous la Mobilère ads, where we see matchstick characters drawn on graph paper in embarrassing situations.
You can watch the trailer to get a better idea of the game.
Gameplay
The game consists of 7 levels with associated gameplay:
- The city: the character runs and can jump into a bubble to take him up into the sky. Simply jump out of the bubble.
- The countryside: the character rides a bike, and can make a jump, but if you make a double jump, the character comes off his bike to collect coins on the platforms in the sky.
- The mountain: the character is on skis, and can do a jump and a double jump for a salto.
- The lake: The character swims in water, and when jumping instead of going up, he dives deeper into the water.
- The store: The character runs with a shopping cart, you can jump and dash with it. Extra bottles accumulate in the caddy throughout the level, and are added to the player’s score at the end.
- The office: the character races the chair, jumping and dashing with it.
- The house: the character runs upstairs and sledges down the stairs.
There are 2 game modes per level:
- Normal mode
- Endless mode.
We start with normal mode, where the aim is to finish the level by crossing the finish line. There are pieces to collect, letters that form the word SKETCHMAN which gives a bonus pieces once completed. In addition, there are 6 collectibles specific to each level. Once the 7 levels have been completed, you unlock the endless modes, where the aim is to achieve the highest score, with difficulty increasing as you progress. In endless mode, the score is submitted on the Game Center and Play Games leaderboards.
When you’ve lost the party and run into an obstable, you come to the sinister screen, which refers to la Mobilière advertisement.
Development
A prototype with 2 levels was developed to convince the client. My task was to take over this proptotype and to develope the following levels and the rest of the game. I did all the system programming for the game, as well as the gameplay and UI integration. The rest, like the art, animations, game desing and level design, was done by other people.
To create the proptype, we used a plugin available rom the asset store, the Infite Runner Engine by more mountaine. It lets you quickly set up a functional game, and takes care of basic elements such as character controllers, spawners or objects pooling. But it also allows you to override and customize everything.
The game is made up of 4 main scene types: the menu, loading, normal levels and endless levels. In the menu scene, you’ll find the selection of levels in normal and endless mode, as well as options, credits and the list of achievements. Once you’ve chosen a level, you’re taken to the loading screen. This screen changes depending on which scene is loading at the same time. If it’s a game level, a tutorial is displayed, otherwise it’s a generic loading screen. Once loading is complete, a large button appears to start the game.

hierarchy of the scene of the city level
For the levels, their structure is all the same, based on the components of the more mountain plugin. The two main components are the level manager and the level generator. The first manages all the level logic, such as the spawn of the sketchman letters, power ups and player death. The level generator manages the chunk pools and their chaining.

Example of a city-level chunk
Each level is made up of a multitude of chunks. Each chunk is a prefab containing level design elements such as collectibles and obstacles. Their size can vary, but they always have a start and end marker (in blue and red on the image). These markers allow the level generator to connect them together in sequence.
To avoid having to instantiate chunks all the time during the game, a pool is created with all the chunks when the level loads. The chunks are then removed from the pool to be displayed. Once out of the screen, they are hidden and returned to the pool to be reused.
The difference between the normal levels and the endless levels is in the level generator. Where we’ve changed the order and sequence of the chunks and added more difficult chunks.
Distribution
The game is available on Android and iOS, I configured the game and uploaded the game to Google Play Console and App Store connect.
In addition to the basic version of the game, a standalone version of the game has been developed. This version contains a single level that can be chosen in advance, and includes an entry form for the local leaderboard. This version of the game has been used for promotional purposes by la Mobilière to organize competitions and prize draws. This standalone version was available on Android tablets or on the website with a WebGL version and a Django backend.