Gaurav KumarGame Producer Contact

Projects / Planet of Twins

My original IP, in development

Planet of Twins

A co-op action-adventure for PC, with a single-player mode too. Two twins share one life, and the further apart they drift, the faster it drains.

My role
Producer, developer and designer
Team
Solo
Timeline
January 2026 to now
Platform
PC
Engine
Unity 6.3, URP, C#
Status
Playable build, in testing

In short

What it is, and what I do on it

Production

From the first idea to today

In the order it happened. Every stage opens up into its full story.

  1. January 2026

    One rule: two twins, one life

    The game started from a single rule. Two twins share one health pool: closeness keeps them alive and distance drains them. Everything since has been built around that bond.

    Read the full storyShow less1 min read

    Where the idea came from

    Binary Land on the NES, where two penguins move as one. Planet of Twins makes that bond the thing at stake: the twins share one life.

    The world

    A stylised East-Asian fantasy setting. The villain inverts an ancient curse: where it once bound twins together, the planet now pulls them apart, and the people it corrupts become the enemies. The world is built warm and alive so that its corruption reads as grief. Defeated enemies were once neighbours, so their freed souls power the twins and every kill reads as a loss.

    The twins

    Kai carries the dark-energy side and Lyra the soul-light side. Each clan brings its own powers, used in combat and in puzzles.

    Games it sits beside

    Brothers: A Tale of Two Sons and It Takes Two for the bond between two characters, Unravel Two for two characters tied together, and character-action games for the combat.

    The documents behind it

    A story bible, now on its fourth version, and a colour bible that sets the palette of each clan.

    Where the plan lives

    No task board. The plan, the backlog, the bugs and the changelog live in plain text files next to the code, where every change can be traced.

  2. February to May 2026

    A playable game in seven weeks

    From the first commit in February to early April the core went in: the twins moving as one, their abilities, the rescue, a skill tree, checkpoints and the first enemy roster.

    Moving as oneTwo characters that read as one connected unit.
    The rescue, April buildThe first Weaver's Gate rescue call.
    The Siphon, April buildOne of the first enemies, as it looked then.
    Read the full storyShow less1 min read

    Week one

    • Twin movement, with input handled through a command pattern
    • The ability system, with possession and stun
    • Soul transfer between the twins

    March

    • Two zones, the park and the streets, with a camera manager
    • The first enemies: ranged and melee in two variants each, the Group Grabber, the Soul Summoner and skeleton-hand traps
    • An enemy spawner, the rescue event, the skill tree, and health bars for the twins and the enemies
    • Dual Cast, Soul Convergence and Coalesce
    • QTE events built to scale, teleport cancel, the ability HUD, checkpoints and loading

    End of March

    • The accord bar and the Accord State powers: Setsuna, Radiant Seeker, Void Strike and the spirits

    April and May

    • Five more enemies: Tether Breaker, Severed, Penitent, Siphon and Witness
    • Effects for every interaction
    • Mouse controls: left button for melee, right button for abilities
    • Greybox levels closer to the real layout

    What did not hold

    The Penitent needed a rework from the day it went in, and the whole game lived in one scene. As the world grew, that one scene became the next thing to fix.

  3. April 2026

    Thirteen strangers, one honest verdict

    I sent the April build to 13 players outside the project, with a 21-question form. The twin rule held up: 12 understood it without being told. Almost everything around it did not: nobody could use the Accord State, 7 found the rescue confusing, and 9 asked for a tutorial.

    DecisionAsk outside players early. A loop nobody outside has played is a guess, so the form went out before the world was built around it.

    What held up

    Understood the twin rule without being told, most after a moment12 of 13
    Would play the twin idea in other genres9 of 13
    Named the twin rule as what drew them in7 of 13
    Want the game developed further (4 or 5 out of 5)7 of 13

    What did not

    Missed the Accord State, or saw it and could not tell what it did13 of 13
    Felt the twins were "just game pieces"10 of 13
    Asked for a tutorial or clearer instructions9 of 13
    Found the rescue confusing or frustrating7 of 13
    Said the fights "all felt like chaos"6 of 13
    Never felt comfortable with the controls5 of 13

    13 players outside the project, April 2026, a 21-question form.

    Read the full storyShow less2 min read

    How it ran

    Players downloaded the April build, played for 10 to 40 minutes, and answered the form: how the twins felt to control, whether the shared health and the rescue made sense, whether they found the Accord State, how the enemies read, and how they felt afterwards. One even ran it on Linux through Wine, with no problems.

    The four friction points

    • Nothing taught the game. Mechanics had to be discovered, and a prompt that said press did not say mash.
    • The rescue confused. Players lost a twin without knowing why, and some ended up harming the twin they meant to save.
    • The Accord State went unseen. Not one player used it with any understanding.
    • The fight was hard to read. The camera sat too low to keep both twins in view, and the enemies all looked like chaos.

    What players said, and what changed

    • Explain the mechanics. A tutorial now teaches one mechanic at a time, each with a short video: moving the twins, quick time events, shared health and the rescue.
    • Press X does not say mash X. Prompts on screen show the right key or controller button for each player, and the rescue ring pulses to say mash.
    • I lost a twin and didn't know why. The rescue got a countdown ring, a prompt at the soul and a tutorial step of its own.
    • Put the camera higher. The game now plays from high above the twins, with a bird's-eye view on a held button.
    • It all felt like chaos. Every enemy now shows its mood with a manga-style symbol, so its next move can be read.
    • Break the mirror with a second player. Couch co-op, already planned, is now built and playtest-ready: two players, one twin each.
    • Give me a pause screen with a way out. A full pause and settings screen, with controls each player can rebind.
    • It is too grey-box to feel immersed. The world got its light, weather and colour over July and August.

    What it told me

    The idea worked. What failed was how the game taught and showed it, and much of the work since answers one of these points.

  4. June 2026

    Rebuilt to hold a whole world

    I split the game into scenes that stream in and out as the twins move, wrote one rulebook for how those scenes may reference each other, and built the tools that enforce it.

    DecisionRules before content. A game streamed across many scenes breaks quietly when one scene reaches into another, so the rules and the tools came before any new area.
    Starts the game, once
    BootstrapStarts every system in order
    →
    Front endThe menu, character select and save slots
    →
    IntroThe moment before the disaster, with the world loading behind it
    Never unloads
    PersistentEvery manager, the twins, the HUD and the pause menu. Areas talk to it only through the rules.
    Streams in and out around the twins
    L0 City WaterL1 ParkL2 StreetsL3 AlleyL4 MuseumL5 Fields

    With the twins in the streets: their area and its neighbours are loaded, the rest wait until the twins come near.

    Read the full storyShow less1 min read

    How the game loads

    • A bootstrap scene starts the game, and a persistent scene holds every manager and never unloads
    • Areas stream in and out around the twins: the area they stand in and its neighbours stay loaded
    • The moment before the disaster plays as a cutscene while the world loads behind it, and players can skip it

    The rulebook

    Eleven rules for every reference that crosses from one scene to another, so an area can load and unload without leaving broken links behind.

    Eight phases of hardening

    • Clear entry paths, and exactly one of every manager
    • Failure and reset moved into the persistent scene
    • Registries, pooling and streaming reworked
    • Skill-tree progress moved off the shared data asset, where it did not belong
    • One owner for game time, so slow motion and pauses never fight each other
    • Dead code deleted, and a soft reset that needs no scene reload

    One call for every effect

    The Cue Book: one call plays the particle, the visual effect, the sound and the camera shake together, with engines for sound, music and mixing behind it.

    Enemies that show how they feel

    Manga-style mood symbols over each enemy, so the player can read its mood at a glance.

    Tools that keep the rules

    An editor toolset with a validator, auto-wiring, a new-area generator and a checker for effect ids.

    What went wrong

    The split caused one game-breaking bug: the enemies could no longer see the player. It went to the top of the list, was traced and fixed, and the smaller AI bugs behind it were cleared the same way.

  5. July 2026

    Two test rounds before building more

    With the world rebuilt, two more rounds of playtesting ran back to back. 26 bugs were found and fixed in that one week, one of them game-breaking and 17 major, and each fix was played again before it was closed.

    DecisionTest before building more. The rebuilt game had to play as well as the old one before anything new was stacked on top of it.
    Read the full storyShow less1 min read

    Getting ready

    A ten-part engineering pass came first: the new input system, a dev scene for trying any power or enemy, a scene health dashboard, pooling for everything spawned in play, and colour grading that follows the story.

    The week, by severity

    • 1 game-breaking, 17 major, 7 minor. All fixed and played again inside the week. The game-breaking one went first.

    What players will feel

    • Combat. Ranged attacks, aiming and the chain throw reworked; the chain now pulls like Roadhog's hook in Overwatch.
    • Readability. The Weaver's Gate rescue made easier to follow, and the mood symbols over the enemies brought back.

    How a fix counted as done

    Each fix was played again in the dev scene before it was closed, and the two rounds ran back to back.

  6. July and August 2026

    A look for the world, and a plan behind it

    The world got its light, weather and colour. Alongside it the game got a business case: a pitch deck in four versions, a one-page summary and a plan with three milestones.

    DecisionA product, not a demo. A prototype with no plan behind it cannot be scheduled or pitched, so the plan was written alongside the build.
    A village in Planet of Twins
    The worldBuilt warm and alive, so that its corruption reads as grief.
    An environment in Planet of Twins
    Light and weatherA stylised East-Asian fantasy setting.
    Read the full storyShow less1 min read

    The look

    • Six story grades that shift the colour of the world as the story moves
    • Sky states for day, golden hour and dusk, with a moon and sun shafts
    • Fog, wind that sways lanterns and cloth, and rain that wets the ground
    • A terrain shader with eight layers
    • A 51-piece building kit made from six greybox houses

    The pitch

    • A pitch deck, taken through four versions in a week
    • A one-page summary
    • A plan with three milestones: vertical slice, demo and launch
    • The deck came before couch co-op, so it is being redone around it

    What went wrong

    A UI art swap that should only have changed the look grew past that over two days. I rolled it back to the last working HUD and kept the work on a branch, to bring back one piece at a time.

  7. August and September 2026

    Two players, one life

    Couch co-op went in: two players on one screen, one twin each, still sharing one life. Solo play stays, with one player driving both twins. The core of it took about two weeks.

    Two players, two twinsEach player picks a twin, and a checkpoint saves only when both hold.
    Read the full storyShow less1 min read

    Step by step

    • Every input now belongs to a player, not to the game
    • A player roster that knows which player owns which twin
    • Two devices at once, generic joysticks included
    • Each player's attacks, primary power and teleport run on their own
    • Four combined powers need both players to hold them together
    • The rescue became a shared effort, with the partner mashing to help
    • A start menu, character select and save slots
    • A shared tutorial that waits for both players

    Around it

    • Button prompts that match the controller in each player's hands
    • Every menu works with a controller
    • Rebinding for each player

    The size of the job

    About two weeks for the core conversion of a game of more than 550 scripts.

  8. September 2026

    Ready for other people to play

    Saves, bug reports from inside the game, automated tests and a performance pass: what a game needs before anyone outside can play it.

    DecisionFixed means verified. Every bug gets a number before it is touched. Fixed needs a commit behind it, and verified needs the check to have actually been run.
    The front endSave slots, Continue, settings, and controls each player can rebind.
    Read the full storyShow less1 min read

    Saves

    Three save slots, Continue from the main menu, and checkpoints for one player or two.

    Bug reports from inside the game

    • Session logs with channels and breadcrumbs, and a marker for crashes
    • A Report a Problem screen that collects the log, a screenshot and the build number
    • Reports sent straight to an inbox
    • An editor window for reading them

    Tests and performance

    • Automated tests, including a full boot and a Restart
    • Profiler markers on the busiest code, and a performance panel in the dev tools
    • Enemies read from a registry instead of searching the scene, and per-frame garbage removed

    Clean-up

    • The code split into separate assemblies
    • A video crash on some graphics drivers traced to the codec and fixed by changing the video format
    • An in-game choice of DirectX version
  9. October 2026

    The first standalone build

    In October I made the first standalone build and played it end to end with two controllers. Eleven bugs came out of that run, none of them game-breaking, and the fixes were in the same day. Test runs on each new build have followed, and every one feeds the bug log.

    The October buildFighting through the streets, as the game plays today.
    Read the full storyShow less1 min read

    What held

    Settings, saved controls, the tutorial videos, two controllers at once, Continue from a save, and a problem report sent from inside the game in under five seconds.

    The first run, by severity

    • 5 major, 6 minor. No game-breaking bug. The worst left enemies unresponsive after a restart; the rest were menus and prompts that needed work with a controller.
    • All 11 closed. Fixed the same day, and closed once the next build confirmed every fix.

    The runs after it

    • 1 major, 7 minor. Six are closed. The other two are fixed and wait for their check in the next build.

    How a fix counts as done

    The automated tests pass, and each fix is checked in the next build before it counts as verified.

