<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://dungenrobot.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://dungenrobot.com/" rel="alternate" type="text/html" /><updated>2025-09-23T08:43:36+00:00</updated><id>https://dungenrobot.com/feed.xml</id><title type="html">dungenrobot.com</title><subtitle>Welcome to my blog! I post here *very* occasionally about stuff I&apos;m working on or just curious about.</subtitle><entry><title type="html">Jam 7 Entries</title><link href="https://dungenrobot.com/jam/07" rel="alternate" type="text/html" title="Jam 7 Entries" /><published>2025-09-23T00:00:00+00:00</published><updated>2025-09-23T00:00:00+00:00</updated><id>https://dungenrobot.com/jam/the-jam-7</id><content type="html" xml:base="https://dungenrobot.com/jam/07"><![CDATA[<p>What’s up gamers. We did a jam thing again and people made stuff. Here is that stuff (around the theme “False Sun”)</p>

<p>This post isn’t late, you’re just late to reading it. Don’t check the date on this post.</p>

<h2 id="false-son">False Son</h2>

<p><img src="/assets/jam/7/Proph.png" alt="Planets in alignment with a cracked planet in the foreground" /></p>

<p>kinda grumpy that this theme won because there wasn’t anywhere to really take it than “What if sun,,,,, but evil?????”</p>

<p>So like imagine if our sun wasn’t our sun. If the true light god gave us at the start of seven days was always supposed to light the entire earth, but what we got left with was just a more palatable version of the true son.</p>

<p>Making sol some king of,,,, false son??????</p>

<p>- Prompto</p>

<h2 id="looming-supernova">Looming Supernova</h2>

<p><img src="/assets/jam/7/Glitchcade.png" alt="Pixel art of a spooky looking sun" /></p>

<p>- @glitchcade</p>

<h2 id="false-sun-a-short-story">False Sun: A Short Story</h2>

<p>“Sunset of a Lifetime” is by far the most beautiful piece of art I’ve ever purchased. And I can say that, I’ve purchased a lot of art over the years. The piece is simple, a sunset, nearly complete, over a sandy beach. The sun has a warm quality to it, almost peachy, surrounded by a streaking gradient of reds, oranges, and the dark colors of the encroaching night.<br />
I’ve hung the piece above my fireplace. Something about the hot glow of the flames creates a beautiful effect, the colors seeming to dance and drip and shift across the piece. I find my gaze traveling to the piece more and more each day. In these cold winter days, I spend an excess of time at the fireplace, desperately trying to keep warm. Maybe I’m coming down with a cold or a fever but the more time I spend near the fireplace, the more nausea I experience. Oh well, the winter will pass.<br />
I wish I had gotten this painting sooner. The winters have been harder as a widower. I’m not sure what it is about the cold, but I feel like I can barely leave the house. Without my dearest Emily Mary, all I do these days is just stare at Sunset of a Lifetime and honestly, it comforts me, soothes me into a nauseous sort of bliss. I wish I knew more about it. I’ve realized I don’t know anything about the artist or even when it was made, I just bought it on a whim. Flea markets bring out the most impulsive sides of everyone.<br />
In the middle of the night, I awake to a crackling sound. The sound of a crackling fire. At first I sigh happily, my favorite winter sound but something keeps me from falling back asleep. This fever of mine, it won’t leave me alone. Eyes squinted, I peek out around me at the hearth. No wonder the fire woke me, the fire is not contained. It creeps out beyond the brick and stone, tickling the base of my chair, climbing up the walls. God, those 70’s wood-paneled walls. I always said I would change them. My eyes jump suddenly to the area above the mantel where the flames have taken over. It can’t be…<br />
Leaping from my chair, I cough my way through the smoke to search for my beloved. I find her, but she is not the same. A sickly smell rises from the fiery surface, the same one I smell in my fits of nausea. I’ve never looked closely at it. The colors are a deeper red than I remember, more viscous. I watch as they melt down the canvas, towards the sun. The sun seems to peel away. Peel? Paint peels, sure, but not in one big piece like this, not just the central piece. I gently pinch it, desperately holding on to any chance to save this piece, the only piece I’ve ever truly loved, the piece that saved me from the grief of my Emily Mary. Between my fingers, it feels… familiar. Smooth, leathery, and slightly warm from the fire. This is no painting. This is, no, was my Emily Mary.</p>

<p>A story of dealing with grief through consumerism</p>

<p>- Hope @sillyspero (Instagram)</p>

<p>Thank ya’ll for participating! I always enjoy seeing what everyone creates. I’ll have a devlog coming in the near future so stay tuned…</p>]]></content><author><name></name></author><summary type="html"><![CDATA[What’s up gamers. We did a jam thing again and people made stuff. Here is that stuff (around the theme “False Sun”)]]></summary></entry><entry><title type="html">I’m heading to GDC!</title><link href="https://dungenrobot.com/2025/03/16/gdc-2025.html" rel="alternate" type="text/html" title="I’m heading to GDC!" /><published>2025-03-16T00:00:00+00:00</published><updated>2025-03-16T00:00:00+00:00</updated><id>https://dungenrobot.com/2025/03/16/gdc-2025</id><content type="html" xml:base="https://dungenrobot.com/2025/03/16/gdc-2025.html"><![CDATA[<p>I’ll be at GDC this week listening to talks and meeting people!
I’m super excited for a chance to engage with game dev types in person, and to hopefully show off what I’ve been working on behind the scenes.</p>

