Add research on graphicmud
This commit is contained in:
parent
1223eebeb1
commit
e059bac633
2 changed files with 83 additions and 0 deletions
|
|
@ -185,6 +185,10 @@ java:
|
|||
https://github.com/bozimmerman/CoffeeMud
|
||||
most feature-complete. 217 stars
|
||||
|
||||
- graphicmud
|
||||
https://bitbucket.org/taranion/graphicmud
|
||||
java 21, tile graphics + text hybrid. sixel rendering, ECS, behavior trees, multi-connector (telnet/discord/telegram/websocket). 30+ plugins
|
||||
|
||||
C#:
|
||||
- archaicquest
|
||||
https://github.com/ArchaicQuest/ArchaicQuest-II
|
||||
|
|
|
|||
|
|
@ -112,6 +112,14 @@ compiled engine + scripted logic pattern:
|
|||
- dragon-mud (go+lua)
|
||||
- ataxia (rust+lua)
|
||||
|
||||
graphicmud (java)
|
||||
tile-based graphics over telnet via sixel encoding. ECS architecture instead of
|
||||
inheritance. behavior trees for NPC AI. 4-tier action system with automatic
|
||||
dependency chaining. multi-connector: telnet, discord, telegram, websocket, MCP.
|
||||
30+ plugins. symbol system maps each tile to multiple representations (ascii,
|
||||
cp437, unicode, ansi colors, pixel bitmaps) — client capability detection picks
|
||||
the best one.
|
||||
|
||||
taleweave-ai (python)
|
||||
AI NPCs via LLMs, discord integration, stable diffusion visuals.
|
||||
|
||||
|
|
@ -248,6 +256,14 @@ continuous/coordinate
|
|||
advantages: seamless movement, true spatial relationships
|
||||
challenge: rendering continuous space as text
|
||||
|
||||
tile graphics (graphicmud)
|
||||
3D tile grid (x, y, z) with toroidal wrap. the unique part: tiles render as
|
||||
actual bitmap graphics via sixel encoding over telnet, not just colored text
|
||||
characters. symbol system gives each tile multiple representations — ascii
|
||||
fallback, cp437 glyph, unicode, ansi colors (16/256/24-bit), and pixel-grid
|
||||
bitmaps. client capability detection picks the richest format supported.
|
||||
standalone symbol editor for creating tile sets.
|
||||
|
||||
OUR APPROACH (from dreambook)
|
||||
2D toroidal tile grid with terrain types. viewport centered on player. hybrid -
|
||||
overworld is grid, interiors can be rooms. this is relatively uncommon in the
|
||||
|
|
@ -373,6 +389,48 @@ OUR APPROACH (from dreambook)
|
|||
content.
|
||||
|
||||
|
||||
npc behavior
|
||||
-----------
|
||||
most muds: simple scripts or state machines. mobs patrol, aggro, flee at low hp.
|
||||
|
||||
diku
|
||||
mobprog/mudprog triggers (on_greet, on_fight, on_death). procedural scripts.
|
||||
|
||||
lpc
|
||||
NPC code in LPC, full programming language. powerful but requires coding skill.
|
||||
|
||||
evennia
|
||||
no built-in NPC system. roll your own with scripts and tickers.
|
||||
|
||||
graphicmud
|
||||
behavior trees. hierarchical node structure (sequence, best-effort, action
|
||||
nodes). NPCs make decisions via tree traversal each tick. supports conditional
|
||||
logic, parallel execution, error handling. combat AI: survive, eliminate threat,
|
||||
patrol, assist.
|
||||
|
||||
OUR APPROACH (from dreambook)
|
||||
not yet designed. behavior trees worth considering.
|
||||
|
||||
|
||||
action architecture
|
||||
-------------------
|
||||
how commands turn into world changes.
|
||||
|
||||
simple (most muds)
|
||||
command handler directly modifies state. "kill goblin" -> find goblin, check
|
||||
conditions, deal damage, all in one function.
|
||||
|
||||
graphicmud (4-tier)
|
||||
rawactions (atomic ops) -> cookedactions (single pulse) -> mudactions (multi-pulse
|
||||
with conditions) -> commands (user input). actions automatically chain to resolve
|
||||
dependencies — "attack goblin with sword" generates: walk to sword, pick up,
|
||||
equip, walk to goblin, attack. planning system handles the sequencing.
|
||||
|
||||
evennia
|
||||
at_pre_cmd -> parse -> func -> at_post_cmd. hooks at each stage but no
|
||||
automatic chaining.
|
||||
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
SECTION 4: protocols
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
|
@ -590,3 +648,24 @@ the prototype/spawn pattern (evennia, diku zone resets) is how everyone handles
|
|||
mob/item templates.
|
||||
|
||||
define once, instantiate many.
|
||||
|
||||
|
||||
9. entity component system
|
||||
---------------------------
|
||||
graphicmud uses ECS (composition over inheritance). entities are bags of
|
||||
components, archetypes define which components they get.
|
||||
|
||||
most MUDs use deep inheritance hierarchies (Object -> Item -> Weapon -> Sword).
|
||||
ECS avoids the diamond problem and makes it easier to add cross-cutting features.
|
||||
|
||||
worth considering if our entity model gets complex.
|
||||
|
||||
|
||||
10. capability-based rendering
|
||||
------------------------------
|
||||
graphicmud's symbol system — same tile has ascii, ansi, and sixel representations,
|
||||
client detection picks the richest — is elegant.
|
||||
|
||||
we already adapt to NAWS for viewport size. extending this pattern to rendering
|
||||
quality (plain text -> colored text -> graphics) would let us support everything
|
||||
from raw telnet to sixel-capable terminals.
|
||||
|
|
|
|||
Loading…
Reference in a new issue