Production

How I run it

I run a solo project the way I would run a team project: a plan, a backlog, numbered bugs and a rule for when something counts as done.

23+connected systems
13outside players in the first playtest
4friction points found, each answered
175bugs found and logged
17game-breaking bugs found, all fixed
90%of all bugs closed
85automated tests
Read the rules in fullShow less1 min read

How a bug moves

  • Open, in progress or parked
  • Fixed: needs a commit and a changelog entry behind it
  • Verified: needs the check to have actually been run, in the editor or in play
  • Closed bugs move to an archive. A bug that comes back moves back, and its regression count goes up
  • Won't fix: only through a written exemption

How serious it is

Blocker, Major or Minor, and a bug can move up. Restart leaving the enemies blind was Minor until the first standalone build showed what it really did; then it became Major.

The production checklist

  • Automated tests
  • Scene and asset checks
  • Logging with channels
  • One owner for game time
  • A versioned save format
  • Profiling
  • Rebindable input for each player
  • A safe Restart
  • One effects system
  • An audio engine, with the sound itself still to come

Hands-on

What I built

I designed and wrote each of these. Knowing what a system costs to build is what keeps my plans for it realistic.

The bond between the twins

Both twins draw from one health pool, and the distance between them drains it on a tuned curve: full when close, gone when far apart. Two players can take one twin each, or one player can move both, choosing which twin uses abilities while the other mirrors the movement. The whole game runs on this tension.