<p>If you’ll be at GDC, reach out! You can contact me at <a href="mailto:howdy@dungenrobot.com">howdy@dungenrobot.com</a> or on <a href="https://discord.com/invite/YUECSUHHM8">Discord</a>.
If you can’t make to to GDC, I’ve heard great things about <a href="https://notgdc.io/">notgdc</a>.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I’ll be at GDC this week listening to talks and meeting people! I’m super excited for a chance to engage with game dev types in person, and to hopefully show off what I’ve been working on behind the scenes.]]></summary></entry><entry><title type="html">Jam 6 Entries</title><link href="https://dungenrobot.com/jam/06" rel="alternate" type="text/html" title="Jam 6 Entries" /><published>2024-08-09T00:00:00+00:00</published><updated>2024-08-09T00:00:00+00:00</updated><id>https://dungenrobot.com/jam/the-jam-6</id><content type="html" xml:base="https://dungenrobot.com/jam/06"><![CDATA[<p>We’re back once more! Everyone had a few weeks to create entries around the theme ‘<strong>BIRD</strong>’.</p>

<h2 id="bird-over-a-murder">Bird Over A Murd(er)</h2>

<p><img src="/assets/jam/6/murder-bird.png" alt="Minecraft parrot overlooking a murder" /></p>

<p>A Bird Over The Crime Scene Of A Murder.</p>

<p>- gopy</p>

<h2 id="bird-at-sunset">bird at sunset</h2>

<p><img src="/assets/jam/6/sunset-bird.png" alt="Digital painting of an owl in a tree" /></p>

<p>inspired by a bird i saw 3 weeks ago at sunset. i found it because it was making a very weird noise. blues and pinks with some orangey goodness. first art piece in a while.</p>

<p>- CJ</p>

<h2 id="seagulls-dont-youre-half-eaten-mars-bar">Seagulls don’t you’re half eaten Mars bar</h2>

<p><img src="/assets/jam/6/photo-seagull-flying.jpg" alt="Photo of a seagull flying away" />
<img src="/assets/jam/6/photo-seagull-standing.jpg" alt="Photo of a seagull on dried seaweed" /></p>

<p>I live in a small town and work on an old WWII runway where we dry seaweed for use in various products (kind of weird, I know). I am a bycatch analyst, and I spend all day digging through the seaweed to ensure that our harvesters do their jobs and do not catch anything they shouldn’t. As part of my job, I have gotten to know the seagulls well and enjoy photographing them on slow days. I have come to learn some things about the seagulls, like they love blueberries and crabs but if you offer them half of your half eaten mars bar they will become offended. Don’t worry though they will still sit and let you talk to them well you work because they know your going crazy alone out there.</p>

<p>- Daisyaway</p>

<h2 id="berd">Berd</h2>

<p><img src="/assets/jam/6/berd.png" alt="poorly drawn image of a bird" /></p>

<p>He’s just a silly little guy</p>

<p>- DungenRobot</p>

<hr />

<p>Thanks to everyone for their submissions! My hope is that soon I’ll be updating you on some projects on the horizon, so stay tuned!</p>

<p>To stay up to date with everything jam-related or any of my development projects, <a href="https://discord.com/invite/YUECSUHHM8">join my Discord!</a></p>

<p>See ya’ll soon!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[We’re back once more! Everyone had a few weeks to create entries around the theme ‘BIRD’.]]></summary></entry><entry><title type="html">An Interesting Problem</title><link href="https://dungenrobot.com/2024/04/23/an-interesting-problem.html" rel="alternate" type="text/html" title="An Interesting Problem" /><published>2024-04-23T00:00:00+00:00</published><updated>2024-04-23T00:00:00+00:00</updated><id>https://dungenrobot.com/2024/04/23/an-interesting-problem</id><content type="html" xml:base="https://dungenrobot.com/2024/04/23/an-interesting-problem.html"><![CDATA[<p>This is a slight bit more technical than usual but it’ll be doing my best to explain it as clearly as possible.</p>

<p>I want to share something from one of my computer science classes. Our assignment was to write a simple set of functions with only a few bitwise operators. (eg. You have to check whether an input is <code class="language-plaintext highlighter-rouge">0</code> using only <code class="language-plaintext highlighter-rouge">&lt;&lt; &gt;&gt; ^ +</code>).
After writing these functions we could check them using a provided test file. This file would run a variety of test functions to verify our solutions worked, and then would produce a score.</p>

