Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,10 +185,12 @@ forwarding and controls.
```

Player counts from 2 through 500 are supported. Counts above eight use one-cell high-scale spawns, a compact HUD summary, and selective local tactical subscriptions. Other presets are `dev64` and
`validation192`. Lobby configuration is one-shot: the first successful
`configure_match` or `configure_map` locks it against further regeneration
without claiming a player slot. Every configured slot remains open for a
normal `join_match` call. The compatibility reducer `configure_map` changes
`validation192`. The first successful `configure_match` or `configure_map`
records the calling identity and locks configuration against every other
identity without claiming a player slot; the recorded configurator may still
reconfigure until the first player joins. Every configured slot remains open
for a normal `join_match` call (fresh slot claims are lobby-only; reconnects
work in any phase). The compatibility reducer `configure_map` changes
only the preset while retaining the currently configured player count:

```bash
Expand Down Expand Up @@ -394,6 +396,16 @@ load is distributed; simulation is not).
- `modules/match` — authoritative SpacetimeDB schema, reducers, and scheduler.
- `tools/mapgen` — curated map generator/validator CLI.
- `tools/match-e2e` — real-server two-client acceptance smoke test.
- `tools/match-playtest` — automated no-human cluster-controls live playtest
(six behavioral scenarios + conservation monitor). One command:

```bash
./scripts/run-automated-playtest.sh
```

This publishes a fresh isolated `of-match-e2e-auto` database (never
`of-match-dev`) and writes evidence to `docs/playtests/` and
`artifacts/playtests/`.
- `tools/match-perf` — distributed-capable live-match load driver and step-rate profiler.
- `docs` — the game design, architecture, UI direction, implementation notes,
performance profiling, and deliberately deferred ideas.
Expand Down
5 changes: 2 additions & 3 deletions crates/game-client/src/hud.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#[cfg(not(target_arch = "wasm32"))]
use bevy::app::AppExit;
use bevy::{
picking::hover::Hovered,
prelude::*,
Expand All @@ -7,9 +9,6 @@ use bevy::{
},
};

#[cfg(not(target_arch = "wasm32"))]
use bevy::app::AppExit;

use crate::{
interaction::{InteractionState, OrderMode},
map_view::map_view_status_bundle,
Expand Down
1 change: 1 addition & 0 deletions crates/game-client/src/observe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -304,5 +304,6 @@ mod tests {
state.note_frame_spike(41.0, 50.0, Some(20.0));
assert_eq!(state.events.len(), 1);
assert_eq!(state.events[0].key, keys::PERF_FRAME_SPIKE);
assert!(state.events[0].detail.contains("frame_ms=40.00"));
}
}
3 changes: 3 additions & 0 deletions crates/hex-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@ serde = ["dep:serde"]

[dependencies]
serde = { version = "1.0", features = ["derive"], optional = true }

[dev-dependencies]
serde_json.workspace = true
Loading
Loading