chore: rename app crate and binary to cyberpunk
The game is called cyberpunk; the city generator is its first subsystem, not the project. The citygen library keeps its name. README reframed around the game. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
32
Cargo.lock
generated
32
Cargo.lock
generated
@@ -121,22 +121,6 @@ version = "1.0.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
|
||||
|
||||
[[package]]
|
||||
name = "city"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"citygen",
|
||||
"clap",
|
||||
"crossterm",
|
||||
"postcard",
|
||||
"ratatui",
|
||||
"ron",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"unicode-width 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "citygen"
|
||||
version = "0.1.0"
|
||||
@@ -250,6 +234,22 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cyberpunk"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"citygen",
|
||||
"clap",
|
||||
"crossterm",
|
||||
"postcard",
|
||||
"ratatui",
|
||||
"ron",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"unicode-width 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "darling"
|
||||
version = "0.24.1"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
members = ["crates/citygen", "crates/city"]
|
||||
members = ["crates/citygen", "crates/cyberpunk"]
|
||||
|
||||
[workspace.package]
|
||||
edition = "2024"
|
||||
|
||||
31
README.md
31
README.md
@@ -1,9 +1,12 @@
|
||||
# cyberpunk
|
||||
|
||||
A terminal game in a full cyberpunk setting. This is the first piece: a seeded,
|
||||
deterministic **city generator** and the full-screen terminal app around it.
|
||||
A terminal roguelike in a full cyberpunk setting. You will play it on foot
|
||||
through a multi-level city, and later from inside the Net as well.
|
||||
|
||||
The generator builds a multi-level city as walkable tile maps on four strata:
|
||||
The first subsystem is in place: a seeded, deterministic city generator and the
|
||||
full-screen terminal app that lets you generate, explore and walk its cities.
|
||||
|
||||
The generator builds a city as walkable tile maps on four strata:
|
||||
|
||||
| Stratum | What lives there |
|
||||
|---|---|
|
||||
@@ -16,25 +19,27 @@ Every building you see at street level is the same building you stand on at
|
||||
Heights. Districts have themes (corp core, night market, megablocks, combat
|
||||
zone, docks, industrial, neon strip, old town) that drive street layout,
|
||||
building mix, palette and signage. A Net graph of subnets, nodes and links is
|
||||
anchored to the physical tiles and can be shown as a digital overlay.
|
||||
anchored to the physical tiles and can be shown as a digital overlay. That
|
||||
graph is the seed of the cyberspace side of the game.
|
||||
|
||||
Same seed and parameters always produce a byte-identical city.
|
||||
|
||||
## Run
|
||||
|
||||
```sh
|
||||
cargo run --release -p city
|
||||
cargo run --release -p cyberpunk
|
||||
```
|
||||
|
||||
Headless generation, for scripts and the game later:
|
||||
Headless generation, for scripts and tooling:
|
||||
|
||||
```sh
|
||||
cargo run --release -p city -- gen --seed 42 --size medium --out cities/demo.city
|
||||
cargo run --release -p city -- gen --seed 42 --size large --json --out /tmp/demo.json
|
||||
cargo run --release -p cyberpunk -- gen --seed 42 --size medium --out cities/demo.city
|
||||
cargo run --release -p cyberpunk -- gen --seed 42 --size large --json --out /tmp/demo.json
|
||||
```
|
||||
|
||||
Sizes: `small` (160x80), `medium` (240x120), `large` (320x160) or `WxH`.
|
||||
Other flags: `--districts 4..12`, `--water none|bay|river`, `--density 0..1`.
|
||||
Other flags: `--districts 4..12` (an upper bound; slivers merge into their
|
||||
neighbours), `--water none|bay|river`, `--density 0..1`.
|
||||
|
||||
Needs a truecolor terminal of at least 100x30 cells (iTerm2, Ghostty, kitty,
|
||||
WezTerm). Saved cities go to `./cities/*.city`.
|
||||
@@ -59,11 +64,11 @@ manhole · `.` wait · `tab` back to the free camera · panels as above
|
||||
## Layout
|
||||
|
||||
```
|
||||
crates/citygen world model + generator (no terminal dependencies)
|
||||
crates/city the ratatui app and the `gen` CLI
|
||||
crates/citygen world model + city generator (no terminal dependencies)
|
||||
crates/cyberpunk the game: ratatui app, screens, renderer, and the `gen` CLI
|
||||
flavor/ names.ron (names, signage glyphs) · style.ron (palettes, glyph sets)
|
||||
docs/superpowers/specs design spec
|
||||
docs/superpowers/plans implementation plan
|
||||
docs/superpowers/specs design specs
|
||||
docs/superpowers/plans implementation plans
|
||||
```
|
||||
|
||||
## Develop
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
[package]
|
||||
name = "city"
|
||||
name = "cyberpunk"
|
||||
edition.workspace = true
|
||||
version.workspace = true
|
||||
license.workspace = true
|
||||
|
||||
[[bin]]
|
||||
name = "city"
|
||||
name = "cyberpunk"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
@@ -9,8 +9,8 @@ use std::path::PathBuf;
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(
|
||||
name = "city",
|
||||
about = "Generate, explore and walk a cyberpunk city in the terminal"
|
||||
name = "cyberpunk",
|
||||
about = "A terminal roguelike in a multi-level cyberpunk city"
|
||||
)]
|
||||
pub struct Cli {
|
||||
#[command(subcommand)]
|
||||
@@ -1,4 +1,4 @@
|
||||
//! `city`: generate, explore and walk a cyberpunk city in the terminal.
|
||||
//! `cyberpunk`: a terminal roguelike in a multi-level cyberpunk city.
|
||||
|
||||
mod anim;
|
||||
mod app;
|
||||
Reference in New Issue
Block a user