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"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
|
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]]
|
[[package]]
|
||||||
name = "citygen"
|
name = "citygen"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -250,6 +234,22 @@ dependencies = [
|
|||||||
"winapi",
|
"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]]
|
[[package]]
|
||||||
name = "darling"
|
name = "darling"
|
||||||
version = "0.24.1"
|
version = "0.24.1"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
members = ["crates/citygen", "crates/city"]
|
members = ["crates/citygen", "crates/cyberpunk"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|||||||
33
README.md
33
README.md
@@ -1,9 +1,12 @@
|
|||||||
# cyberpunk
|
# cyberpunk
|
||||||
|
|
||||||
A terminal game in a full cyberpunk setting. This is the first piece: a seeded,
|
A terminal roguelike in a full cyberpunk setting. You will play it on foot
|
||||||
deterministic **city generator** and the full-screen terminal app around it.
|
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 |
|
| 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
|
Heights. Districts have themes (corp core, night market, megablocks, combat
|
||||||
zone, docks, industrial, neon strip, old town) that drive street layout,
|
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
|
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.
|
Same seed and parameters always produce a byte-identical city.
|
||||||
|
|
||||||
## Run
|
## Run
|
||||||
|
|
||||||
```sh
|
```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
|
```sh
|
||||||
cargo run --release -p city -- gen --seed 42 --size medium --out cities/demo.city
|
cargo run --release -p cyberpunk -- 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 large --json --out /tmp/demo.json
|
||||||
```
|
```
|
||||||
|
|
||||||
Sizes: `small` (160x80), `medium` (240x120), `large` (320x160) or `WxH`.
|
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,
|
Needs a truecolor terminal of at least 100x30 cells (iTerm2, Ghostty, kitty,
|
||||||
WezTerm). Saved cities go to `./cities/*.city`.
|
WezTerm). Saved cities go to `./cities/*.city`.
|
||||||
@@ -59,11 +64,11 @@ manhole · `.` wait · `tab` back to the free camera · panels as above
|
|||||||
## Layout
|
## Layout
|
||||||
|
|
||||||
```
|
```
|
||||||
crates/citygen world model + generator (no terminal dependencies)
|
crates/citygen world model + city generator (no terminal dependencies)
|
||||||
crates/city the ratatui app and the `gen` CLI
|
crates/cyberpunk the game: ratatui app, screens, renderer, and the `gen` CLI
|
||||||
flavor/ names.ron (names, signage glyphs) · style.ron (palettes, glyph sets)
|
flavor/ names.ron (names, signage glyphs) · style.ron (palettes, glyph sets)
|
||||||
docs/superpowers/specs design spec
|
docs/superpowers/specs design specs
|
||||||
docs/superpowers/plans implementation plan
|
docs/superpowers/plans implementation plans
|
||||||
```
|
```
|
||||||
|
|
||||||
## Develop
|
## Develop
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "city"
|
name = "cyberpunk"
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
version.workspace = true
|
version.workspace = true
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "city"
|
name = "cyberpunk"
|
||||||
path = "src/main.rs"
|
path = "src/main.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
@@ -9,8 +9,8 @@ use std::path::PathBuf;
|
|||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
#[command(
|
#[command(
|
||||||
name = "city",
|
name = "cyberpunk",
|
||||||
about = "Generate, explore and walk a cyberpunk city in the terminal"
|
about = "A terminal roguelike in a multi-level cyberpunk city"
|
||||||
)]
|
)]
|
||||||
pub struct Cli {
|
pub struct Cli {
|
||||||
#[command(subcommand)]
|
#[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 anim;
|
||||||
mod app;
|
mod app;
|
||||||
Reference in New Issue
Block a user