Choosing a twinIn solo, the selected twin uses abilities and the other mirrors the movement.
Moving as oneTwo characters that read as one connected unit.
Shared healthDistance drains the pool they both live on.
How it worksShow less1 min read

How it works

  • The distance calculation, the drain zones, and modifiers that change as the twins upgrade
  • In solo, one input layer moves both twins: the selected twin acts and the other mirrors
  • In co-op, each player owns one twin through a player roster
  • Combined powers check that both twins are alive and both players are holding

The rescue

When one twin falls, the other's soul tears free, crosses the crack in the planet and fights to bring them back before a countdown runs out. I built the rescue state machine, the soul travel and the failure conditions.

Weaver's GateThe rescue call opens the gate, and the soul crosses to the fallen twin.
Taught before it happensThe tutorial walks the twins to their first rescue.
The crossing, an earlier buildThe surviving twin's soul on its way to the fallen one.
How it worksShow less1 min read

How it works

  • One state machine for the whole rescue: the fall, the soul tearing free, the crossing, the countdown and the failure
  • Each Weaver's Gate has its own soul, steered by the twin who is still standing
  • In co-op the rescue is a shared effort, with the partner mashing to help

Enemy AI

Each enemy type runs its own brain. A goal planner decides what to do, then hands the work to a behaviour tree or a state machine over a shared blackboard. On top of that sits an ecology: mood, social bonds between enemies, ritual sites that feed idle enemies, and memory of what they have seen. Each type attacks a different side of the bond. A new enemy is data plus a brain, with no new plumbing.

