Make Two Characters Share One Clear Action Loop with AI

Design a ranged tag, a close strike, and a dodge as one character-switching loop, then use a hand-checked timing comparison to plan a fair test.

Seele Editorial TeamUpdated November 13, 2026

A character switch is worth keeping when it changes what the player can do without restarting the action. Give one character a ranged way to mark a target, give the other a close-range move that uses that mark, and let the switch carry position, cooldowns, and the tag across the handoff. Then test one timing window before adding more characters or weapons.

This guide uses Latchline, an original fictional design exercise. Its rules and examples are resolved on paper; there is no playable build, prompt run, or playtest to report. The values below are a compact contract that you can adapt and then verify in your own prototype.

Give each character one complementary job

A teal pin caster faces a copper sentry beneath a glowing amber diamond in a dark arena.
The concept frame shows the first handoff state: Mica has tagged the sentry, and Vale can take over next.

Start with two abilities that form a cause-and-effect pair. Mica can hit from range but cannot deal damage. Vale can deal damage, but only to a target that is already marked. That makes the switch a decision with a purpose: the player moves from setting up an opening to spending it.

RoleInput and effectLimit that keeps it readable
Mica, the pin casterPress Space to send one straight cyan tether pulse toward the pointer. It travels at 500 units per second, up to 300 units. A hit applies one amber tag for 1.6 seconds, starting on impact.The pulse deals no damage. There is only one tag; another hit refreshes its timer instead of stacking or adding damage. Cooldown is 0.6 seconds.
Vale, the close strikerPress Space for a forward strike. It has 0.15 seconds of startup, a 0.10-second active interval, and 0.45 seconds of recovery before another strike.On the first active frame it checks once for a target within 45 units, in a full 60-degree cone centered on pointer aim. It deals 1 damage only if the target is tagged, then consumes the tag.

The exact target rule matters. “In front” is too vague to test; “within 45 units center to center and inside ±30 degrees of pointer aim” gives you a range and angle to inspect. Resolving the strike once, on its first active frame, also prevents a single held overlap from dealing damage repeatedly. An untagged strike still uses its attack cycle, but does no damage.

Because the inactive character is not a second actor, the player has one position and one shared health total. That keeps the game about timing a handoff, not about commanding two characters at once. The Sentry has 2 health, so a complete win needs two marked hits, with another tag before the second strike.

Make a switch preserve the action state

Use Q to swap Mica and Vale immediately. The visible character changes, but the player stays at the same coordinates with the same facing and health. Cooldowns continue in real time, and a tether pulse that is already moving remains in flight. A tag stays on its target until Vale consumes it or its 1.6-second timer runs out.

State at the handoffWhat Q changesWhat Q preserves
Active characterMica becomes Vale, or Vale becomes Mica.One player-controlled position; no duplicate actor appears.
Combat stateThe available Space action changes with the active character.Facing, shared health, ability cooldowns, the sentry’s schedule, any active tag, and a pulse already in flight.

State ownership is the easiest part to forget when writing a prompt. Say explicitly whether a switch teleports, pauses the enemy, resets a cooldown, or cancels a projectile. In this design, none of those happen. That rule makes the player responsible for choosing when to switch, while the rest of the encounter keeps moving.

A saffron striker closes on a tagged copper sentry as its pale warning points toward the fighter’s earlier position.
The mechanism illustration pairs a close strike with a warning aimed at the fighter’s earlier position, leaving a lateral escape route.

For a first implementation prompt, keep the state contract close to the actions:

Make a fictional overhead 2D action prototype called Latchline. There is one player position and one shared health value of 3. Q instantly swaps the active character between Mica and Vale without changing position, facing, health, cooldowns, enemy time, tags, or a pulse already in flight. Mica’s Space launches one straight pulse at 500 units per second, with 300-unit range and a 0.6-second cooldown; a hit applies one tag for 1.6 seconds from impact and deals no damage. Vale’s Space begins a strike with 0.15 seconds of startup, checks once on its first active frame against a target center within 45 units and ±30 degrees of pointer aim, deals 1 damage only to a tagged target, and consumes that tag. Keep the inactive character out of the arena.

After you hand over that prompt, compare the resulting state against the written rules rather than assuming the prompt settled every edge case. In particular, check a switch during a pulse, a switch during a cooldown, a tag that expires before contact, and a second strike against an untagged target.

Add a readable counterattack

A target dummy would make the tag-and-strike pair easy to time, but it would not show why a player must plan the switch. Give the Copper Sentry one warning and one non-homing bolt. At 1.60 seconds after room start, it projects a pale cone 180 units long and 24 degrees wide for 0.50 seconds. The cone locks toward the player’s center when the tell begins; it does not track after that. When the warning ends, the Sentry fires a bolt along that line at 250 units per second.

Define contact instead of relying on visual overlap. The player is a circle with radius 12 units; the bolt has radius 4. Their centers collide when they pass within 16 units. The bolt disappears after contact or when it reaches the arena boundary. To dodge, move at least 17 units perpendicular to the locked line before the bolt arrives. From a 45-unit firing distance, the bolt takes 45 ÷ 250 = 0.18 seconds to reach that point. At the shared movement speed of 180 units per second, moving 17 units takes 17 ÷ 180, or about 0.095 seconds. A lateral step can fit inside that travel window, but this calculation is a design check, not a test result.

The next warning starts 2.40 seconds after the previous warning began. The Sentry can be damaged while warning, but a lethal hit ends the encounter immediately and clears the bolt. Defeating the two-health Sentry is the win condition; reducing the player’s shared health to zero is defeat. Restart restores the initial positions, east-facing direction, Mica as active, 3 player health, 2 Sentry health, ready ability cooldowns, room time zero, and no tags or projectiles.

