<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on JJ Dev</title>
    <link>https://dawnthe.twilightparadox.com/posts/</link>
    <description>Recent content in Posts on JJ Dev</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Ⓒ James (Jinx) Jenkins</copyright>
    <lastBuildDate>Thu, 02 Apr 2026 11:38:31 +0000</lastBuildDate>
    <atom:link href="https://dawnthe.twilightparadox.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Planet Generation</title>
      <link>https://dawnthe.twilightparadox.com/posts/planet-generation/</link>
      <pubDate>Thu, 02 Apr 2026 11:38:31 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/planet-generation/</guid>
      <description>&lt;h1 id=&#34;procedural-generation&#34;&gt;Procedural Generation&lt;/h1&gt;&#xA;&lt;p&gt;Procedural generation is used in a variety of ways within games, with its most typical use being for terrain. As found in games like Minecraft, Valheim, etc. Before this project, I was playing Space Engineers, which features premade voxel planets that could be destroyed. So how hard could it be to procedurally generate entire planets?&lt;/p&gt;&#xA;&lt;p&gt;So I looked into how procedural generation was done previously, and there&amp;rsquo;s this fantastic video by Henrik Kniberg who goes over how generation works in Minecraft (&#xA;&#xA;&#xA;&#xA;&lt;a href=&#34;https://www.youtube.com/watch?v=CSa5O6knuwI&#34; rel=&#34;nofollow&#34; target=&#34;_blank&#34; style=&#34;color: var(--accent)&#34;&gt;link&lt;/a&gt; ). I used a lot of the techniques within this video to work on my own generation, with a lot of the effort being spent figuring out how to apply them to the spherical planets.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Boids and Jobs</title>
      <link>https://dawnthe.twilightparadox.com/posts/boids-and-jobs/</link>
      <pubDate>Thu, 06 Nov 2025 15:39:31 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/boids-and-jobs/</guid>
      <description>&lt;h1 id=&#34;boids&#34;&gt;Boids&lt;/h1&gt;&#xA;&lt;p&gt;Boids are an algorithm developed by Craig Reynolds in 1986 to simulate the natural flocking behaviour of birds, schools of fish, or other group dynamics. This is done by having each boid within a system follow three rules:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Separation: Avoid crowding neighbours (steer to avoid collisions).&lt;/li&gt;&#xA;&lt;li&gt;Alignment: Steer toward the average heading of nearby boids (match direction).&lt;/li&gt;&#xA;&lt;li&gt;Cohesion: Move toward the average position of nearby boids (stay close to the group).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;boids-within-my-project&#34;&gt;Boids within my project&lt;/h2&gt;&#xA;&lt;p&gt;In my case, I&amp;rsquo;m using boids to allow for ships to fly towards and around a target asteroid to mine it and while in this, I don&amp;rsquo;t require worrying about collision, as I&amp;rsquo;m fine with the ships crossing each other. I still prefer that not be the case, and some effort be made to space them out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Subterrain</title>
      <link>https://dawnthe.twilightparadox.com/posts/subterrain/</link>
      <pubDate>Fri, 31 Oct 2025 13:56:52 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/subterrain/</guid>
      <description>&lt;h1 id=&#34;subterrain&#34;&gt;Subterrain&lt;/h1&gt;&#xA;&lt;p&gt;Subterrain is a PvPvE turn-based underground city builder with gameplay comparable to Sid Meier&amp;rsquo;s Civilisation 5 &amp;amp; 6.&lt;/p&gt;&#xA;&lt;p&gt;This was worked on for about 1.5 months, and I eventually stopped working on it due to the design needing more work. Originally, the game was a purely PvP game with no AI opponents. While playable, it simply wasn&amp;rsquo;t fun due to the combat not having the required nuance, and it being difficult to find players. This is why one of the attempted changes was to pivot the game to have the Dark Ones, which was an empowered AI opponent that would attack all the players, and if the boss enemy was defeated, the player who achieved the final blow would win the game. The boss enemy is always visible on the map and doesn&amp;rsquo;t move, which gives all players far more direction in what to do. This would help fix the issue of players finding each other as they are likely to encounter each other around the boss enemy, as well as giving the game more options for players to win, unlike before, where the only two methods were to kill all the remaining players or find 3 artefacts hidden within the map.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Atlantis</title>
      <link>https://dawnthe.twilightparadox.com/posts/atlantis/</link>
      <pubDate>Fri, 31 Oct 2025 11:56:52 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/atlantis/</guid>
      <description>&lt;h1 id=&#34;atlantis&#34;&gt;Atlantis&lt;/h1&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TLDR&lt;/h2&gt;&#xA;&lt;p&gt;Atlantis was meant to be a coop horror puzzle game similar to popular coop games such as It Takes Two and Split Fiction, but with a more gritty atmosphere. The project was abandoned due to life getting in the way for my teammate, and the gameplay after working on it for a month or so didn&amp;rsquo;t feel good enough. I may go back to work on it if I feel I can rework the gameplay to be more enjoyable, as there is at least a solid foundation for a coop game already there, with functional multiplayer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crimson Catacombs</title>
      <link>https://dawnthe.twilightparadox.com/posts/crimson-catacombs/</link>
      <pubDate>Thu, 30 Oct 2025 19:02:51 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/crimson-catacombs/</guid>
      <description>&lt;h1 id=&#34;crimson-catacombs&#34;&gt;Crimson Catacombs&lt;/h1&gt;&#xA;&lt;p&gt;&lt;table style=&#34;border: 0px solid black;&#34;&gt;&lt;thead&gt;&#xA;&lt;tr&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;th  style=&#34;border: 0px solid black; width: 800px;&#34; &gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;gallery-item&#34;&gt;&#xA;    &lt;a href=&#34;https://dawnthe.twilightparadox.com/img/ccbanner.png&#34; data-lightbox=&#34;gallery&#34; data-title=&#34;Crimson Catacombs Banner&#34;&gt;&#xA;        &lt;img src=&#34;https://dawnthe.twilightparadox.com/img/ccbanner.png&#34; alt=&#34;Crimson Catacombs Banner&#34;&gt;&#xA;    &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;script&gt;&#xA;  if (typeof lightboxIncluded === &#39;undefined&#39;) {&#xA;    document.write(`&#xA;      &lt;div id=&#34;lightbox-modal&#34; class=&#34;modal&#34;&gt;&#xA;        &lt;span class=&#34;close&#34;&gt;&amp;times;&lt;/span&gt;&#xA;        &lt;img class=&#34;modal-content&#34; id=&#34;modal-image&#34;&gt;&#xA;        &lt;div id=&#34;modal-caption&#34;&gt;&lt;/div&gt;&#xA;      &lt;/div&gt;&#xA;    `);&#xA;    document.write(&#39;\x3Cscript src=&#34;\/js\/gallery.js&#34;&gt;&lt;\/script&gt;&#39;);&#xA;    var lightboxIncluded = true;&#xA;  }&#xA;&lt;/script&gt;&#xA;&lt;/th&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;/tr&gt;&#xA;&lt;/thead&gt;&lt;/table&gt;&lt;/p&gt;&#xA;&lt;p&gt;Delve into the ominous depths of the Crimson Catacombs, a labyrinth shrouded in mystery and danger. As a brave adventurer, you are compelled to explore these ancient tunnels, driven by legends of the fabled Book of Death.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retro Runner Released!</title>
      <link>https://dawnthe.twilightparadox.com/posts/retro-runner/</link>
      <pubDate>Tue, 21 Feb 2023 01:52:41 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/retro-runner/</guid>
      <description>&lt;h1 id=&#34;retro-runner&#34;&gt;Retro Runner&lt;/h1&gt;&#xA;&lt;p&gt;RETRO RUNNER 1.0 RELEASE DOWNLOAD &#xA;&#xA;&#xA;&#xA;&lt;a href=&#34;https://play.google.com/store/apps/details?id=com.JamesJenkins.RetroRunner&#34; rel=&#34;nofollow&#34; target=&#34;_blank&#34; style=&#34;color: var(--accent)&#34;&gt;HERE&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Retro Runner is an infinite runner game which I made in December. I originally created this game to challenge myself to create a one-button game. As well as create a mobile game as opposed to my usual desktop games. But I chose to polish it and then publish it to the google play store.&lt;/p&gt;&#xA;&lt;h1 id=&#34;mechanics&#34;&gt;Mechanics&lt;/h1&gt;&#xA;&lt;p&gt;Jumping is the only control the player has. This caused me to further improve jumping controls as the jump required to be solid for the game to be remotely successful. First, I made the jump variable based on if the input is held down. Which allowed for more precise control. Additionally, I changed fall gravity that stops the jump from having a &amp;lsquo;floaty&amp;rsquo; feel as the jump curve is no longer a parabola. This is required for tight jump controls in games and is very often used in platformer games with Mario being the most notable for this mechanic.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Another Dimension</title>
      <link>https://dawnthe.twilightparadox.com/posts/interstellar-game-jam-4/</link>
      <pubDate>Mon, 20 Feb 2023 15:02:43 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/interstellar-game-jam-4/</guid>
      <description>&lt;h1 id=&#34;interstellar-game-jam-4&#34;&gt;Interstellar Game Jam 4&lt;/h1&gt;&#xA;&lt;p&gt;The Interstellar Game Jam 4 was a 5-day game jam with the theme of &amp;lsquo;Another Dimension&amp;rsquo; I took part in.&lt;/p&gt;&#xA;&lt;p&gt;I previously took part in Interstellar Game Jam 3, which you can find in the related post &#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;a href=&#34;https://dawnthe.twilightparadox.com/posts/interstellar-game-jam-3/&#34; title=&#34;interstellar-game-jam-3&#34; rel=&#34;nofollow&#34; target=&#34;_blank&#34; style=&#34;color: var(--accent)&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;theme-and-ideas&#34;&gt;Theme and Ideas&lt;/h1&gt;&#xA;&lt;p&gt;Unlike the last theme, this one was far easier to work with. The simple option is to have the player switch dimensions.&lt;/p&gt;&#xA;&lt;p&gt;The only other idea I was tempted to go with was to have the player switch between 2D and 3D space. Which I didn&amp;rsquo;t risk going for as I could not think of a functional implementation that would work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Party Game Update</title>
      <link>https://dawnthe.twilightparadox.com/posts/party-game-p2/</link>
      <pubDate>Tue, 20 Dec 2022 02:04:06 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/party-game-p2/</guid>
      <description>&lt;h1 id=&#34;whats-happening&#34;&gt;Whats Happening&lt;/h1&gt;&#xA;&lt;p&gt;So in my last post a couple months ago, I began work on a party game which would play similarly to Mario Party or Pummel Party. The players would attempt to go around a gameboard to complete an objective while doing minigames to progress further. I have halted development for now while I work on smaller projects.&lt;/p&gt;&#xA;&lt;h1 id=&#34;the-issues&#34;&gt;The Issues&lt;/h1&gt;&#xA;&lt;p&gt;A few problems started to appear a few weeks into development which caused the game to become cumbersome to manage and caused issues when developing each minigame. This I later marked up to be due to making the major networking components not scale to the project&amp;rsquo;s needs. While the current implementation would be usable for a game like an FPS, which has a far simpler gameplay loop. But this game I was making is far more complex, with gameplay varying significantly different between minigames.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Party Game</title>
      <link>https://dawnthe.twilightparadox.com/posts/party-game/</link>
      <pubDate>Mon, 10 Oct 2022 04:26:12 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/party-game/</guid>
      <description>&lt;h1 id=&#34;the-party-game&#34;&gt;The Party Game&lt;/h1&gt;&#xA;&lt;p&gt;So, my most recent project is a party game which I wanted to do for two reasons. First to make a 3D game finally and be able to showcase my ability in working with projects within 3D which is a nice change of pace from my previous two games. Secondly, I wanted to make a multiplayer game which I had good timing with as the 1.0 release was only a couple of months prior to starting this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Defy The Laws</title>
      <link>https://dawnthe.twilightparadox.com/posts/interstellar-game-jam-3/</link>
      <pubDate>Tue, 06 Sep 2022 17:02:51 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/interstellar-game-jam-3/</guid>
      <description>&lt;h1 id=&#34;interstellar-game-jam-3&#34;&gt;Interstellar Game Jam 3&lt;/h1&gt;&#xA;&lt;p&gt;The Interstellar Game Jam 3 was a 5-day game jam with the theme of &amp;lsquo;Defy The Laws&amp;rsquo; which I took part in with AGingerHere.&lt;/p&gt;&#xA;&lt;p&gt;This theme was not the easiest to create a solid idea without doing the typical go-to being to flip gravity as the primary theme. After some thinking, we came to the idea of escaping prison as our main concept to come in line with the theme.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Seeing Double</title>
      <link>https://dawnthe.twilightparadox.com/posts/seeing-double/</link>
      <pubDate>Mon, 22 Aug 2022 20:05:30 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/seeing-double/</guid>
      <description>&lt;h1 id=&#34;seeing-double&#34;&gt;Seeing Double&lt;/h1&gt;&#xA;&lt;p&gt;This was my first complete game though it was unreleased due to some bugs that could make the game very easy or incredibly hard. The assets may look similar to my first released game &amp;lsquo;A Cats Climb Home&amp;rsquo; as a lot of the assets and animations were reused from this game within &amp;lsquo;A Cats Climb Home&amp;rsquo;.&lt;/p&gt;&#xA;&lt;p&gt;Seeing Double is a platformer where the player has to collect gems to recreate a cloud to go back to &amp;lsquo;Cloudlantis&amp;rsquo; the player can acquire gems from finding them around the world and from defeating the various bosses around the world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Marching Cubes and Planets</title>
      <link>https://dawnthe.twilightparadox.com/posts/marching-cubes/</link>
      <pubDate>Mon, 22 Aug 2022 19:20:58 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/marching-cubes/</guid>
      <description>&lt;h1 id=&#34;planet-generation&#34;&gt;Planet Generation&lt;/h1&gt;&#xA;&lt;p&gt;Earlier last year I created a marching cubes algorithm within Unity to attempt at creating planets procedurally after being inspired by one of Sebastian Lague&amp;rsquo;s videos where he achieved my aim through similar means.&lt;/p&gt;&#xA;&lt;h1 id=&#34;marching-cubes&#34;&gt;Marching Cubes&lt;/h1&gt;&#xA;&lt;p&gt;Marching cubes is a very simple algorithm where essentially it will take in a 3D grid of elements that most would call voxels to create a 3D object. This could be anything from planets, human heads, props, etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Terraria Clone</title>
      <link>https://dawnthe.twilightparadox.com/posts/terraria-like-game/</link>
      <pubDate>Mon, 22 Aug 2022 18:14:59 +0000</pubDate>
      <guid>https://dawnthe.twilightparadox.com/posts/terraria-like-game/</guid>
      <description>&lt;h1 id=&#34;terraria-clone&#34;&gt;Terraria Clone&lt;/h1&gt;&#xA;&lt;p&gt;2 years ago I attempted to recreate Terraria with a friend using the Unity Game Engine which had limited success and ultimately left the project dead. But I did learn a lot more about attempting to procedurally generate a game world.&lt;/p&gt;&#xA;&lt;h1 id=&#34;generation&#34;&gt;Generation&lt;/h1&gt;&#xA;&lt;p&gt;One of the main parts of Terraria I loved was the world generation which I wanted to replicate as it is one of the parts of Terraria that gives the game infinite replayability. Rather than generating tiles when creating this algorithm we chose to place it on a texture instead as it would mean we wouldn&amp;rsquo;t need to optimize immediately as loading a large number of tiles will cause a large amount of slowdown.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
