NXS-Go is a local-first abstract strategy game about connection, pressure, and isolation.
Two players build living networks from their Sources. They route pressure through edges, capture weak points, and try to trigger isolation. A branch that loses connection to its Source goes dark.
The board uses a 2.5D depth-field view: the rules remain graph-based, while shadows, perspective lines, and visual layering make network depth easier to read.
Current status: v0.2 AI Arena experiments.
Human playtest status: controlled local hotseat feedback wanted.
The first playable prototype focuses on the core loop:
- SYNCH: place a node near your living network.
- ROUTE: direct flow along an edge.
- PULSE: resolve route pressure and capture overloaded opponent nodes.
- Isolation check: disconnected branches go dark.
Advanced asymmetry such as Signal Amplify and Noise Ghost Node is intentionally deferred until the base loop is stable.
Clone the repo:
git clone https://github.com/creator35lwb-web/NXS-Go
cd NXS-GoInstall dependencies:
python -m pip install -r requirements.txtStart the prototype:
python nxs_go.pyH: open/close in-game helpE: open/close event historyU: undo last completed actionS: save session history tohistory/1: select SYNCH2: select ROUTE3: select PULSESpace: execute PULSE[/]: lower/raise 2.5D tilt viewR: resetEsc: quit
Use the mouse to place nodes or select edges. Hover over an edge to inspect the route bridge before clicking.
- Start the game. The help panel opens automatically.
- Press
Hto close the help after reading it. - Signal starts on the blue Source ring.
- Press
1for SYNCH, then click near the blue Source to place a connected node. - Noise takes the next turn. Repeat near the red Source.
- Press
2for ROUTE, then click an edge touching one of your nodes to create an arrow. - Press
Spaceto PULSE when you want to resolve pressure.
If a branch loses connection to its Source, it goes dark.
Press S any time to save the session history as a Markdown file. The saved history is useful for reviewing how a move created pressure, capture, or isolation.
For a more detailed guide, see docs/PLAYBOOK.md.
NXS-Go needs human competition feedback before broad AI-agent review.
Run a local hotseat best-of-3 set, then open a GitHub issue with the Human Playtest Feedback template.
See docs/HUMAN_PLAYTEST.md.
Best feedback includes a saved history file from history/, a screenshot of a confusing board state, and whether both players wanted a rematch.
The basic pattern is:
Build from Source -> route pressure into weak nodes -> capture bridges -> trigger blackout
The game does not use points yet. For v0.1-A, advantage is shown as network structure:
- live nodes
- routed edges
- whether the Source is still connected
You win by keeping your Source alive while making the opponent's Source/network go dark.
If neither Source is isolated after 60 completed turns, Horizon Scoring awards the game to the structurally stronger living network.
Run the core logic tests:
python -m unittest discover -s testsNXS-Go includes an early agent-facing environment in nxs_go_ai.py.
It exposes legal actions, observations, rewards, and baseline bots so the game can be tested by simple agents before future self-play work.
See docs/AI_ARENA.md.
Run a small baseline benchmark:
python scripts\benchmark_agents.py --games 5 --max-turns 30Run a focused defense-vs-greedy geometry probe:
python scripts\benchmark_agents.py --suite defense --map contested_lanes --games 1 --max-turns 60The current AI hypothesis is whether bridge-aware defense can contest greedy isolation pressure.
Turn-limit benchmark games include structural score leaders so experiments still produce evidence when no Source is isolated.
Current follow-up: CounterRouteAgent tests whether active defensive routing can contest greedy isolation better than passive bridge holding.
Latest hypothesis: TargetedCounterPressureAgent tests whether defense improves by routing into opponent pressure sources.
Current geometry finding: contested_lanes sharply reduces GreedyIsolation's horizon margin, suggesting defense is partly geometry/search dependent.
Current search finding: TacticalDefenseAgent improves some map margins but does not yet convert defensive positions into wins.
The AI Arena is designed for CPU-first development. Focused benchmarks do not require a GPU.
ROADMAP.md: milestone direction from v0.1-A to v1.0CONTRIBUTING.md: contribution guide and design ruleSECURITY.md: local-first security and privacy policydocs/ARCHITECTURE.md: current code structure and rule boundarydocs/AI_ARENA.md: agent interface and baseline bot directiondocs/AI_BENCHMARKS.md: early baseline-agent resultsdocs/HUMAN_PLAYTEST.md: local human playtest guide and feedback questionsdocs/PLAYBOOK.md: first-game guidance and winning patternLICENSE: MIT license
Connection is life.
Isolation is defeat.
Playtest v0.1-A before adding asymmetric abilities.
Answer these questions first:
- Does SYNCH feel clear?
- Does ROUTE feel like intention?
- Does PULSE explain why nodes change owner?
- Does isolation feel immediate and meaningful?
- Can both players understand why a branch went dark?
Only after those answers are clear should v0.1-B add:
- Signal Amplify
- Noise Ghost Node
- stronger visual feedback