top of page

Proudly Produced
for
UCL BA Media Degree Show 2025

100%1

Original

No Internet Assets

Verlet Voyage

A playful physics adventure where every bounce matters.  Join Golf, a cheerful orange ball, as he embarks on a heartwarming journey to rescue his friend Orb. Powered by a fully custom Verlet physics system, this children-friendly game turns collisions, stretches, and swings into a delightful puzzle playground. With its soft 3D-to-2D visuals and intuitive interaction design, Verlet Voyage invites players to explore, experiment, and feel the joy of motion.
ChatGPT Image May 3, 2025 at 03_54_50 PM.png
My Role
Game Designer
​Programmer
Individual Work
Aaron Wang
 
Tags
Game Project
CG Programming
​Interactive Media Design

 
For the UCL Degree Show in May 2025
Associated with UCL
University_College_London_logo.svg-2.png

At a Glance

This Game Features a 100% Custom Physics and Collision System (NOT Unity Physics)
with an all-age friendly 3D-rendered-2D Style

Project Preview

Verlet Voyage is a physics-based children's game that blends playful interaction with technical precision. At its heart is a fully custom-built Verlet integration system and handcrafted collision engine, enabling objects to stretch, bounce, and react with lifelike responsiveness. Players control Golf, an orange ball, on a quest to rescue his friend Orb, navigating a soft-rendered world built around motion, cause, and effect.

​

Designed in a stylized 3D-to-2D  visual language, the game encourages intuitive exploration without relying on instruction. Through affordance-driven design, players are guided by visual and physical cues—invited to experiment, fail, and discover as they go. Each level presents not just a challenge, but a small physics playground.

​

More than a game, Verlet Voyage serves as an artistic and technical artefact: exploring how emergent systems, procedural response, and narrative warmth can combine to create emotionally resonant interactive experiences. Built with accessibility and wonder in mind, the project stands as both a creative exploration and a research-led design experiment in digital play.

Project Walkthrough Video

Research

The research foundation for Verlet Voyage draws upon the intersection of physics simulation, affordance theory, and interaction design. The goal was to understand how a custom physical system could act not only as a mechanic but as a narrative and expressive interface.

Theoretical Context
01

The conceptual foundation of Verlet Voyage is rooted in interdisciplinary theories that bridge design, psychology, and computational aesthetics. This section outlines the key frameworks that informed both the technical and experiential dimensions of the game—from the use of affordance to guide intuitive interaction, to emotional design principles that shape expressive feedback, and the MDA framework that connects simulation mechanics with emergent, meaningful play.

Affordance Theory

Inspired by James J. Gibson's (1979) ecological psychology and Donald Norman's (1999) application in HCI, the game investigates how visual and material cues suggest possible actions, particularly in nonverbal interfaces designed for children.

Emotional Design

Drawing from Norman’s work on affective computing, the project explores how systems can emotionally communicate through behavior and response.

MDA Framework (Mechanics–Dynamics–Aesthetics)

Adopted as a lens to link low-level simulation (Verlet mechanics) to emergent play strategies (dynamics) and emotional resonance (aesthetic experience).

Comparative Analysis
02

Studied commercial games like Angry Birds, Getting Over It, and World of Goo to analyze how different physics models shape player agency and emotional tone.

Rigidbody Physics (Unity Built-In)

1

Verlet-Based Physics (Custom Implementation)

IN THIS PROJECT
03
2

Unlike most Unity games that rely on rigidbody physics, Verlet Voyage uses a completely custom simulation framework:

  • Verlet Integration: Used to simulate particles and linked points that retain natural movement over time.

  • Constraint Solving: A custom system that ensures positional integrity while allowing for flexibility and deformation.

  • Collision Detection: Custom logic that accounts for softness, elasticity, and impact behaviour without native colliders.

The simulation was tuned through multiple iterations to feel light, bouncy, and forgiving—an intentional choice to make the game feel joyful and safe for younger players.

Design

The design phase of Verlet Voyage was a deeply integrated, multi-faceted process that brought together system engineering, aesthetic development, and interactive storytelling. It aimed to create a holistic player experience in which motion, emotion, and spatial logic work in concert to engage and guide the player. From foundational mechanics to expressive UI, each layer of design contributed to building a cohesive, emotionally resonant, and technically rigorous physics-based world.

00
Core Design Principles
Player-Centered Interaction

