<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>hi, it&#39;s mike</title>
    <link>https://mike.puddingtime.org/tags/claude/</link>
    <description>Recent content on hi, it&#39;s mike</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>mike@puddingtime.org (mike)</managingEditor>
    <webMaster>mike@puddingtime.org (mike)</webMaster>
    <copyright>© 2026, mike</copyright>
    <lastBuildDate>Thu, 30 Apr 2026 19:50:48 +0000</lastBuildDate>
    <atom:link href="https://mike.puddingtime.org/tags/claude/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>This RPG thing I thought up</title>
      <link>https://mike.puddingtime.org/posts/2026-04-30-this-rpg-thing-i-thought-up/</link>
      <pubDate>Thu, 30 Apr 2026 19:50:48 +0000</pubDate><author>mike@puddingtime.org (mike)</author>
      <guid>https://mike.puddingtime.org/posts/2026-04-30-this-rpg-thing-i-thought-up/</guid>
      <description>I like Rogue.  I loved old dungeon crawlers in the 8-bit era because they couldn&amp;rsquo;t do that much. So I was sitting around thinking about something fun to do and decided to make a very simple web-based RPG.</description>
      <content:encoded><![CDATA[<p>I like Rogue.  I loved old dungeon crawlers in the 8-bit era because they couldn&rsquo;t do that much. So I was sitting around thinking about something fun to do and decided to make a very simple web-based RPG.</p>
<p>After a little research, I picked an RPG engine (<a href="https://cairnrpg.com">Cairn</a>) because it has an open license and there&rsquo;s plenty of creature and loot content out there.</p>
<p>The game is pretty simple, but I picked two things to customize/make customizable:</p>
<p>First, the game content (creatures, treasures, settings) are all defined in YAML files:</p>






<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">- id: root_goblin
</span></span><span class="line"><span class="cl">  name: Root Goblin
</span></span><span class="line"><span class="cl">  str: 8
</span></span><span class="line"><span class="cl">  dex: 14
</span></span><span class="line"><span class="cl">  wil: 8
</span></span><span class="line"><span class="cl">  hp: 4
</span></span><span class="line"><span class="cl">  armor: 0
</span></span><span class="line"><span class="cl">  attack: { name: &#34;spear&#34;, die: &#34;d6&#34; }
</span></span><span class="line"><span class="cl">  special: null
</span></span><span class="line"><span class="cl">  tier: weak
</span></span><span class="line"><span class="cl">  weaknesses: [poison]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">- id: hooded_thief
</span></span><span class="line"><span class="cl">  name: Hooded Thief
</span></span><span class="line"><span class="cl">  str: 10
</span></span><span class="line"><span class="cl">  dex: 12
</span></span><span class="line"><span class="cl">  wil: 6
</span></span><span class="line"><span class="cl">  hp: 4
</span></span><span class="line"><span class="cl">  armor: 0
</span></span><span class="line"><span class="cl">  attack: { name: &#34;dagger&#34;, die: &#34;d6&#34; }
</span></span><span class="line"><span class="cl">  special: null
</span></span><span class="line"><span class="cl">  tier: weak
</span></span><span class="line"><span class="cl">  weaknesses: [greed]</span></span></code></pre></div>
<p>Once I&rsquo;ve got it working with the initial data, I want to make the data files interchangeable and write a Claude Skill that lets the player answer some simple questions about atmosphere and setting that generates a custom YAML file.</p>
<p>Note the <code>weaknesses</code> field: That helps drive the next feature:</p>
<p>The first thing I noted trying to playthroughs using stock Cairn rules is that it is a super unforgiving system. The game requires you to get through 13 rooms, and I couldn&rsquo;t make it past four without fleeing a lot. I considered nerfing things, or buffing the characters, but I was also just finding the game itself pretty boring.</p>
<p>So I&rsquo;ve added an AI GM (a Haiku API call). When you encounter a creature, you can do the usual attack or flee, but you can also improv using anything in your inventory:</p>
<p><img src="https://photos.smugmug.com/photos/i-j8VbJgR/0/KcHSkBbnStLxqdW2fsjbSLxJMC5R4dHmp5z4kZnL8/L/i-j8VbJgR-L.png" alt="Getting creative with a mirror"></p>
<p>&hellip; and Haiku ajudicates:</p>
<p><img src="https://photos.smugmug.com/photos/i-wMXGDRj/0/LwbJ9fM4pHXbddDqKhcKHBCKP32TpgkNwSXmLwwSb/L/i-wMXGDRj-L.png" alt="No luck. The GM is a little uinforgiving. "></p>
<p>For v1, I&rsquo;m just kicking the tires on the virtual GM. Eventually, the same way I want settings, creatures, and loot to be user-definable, I want to be able to define the GM&rsquo;s temperament: Everything from the classic by-the-book realism killjoy to what I&rsquo;m calling &ldquo;failed improv class instructor.&rdquo;</p>
<p>You may have also noted with that Hooded Thief creature up there that there&rsquo;s a <code>  weaknesses: [greed]</code> field: The GM uses that to help it judge the effectiveness of your gambit: If you&rsquo;re holding a coin purse and come across the hooded thief, it&rsquo;ll get distracted if you just drop your money and run away.</p>
<p>I still want the game system to be a little tough, and still want to make getting to that 13th room hard, but it might as well be more fun along the way.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
