Commit graph

282 commits

Author SHA1 Message Date
075a6ce303
Add game loop skeleton for periodic tick processing 2026-02-07 16:17:20 -05:00
d220835f7d
Add mode stack to Player and mode check in dispatch 2026-02-07 16:17:01 -05:00
dcc8b961bb
Add CommandDefinition and migrate command registry 2026-02-07 16:15:21 -05:00
bea2a73c98
Read world config from TOML instead of hardcoding 2026-02-07 16:14:03 -05:00
0f05302b6e
Add an architectural plan 2026-02-07 15:54:12 -05:00
2c75d26d68
Add a simple README 2026-02-07 15:42:07 -05:00
e059bac633
Add research on graphicmud 2026-02-07 15:39:36 -05:00
1223eebeb1
Add mudlib documents 2026-02-07 15:36:52 -05:00
9948a36f5f
Add world cache to speedup startup 2026-02-07 15:00:07 -05:00
a10f3d4e70
Stagger cloud trail dissolution so tiles fade one at a time
Each cloud in the trail gets a slightly longer TTL than the one
before it (0.15s stagger). The origin cloud dissolves first, then
each subsequent tile follows. Two consecutive flights produce a
trail where the oldest clouds are already gone.
2026-02-07 14:48:42 -05:00
93ad4523e2
Make flying a toggle state
fly with no args toggles flying on/off. Movement commands (fly east,
etc) only work while airborne. "You aren't flying." if you try to
move without toggling on first. Player.flying field tracks the state.
2026-02-07 14:48:42 -05:00
9844749edd
Add fly command with cloud trail effects
fly <direction> moves the player 5 tiles, ignoring terrain. Leaves
a trail of bright white ~ clouds that fade after 2 seconds. Effects
system supports arbitrary timed visual overlays on the viewport.
TinTin aliases: fn/fs/fe/fw/fne/fnw/fse/fsw.
2026-02-07 14:48:42 -05:00
29983776f9
Update agent config with new notes 2026-02-07 14:48:24 -05:00
8934397b1e
Make world wrap seamlessly in both axes
Tileable Perlin noise: each octave wraps its integer grid coordinates
with modulo at the octave's frequency, so gradients at opposite edges
match and the noise field is continuous across the boundary.

Coarse elevation grid interpolation wraps instead of padding boundary
cells. Rivers can flow across world edges. All coordinate access
(get_tile, is_passable, get_viewport) wraps via modulo. Movement,
spawn search, nearby-player detection, and viewport relative positions
all handle the toroidal topology.
2026-02-07 13:50:06 -05:00
9cd9c6f790
Add worktrees to gitignore 2026-02-07 13:46:22 -05:00
9cdc1c48e4
Add a map renderer 2026-02-07 13:38:32 -05:00
25bb565091
Move notes to docs/how, docs/why, docs/lessons
how/  - how things work (terrain generation, command system)
why/  - design philosophy (telnet-first, text worlds)
lessons/ - things we learned the hard way (charset vs mtts)

Removes notes/ — DAYDREAMING.txt became DREAMBOOK.md, charset-vs-mtts
expanded into docs/lessons/ with the connect_maxwait fix documented.
2026-02-07 13:31:02 -05:00
0d0c142993
Add seed-based terrain world with movement and viewport
1000x1000 tile world generated deterministically from a seed using
layered Perlin noise. Terrain derived from elevation: mountains,
forests, grasslands, sand, water, with rivers traced downhill from
peaks. ANSI-colored viewport centered on player.

Command system with registry/dispatch, 8-direction movement (n/s/e/w
+ diagonals), look/l, quit/q. Players see arrival/departure messages.

Set connect_maxwait=0.5 on telnetlib3 to avoid the 4s CHARSET
negotiation timeout — MUD clients reject CHARSET immediately via MTTS.
2026-02-07 13:27:44 -05:00
a1d139ea87 Update telnetlib3 2026-02-07 12:21:59 -05:00
a6b628bb14 Add debug command 2026-02-07 12:21:39 -05:00
7f47124b02 Update agent config 2026-02-07 12:21:33 -05:00
3ebff56017 Use telnetlib3 readline correctly 2026-02-07 12:20:00 -05:00
a81888d0b8 Add a dreambook 2026-02-07 12:19:49 -05:00
2d210dfaf5 Add notes on charset vs mtts 2026-02-07 10:46:38 -05:00
6b97d6c545 Add debug logs to view negotiations 2026-02-07 10:32:11 -05:00
04230eb152 Use async readline with local telnetlib3 2026-02-07 10:23:56 -05:00
a83248b387 Add bare echoing telnet server 2026-02-07 10:05:34 -05:00
27ec0a8a22 Ignore pycache 2026-02-07 09:53:18 -05:00
482d0e5fa6 Add an agent config 2026-02-07 09:48:36 -05:00
c9ffee997e Ignore repos 2026-02-07 09:45:48 -05:00
541415e011 Add first generation 2026-02-07 09:45:48 -05:00
03330d0ecd Update daydream 2026-02-07 09:45:48 -05:00