Every design decision was made with the user experience in mind. The game invites players—especially children—to interact freely and intuitively, without reliance on text or tutorial. Simplicity in control contrasts with depth in physical response, creating a playground of discovery and agency.

Physics as Expression

Rather than using physics for realism alone, Verlet Voyage treats motion and material behavior as communicative tools. Every stretch, bounce, and wobble is designed to feel alive and intentional—guiding the player through cause and effect without needing language.

Emergent Play and Affordance

Levels are constructed to suggest multiple solutions, encouraging creativity and problem-solving. By embedding affordances into visual and physical cues, players are empowered to interpret the system on their own terms—creating their own path through experimentation and observation.

01






 
Game Mechanics Design

Players control the orange character Golf by dragging and releasing in the direction opposite to their intended movement—similar to a slingshot mechanic. This system is entirely driven by a custom Verlet physics engine that simulates tension, elasticity, and soft-body rebound.

From a game design perspective, Verlet Voyage is a physics-based puzzle adventure built for intuitive, tactile interaction. Players guide an orange ball named Golf across handcrafted levels to reunite with his friend, Orb—each stage unfolding through expressive motion, emergent puzzle-solving, and soft-body deformation. Designed for children aged 6–10, the game blends stylized 3D-to-2D visuals with a fully custom physics engine to encourage curiosity, experimentation, and emotional connection without using text.

Graph_edited.png
image.png

The amount of force is related to the distance the mouse is dragged.

Control & Launch System

​

​

​

​

​

​

Aim

​

Step 1: Aim
The player clicks (or taps) and drags from Golf's body. A dashed directional line appears, showing the intended launch trajectory.

Step 2: Tension
The length of the line represents the launch force. Longer lines mean more powerful launches, while shorter ones create small, precise nudges.

Step 3: Release
Letting go initiates a soft-body launch based on the direction and force vector. Golf deforms slightly on takeoff, then rebounds and responds to collisions naturally.

02
Level Design and Flow












 

The level structure of Verlet Voyage was carefully crafted to balance intuitive accessibility with escalating mechanical depth. Each level introduces one new affordance or physical behavior, allowing young players to explore and internalize core concepts through play rather than instruction. The flow of the game is intentionally non-linear in emotional pacing—alternating between moments of calm experimentation and focused challenge—designed to sustain engagement across diverse cognitive styles and skill levels. This scaffolding approach supports both creative exploration and structured problem-solving, fostering an emergent sense of mastery through soft-body physics interaction.

Level Flow.png

This diagram illustrates the overall level design structure of Verlet Voyage, showing how player engagement and challenge complexity evolve throughout the 10 linear stages.

​

  • The bottom timeline presents five level archetypes:

    • Introductory (Levels 1–2): Simple launches with forgiving layouts to establish confidence.

    • Bounce Fields (Levels 3–4): Introduce angular surfaces and ricochet mechanics.

    • Dynamic Arcs (Levels 5–6): Focus on motion prediction and curvature-based targeting.

    • Soft Constraint Zones (Levels 7–8): Deformation and elasticity as navigational mechanics.

    • Puzzle-Integrated (Levels 9–10): Combine all previous mechanics in more complex layouts.

​

  • The top graph tracks expected player engagement, based on internal playtesting.
    Engagement is intentionally non-linear—with peaks and dips—to mimic emotional pacing and sustain curiosity:

    • Highs follow successful discovery (Levels 3, 5, 7, 9).

    • Dips offer breathing room before introducing new complexity.

    • Final levels reach emotional and mechanical payoff.

Dynamic Particle

Untitled Project 6-2.gif

 Constraints

Untitled Project 8.gif

Anti-Gravity

Untitled Project 9.gif

Platforms

Untitled Project 5-3.gif

The game’s physics core begins with a simple dynamic particle system, forming the basis of motion and interaction. This system simulates position over time without relying on rigidbodies, allowing for soft, smooth, and controllable movement behavior.

Custom-designed constraints and collision logic allow for the creation of interactive platforms. These structures respond precisely to the player ball’s motion—bouncing, tilting, and colliding—to form the core puzzle mechanics throughout the game.

Anti-gravity zones and custom directional forces allow for playful, non-realistic movement. These areas let players launch, float, and explore vertically, creating surprise and delight while introducing spatial variation in puzzle solving.

