Gameplay GIF

Automatoys (2022)

Genre: Casual, Platform, Puzzle, Simulation

Platforms: iOS, Android

Engine: Unity

Roles: All except music and sound

A personal solo project begun in 2018 and published independently (as Idle Friday). Each Automatoy is a unique, mechanical obstacle course. Tap, turn, tilt and spin the contraptions to help each ball hop and roll its way to victory.

About the project

Early drawings in Procreate app

Proving the concept

The project began in Procreate on iPad, drawing ideas for obstacles and contraptions that could be used in levels. I then tested them out in Unity to make sure they were feasible and crucially, not janky. Any mechanic that worked was permitted through to the level designing stage.

Testing speculative collision in Unity

Level design

The earliest level prototypes were so spindly that judging object depth was sometimes impossible, and designing around this was going to be a struggle. I quickly realised that levels were easier to both read and design if there was a central solid part on which the obstacles were laid out.

Various early level designs

Another scrapped idea was rockets, which the ball would use as entry and exit points, to ascend from level to level. I found that they dictated the level design too much, and eventually opted for a dispenser and simpler goal, which also made more sense thematically.

Playing with shapes

Timelapse of level 4 design

The general shape of the route for the ball

When designing a new level, I began by playing with primitives - cubes, spheres and cylinders, until I had an overall shape with an interesting form and silhouette. I’d then consider what each section might be - a tilting maze, a circular maze within a dome, a rotating disc with a grabby arm - and so on. I’d begin to chisel a path through the structure, picking a spot for the dispenser and the end goal.

The general shape of each level is different, but the contraptions are often repeated. This saves time but also helps with visual consistency and establishes a common appearance across all levels, as though manufactured using the same moulds and parts.

Gameplay vs rendered colliders in Unity

Play > Tweak > Repeat

Once a level worked in theory, I added all the physics colliders, imported them to Unity and hooked them up with scripts.

This made iterations after playtesting time consuming - the most efficient way to tune the difficulty curve was to tweak the timings and sensitivities of each obstacle.

‘Soft fail’ checkpoint mechanic

Checkpoints, sort of

Losing the ball means restarting the level which, though reminiscent of its retro predecessors, felt harsh. Levels needed checkpoints but I didn’t want to teleport the ball which felt off-theme. Instead I introduced ‘soft’ resets after particularly tricky bits, which only set you back a bit.

Levels at various stages of development

Final levels

Level timer and corresponding star score

Keeping score

Wanting a ‘best time’ system and minimal interface, I compromised with a clock that counts your score down from 3 stars based on specified time thresholds (this was inspired my trophy system in INKS!).