<?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>Projects — Bogodynamics</title>
    <link>https://bogodynamics.io/projects/</link>
    <description>[Quantum Bogodynamics](https://https://web.archive.org/web/20061005005653/http://www.catb.org/jargon/html/Q/quantum-bogodynamics.html) is the scientific theory of bogus particles (bogons). Bogons are responsible for the majority of software bugs and unexplained hardware malfunctions. Some tales of shenanigans and bogon-induced farce are documented herein.</description>
    <language>en-us</language>
    <copyright>© 2026 Amilia MacIntyre</copyright>
    <lastBuildDate>Tue, 26 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bogodynamics.io/projects/index.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Manganin</title>
      <link>https://bogodynamics.io/projects/manganin/</link>
      <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bogodynamics.io/projects/manganin/</guid>
      <description>A novel Git forge, with a vouch-based trust model, ergonomic issue &amp; PR data storage in Git, and local-first design.</description>
      <content:encoded>&lt;p&gt;Manganin my current primary project &amp;mdash; a Git forge written in Zig. Check out &lt;a href=&#34;https://blog.manganin.dev&#34;&gt;the devlog&lt;/a&gt; for more info on the design philosophy and development process.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://bogodynamics.io/projects/manganin/tui_hu_d00e4a4c96719dd3.png&#34;&#xA;    width=&#34;1440&#34; height=&#34;1221&#34;&#xA;    alt=&#34;Manganin TUI&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;  &lt;figcaption&gt;The TUI for browsing issues.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;</content:encoded>
    </item>
    <item>
      <title>The RPG thing</title>
      <link>https://bogodynamics.io/projects/btown/</link>
      <pubDate>Tue, 28 Jan 2025 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bogodynamics.io/projects/btown/</guid>
      <description>Experimental RPG/roguelike/survival game.</description>
      <content:encoded>&lt;p&gt;Based on RPG/roguelike/survival game &lt;a href=&#34;https://github.com/CleverRaven/Cataclysm-DDA&#34;&gt;CDDA&lt;/a&gt;, using some of its assets, as a testbed for mechanics.&lt;/p&gt;&#xA;&lt;h2 id=&#34;state&#34;&gt;State&lt;/h2&gt;&#xA;&lt;p&gt;You can explore the world, fight a zombie, manage your inventory, and edit the map. The worldgen does not place points of interest; they must be placed manually using the map editor.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;btown.png&#34; alt=&#34;screenshot&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It is not happy about the high DPI display so the text is really small.&lt;/p&gt;&#xA;&lt;h3 id=&#34;zombie&#34;&gt;Zombie&lt;/h3&gt;&#xA;&lt;p&gt;The combat is hitpoint-based. The zombie moves towards the player (or the player&amp;rsquo;s last known position) in a line with some randomness (zombie shamble) applied. It will try to destroy obstacles in its way.&lt;/p&gt;&#xA;&lt;h3 id=&#34;map&#34;&gt;Map&lt;/h3&gt;&#xA;&lt;p&gt;I can use the debug tools to create, save, and load chunks. I made an explorable house (open and close doors, look in boxes) with some items in it for testing.&lt;/p&gt;&#xA;&lt;h3 id=&#34;losfow&#34;&gt;LOS/FOW&lt;/h3&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a custom line of sight/fog of war implementation. It differs from standard implementations in that it is symmetrical &amp;mdash; that is, if you can see a monster, the monster can always see you, and vice-versa.&lt;/p&gt;&#xA;&lt;p&gt;There is also map memory: if you&amp;rsquo;ve seen a place before, it will appear as a greyed out version of what you last saw there. It will only update when you see it again.&lt;/p&gt;&#xA;&lt;h3 id=&#34;tech&#34;&gt;Tech&lt;/h3&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a chunk system that makes the map theoretically very large (nothing is truly infinite without infinite hardware), but in the interest of haste, I made some sloppy casts and shortcuts that need to be fixed for it to function properly (not crash).&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a very ergonomic job system that makes adding actions for monsters or (and!) the player quite straightforward.&lt;/p&gt;&#xA;&lt;p&gt;The camera is super borked and doesn&amp;rsquo;t zoom centered to the player.&lt;/p&gt;&#xA;</content:encoded>
    </item>
    <item>
      <title>Bohelper</title>
      <link>https://bogodynamics.io/projects/bohelper/</link>
      <pubDate>Tue, 29 Aug 2023 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bogodynamics.io/projects/bohelper/</guid>
      <description>A game solver. A cautionary tale.</description>
      <content:encoded>&lt;p&gt;Bohelper is an automated solver and information utility for &lt;em&gt;&lt;a href=&#34;https://weatherfactory.biz/book-of-hours/&#34;&gt;BOOK OF HOURS&lt;/a&gt;&lt;/em&gt; by Weather Factory. &lt;em&gt;BOOK OF HOURS&lt;/em&gt; is a game in which you restore an abandoned estate/library/prison in a world of secret magic. After filling several pages of a notebook with solutions for unlocking rooms and upgrading skills, I made a CLI tool to help inform some decisions, such as when taking a new skill would grant a new crafting recipe, or reminding me which books to read to gain which resource. Bohelper reads your save file to determine which actions are available to you, and what things you still need. Unfortunately, the game sometimes gets a little crashy when tabbing out, so I bolted on the &lt;code&gt;axum&lt;/code&gt; framework and built a web frontend that I could access with my phone over LAN. I also built an item browser, so you can search for items based on what properties they have (&amp;ldquo;I want a &lt;strong&gt;tool&lt;/strong&gt; that will help me with this &lt;strong&gt;scale&lt;/strong&gt; challenge&amp;rdquo;).&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://bogodynamics.io/projects/bohelper/solve_hu_c87474bbda08ab4c.png&#34;&#xA;    width=&#34;1440&#34; height=&#34;1096&#34;&#xA;    alt=&#34;Crafting UI&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;  &lt;figcaption&gt;The solver UI, probably the most useful feature of Bohelper. It helps find places and resources to upgrade skills.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;The problem with automating games in this way is they quickly stop being the game they were built to be. The upside is that the whole task becomes an entirely new game of your own creation.&lt;/p&gt;&#xA;</content:encoded>
    </item>
    <item>
      <title>Cooking and Agriculture</title>
      <link>https://bogodynamics.io/projects/cooking-agriculture/</link>
      <pubDate>Sun, 20 Nov 2022 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bogodynamics.io/projects/cooking-agriculture/</guid>
      <description>Rimworld mod adding depth across the food supply chain.</description>
      <content:encoded>&lt;p&gt;I created this mod in an attempt to increase gameplay depth regarding food production in Rimworld beyond &amp;ldquo;grow a ton of food and put it all in a big cold square room&amp;rdquo;. I succeeded, and generally play with this mod in personal games. However, I never distributed it via Steam workshop because the quality of the assets is low, and there are a few minor bugs that don&amp;rsquo;t happen reliably enough for me to get around to fixing.&lt;/p&gt;&#xA;&lt;h2 id=&#34;preservation&#34;&gt;Preservation&lt;/h2&gt;&#xA;&lt;p&gt;In the base game, food spoils slower starting at ~40-50 F, with the rate decreasing linearly until freezing, where it stops spoiling altogether. Cooking and Agriculture sets a minimum spoil rate of 20% and causes some foods (such as eggs) to get ruined when frozen, so that other methods of preservation must be incorporated into your supply chain. Some methods I added include pickling, salting, smoking, jamming, cheese-making, and fermentation &amp;mdash; all with their own unique process.&lt;/p&gt;&#xA;&lt;h2 id=&#34;stews&#34;&gt;Stews&lt;/h2&gt;&#xA;&lt;p&gt;I had to seriously mutilate Rimworld&amp;rsquo;s job system to make this work. Pawns put some ingredients in the pot. The pot simmers. When hungry, pawns go up to the finished stew, take a bowl, and eat it. Once the pot is empty, the cycle repeats. Seems simple, but took an insane amount of reverse-engineering and trial &amp;amp; error.&lt;/p&gt;&#xA;</content:encoded>
    </item>
    <item>
      <title>Sprocket League</title>
      <link>https://bogodynamics.io/projects/sprocket/</link>
      <pubDate>Thu, 03 Oct 2019 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bogodynamics.io/projects/sprocket/</guid>
      <description>A robot auto-battler, written hastily with curses. Something with potential, perhaps.</description>
      <content:encoded>&lt;p&gt;Sprocket league is what would probably today be called an &amp;ldquo;auto-battler&amp;rdquo;, and sell like hotcakes on the indie games section of Steam, were it in any way polished or even finished. It is probably the largest project I ever care to make in Python, but some of my problems were, in retrospect, self-inflicted.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://bogodynamics.io/projects/sprocket/sprocket_hu_6f385f7c8fe20ca8.png&#34;&#xA;    width=&#34;1440&#34; height=&#34;900&#34;&#xA;    alt=&#34;A screenshot of Sprocket League, showing a text-based terminal interface. On the left is a list of robots and the parts they are comprised of. In the center is a map denoting the locations of the robots. On the right is a message log, showing the actions each robot took each turn.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;  &lt;figcaption&gt;The Sprocket League TUI. The left bar is the list of combatant robots, the right bar is the message log, and the center is the map, with the first letter of each robot name denoting its location.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Each robot combatant is comprised of parts. The &lt;code&gt;Chassis&lt;/code&gt; and &lt;code&gt;Controller&lt;/code&gt; are the required frame and brain of the robot. &lt;code&gt;Mover&lt;/code&gt;s allow mobility. A &lt;code&gt;Generator&lt;/code&gt; provides power for other components. &lt;code&gt;Weapon&lt;/code&gt;s can be used to make attacks when in range and having enough ammo.&lt;/p&gt;&#xA;&lt;p&gt;Parts and materials are defined in json files. The material a part is made of affects its stats, as well as cost, but I didn&amp;rsquo;t get around to implementing an economy.&lt;/p&gt;&#xA;</content:encoded>
    </item>
  </channel>
</rss>