<p>One problem was called <code class="language-plaintext highlighter-rouge">fits_bits</code>, the goal was to write a function <code class="language-plaintext highlighter-rouge">fits_bits(int x, int n)</code> that took in a signed integer <code class="language-plaintext highlighter-rouge">x</code> and an int <code class="language-plaintext highlighter-rouge">n</code> from 1 to 32. Our function needed to produce a <code class="language-plaintext highlighter-rouge">1</code> if <code class="language-plaintext highlighter-rouge">x</code> could be expressed with <code class="language-plaintext highlighter-rouge">n</code> bits, and a <code class="language-plaintext highlighter-rouge">0</code> otherwise. I’m not certain on how public or accessible this full assignment is online so I won’t be sharing the restrictions for writing the function, just this input and output.</p>

<p><img src="/assets/various/an-interesting-problem/BinaryNumbers.png" alt="explanation of this idea (not necessary to understand)" /></p>

<p>I ran into a weird issue when working on this function. I used the test file provided to check my work, and had this error: <code class="language-plaintext highlighter-rouge">fits_bits failed. input (0, 32) expected 0, got 1</code>. Let’s unpack this. So we have an issue with our function <code class="language-plaintext highlighter-rouge">fits_bits</code>, the file tried our function with the input <code class="language-plaintext highlighter-rouge">(0, 32)</code> (can the number 0 be represented with 32 bits?) and got <code class="language-plaintext highlighter-rouge">True</code> from my function, but expected <code class="language-plaintext highlighter-rouge">False</code>. This doesn’t really make sense, you only need 1 bit to represent 1 or 0 (and you could argue 0 bits is just 0).</p>

<p>After some trial and error, I was fairly confident I wasn’t misunderstanding anything and that there was an issue with the file used to check our answers.</p>

<h2 id="the-structure-of-the-test-file">The Structure of The Test File</h2>

<p>Instead of a big list of inputs and outputs to check against, there were just inputs and test functions. Your solutions were tested against these functions to determine if they were correct. Another interesting fact was that it was compiled before testing your solutions. Here is the test function for <code class="language-plaintext highlighter-rouge">fits_bits</code>. See if you can spot the issue, and why the input <code class="language-plaintext highlighter-rouge">(0, 32)</code> might cause it.</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="nf">test_fitsBits</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">n</span><span class="p">)</span>
<span class="p">{</span>
  <span class="kt">int</span> <span class="n">TMin_n</span> <span class="o">=</span> <span class="o">-</span><span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">));</span>
  <span class="kt">int</span> <span class="n">TMax_n</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
  <span class="k">return</span> <span class="n">x</span> <span class="o">&gt;=</span> <span class="n">TMin_n</span> <span class="o">&amp;&amp;</span> <span class="n">x</span> <span class="o">&lt;=</span> <span class="n">TMax_n</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p>Don’t worry if you can’t figure it out. It took my professor and I a fair bit of testing and editing (and frustration) to find out what was wrong. Let me walk you through that process.</p>

<p>First I took this snippet from the test file and put it into a new <code class="language-plaintext highlighter-rouge">.c</code> file to play around with it. We tried compiling it as normal with gcc, there were no compiler errors found and it returned <code class="language-plaintext highlighter-rouge">1</code>. Success! But why doesn’t the same function produce this result when run as part of our test file?</p>

<p>Let’s consider what could be different for the test file. Maybe the function is being compiled with different flags? I tried compiling with optimizations and suddenly the function began returning <code class="language-plaintext highlighter-rouge">0</code> again (the wrong value). Why could optimizations be changing our code?</p>

<p>A compile trying to optimize our code notice some potential issues.</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="mi">15</span><span class="p">;</span>

<span class="kt">int</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>  <span class="c1">//this variable is never used</span>

<span class="kt">int</span> <span class="n">c</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">+</span> <span class="mi">5</span><span class="p">;</span> 

<span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">c</span><span class="p">);</span>
</code></pre></div></div>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="mi">15</span><span class="p">;</span>

<span class="kt">int</span> <span class="n">c</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">+</span> <span class="mi">5</span><span class="p">;</span>  <span class="c1">//a[4] will always be 15</span>

<span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">c</span><span class="p">);</span>
</code></pre></div></div>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">c</span> <span class="o">=</span> <span class="mi">15</span> <span class="o">+</span> <span class="mi">5</span><span class="p">;</span>

<span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">c</span><span class="p">);</span> <span class="c1">//c will always be 20</span>
</code></pre></div></div>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">20</span><span class="p">);</span>
</code></pre></div></div>

<p>This doesn’t change the actual behavior of our code, and makes it much faster when running. But to do these optimizations the compiler assumes that we’ve written our code correctly. What bad assumptions are lurking in our code? Let’s keep digging.</p>

<h2 id="a-tip-when-debugging">A Tip When Debugging</h2>

<p>Your compiler is smart, but not <em>that</em> smart. It will warn you as much as it can about what inputs and outputs you’re using, but when you have a variable set somewhere else, the compiler isn’t able to test as effectively.</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="mi">12</span> <span class="o">|</span> <span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="mi">15</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
<span class="mi">13</span> <span class="o">|</span> 
<span class="mi">14</span> <span class="o">|</span> <span class="kt">int</span> <span class="n">b</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="mi">200</span><span class="p">];</span>
<span class="mi">15</span> <span class="o">|</span> 
<span class="mi">16</span> <span class="o">|</span> <span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">b</span><span class="p">);</span>
</code></pre></div></div>

