Accursed
design
Midgaard Static Site Recreation
Recreating the classic MUD city of Midgaard as a Hugo static site, where each room is a markdown file with YAML frontmatter containing spatial and descriptive data.
Room Structure
Each room will be a markdown file with the following YAML frontmatter:
---
title: "Temple Square"
room_id: "temple_square"
coordinates: [0, 0, 0] # x, y, z
short_description: "the Temple Square"
exits:
north: "temple_entrance"
south: "market_square"
east: "eastern_avenue"
west: "western_road"
up: null
down: null
npcs:
- name: "a temple guard"
description: "A stern-looking guard watches over the square"
items:
- "a marble fountain"
- "stone benches"
ambiance:
- "The sound of flowing water echoes from the fountain"
- "Pilgrims move quietly through the square"
lighting: "bright"
weather_affected: true
---
You stand in the heart of Midgaard's Temple Square. A magnificent marble fountain
dominates the center, its crystalline waters catching the light. Stone benches
line the square's perimeter, offering rest to weary travelers. To the north,
the grand temple rises majestically, while bustling market sounds drift from the south.
Directory Structure
content/
midgaard/
_index.md # Main city overview
temple/
square.md # Temple Square (0,0,0)
entrance.md # Temple Entrance (0,1,0)
altar.md # Main Altar (0,2,0)
market/
square.md # Market Square (0,-1,0)
fountain.md # Market Fountain (0,-2,0)
stalls/
weapon_shop.md # Weapon Shop (-1,-1,0)
armor_shop.md # Armor Shop (1,-1,0)
residential/
main_street.md # Main Street
inn.md # The Midgaard Inn
tavern.md # Local Tavern
outskirts/
gates/
north.md # North Gate
south.md # South Gate
east.md # East Gate
west.md # West Gate
Navigation System
- Custom Hugo shortcode
{{< compass >}}
generates N/S/E/W navigation buttons - JavaScript enhances buttons with hover effects and keyboard navigation
- URL structure:
/midgaard/temple/square/
maps to coordinates and connections - Breadcrumb system shows current location in city hierarchy
Content Generation Strategy
- Core Locations: Start with ~20 essential Midgaard locations (temple, market, inn, gates)
- Procedural Descriptions: Use templates with randomized ambient details
- Interconnected Layout: Maintain classic MUD spatial relationships
- Progressive Enhancement: Add NPCs, items, and lore incrementally
- Community Content: Allow contributions via Git PRs for new rooms/descriptions
Technical Implementation
- Layout Template: Custom
room.html
layout renders YAML data as interactive room - Asset Pipeline: CSS/JS for compass navigation and atmospheric effects
- Data Validation: Hugo’s data validation ensures room connections are bidirectional
- Mobile First: Touch-friendly navigation optimized for “midgaard on mobile”
- Progressive Web App: Offline capability for exploring the city anywhere
Atmospheric Features
- Dynamic Descriptions: Time-based content changes (day/night descriptions)
- Weather System: Frontmatter-driven weather affects room descriptions
- Sound Design: Ambient audio cues for different districts
- Character Persistence: LocalStorage tracks “character” location between visits
thoughts - do not modify, always save this text at the bottom of the article unchanged
some type of market gambling some type of political influence from outside some type of iterative simulation which takes input from the live world (mastodon) some type of tithing to the democratically distributed financial backing
signed posts to masto, or their security is good enough… for now…
midgaard on mobile
a character in the town walks around gets a beer sits down