Interactive platforms with constraint-based support offer flexible terrain that reacts to the player’s weight and motion. They wobble, deform, and spring—transforming the landscape into a dynamic puzzle space that encourages experimentation.

03
Visual and UI Design

The visual identity of Verlet Voyage is built around warmth, clarity, and playful softness—qualities that support the game’s goal of intuitive interaction for young players. The game’s stylized “3D rendered as 2D” approach creates the illusion of physical depth while retaining the accessibility of flat, minimal graphics. The result is a tactile, emotionally engaging world that feels both handcrafted and alive

Soft Geometry

The world is composed of rounded shapes—circles, arcs, and smooth curves—designed to reinforce the game’s elastic physical logic. Characters and environments reflect the soft-body simulation visually, guiding the player’s expectations about interaction and motion.

Smiling Orange Character on Checkered Background.png

Visual Cues

Bounce pads, deformable areas, and interactable elements are all visually distinct through shading, saturation, and geometry—eliminating the need for textual instructions.

​

Each UI button—whether for progressing levels, resetting a scene, or navigating menus—is icon-based with minimal text, supporting accessibility more players.

image.png

 Color Palette

image.png
Geometric Mood Board in Warm Tones.png
Mood Board with Playful Character.png

A consistent warm palette of oranges, yellows, and cream tones is used to evoke joy and friendliness. The contrast between the orange protagonist and the black friend Orb creates visual focus while maintaining harmony.

04
Sound Design

1. Collision Sound
This layer handles the auditory feedback from in-game physics interactions. When the orange ball stretches, bounces, or hits surfaces, soft elastic or bouncy sounds are triggered.
These sounds reinforce the physics system and help players intuitively understand the consequences of their actions.

2. User Interface Sound
Includes click sounds, pop effects, and level-clear jingles. These cues enhance usability by confirming player actions and offering emotional rewards through pleasant, responsive audio.

3. Background Music
Sets the tone for each level with calm, whimsical melodies tailored for children. The music supports the emotional rhythm of gameplay—shifting subtly across levels to guide focus and mood.

image.png

Production

Chart.png

The production phase of Verlet Voyage followed a technically progressive pipeline, beginning with the development of a custom Verlet integration algorithm. This foundational system powered the game's core mechanics and was extended to simulate soft-body particles and interactions. A bespoke level editor was then created to streamline level design and object placement directly within Unity. Finally, shader development and visual refinement brought the world to life, layering expressiveness and aesthetic clarity onto the underlying simulation.

01
Verlet Algorithm & Core System










 
VM.png

Core System

 

This diagram illustrates the core logic of our Verlet-based soft body simulation system, which powers the interactive ball mechanics in the game.

​

User Interaction

  • The User interacts with the system by dragging the mouse to apply force to the ball.

  • This force is translated into an impulse that affects all particles in the VerletBall, triggering motion and deformation.

​

VerletBall (Soft Body)

  • The VerletBall object is the central soft body composed of connected particles governed by physics constraints.

  • It is managed by the Verlet Manager, which performs:

    • Verlet integration to update particle positions;

    • Constraint resolution to maintain structure;

    • Collision detection with both static and dynamic elements.

  • After each update, the new particle locations are checked to determine whether the ball has stopped or needs further simulation.

​

Particle Environment

  • The Particle Controller handles all manually placed or drawn particles and constraints in the scene.

    • Static Particles (e.g. walls or pins) are immobile.

    • Dynamic Particles can be pushed or affected by the soft body.

    • Constraints define physical relationships (like springs) between particles.

  • These objects collectively form the collision environment.

  • During simulation, the VerletBall may collide with this environment, generating realistic deformation or bounce responses.

​

Simulation Flow

  1. User applies force → Ball receives impulse.

  2. VerletBall updates via physics (motion + constraint solving).

  3. Collisions are handled with particles/constraints.

  4. Particle positions are updated accordingly.

  5. The system loops until the ball stops moving.

​​

​​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​​

​

​

​​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​​

​

​​

​

​

​

 

​

​

​

​

​

​

VB.png

​

​​

​

​

​

​

​

​

​

​

​

​

​

 

VerletBall Simulation Pipeline

 

This architecture ensures that each frame updates the soft body realistically, accounting for physics, deformation, and external interactions. It allows the VerletBall to behave in a way that is:

  • Stable under extreme forces,

  • Visually smooth and lifelike,

  • Fully interactive with both user input and dynamic environments.