<p>The above code has an obvious error in it, and our compiler agrees.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>test_file.c:14:14: warning: array subscript 200 is above array bounds of ‘int[15]’ [-Warray-bounds]
   14 |     int b = a[200];
      |             ~^~~~~
</code></pre></div></div>

<p>But when we write the following code: We don’t get the same error.</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="nf">index_a</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">i</span> <span class="o">*=</span> <span class="mi">100</span><span class="p">;</span>

    <span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="mi">15</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>

    <span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div></div>

<p>This is because our compiler can’t test inputs. So let’s see what happens when we do the same thing for our test function.</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="nf">test_fitsBits</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">n</span><span class="p">)</span>
<span class="p">{</span>
  <span class="kt">int</span> <span class="n">TMin_n</span> <span class="o">=</span> <span class="o">-</span><span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="mi">32</span><span class="o">-</span><span class="mi">1</span><span class="p">));</span>
  <span class="kt">int</span> <span class="n">TMax_n</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="mi">32</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
  <span class="k">return</span> <span class="n">x</span> <span class="o">&gt;=</span> <span class="n">TMin_n</span> <span class="o">&amp;&amp;</span> <span class="n">x</span> <span class="o">&lt;=</span> <span class="n">TMax_n</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>test_file.c:5:16: warning: integer overflow in expression ‘-2147483648’ of type ‘int’ results in ‘-2147483648’ [-Woverflow]
    5 |   int TMin_n = -(1 &lt;&lt; (32-1));
      |                ^
test_file.c:6:3: warning: integer overflow in expression ‘-2147483648 - 1’ of type ‘int’ results in ‘2147483647’ [-Woverflow]
    6 |   int TMax_n = (1 &lt;&lt; (32-1)) - 1;
      |   ^~~

