- Rust 96.8%
- Shell 1.7%
- Python 1.5%
| assets/audio | ||
| config | ||
| docs | ||
| examples | ||
| scripts | ||
| src | ||
| tests | ||
| vendor/avian3d | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| DESIGN.md | ||
| DEVELOPMENT.md | ||
| IMPLEMENTATION_PLAN.md | ||
| LICENSE | ||
| manifest.scm | ||
| README.md | ||
| rust-toolchain.toml | ||
| THIRD_PARTY_NOTICES.md | ||
Flag Maker Simulator
Watch the 40-second promo with sound · Download MP4
Edited in-development gameplay. Click the animated preview for the full video.
Make your very own flag. Try to keep all your fingers.
Flag Maker Simulator is a deliberately awkward, slightly comedic first-person crafting game built in Rust, Bevy 0.19.1, and Avian 0.7.0. You work at a campsite with two independently controlled hands, a pile of raw materials, and a very reasonable ambition: make a yellow flag.
Inspect and sand the staff, draw and cut the cloth, position or fold it, and drive the tacks. Put your finished flag in the pile and collect its score. Placement, surface roughness, fastening, and material condition matter. Hammer your fingers or sand carelessly and you will discover why this takes practice.
- Practice: an untimed session to learn the tools and make flags.
- Scored: five minutes to build the best pile you can. Each flag adds its quality points to your total, so speed only helps if your flags hold up.
- Tool laboratories: focused scenarios for hands, cutting, sanding, hammering, cloth, and assembly.
The technical MVP supports complete flag construction and scoring. It is still a prototype: awkwardness is intentional; the feel, comedy, and balance need human playtesting. The promo is edited from an automated run of the game.
Run from source
The verified development platform is Linux with Guix. From a terminal:
git clone https://github.com/htayj/flag-maker-sim.git
cd flag-maker-sim
scripts/dev-shell cargo run --locked -- --practice
For a five-minute scored round, omit --practice. The wrapper supplies native
dependencies and bootstraps the pinned Rust 1.95.0 toolchain into the ignored
.cache/ directory. It requires Guix; see Development.
On another Linux distribution, install Rust 1.95.0 and the native development libraries for ALSA, udev, X11/Wayland, and Vulkan, then run from the repository root:
cargo run --locked -- --practice
That direct Cargo route is provided for porting; other distributions, Windows,
and macOS have not been validated. This repository includes the local Avian
patch required by the game. Keep vendor/avian3d in your checkout.
Controls
Click to capture the pointer. If the game is paused after a focus change, press Esc first. The first capture click does not grip an object.
| Input | Action |
|---|---|
| Mouse / wheel | Move the selected hand / adjust depth |
| Left click | Grip or release |
| Right mouse button | Use the pencil or close the scissors; release to reopen |
| Tab or 1 / 2 | Select a hand; the other keeps its grip |
| Hold R + mouse / wheel | Rotate the wrist / roll it |
| Hold Shift | Fine hand adjustments |
| Hold Space + mouse | Look around |
| WASD | Lean and change your reach |
| Hold F when offered | Recover a dropped object |
| Esc | Pause or resume |
| F5 | Reset the current prototype/session |
See the playtest guide for the construction sequence and tool exercises. Settings include remappable controls and reduced camera shake. Tool sounds have captions. Eligible scored rounds save locally; Practice does not add scored records.
Development
scripts/dev-shell cargo test --locked
scripts/dev-shell cargo run --locked -- --scenario hands
scripts/dev-shell cargo run --locked -- --scenario cutting
scripts/dev-shell cargo run --locked -- --scenario score-fixtures
Automated graphical checks run on a private Xvfb display through
scripts/gui-test-shell; they must not control or capture your desktop.
- Game design and magazine source notes
- Implementation plan and technical specification
- Current status and technical acceptance
- Promo assets and reproduction
Historical verification documents refer to local artifacts/ paths. Those
recordings, build bundles, and machine-specific logs are not part of the source
checkout. The public promo above is included separately from the raw 8× video.
Inspiration and license
The flag-making process is based on Flagazine 69, pages 10–13, published by the International Vexillomancers Guild: read the magazine. The source notes distinguish the magazine's instructions from game mechanics. The magazine PDF and its illustrations are not bundled with the game.
Flag Maker Simulator's original code, documentation, game audio, and promo assets are licensed under the GNU General Public License, version 3 or any later version. See LICENSE. The program comes without warranty. Vendored Avian retains its upstream MIT/Apache-2.0 notices; see third-party notices.