​

This flowchart represents how a Verlet-based soft-body object (VerletBall) is initialized and updated each frame during runtime.​
​​

​

Create VerletBall

  • The system begins by initializing the VerletBall, which is composed of multiple interconnected particles arranged in a circular shape.

  • This includes defining particle positions, connecting them with structural constraints, and assigning mass.

​

Apply Verlet Algorithm

  • At every frame, the Verlet integration algorithm is applied to calculate new particle positions based on their current and previous positions, gravity, and any applied force.

  • This method provides a stable and realistic motion model for soft-body dynamics.

​​​

​Particle Position

  • The updated particle positions are computed during this step, preparing them for constraint resolution and collision detection.

​

​Ball Constraint

  • Structural constraints are applied between particles to preserve the shape and volume of the soft body.

  • These include fixed-length constraints and custom-defined elastic behaviors.

​

Inflate Constraint

  • An optional inflation constraint enforces volume preservation by simulating internal pressure.

  • This ensures that the soft body maintains a round or puffy shape under external forces.

​​

Solve Collision

  • The simulation then checks for and resolves collisions, based on updated positions and constraints.

  • The process is divided into three key components:

          â–¸ Ground Collision

                   Ensures particles don't fall below the ground level or predefined vertical boundary.

          â–¸ Edge Collision

                   Handles interactions with static scene elements such as walls or user-drawn obstacles.

          â–¸ Dynamic Collision

                   Resolves collisions with other moving objects or dynamic particles in the environment.

 

 

​

 

 

​​​​​​​​

1
2
3
4
5
6

Iteration of Verlet Ball

History.png
Screenshot 2025-05-14 at 02.11_edited.jp
Screenshot 2025-05-14 at 02.11.42.png
Screenshot 2025-05-14 at 02.11.59.png

The development of the Verlet Ball underwent multiple iterations, each guided by targeted refinements in both form and function. Starting from V1’s centered algorithm, the project explored structural variation through V2’s radial expansion logic, which offered more flexible deformation but required greater control over stability. V3 introduced a basic UV texture to visually differentiate the ball, marking the transition from a purely mechanical prototype to an expressive character. Subsequent iterations (V4 and V5) focused on thematic integration—aligning the ball's appearance with the game’s tone and environment. These visual iterations were accompanied by playtest-informed adjustments to motion physics, ensuring character behavior remained consistent with its personality. Every change—from constraint logic to texture refinement—was driven by ongoing testing and aesthetic alignment, reflecting a balance between player feedback, technical feasibility, and narrative consistency.

02
Custom Editor

To support flexible level design and visual experimentation, I developed a custom editor system that allows users and developers to directly draw and configure collision environments in real time — without manually coding each layout.

Why a Custom Editor?

The soft-body simulation system is highly interactive and physics-driven. As such, traditional level design methods (e.g., tilemaps or prefab composition) are not sufficient. I needed an editor that would:

  • Allow freeform drawing of particles and constraints.

  • Let users create complex environments by simply clicking in the Scene view.

  • Automatically generate physics-ready structures and data.

   • Visually reflect changes in real time — e.g., static walls, moving obstacles, constraint types.

How the Editor Is Built

My custom editor is implemented via the ParticleController component, which handles all level-editing logic in the Scene view.

​

Editor Input Logic

 

  • The editor listens for mouse input (Input.GetMouseButtonDown) and key modifiers (A, S, W) to determine what to place:

    • S key: Adds a static particle (used as walls or anchors).

    • A key: Adds a dynamic particle and connects it to the last static one with a constraint.

    • W key: Adds a standalone static particle.

  • All created particles are stored in internal lists and rendered with custom meshes for visual clarity.

 

 Constraint Drawing

  • Clicking on two existing particles will automatically connect them with a constraint.

  • The constraint type (e.g., collidable or non-collidable) can be toggled in the Inspector.

  • Constraint thickness, color, and material are customizable per type.

 

Constraint Creation Mode

  • An optional "Constraint Creation Mode" lets designers click on any two particles to manually define relationships between them.

  • This is especially useful for building complex composite structures or maze-like environments.

Save/Load

  • The editor supports structured saving of particles and constraints.

  • It serializes positions, dynamic/static states, and constraint data into JSON-like structures for easy reuse and sharing.

   • Level loading is delayed slightly to ensure all physics and rendering systems are ready before instantiating.