The reason why -( -2147483648 ) == -2147483648 is left as an exercise for the reader
(google 2's compliment)
</code></pre></div></div>

<p>We’re running into <code class="language-plaintext highlighter-rouge">signed integer underflow</code>, which is <a href="https://en.cppreference.com/w/cpp/language/ub">undefined behavior</a> in c. We’re doing something that, depending on the hardware and compiler flags, could result in different operations being performed. But this isn’t a mistake in the original code, we actually <em>want</em> to underflow this value. How do we communicate this to the compiler?</p>

<p>Underflow is only a problem with <code class="language-plaintext highlighter-rouge">signed</code> integers (numbers that can be negative). If we tell the computer that we want to work with unsigned values, we’re letting the compiler know that we can let this number over or under flow with expected behavior.</p>

<p>The fix is to add a <code class="language-plaintext highlighter-rouge">u</code> for <code class="language-plaintext highlighter-rouge">unsigned</code> after two of the 1s in the function.</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="nf">test_fitsBits</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">n</span><span class="p">)</span>
<span class="p">{</span>
  <span class="kt">int</span> <span class="n">TMin_n</span> <span class="o">=</span> <span class="o">-</span><span class="p">(</span><span class="mi">1u</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="mi">32</span><span class="o">-</span><span class="mi">1</span><span class="p">));</span>     <span class="c1">//this line has been modified.</span>
  <span class="kt">int</span> <span class="n">TMax_n</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1u</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="mi">32</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="c1">//and so has this one</span>
  <span class="k">return</span> <span class="n">x</span> <span class="o">&gt;=</span> <span class="n">TMin_n</span> <span class="o">&amp;&amp;</span> <span class="n">x</span> <span class="o">&lt;=</span> <span class="n">TMax_n</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p>And here is the fixed function</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="nf">test_fitsBits</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">n</span><span class="p">)</span>
<span class="p">{</span>
  <span class="kt">int</span> <span class="n">TMin_n</span> <span class="o">=</span> <span class="o">-</span><span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">));</span>
  <span class="kt">int</span> <span class="n">TMax_n</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
  <span class="k">return</span> <span class="n">x</span> <span class="o">&gt;=</span> <span class="n">TMin_n</span> <span class="o">&amp;&amp;</span> <span class="n">x</span> <span class="o">&lt;=</span> <span class="n">TMax_n</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p>That’s the end of this journey! Adding just two letters to a 200 line <code class="language-plaintext highlighter-rouge">c</code> file was all it took to fix this bug. I hope you found this interesting and gave you a few more problem-solving tools for the future!</p>

<p>If you want to stay up to date with everything I do online, including these blogs, check out my <a href="https://discord.com/invite/YUECSUHHM8">Discord Server</a>!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[This is a slight bit more technical than usual but it’ll be doing my best to explain it as clearly as possible.]]></summary></entry><entry><title type="html">Jam 5 Entries</title><link href="https://dungenrobot.com/jam/05" rel="alternate" type="text/html" title="Jam 5 Entries" /><published>2024-04-22T00:00:00+00:00</published><updated>2024-04-22T00:00:00+00:00</updated><id>https://dungenrobot.com/jam/the-jam-5</id><content type="html" xml:base="https://dungenrobot.com/jam/05"><![CDATA[<p>Once more we return!</p>

<p>Ya’ll have made some cool stuff over the past week! Time to take a look at what everyone made.</p>

<h2 id="totality">Totality</h2>

<p><img src="/assets/jam/5/Totality.jpeg" alt="Photo of the eclipse" /></p>

<p>- Anonymous</p>

<h2 id="stellar-solstice">Stellar Solstice</h2>

<p><img src="/assets/jam/5/StellerSolstice.png" alt="Minecraft build of an eclipse" /></p>

<p>Solar Eclipse in Minecraft. The star is based on Nidavellir from Avengers, Infinity War. Build time: ~3 hours.</p>

<p>- Max Matelic</p>

<h2 id="the-brighter-the-star-the-darker-the-shadow">The Brighter the Star, the Darker the Shadow</h2>

<p><img src="/assets/jam/5/BrighterStart-DarkerShadow.jpeg" alt="painting of a person on stage. all spotlights are on them." /></p>

<p>Medium: Alcohol Marker and White Pen. The drama of an eclipse undeniably comes from the drastic contrast between the light of the sun and the dark space when it is obscured. Similarly, celebrities and performers provide audiences with bright and stunning performances. Yet, the brighter they shine, the more likely something is being sacrificed or hidden. This is the dark space of living life under the bright lights. The white marks on the shadow here are inspired by the strange wavy and crescent shaped shadows that appeared during the eclipse, mimicking that strange, uncanny feeling that the eclipse brings.</p>

<p>- Hope Berge</p>

<h2 id="eclipse-experiment">Eclipse Experiment</h2>

<iframe frameborder="0" src="https://itch.io/embed/2662101?bg_color=111111&amp;fg_color=e0e0e0&amp;link_color=5b69ed&amp;border_color=333333" width="552" height="167"><a href="https://dungenrobot.itch.io/eclipse">Eclipse by DungenRobot</a></iframe>

<p>A little experiment I made. Try it out in your web browser (no download required)!</p>

<p>- DungenRobot</p>

<h2 id="blooming-eclipse">Blooming Eclipse</h2>

<p><img src="/assets/jam/5/BloomingEclipse.png" alt="Two heads representing the sun and moon. One is partially in front of the other" /></p>

<p>My interpretation of an eclipse, with the moon and her lover, the sun, who she is partially covering much like a true eclipse.</p>

<p>- Anna</p>

<hr />

<p>That’s it for this jam! Finals are here so I’ll be going dark for a couple weeks, but The Jam will return over this summer! I’m hoping we can outdo last year’s jam in number of submissions.</p>

<p>If you want to stay up to date with that: <a href="https://discord.com/invite/YUECSUHHM8">join the discord</a>! You can get notifications for The Jam and everything else I do online.</p>

<p>That’s it for now, stay creative!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Once more we return!]]></summary></entry><entry><title type="html">Jam 4 Entries</title><link href="https://dungenrobot.com/jam/04" rel="alternate" type="text/html" title="Jam 4 Entries" /><published>2023-12-30T00:00:00+00:00</published><updated>2023-12-30T00:00:00+00:00</updated><id>https://dungenrobot.com/jam/the-jam-4</id><content type="html" xml:base="https://dungenrobot.com/jam/04"><![CDATA[<p>It’s that time once more! Let’s take a look at all the fantastic entries.</p>

<h2 id="the-invincible-fool">The Invincible Fool</h2>
<p>There is wisdom in idiocy:</p>

<p>The dunce dances with a pack on his back<br />
And a pale rose in his palm,<br />
Utterly oblivious to the fear he should feel.</p>

<p>Buffoons shall blunder and all fools must fall,<br />
But the falls always come lighter<br />
To the morons unfettered.<br />
- The Altruist</p>

<p class="notice--info"><strong>Chosen Card:</strong> The Fool</p>

<h2 id="death-13">Death 13</h2>

<p><img src="/assets/jam/4/Death%2013.png" alt="Image of a skull overlain with mountains and valleys" /></p>

<p>I spent way too long on this goddamn mountain. Partially because of image splicing and partially because I kept wiki-diving for mountain lore. Ever hear about the Everest Crown of Death?</p>

<p class="notice--info"><strong>Chosen Card:</strong> Death</p>

<p>- Michael James Alan</p>

<h2 id="unfinished-the-moon">(UNFINISHED) The Moon</h2>

<p><img src="/assets/jam/4/unfinished%20the%20moon.png" alt="light blue backed sketch of an individual reaching up towards the moon" /></p>

<p class="notice--info"><strong>Chosen Card:</strong> The Moon</p>

<p>- Surgeus</p>

<h2 id="snapdragon">Snapdragon</h2>

<p><img src="/assets/jam/4/Julia_The_Moon.png" alt="a woman with orange hair on a light blue background. There are flowers behind her" /></p>

