{"id":50699128,"url":"https://github.com/trashguy/notatlas","last_synced_at":"2026-06-09T08:01:47.709Z","repository":{"id":354115192,"uuid":"1222183854","full_name":"trashguy/notatlas","owner":"trashguy","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-03T03:05:52.000Z","size":3931,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-03T04:22:31.756Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trashguy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-27T05:55:19.000Z","updated_at":"2026-06-03T03:05:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/trashguy/notatlas","commit_stats":null,"previous_names":["trashguy/notatlas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/trashguy/notatlas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trashguy%2Fnotatlas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trashguy%2Fnotatlas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trashguy%2Fnotatlas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trashguy%2Fnotatlas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trashguy","download_url":"https://codeload.github.com/trashguy/notatlas/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trashguy%2Fnotatlas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34096955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-09T08:01:47.024Z","updated_at":"2026-06-09T08:01:47.691Z","avatar_url":"https://github.com/trashguy.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# notatlas\n\nA from-scratch clone of the 2018-2020 era of Atlas (Grapeshot's pirate\nMMO), built on a custom Zig engine. The thing Atlas tried to build\nbefore scope and tech failures killed it: smooth naval combat at\nscale, harbor raids that don't tank FPS, and deep crafting with\nglobal resource sourcing.\n\nThis is the **substrate** repo — engine subsystems (wave query,\nbuoyancy, wind, ship physics) and service mesh (gateway, ship-sim,\ncell-mgr, spatial-index, env, persistence-writer, market-sim,\ninventory-sim, ai-sim). The renderer side is a custom GPU-driven\nVulkan pipeline written from scratch.\n\n## Status — 2026-05-12\n\nPhase 2 (architectural payoff) is in progress. Phase 0 (engine water\nlift) closed 2026-04-28; Phase 1 (networked ship combat) closed\n2026-05-01. The SLA-arc persistence layer + env service are closed as\nof 2026-05-12; the M10/M11/M12 client renderer milestones are next.\n\nSee [`docs/04-roadmap.md`](docs/04-roadmap.md) for the phase plan and\n[`docs/README.md`](docs/README.md) for the documentation index.\n\n## Repository map\n\n```\ndata/        # YAML-driven content: hulls, ammo, waves, wind, raid\n             # windows, AI archetypes (.yaml + .lua per archetype).\ndocs/        # Design + architecture docs. Start at docs/README.md.\ninfra/       # Local-dev NATS + PostgreSQL provisioning.\nscripts/     # Smoke harnesses (one per producer/consumer), JWT mint,\n             # driver scripts.\nsrc/         # Zig sources.\n  services/  # One subdir per service: gateway, ship-sim, cell-mgr,\n             # spatial-index, env-sim, persistence-writer, market-sim,\n             # inventory-sim, ai-sim.\n  shared/    # Cross-service modules: BT runtime, Lua bind, replication\n             # tier table, projectile model.\nvendor/      # Vendored C deps (Lua 5.4, Jolt Physics).\n```\n\n## Quick start\n\nRequires Zig 0.15.2, Podman (or Docker), and ~/Projects/fallen-runes\nchecked out at the same level as the reference for shared patterns.\n\n```bash\n# Build all binaries (sandbox client + services).\nzig build install\n\n# Start NATS + PostgreSQL in the background.\nmake services-up\n\n# Run the sandbox player loop (5 ships at x=0..240, WASD walk, B board,\n# G disembark, F fire). Spins up the service mesh under the hood.\n./scripts/drive_ship.sh\n\n# Run individual service mesh by hand:\n./zig-out/bin/env-sim \u0026\n./zig-out/bin/spatial-index \u0026\n./zig-out/bin/cell-mgr --cell 0_0 \u0026\n./zig-out/bin/ship-sim --shard a --ships 5 \u0026\n./zig-out/bin/ai-sim \u0026\n./zig-out/bin/persistence-writer \u0026\n./zig-out/bin/gateway \u0026\n./zig-out/bin/market-sim \u0026\n./zig-out/bin/inventory-sim \u0026\n```\n\n## Testing\n\n```bash\nzig build test              # All Zig unit tests\n./scripts/*_smoke.sh        # Per-feature integration smokes\n```\n\nThe smoke harnesses are the canonical regression check for the SLA\narc, env-service consumers, transit, and cross-service wires. Each\nharness boots the minimum subset of the mesh it needs.\n\n## Project orientation (for AI / new contributors)\n\n- [`CLAUDE.md`](CLAUDE.md) — project-specific operating rules.\n  Locked decisions; the engine substrate is committed (no UE5 / Godot\n  / Bevy / Unity proposals).\n- [`docs/02-architecture.md`](docs/02-architecture.md) — the ten locked\n  architectural decisions. Don't relitigate.\n- [`docs/04-roadmap.md`](docs/04-roadmap.md) — phased plan + stress\n  gates between phases.\n- [`docs/07-anti-patterns.md`](docs/07-anti-patterns.md) — Atlas\n  failures we will not replicate.\n\n## Why this exists\n\nAtlas's design space remains underserved — Sea of Thieves is too\narcade, Skull and Bones flopped, and Atlas itself was abandoned by\nGrapeshot. The opportunity is to build the same vision with the\nlessons from Atlas's failures applied and a substantially better\ntechnical substrate: HFT-style per-entity NATS subjects, a spatial\nindex that's an interest manager (not a state owner), a GPU-driven\nrenderer that scales to hundreds of structures, and a data-driven\ncontent pipeline so designers can iterate without a full rebuild.\n\n## License\n\nCode: TBD. Third-party deps + their licenses listed in\n[`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrashguy%2Fnotatlas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrashguy%2Fnotatlas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrashguy%2Fnotatlas/lists"}