These reset rules make a future test repeatable. If a player loses one health or the Sentry is defeated, Restart should return the same scene and ability state each time. The Sentry should not carry over its old tell timer, and a projectile from the previous run should not remain on screen.

Revise one timing window with a paper check

Set the initial player at (200, 250) and the stationary Sentry at (360, 250), a separation of 160 units. A Mica pulse needs 160 ÷ 500 = 0.32 seconds to travel that distance. Once it hits, the player has to close to Vale’s 45-unit range, which is 115 units of movement. At 180 units per second, that takes 115 ÷ 180, or about 0.639 seconds. Add Vale’s 0.15-second startup and the hit resolves about 0.789 seconds after the tag lands.

Now compare two tag durations while leaving every other value alone:

VersionTag durationHand calculation from tag impact to hitExpected paper result
v00.65 seconds0.639 seconds to approach + 0.15 seconds startup = 0.789 seconds.The tag expires about 0.139 seconds before the strike resolves.
v11.60 secondsThe same 0.789-second sequence leaves 1.60 − 0.789 = 0.811 seconds.The tag remains available at the strike check, with about 0.811 seconds to spare.

This is a manually calculated design rehearsal using fictional values, not an observed balance result. It isolates one variable: tag duration. A real iteration would record the build and rules version, start distance, pulse impact time, switch time, entry into range, strike press, hit or expiry, and whether the player repeated the sequence. Change only the window, run the same input path, and compare the notes; do not call the paper estimate proof that the timing feels fair.

A saffron striker lands the second marked hit, breaking the one-health copper sentry into sparks.
The fictional outcome concept shows the decisive strike: the Sentry had one health and a fresh tag before contact.

The image represents the final hit in a two-hit encounter, not an actual run. The first marked strike leaves the Sentry at 1 health; Mica must apply a fresh tag before Vale can land the second hit. The tag is consumed by contact, and the remaining Sentry health reaches zero. This explains what the result should mean without claiming that a game was generated or tested.

Test the full loop and review your result

Before building more content, turn the contract into a short checklist. Run each check in a fresh session and record what actually happens:

CheckActionExpected observation
TagFire Mica’s pulse from the initial 160-unit distance.It travels toward the sentry, hits after about 0.32 seconds, applies one tag on impact, and deals no damage.
SwitchPress Q while the pulse is in flight and again while an ability is cooling down.The active character changes; the pulse, position, facing, health, and real-time cooldown state persist.
StrikeSwitch to Vale, move within 45 units, aim within the 60-degree cone, and press Space.One hit resolves on the first active frame, removes exactly 1 Sentry health, and consumes the tag.
No tagStrike again without applying another tag.The strike cycle runs but deals no damage.
DodgeLet the warning lock, then step 17 units perpendicular before the bolt reaches the old line.The non-homing bolt misses; standing in the line instead causes one shared health loss.
Finish and restartTag and strike a second time, then restart after both a win and a loss.The Sentry reaches zero health and clears its bolt on a win; a restart restores every listed initial state.

These are proposed checks for a future prototype, not completed checks. If a result differs, preserve the exact input sequence and state before changing code or the prompt. For example, if the pulse disappears when Q is pressed, fix projectile ownership first; if a strike damages an untagged target, fix the tag gate before tuning animation length. Focused observations make a later revision easier to interpret.

SEELE’s Free AI Game Maker page describes plain-English prompts, a playable 2D or 3D first result that can be tested in the browser, and follow-up prompts for iteration. Before submitting, review the selected model, available Koin balance, and displayed generation cost. These general workflow facts do not confirm Latchline’s switching, tag, strike, or dodge behavior. Inspect any result against the contract and test the interactions yourself.

When you are ready to shape your own two-character action loop, open the Free AI game maker. Bring the player roles, preserved switch state, target rule, and one timing question. Treat the first output as a draft to review; this article makes no promise about a particular generated result.

Frequently asked questions

How do I keep character switching meaningful?

Give each character a different job in one shared loop. Here, Mica applies a ranged tag without dealing damage, while Vale can spend that tag for one close hit. The switch connects setup to payoff, so the player chooses when to hand off instead of switching only to see a different model.

Should switching reset position or cooldowns?

Choose one rule and state it before prompting. Latchline keeps the same position, facing, shared health, in-flight pulse, and real-time cooldowns when Q changes the active character. That lets the player prepare the next action without a teleport or a free cooldown reset. Those are proposed design rules, not tested behavior.

What happens if the tag expires before Vale connects?

Then the strike resolves normally but deals no damage. In the paper example, the 0.65-second version expires before the estimated 0.789-second approach and startup; the 1.60-second version leaves about 0.811 seconds. The comparison is hand-calculated from fictional values, not a measured result.

How should I check if the dodge is fair?

Record the warning start, locked direction, firing time, distance to the bolt line, and lateral movement. The designed hitboxes require a 17-unit perpendicular move from a 45-unit firing distance; at 180 units per second, that move takes about 0.095 seconds while the bolt takes 0.18 seconds to arrive. Run repeated tests before deciding how it feels.

Was Latchline built or playtested?

No. Latchline is an original fictional design exercise. Its rules, images, and timing comparison were made for this guide; no prompt was run through a game generator, and there is no playable build, software test, playtest, measured result, or customer case to report.

SEELE AI

Turn this guide into a playable build.

Start with a focused brief, then iterate in the Seele AI Workspace.

Start creating