<p>A tale of deception, graciousness, all under the light of the moon. Never ask questions you don’t want to know, especially during the witching hour.</p>

<p class="notice--info"><strong>Chosen Card:</strong> The Moon</p>

<p>- Dorian Kepler</p>

<p>That’s all for this jam! If you’d like to participate yourself then <a href="https://discord.com/invite/YUECSUHHM8">head over to the discord</a>! And if you’re looking for Goopy’s entry, it’s hidden somewhere in this website’s files, good luck!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[It’s that time once more! Let’s take a look at all the fantastic entries.]]></summary></entry><entry><title type="html">Jam 3 Entries</title><link href="https://dungenrobot.com/jam/03" rel="alternate" type="text/html" title="Jam 3 Entries" /><published>2023-10-02T00:00:00+00:00</published><updated>2023-10-02T00:00:00+00:00</updated><id>https://dungenrobot.com/jam/the-jam-3-entries</id><content type="html" xml:base="https://dungenrobot.com/jam/03"><![CDATA[<p>Welcome back, one and all! This jam’s theme was <strong>right person, wrong time</strong>. Here are the entries:</p>

<h2 id="the-red-planet">The Red Planet</h2>
<p>It started with the grasp of a finger. <br />
    An unspoken gamble, the risk of appendages curled.<br />
They were confident that their confidence would linger.<br />
    After all, it was into my world that they whirled.</p>

<p>When we went round and round on that swing,<br />
That was when I first felt my heart sing.<br />
    It sang a song that filled my chest like breath from the sun.<br />
In that orbit, suspended by string,<br />
    The crooning of the tune caused a new feeling to be spun.</p>

<p>Despite this, the harmony of chords has taken a rest.<br />
    Discord from their past has left them with fears unwanted.<br />
They’ve requested respite, a step back, which I have blessed.<br />
    For their happiness, time apart shan’t leave me daunted.</p>

<p>But I can’t help but smile, at how ironic it is,<br />
That the planet should need space.</p>

<p>- The Altruist</p>

<h2 id="loves-me-not">Loves Me Not</h2>

<p><img src="/assets/jam/3/loves-me-not.jpeg" alt="loves me not image" /></p>

<p>“But it would’ve been fun, if you would’ve been the one.”<br />
This piece was heavily inspired by Taylor Swift’s song “the 1,” which I feel perfectly encapsulates this theme. People come and go in our lives and though it may hurt when they go, we will always carry the love they gave us within.</p>

<p>- Dorian Kepler</p>

<h2 id="the-time-is-not-yet-right">The Time is Not Yet Right</h2>

<p><img src="/assets/jam/3/turn%20off%20the%20damn%20light%20base%20-%20Your%20Future%20Robot%20Overlord.png" alt="time not yet right image" /></p>

<p>Unfinished.  Would be better if lit/shaded but it is currently 11:40PM at the deadline so oh well.  It might not be apparent what the meaning is, even if you know me, but the one hint I give is I almost always make <em>heavy</em> use of color symbolism.</p>

<p>I used CSP’s 3D models to trace over the pose and parts of the background (not the light).  Harder than it looks, especially with his specific requirements (eg. a jawline that can cut glass).</p>

<p>- Surgeus</p>

<p>That’s all for this jam! I unfortunately didn’t have time to participate this go around, but I’m grateful for everyone who did! As always, head over to <a href="https://discord.com/invite/YUECSUHHM8">the discord</a> if you want to stay up to date with the jam and everything else I do! See ya’ll later</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Welcome back, one and all! This jam’s theme was right person, wrong time. Here are the entries:]]></summary></entry><entry><title type="html">Flash Jam Entries</title><link href="https://dungenrobot.com/flash-jam/01" rel="alternate" type="text/html" title="Flash Jam Entries" /><published>2023-07-31T00:00:00+00:00</published><updated>2023-07-31T00:00:00+00:00</updated><id>https://dungenrobot.com/flash-jam/flash-jam-entries</id><content type="html" xml:base="https://dungenrobot.com/flash-jam/01"><![CDATA[<p>I decided to run a very hectic little jam. Participants had only 48 hours to create an entry around the theme “Falling”.</p>

<h1 id="lovejoy---the-fall">Lovejoy - The fall</h1>

<p><img src="/assets/flash-jam/01/thefallxcf.png" alt="displays a looking glass/spy glass view of a man falling" /></p>

<p>- Beanz</p>

<h1 id="little-tumble">Little Tumble</h1>

<video height="800" controls=""> 
<source src="/assets/flash-jam/01/Coastalyst.mp4" type="video/mp4" />
<source src="/assets/flash-jam/01/Coastalyst.mkv" type="video/mkv" />

browser does not support HTML video tag
</video>

<p>I made this piece for this jam and used it to experiment with different techniques I’ve been working with in Blender. I ended up deciding on making an animation that simply showed my character falling through a variety of experimental environments before eventually landing into (what was supposed to look like before i ran out of time) a river next to some mountains. I also applied a few layers of outlines and sketch marks just for fun, as that’s a feature in Blender I’ve been experimenting with recently.</p>