A fight, up closeWhen the distance is wrong for its attack, an enemy backs off and throws a bomb instead.
In the streetsCrescent attacks against the first enemies of the city.
How it worksShow less1 min read

How it works

  • A goal planner on top, a behaviour tree or a state machine underneath, all reading one shared blackboard
  • A service locator keeps the brains separate from this one game, so they can be reused
  • Mood, shown as manga-style symbols over each enemy
  • Social bonds: an enemy reacts when its partner dies
  • Ritual, spawn and barrier sites feed energy to idle enemies
  • Memory of what each enemy has seen
  • Squads: when a commander dies, its squad is enraged and released
  • Still to come: clan wars between enemies when no twin is near, and the combined attacks of enemy pacts. Both are designed and stubbed, with the attacks themselves still to be built
  • 13 enemy types, each attacking a different side of the bond: pulling the twins apart, linking their health against them, or hunting the rescuing soul

Abilities

The twins grow through nine data-driven skill trees. One effects engine plays the particle, the visual effect and the sound from a single call.

MeleeA close-range attack from whichever twin is selected.
StunCrowd control to lock a target down and buy space.
PossessionTurns a corrupted enemy's own power against the fight.
EmpowerA buff that strengthens the twins mid-encounter.
Accord StateBoth clan powers channelled together, from the October build.
SetsunaSlow motion and rewind for the whole world.
Accord SpiritsFreed spirits rally to fight beside the twins.
Soul ConvergenceThe souls of the fallen city fight back through the twins.
Unlocking a skillOne upgrade bought, from the tree to its preview.
The skill treesNearly every power, each with a short preview of itself.
How it worksShow less1 min read

