Pictures, games & sound

Plume

Rebuild a Flash game in Rust with deterministic state and source comparisons.

Interactive study

Explore the example
ExplorerGuardian−0 HP40 / 40 HP
From the example below.

Why I’m interested

A game rewrite has to preserve the rules a player experiences across battles, menus, and the campaign. I want to understand how AI-assisted development handles that whole system in native Rust. Deterministic state gives the rewrite a concrete reference: the same actions lead to the same outcome.

Progress

The native project contains deterministic Rust/Bevy state and comparisons with the original source. The status ledger records a navigation mismatch. The browser example below calculates an original battle rule with original SVG pieces, showing how attack and defense change the result.

A battle, one action at a time

Keep the target's armor fixed and compare the starting scene, an attack, and a defended attack.

Choose an example

One deterministic turn

Damage starts with attack power minus armor, with zero as the minimum. Defense halves that damage using integer division. The same inputs give the same result.

ExplorerGuardian−0 HP40 / 40 HP
Damage
0
Remaining HP
40

Input

power: 0
armor: 6
defending: false

Result

damage = 0
remaining_health = 40

One deterministic turn

Damage starts with attack power minus armor, with zero as the minimum. Defense halves that damage using integer division. The same inputs give the same result.

ExplorerGuardian−12 HP28 / 40 HP
Damage
12
Remaining HP
28

Input

power: 18
armor: 6
defending: false

Result

damage = 12
remaining_health = 28

One deterministic turn

Damage starts with attack power minus armor, with zero as the minimum. Defense halves that damage using integer division. The same inputs give the same result.

ExplorerGuardian−6 HP34 / 40 HP
Damage
6
Remaining HP
34

Input

power: 18
armor: 6
defending: true

Result

damage = 6
remaining_health = 34

Rust calculates this original demonstration rule and draws the scene with original SVG pieces. The native Plume project implements the Rust/Bevy game rewrite.

What comes next

Fix the recorded navigation mismatch and connect an original scene to the Bevy project for a reference-rule comparison.

Implementation and credits

How do attack power, armor, and defense change a deterministic turn?

Rust calculates an original battle rule and draws the scene with original SVG pieces.

Compare the starting scene, an attack, and a defended attack.

Rust calculates damage and draws each browser scene. Bevy implements the native game state.

A rewrite experiment based on the original game, with original assets for the public example.

Back to the collection