<p>- Cooper Ludt</p>

<h1 id="floor-1">Floor 1</h1>

<iframe src="https://itch.io/embed/2198530?bg_color=333536&amp;fg_color=ff6c6c&amp;link_color=ff9c0c&amp;border_color=676767" width="552" height="167" frameborder="0"><a href="https://dungenrobot.itch.io/floor1">Floor 1 by DungenRobot</a></iframe>

<hr />

<p>To stay up to date on the jam and all its variants: <a href="https://discord.com/invite/YUECSUHHM8">join my discord</a>. Take care and see you soon.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I decided to run a very hectic little jam. Participants had only 48 hours to create an entry around the theme “Falling”.]]></summary></entry><entry><title type="html">Jam 2 - Categories Revealed</title><link href="https://dungenrobot.com/2023/07/17/theme-2-categories.html" rel="alternate" type="text/html" title="Jam 2 - Categories Revealed" /><published>2023-07-17T00:00:00+00:00</published><updated>2023-07-17T00:00:00+00:00</updated><id>https://dungenrobot.com/2023/07/17/theme-2-categories</id><content type="html" xml:base="https://dungenrobot.com/2023/07/17/theme-2-categories.html"><![CDATA[<p>You’ve all been hard at work voting, time to see the fruits of your labor.</p>

<details>
    <summary>Immaculate Vibes</summary>

    This entry conveyed a strong sense of atmosphere and feeling... <br /><br />

    <b> Lullaby to Soil</b> by The Altruist<br /><br />

    As I walk through the rows of the dead,
    Each corpse peeks out of the ground with their stone head.<br />
        Every one had a story, I trust.<br />
        The detritus and dust<br />
    Carries stories untold, plans unschemed.<br />
    This is what it means, to walk among the soil that once dreamed.<br /><br />

    We focus on placing one foot in front of the other.<br />
        Because we fear that without the stride, we would just slumber beneath the grass.<br />
    Alas, your mortality you cannot smother.<br />
        Your bones will break and into the past you will pass.<br />
    All the same, journey, journey, until you die.<br />
    So you may sleep, dearest soil, with your headstone held high.<br />

    "" - The Altruist
</details>

<p><br /></p>

<details>
    <summary>Most Impressive</summary>

    This entry showed real effort.... <br /><br />

    <b>Flanders Fields</b> by beanz<br />

    <img src="/assets/jam/2/flandersfields.png" alt="Flanders Fields" />
</details>

<p><br /></p>

<details>
    <summary>Best Theme Interpretation</summary>

    This entry gave a really interesting take on what the theme meant to them... <br /><br />

    <b>Flanders Fields</b> by beanz<br />

    <img src="/assets/jam/2/flandersfields.png" alt="Flanders Fields" />
<br />
    "yipeeee 🎉" - beanz
</details>

<p><br /></p>

<details>
    <summary>Fan Favorite</summary>
    Last but not least we have... <br /><br />

    <b>Shattered</b> by Chaotic Emotionz<br /><br />

    <img src="/assets/jam/2/shattered.png" alt="Shattered Image" />
<br />
    "I have no brain space for this" - Chaotic Emotionz
</details>
<p><br /><br />
Congrats to all the winners! Like the winners of the last jam, your trophies will not be sent to you as they do not exist.</p>

<p>That’s all for this post! Sorry for the lack of dev-logs, I’m on vacation with a super underpowered laptop as my only computer. It’s drawing out development time but it’s also forcing me to worry a <em>lot</em> more about optimizing this project. As always, if you haven’t already: <a href="https://discord.com/invite/YUECSUHHM8">head over to my discord</a> to participate in future jams! See ya’ll soon!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[You’ve all been hard at work voting, time to see the fruits of your labor.]]></summary></entry><entry><title type="html">Jam 2 Entries + Category Voting</title><link href="https://dungenrobot.com/jam/02" rel="alternate" type="text/html" title="Jam 2 Entries + Category Voting" /><published>2023-07-14T00:00:00+00:00</published><updated>2023-07-14T00:00:00+00:00</updated><id>https://dungenrobot.com/jam/the-jam-2-entries</id><content type="html" xml:base="https://dungenrobot.com/jam/02"><![CDATA[<p>We’re back! It’s time to take a look at everyone’s fabulous work.</p>

<p>Yes I know my website colors are broken. No I do not know why.</p>

<p>After you’re done looking through, head to the voting form to select categories (link at the <a href="">end of the post</a>). All entries are ordered by submission date. Let’s head into our first entry:</p>

<h1 id="flanders-fields">Flanders Fields</h1>

<p><img src="/assets/jam/2/flandersfields.png" alt="Flanders Fields Image" /></p>

<p>- beanz</p>

<h1 id="lullaby-to-soil">Lullaby to Soil</h1>

<p>A motivational poem about your demise.</p>

<p>As I walk through the rows of the dead,<br />
Each corpse peeks out of the ground with their stone head.<br />
    Every one had a story, I trust.<br />
    The detritus and dust<br />
Carries stories untold, plans unschemed.<br />
This is what it means, to walk among the soil that once dreamed.</p>