How it works

  • Nine skill trees, all driven by data, with a point bank and upgrades that change both the numbers and the effects
  • Effects grow with upgrades: the radius follows the upgraded range
  • Setsuna is its own time system, separate from the freeze of soul mode, and its rewind brings the world back smoothly at an even speed
  • Soul Convergence takes the sacrifice of the freed souls to activate

Story, world and cinematics

The villain inverts an ancient curse. Where it once bound twins together, the planet now pulls them apart, and the people it corrupts become the enemies. They were once neighbours, so their freed souls power the twins and each kill reads as a loss. I wrote the narrative and built the cinematics in Cinemachine, including the moment the planet breaks: the twins find their purpose in a catastrophe, not in a tutorial prompt.

The calm before it breaksOne last quiet moment at the shrine, then the crack that gives the twins their reason to fight.
The tutorialOne mechanic at a time, each with a short video.
The shrine and the torii gate at the start of the game
The shrineWhere the story begins.
The city seen from above, with the crack in the planet glowing
The city from aboveThe crack in the planet runs through the streets.
A Weaver's Gate rescue under the torii
A rescue callWeaver's Gate open, the soul on its way.
The twins switching on the Accord State
Accord StateBoth clan powers switching on.
A village in Planet of Twins
The worldBuilt warm and alive, so that its corruption reads as grief.
An environment in Planet of Twins
EnvironmentA stylised East-Asian fantasy setting.
How it worksShow less1 min read

How it works

  • A story bible, now on its fourth version, and a colour bible for the clans
  • A cutscene that gives the twins their purpose through a catastrophe in the world, not a tutorial prompt
  • A tutorial driven by data that can teach in any area
  • Eight languages

Next

What comes next

Three milestones, and the two-player playtest before them.

Contact

Gaurav Kumar

Game Producer. Based in Varanasi, India, and open to relocating.