Pictures, games & sound
Plume
Rebuild a Flash game in Rust with deterministic state and source comparisons.
Interactive study
Explore the exampleWhy 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.
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.
- Damage
- 0
- Remaining HP
- 40
Input
power: 0
armor: 6
defending: falseResult
damage = 0
remaining_health = 40One 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.
- Damage
- 12
- Remaining HP
- 28
Input
power: 18
armor: 6
defending: falseResult
damage = 12
remaining_health = 28One 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.
- Damage
- 6
- Remaining HP
- 34
Input
power: 18
armor: 6
defending: trueResult
damage = 6
remaining_health = 34Rust 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.