CodeveilStudio

Engineering digital products with design precision.

All work
Case studygamedesign

HyperSphere

A Unity 3D action game built as a multi-level, mission-driven progression system

Visit live project
Levels
8
Missions
6
Engine
Unity 3D
Gameplay code
C#
HyperSphere

Overview

HyperSphere is a Unity 3D game built around structured progression rather than a single endless loop: a main menu, player selection, eight levels and six discrete missions, each with its own scene, objectives and scoring. The engineering interest is not in any one level — it is in the manager layer that keeps fourteen separate scenes behaving like one continuous game.

The challenge

Every scene you add is another place the game can forget itself

A single-scene arcade game is straightforward: everything that matters lives in one place and nothing has to survive anything. HyperSphere has more than fourteen scenes — menus, player selection, eight levels and six missions — and score, chosen character, unlocked progress and audio state all have to cross every one of those boundaries intact.

Get it wrong and the symptoms are unmistakable: the score resets on level load, the selected character reverts to default, a mission counts the same pickup twice. None of those are hard bugs to fix individually; they are hard to stop recurring, which makes it an architecture problem rather than a gameplay one.

  • Unity destroys everything in a scene on load, so cross-scene state needs an explicit owner
  • Mission rules differ per mission, but the shared game loop must not fork into six copies
  • Level content has to be authored in the editor, or every new level becomes a code change
  • The performance budget is a mobile one — draw calls and runtime instantiation both matter

What we built

A persistent manager layer over prefab-driven, scene-authored content

A single persistent game manager owns the state that must survive scene changes — selected player, score, progression. Per-scene managers own only what belongs to their own scene and nothing more, which keeps the boundary between "the game knows this" and "this level knows this" explicit rather than implied.

Mission scripts implement only their own objective and completion condition, consuming shared score and timer services instead of re-implementing them. Six missions therefore share one game loop rather than six near-identical copies of it.

Level content is assembled from prefabs — platforms, coins, score boosters — placed in the editor. Building a new level is authoring work, not programming. UI flow runs through its own controllers for the menu, player selection and game-over states, with TextMesh Pro keeping typography readable at every resolution.

What we delivered

Player selection that persists

A dedicated selection scene, with the chosen character carried through every subsequent scene load by the persistent manager rather than re-resolved per level.

Eight levels and six missions

Each is its own scene with its own layout and objectives, but all run on the same shared loop, score service and timer service.

Prefab-driven level content

Platforms, coins and score boosters exist as reusable prefabs placed in-scene, so level design is editor work and a change to a prefab propagates everywhere it is used.

Shared score and timer services

One implementation of scoring and timing consumed by every level and every mission — no per-scene variants to drift apart.

Menu and game-over flow

Dedicated UI controllers for the main menu, selection screen, in-game HUD and game-over window, so UI state is never entangled with gameplay scripts.

Audio and presentation

Voice and effect assets wired into the flow, with TextMesh Pro handling UI typography at arbitrary resolutions.

Engineering challenges

The problems that took real work to solve. Tap any one to read how.

Problem

Unity destroys every object in a scene when the next one loads, so score, character selection and progression vanish by default. The naive fix — static fields scattered across scripts — makes every class a potential writer and every bug a search.

Solution

One persistent manager owns cross-scene state and exposes it deliberately through a narrow surface. Per-scene managers handle only local concerns and never write to it directly.

Results

8 + 6

Levels and Missions

Each a discrete scene with its own objectives

1

Persistent State Layer

Score, selection and progression survive every scene load

Prefab

Driven Level Content

New levels are authored in the editor, not coded

Published

Playable on itch.io

A shipped build, not a repository

Outcomes

  • A published, playable build on itch.io with a complete menu → selection → level → mission → game-over flow.
  • Fourteen playable scenes sharing one persistent state layer, one score service and one timer service.
  • A content pipeline where adding a level is scene authoring rather than programming.
  • A documented import path so any reviewer can get the project running from a clean Unity installation.

Related work

Want something like HyperSphere?

Share your goals and we will come back with a clear plan and estimate.

Start a project