03
Shaders and Visual Effects
Shader.png

Edge Shader

  • The Edge Shader in Verlet Voyage enhances the game's 2.5D aesthetic by visually accentuating object boundaries, giving soft, toylike assets a crisp and readable outline. This custom shader pipeline begins with defining properties and processing geometry in the vertex shader, followed by sampling pixel data in the fragment shader. The core of the effect lies in the Edge Detection Process, where luminance values of neighboring pixels are evaluated using the Sobel operator to calculate both horizontal and vertical gradients. These gradients are then combined to determine edge intensity, which is blended with object colors for a smooth but distinct outline—improving visual clarity and affordance, especially for younger players.

​

Particle System

  • In addition, the project features a Confetti Particle System that celebrates level completion. This system uses randomized colors and directional bursts to deliver a joyful, rewarding effect, reinforcing player success through responsive visual feedback. Both the shader and the particle system work in tandem to heighten the tactile and emotional quality of the experience.

Iteration

Alpha Test

The Alpha phase focused on early testing with target users to observe how children interacted with the soft-body motion and physical feedback. These sessions revealed valuable insights into how players understood movement, reacted to deformation, and interpreted visual cues, which led to refinements in interaction design.

Screenshot 2025-05-09 at 01.16.18.png

Releasement

In the final stage, the game was optimized for stability and performance across platforms. Visual consistency was tightened, UI feedback polished, and audio-visual cues balanced. These finishing touches ensured the project was ready for public presentation and formal evaluation.

image.png
Smiling Orange Character on Checkered Background.png

Beta Test

During the Beta phase, the game was tested by a wider audience. Key adjustments were made, including a full redesign of level layouts, reworking the launch system for better control, and fixing critical bugs that affected gameplay flow. Feedback helped refine pacing, enhance player guidance, and improve the overall responsiveness of the system.

AA817D2B-9062-4752-A7ED-00E24E610FB4.PNG

Went Well

  • Successfully implemented a fully custom Verlet integration and constraint-based physics system without relying on Unity's rigidbody engine.

  • Designed a cohesive and visually engaging 3D-to-2D art style, contributing to clarity and charm for young players.

  • Developed a child-friendly interaction model based on physical affordances, minimizing the need for tutorials or text instructions.

  • Created original game shaders and sound layers that reinforced tactile feedback and emotional tone.

  • Conducted meaningful beta testing with children, which validated intuitive control and emotional expression through physical interaction.

​​

Could Improve

  • The custom collision system, while effective, lacked advanced resolution (e.g., rotation or compound shape support), limiting complexity in some puzzle designs.

  • Some level designs could have provided more variation in visual scenery or environmental cues to aid player orientation.

  • Difficulty curve could benefit from smoother pacing between Levels 4 and 6; sudden shifts in required skill proved frustrating to some testers.

  • UI could be more responsive on smaller screen sizes; certain buttons appeared misaligned in early mobile builds.

  • While the story was emotionally resonant, it could be expanded with more environmental storytelling or animated cutscenes to further deepen narrative immersion.

​​

Project Post-Mortem Note

Special Acknowledgement and Thanks

This project was developed as part of my degree work. I would like to sincerely thank my parents and the following friends for their invaluable support, feedback, and encouragement throughout the process:

​

​

 

 

 

Their encouragement, clarity of thought, and unwavering belief in the work helped shape not just the project's direction, but also the spirit with which it was made.

​

I would also like to express my deep gratitude to the faculty members at UCL who provided essential academic and creative guidance.


Special thanks to Mr William Sykes and Dr Dane Sutherland for their ongoing mentorship. I am also grateful to Prof Brigitta Z, Prof Lee G, Prof Rik A, Dr Eunju HGeorge K, and Alex M for their continued support and inspiration throughout my studies.

​

This work would not have been possible without their generosity, expertise, and belief in the project.

IMG_5974_edited_edited_edited.png

¹ The term “100% Original / No Internet Assets” in this project applies solely to the core algorithms, assets, interactions, and models, all of which are entirely self-developed; it does not cover music or skybox materials.

Rate This Project
Don’t love itNot greatAlrightGreatLove it

MORE THAN GAMES

London, UK

Los Angeles, CA

Looking forward to the next project? Drop an email.

Thanks for your interest!

bottom of page