Project Ecosystem
Stalker PDA isn't a single repository — it's several connected parts. Knowing about them is useful even for a story writer: it helps you know "where to look" and who to ask.
Repository map
| Repository | What it is | Why a story writer cares |
|---|---|---|
artux-net/pda | The Android game (client), built with libGDX/Kotlin | This is where the engine "lives": it runs the story, draws the map, and calculates faction relations and combat |
artux-net/pdanetwork | Backend on Spring Boot (Kotlin/Java) | Stores stories and player inventories, syncs progress, and serves the story editor |
artux-net/pda-assets | Game assets: maps (.tmx), textures, sounds, fonts, interface localization | This is where the location files themselves and base faction settings live |
artux-net/pda-quests | Ready-made stories/quests in JSON | Examples and content drafts — a good cheat sheet for "how others do it" |
pda-quest-editor-web (repository zethange/pda-quest-editor-web) | The web-based story editor | The story writer's main tool — see the “Story Editor” section |
How it all works together
Story writer
│ writes a story visually
▼
Story Editor (story.artux.net)
│ saves/publishes the story JSON
▼
Backend pdanetwork ──────────────┐
│ serves stories and syncs │ stores: player progress,
│ inventory/xp/money │ inventory, faction relations,
▼ │ item catalog
Game pda (Android client) ◄──────┘
│ runs stages/conditions/actions,
│ draws the map (.tmx from pda-assets),
│ calculates combat and NPC relations
▼
The player sees: dialogues, map points, rewards, notifications
Key idea: a story is data, not code. In the editor, a story writer assembles a JSON structure
(chapters → stages → conditions → actions), and the game on the device already knows how to run it. New content
almost never requires changes to the game's Kotlin/Java code — only data (the story in pda-quests/via the editor,
the map in pda-assets).
Access roles
Both the backend and the editor use a single role system: USER < TESTER < MODERATOR < ADMIN. Every story has an
access field — the minimum role from which a player can see the story (for example, to test a not-yet-public
quest with TESTER accounts without showing it to everyone). More details in
“Publishing and Access”.
What's next
- Writing Stories — the story data model.
- Map and World — what the game map is made of.
- Factions and Relations — who fights whom and who's friends with whom.
- Story Editor — how to put a story together in practice.