<p>We focus on placing one foot in front of the other.<br />
    Because we fear that without the stride, we would just slumber beneath the grass.<br />
Alas, your mortality you cannot smother.<br />
    Your bones will break and into the past you will pass.<br />
All the same, journey, journey, until you die.<br />
So you may sleep, dearest soil, with your headstone held high.</p>

<p>- The Altruist</p>

<h1 id="the-forgotten-ones">The Forgotten ones</h1>

<p>This is a deceased robot buried under the sands of time post-apocalyptic world its once lit eyes dead and devoid of the energy that once flowed through it. Humanity gone from the world and the robot itself.</p>

<p><img src="/assets/jam/2/the-forgotten-ones.png" alt="robot in a dank swamp" /></p>

<p class="notice--info"><strong>Note:</strong> This entry was created using generative AI tools. <br />
“SDXL 0.9 used for lighting and base design of the picture and background while I touched it up and added in a few details.”</p>

<p>- ekm7</p>

<h1 id="signals">Signals</h1>

<p>A short story about the discovery of a new alien species</p>

<p><a href="/signals.html">Click here to read this entry</a></p>

<p>- DungenRobot</p>

<h1 id="dreamlike-reality">Dreamlike Reality</h1>

<p>In the universe of Guilty Gear Strive, a bond between siblings transcends even death. Having lost his life trying to create a world in which his sister could awaken from a comatose state, Romeo’s spirit lives on in a bed-like machine, protecting Delilah heedless of his own destruction.</p>

<p><img src="/assets/jam/2/guilty-gear.jpeg" alt="Dreamlike Reality" /></p>

<p>- Bouncer</p>

<h1 id="shattered-starry-sky">Shattered Starry Sky</h1>

<p>Just a cool idea I had and wanted to realize.</p>

<p><img src="/assets/jam/2/shattered-starry-sky.png" alt="starry sky" /></p>

<p>- Jack</p>

<h1 id="the-kids-arent-alright">The Kids Aren’t Alright</h1>

<p>I’ve lost a lot.  I haven’t lost this at least.  The first iteration of this image I drew in spring of 2017, and I have made several variations over the years.  Some happier, some more grim, some a quick sketch before my life got upturned.  This is the latest and it will not be the last.</p>

<p><img src="/assets/jam/2/remnant.png" alt="a really cool drawing" /></p>

<p>- Surgeus</p>

<h1 id="scrapped-memories">Scrapped Memories</h1>

<p>A crumpled piece of paper with old memories attached to the paper with tape and/or pins.</p>

<p><img src="/assets/jam/2/etnel.png" alt="pixel art photos" /></p>

<p>- EternalHappiness</p>

<h1 id="nostalgic-wasteland-colouring-page">Nostalgic Wasteland Colouring Page</h1>

<p>I threw together a bunch of things that had a really impactful presence in my childhood and made them into a scene where they were escaping from a game of ‘That’s So Raven Pinball’ from the old Disney Channel website, which was one of my first exposures to the internet and probably the first game I ever genuinely loved.</p>

<p>I thought it was appropriate to hand this in as a colouring page as well because of one of the relevant time periods.</p>

<p><img src="/assets/jam/2/colouring-page.png" alt="COLORing page" /></p>

<p>The Flashpoint Archive helped me significantly in this, so I wanted to express my appreciation there.</p>

<p>I plan to actually colour this in myself, maybe even paint it, and add lighting and stuff at some point. But I wanted others to get to form their own interpretations of the scene and get to establish the tone best fitting in their own head.</p>

<p>- MysterySteve</p>

<h1 id="shattered">Shattered</h1>

<p>A digital piece based on broken homes and shattered memories. Not one I necessarily have experience with, but one I know many have.</p>

<p><img src="/assets/jam/2/shattered.png" alt="broken photo" /></p>

<p>- Chaotic Emotionz</p>

<h1 id="coming-down-kza">Coming Down KZA</h1>

<p>This is an arrangement of Bill Kiley’s Coming Down from Katana Zero. The song plays in Zero’s apartment building primarily when he interacts with a character called The Little Girl. The more ambient nature of this song as well as the theory that said little girl might not be real and represents trauma of the protagonist’s past is why I chose this song.</p>

<audio controls="" src="/assets/jam/2/Coming%20Down%20KZA%20-%20Super_Pig.m4a"> </audio>

<p>- Original by Bill Kiley. Arranged by Super_Pig</p>

<hr />
<p>That’s all our entries! When you’re ready, <a href="https://forms.gle/2mPUMVhZKLzTCV499">vote for categories</a>. Make sure you give each of them the time, care, and reflection they deserve, before voting for categories. If you notice any mistakes with this blog post or the voting form, contact me directly.</p>

<p>If you’re interested in keeping up to date with The Jam and everything else I do online, head to <a href="https://discord.com/invite/YUECSUHHM8">my discord</a>. That’s all for this post! See you in the next one.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[We’re back! It’s time to take a look at everyone’s fabulous work.]]></summary></entry></feed>