<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Development on Dark Pawns</title>
    <link>https://darkpawns.labz0rz.com/docs/development/</link>
    <description>Recent content in Development on Dark Pawns</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 22 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://darkpawns.labz0rz.com/docs/development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Architecture Reference</title>
      <link>https://darkpawns.labz0rz.com/docs/development/architecture/</link>
      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://darkpawns.labz0rz.com/docs/development/architecture/</guid>
      <description>&lt;h1 id=&#34;architecture-reference&#34;&gt;Architecture Reference&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;Last updated:&lt;/strong&gt; 2026-05-16&lt;/p&gt;&#xA;&lt;p&gt;This page documents the internal architecture of the Dark Pawns Go server, covering the data flow from client connection to command dispatch, the concurrency model, and the package breakdown. The full source is in &lt;code&gt;docs/architecture/ARCHITECTURE.md&lt;/code&gt; in the repository.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;&#xA;&lt;p&gt;Dark Pawns is a Go MUD server faithful to ROM 2.4b / Dark Pawns C source. It reads unmodified &lt;code&gt;.wld&lt;/code&gt;, &lt;code&gt;.mob&lt;/code&gt;, &lt;code&gt;.obj&lt;/code&gt;, and &lt;code&gt;.zon&lt;/code&gt; area files via a custom parser, then serves the game over WebSocket (primary) and telnet (legacy). Concurrency is goroutine-per-connection with a shared &lt;code&gt;sync.RWMutex&lt;/code&gt; on the world state, a 2-second combat ticker, and serialized Lua scripting via a single &lt;code&gt;gopher-lua&lt;/code&gt; VM. The design prioritizes behavioral fidelity to the original C codebase — same command set, same combat formulas, same Lua script API — while replacing the single-threaded C event loop with Go&amp;rsquo;s concurrency primitives.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
