Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

M3a: Sim: economy, Towns, territory field and construction

Open
#4 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
backend, game-dev

Research direction

Start with the canonical checklist in docs/ROADMAP.md#m3a-sim-economy-towns-territory-field-and-construction, then read docs/IMPLEMENTER_NOTES.md and docs/HANDOFF.md for project guidance. Run the named economy and territory tests and the territory benchmark as you work; the acceptance checks also specify the scripted headless fixture and data-only path using data/rules/buildings.ron. Done means the checklist criteria pass and their command output is included in the closing PR.

Written by the indexing model from the issue text.

Description

kind:feature status:blocked

Tracking issue for M3a: Sim: economy, Towns, territory field and construction.

The macro loop exists headlessly: Yeomen auto-gather four resources under the Yield Cap with integer-exact income and ramping costs, Towns project a territory field with a pure tiebreak, and Build is rejected outside it, all defined in RON and proven by tests and benches.

Acceptance

The canonical checklist lives in docs/ROADMAP.md; tick boxes there in the PR that closes each line, and paste the command output in the PR description. This copy is for tracking only.

  • cargo test -p sim economy: one Yeoman on a Croft yields exactly 10 Grain per 600 ticks; with 10 Crofts worked the Grain rate is clamped to 70 per 600 ticks and the stockpile grows by exactly 70; Lore ignores the Yield Cap; the second Town costs more than the first by exactly the rules.ron formula; queuing a Yeoman raises the next Yeoman's cost by 1 Grain before it finishes; the 6th queued Skirmisher is capped at 2.25x base.
  • cargo test -p sim territory: the fixture with 2 Towns + 1 Watchtower yields the golden owned-tile count and the mirrored midline tiles are neutral; proptest over 200 random source edits asserts incremental recompute hash == full recompute hash; a Build outside own borders is rejected with CommandRejected { reason: OutsideBorders } and no state change.
  • cargo run -p sim-cli --release -- bench --territory --sources 16 --edits 100 reports mean incremental recompute < 2 ms.
  • Scripted headless economy fixture: from the standard start (1 Town, 5 Yeomen, 150 Grain / 150 Lumber / 0 Ore / 0 Lore) a fixed build order founds a second Town before tick 3600 and the final hash matches the fixture.
  • Data-only contributor path: change croft gather rate from 10 to 12 in data/rules/buildings.ron, run sim-cli data-check and cargo test -p sim (the flatline test reads the number from data) without touching Rust; documented in CONTRIBUTING.
Rules
  • All non-[owner] lines pass before the next milestone starts; [owner] lines pass before the milestone after next, and the agent runs the named automated proxy first.
  • If the milestone runs long, split it into sim and game halves with their own acceptance subsets. Never cut acceptance criteria.
  • See docs/IMPLEMENTER_NOTES.md and docs/HANDOFF.md.
Dominant language
Rust
Stars
0
Forks
1
Avg merge
1d 7h
Merged PRs (30d)
10

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from tonianev/eonmark

All issues in tonianev/eonmark

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.