<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jesús Pineda</title>
    <description>The latest articles on DEV Community by Jesús Pineda (@jesuspinarte).</description>
    <link>https://dev.to/jesuspinarte</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3760593%2F132af598-36c6-4622-b605-b351fda6ff82.jpg</url>
      <title>DEV Community: Jesús Pineda</title>
      <link>https://dev.to/jesuspinarte</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jesuspinarte"/>
    <language>en</language>
    <item>
      <title>The power of the Game Loop</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Fri, 03 Apr 2026 20:58:22 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/the-power-of-the-game-loop-4l2a</link>
      <guid>https://dev.to/jesuspinarte/the-power-of-the-game-loop-4l2a</guid>
      <description>&lt;p&gt;Hey Gamers! 👻&lt;/p&gt;

&lt;p&gt;As part of the &lt;strong&gt;Rapid Games Prototyping&lt;/strong&gt; module, we are continuing our bi-weekly peer reviews. Analyzing a game built in just one week is always a fantastic learning opportunity, so here is my latest breakdown!&lt;/p&gt;

&lt;p&gt;The theme for this sprint was &lt;strong&gt;"Manchester Museum"&lt;/strong&gt;  with the modifier &lt;strong&gt;"Replay,"&lt;/strong&gt; meaning we were allowed to reuse code, assets or ideas from our previous module prototypes.&lt;/p&gt;

&lt;p&gt;My pick for this week is &lt;a href="https://robotwizard23.itch.io/museum-digger" rel="noopener noreferrer"&gt;Museum Digger&lt;/a&gt; (RobotWizard23, 2026). The premise is simple but highly effective: you go out into the field, excavate artifacts, and bring them back to the museum to generate income.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Impressions: The Incremental Gameplay&lt;/strong&gt;&lt;br&gt;
I am a big fan of clicker and incremental games. Having scores and resources generate passively provides a satisfying, low-pressure experience that is great for short bursts of play. &lt;em&gt;Museum Digger&lt;/em&gt; splits the experience into two distinct screens: the Dig View and the Museum View.&lt;/p&gt;

&lt;p&gt;The core loop requires you to mine for bones and artifacts, then transfer them to the museum to be stored in display cases. The initial hook relies on tight economy management: you start with minimal funds and must strategically balance your budget to purchase enough cases to house your findings without going bankrupt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Constructive Feedback: Visual Signifiers&lt;/strong&gt;&lt;br&gt;
While the visual assets were minimal, which is completely expected and acceptable in a one-week game jam, the core mechanics were so engaging that I completely lost track of time and practically finished the game in one sitting!&lt;/p&gt;

&lt;p&gt;However, one area that could easily be improved is the use of &lt;strong&gt;Visual Signifiers&lt;/strong&gt;. When visuals are basic, color-coding becomes crucial to help the player distinguish between different interactive elements. Adding distinct material colors to the artifacts, cases, and UI elements would create a stronger visual hierarchy, giving the player a much better, immediate sense of what they are clicking on without needing to read or guess.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflective Practice: Mechanics vs. The Core Loop&lt;/strong&gt;&lt;br&gt;
Playing &lt;em&gt;Museum Digger&lt;/em&gt; was a massive eye-opener for my own design philosophy. It demonstrated how one simple, well-executed mechanic can scale into a highly replayable game with substantial playtime.&lt;/p&gt;

&lt;p&gt;Reflecting on my own recent prototypes, I realize I often fall into the trap of over-engineering complex backend systems. I spend so much time perfecting the algorithms and technical mechanics that I forget to step back and establish a satisfying &lt;strong&gt;Core Gameplay Loop&lt;/strong&gt;. A flawless mechanic means very little if the player has no overarching reason or loop to keep engaging with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt; Inspired by the addictive simplicity of &lt;em&gt;Museum Digger&lt;/em&gt;, my primary goal for my next prototype is to prioritize playtime and loop design over technical complexity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Loop First:&lt;/strong&gt; Before writing a single line of code, I will map out the Core Gameplay Loop (Action -&amp;gt; Reward -&amp;gt; Upgrade) on paper.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope Management:&lt;/strong&gt; I will strictly limit my mechanics to one simple interaction, dedicating the rest of my sprint to balancing the economy/pacing to ensure the game actually holds the player's attention for more than a few minutes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RobotWizard23 (2026) &lt;em&gt;Museum Digger&lt;/em&gt; [Downloadable game]. Available at: &lt;a href="https://robotwizard23.itch.io/museum-digger" rel="noopener noreferrer"&gt;https://robotwizard23.itch.io/museum-digger&lt;/a&gt; (Accessed: 3 April 2026).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>gameplay</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Clunky Controls</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Fri, 03 Apr 2026 20:28:10 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/clunky-controls-32an</link>
      <guid>https://dev.to/jesuspinarte/clunky-controls-32an</guid>
      <description>&lt;p&gt;Hey Gamers! 👾&lt;/p&gt;

&lt;p&gt;As part of the &lt;strong&gt;Rapid Games Prototyping&lt;/strong&gt; module, we are continuing our peer review series. Reviewing a game built in a single week always provides unique insights, and this week’s prototype was a fantastic lesson in the power of audio design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gantoine.itch.io/alien-abduction-game" rel="noopener noreferrer"&gt;Alien Abduction&lt;/a&gt; was the game I reviewed featured a highly creative premise centred around an alien abduction, tasking the player with getting a character out of their house from a completely fresh perspective. Having spoken directly with the developer, Allen, it was fascinating to see how the initial concept evolved into this final prototype.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Power of Foley and Audio Feedback&lt;/strong&gt;&lt;br&gt;
My first impressions of the game were incredibly positive, entirely driven by the outstanding sound design. The developer implemented custom &lt;strong&gt;Foley&lt;/strong&gt; (everyday sound effects added to media) that made the world feel tactile and responsive.&lt;/p&gt;

&lt;p&gt;What impressed me the most was the dynamic audio feedback. Hitting the character against different walls or surfaces produced distinct, material-specific sounds. This level of detail is rare in a one-week game jam setting. The sounds were deeply satisfying, immersive, and fundamentally elevated the game's comedic tone. It proved that good audio doesn't just decorate a game; it defines the "Game Feel."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controls: The Line Between Clunky and Comedic&lt;/strong&gt;&lt;br&gt;
The main area for constructive feedback lies in the control scheme. The inputs felt quite clunky and overly complicated, making it genuinely difficult to manoeuvre the character.&lt;/p&gt;

&lt;p&gt;However, in the context of game design, this wasn't a total flaw. This mechanical friction actually resulted in &lt;strong&gt;Emergent Comedy&lt;/strong&gt;. Struggling with the controls made the abduction scenario visually hilarious. While I would recommend refining the inputs to be slightly more intuitive to prevent player frustration, keeping a degree of that "clunkiness" could serve as a core feature rather than a bug, enhancing the game's unique identity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflective Practice: Making It Personal&lt;/strong&gt;&lt;br&gt;
Playing this prototype and discussing its evolution with Allen profoundly impacted my perspective on game audio. Usually, I rely on royalty-free asset packs for my prototypes to save time. However, seeing how custom-recorded sounds gave this game such a distinct, personal touch was a revelation. It also challenged me to think beyond simple mechanics, incorporating dynamic systems like surface-specific collision sounds adds a layer of polish that transforms a basic prototype into a memorable experience.&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>prototypes</category>
      <category>aliens</category>
    </item>
    <item>
      <title>Multiplayer Challenges</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Fri, 03 Apr 2026 19:05:08 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/multiplayer-challenges-1onb</link>
      <guid>https://dev.to/jesuspinarte/multiplayer-challenges-1onb</guid>
      <description>&lt;p&gt;Hellu, and welcome back to another weekly update for &lt;em&gt;A Wargame Without Compromise&lt;/em&gt; (WWC)!&lt;/p&gt;

&lt;p&gt;We kicked off this week with our standard Agile rituals: reviewing PRs, merging code, and scoping the next sprint. The project is currently in a very healthy position. Our core gameplay loop feels solid, and while we still need to polish a few features, we had enough stability for me to continue the heavy lifting on the online multiplayer integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Integration Reality Check:&lt;/strong&gt;&lt;br&gt;
Following the success of my initial Proof of Concept (PoC) last week, I moved on to a much more difficult task: integrating our existing single-player features into the networked environment.&lt;/p&gt;

&lt;p&gt;My first victory was the spawning system. After refactoring some of our instantiation logic to ensure the server had proper authority, I successfully managed to spawn the different players along with their respective units across the network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;State Synchronization &amp;amp; Race Conditions:&lt;/strong&gt;&lt;br&gt;
Next, I tackled the pre-game flow. I created a new network-aware Game State to ensure all players were fully connected and synchronised before the match actually started. This proved quite difficult to sync; I initially ran into race conditions where the states were not updating simultaneously across clients. After some rigorous debugging, I finally managed to get the server to orchestrate the state changes correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Movement Synchronisation Hurdle:&lt;/strong&gt;&lt;br&gt;
The biggest challenge of the week, and the one that ultimately bested me, was unit movement. I attempted to synchronise the units' physical movements across the network. While I successfully managed to sync their rotation, I struggled to synchronise their actual positional movement and inputs without causing severe jitter or desynchronization. Networked movement requires a complex balance of client prediction and server reconciliation, and I am still figuring out the best architecture for our specific grid/movement system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflective Practice: Managing Risk and Scope:&lt;/strong&gt;&lt;br&gt;
For the first time in this project, I was not able to fully complete my assigned sprint tasks. However, rather than feeling defeated, I am actually quite happy with the foundational results.&lt;/p&gt;

&lt;p&gt;This experience brought up a critical aspect of software engineering: &lt;strong&gt;Risk Management&lt;/strong&gt;. Networking is an exponentially complex feature. My main learning this week is that we must objectively assess our remaining time. As a team, we need to evaluate if it is truly viable to deliver a robust online experience before the module deadline, or if we should pivot and focus our remaining time on polishing a flawless local multiplayer or single-player experience instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt; Going into next week, my goals are split between technical research and project management:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Transform Sync Deep Dive:&lt;/strong&gt; I will dedicate focused time to researching networked Transform synchronisation (specifically position interpolation) to see if I can crack the movement bug.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Go/No-Go" Meeting:&lt;/strong&gt; I will present my findings to the team so we can make a definitive, data-driven "Go/No-Go" decision on continuing the online multiplayer development versus cutting our losses to protect the final grade.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thank you so much if you got here!&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>csharp</category>
      <category>multiplatform</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>The Multiplayer Leap</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Fri, 03 Apr 2026 18:34:11 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/the-multiplayer-leap-59hn</link>
      <guid>https://dev.to/jesuspinarte/the-multiplayer-leap-59hn</guid>
      <description>&lt;p&gt;Hellu, and welcome back to another weekly update for &lt;em&gt;A Wargame Without Compromise&lt;/em&gt; (WWC)! 👾&lt;/p&gt;

&lt;p&gt;This sprint began a bit later than usual due to heavy deadlines in my Rapid Games Prototyping (RGP) module. However, once I transitioned back to the WWC project, I immediately jumped into clearing our backlog by reviewing pending Pull Requests and issue tickets to ensure the rest of the team remained unblocked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architectural Planning: Spawning &amp;amp; Networking&lt;/strong&gt; Our primary architectural discussions this week revolved around spawn management and the daunting task of integrating multiplayer networking. Taking a game from a single-player state to a networked state requires a massive paradigm shift, so I dedicated significant time to research.&lt;/p&gt;

&lt;p&gt;After extensively reviewing documentation, community forums, and performance benchmarks, I concluded that &lt;strong&gt;FishNet&lt;/strong&gt; was the most robust and performant networking solution for our specific needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Multiplayer Proof of Concept (PoC)&lt;/strong&gt; My main goal for the week was to build a Proof of Concept (PoC) for our online system.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Setup:&lt;/strong&gt; I installed the FishNet package to handle our server/client architecture. Alongside it, I integrated &lt;strong&gt;ParrelSync&lt;/strong&gt;, an incredibly useful Unity tool that allows developers to run multiple instances of the same project simultaneously without needing to build the game every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Workflow Bottleneck:&lt;/strong&gt; While the initial integration wasn't too difficult, the learning curve for FishNet's specific logic was steep. Furthermore, the physical testing process became a major workflow bottleneck. Running and debugging two simultaneous game instances on a single monitor was incredibly frustrating and drastically increased my iteration time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;From Local to Remote: Bridging the Gap&lt;/strong&gt; Testing the local connection (localhost) was successful relatively quickly. However, a true PoC requires remote connections over the internet. To simulate this without renting dedicated servers, I utilised &lt;strong&gt;Radmin VPN&lt;/strong&gt; to create a Virtual LAN (Local Area Network). This allowed my machine to act as a host IP that other players could remotely connect to. I am thrilled to report that the remote tests were successful!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflective Practice: The Complexity of Netcode&lt;/strong&gt; My biggest takeaway this week is a newfound respect for multiplayer game development. Finding reliable, up-to-date resources and tutorials for modern networking is surprisingly difficult. More importantly, this sprint taught me that while making a simple connection work is achievable, developing a truly &lt;em&gt;robust&lt;/em&gt;, synchronised online game introduces staggering complexity. Every mechanic we design from this point forward must be evaluated through the lens of server authority and client prediction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt; With the networking PoC successfully connecting clients, my goals for next week are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Spawn Management over Network:&lt;/strong&gt; I will integrate our initial spawn management ideas with FishNet to ensure players instantiate correctly across all connected clients.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow Optimisation:&lt;/strong&gt; I need to reorganise my workspace and window layouts to make single-monitor network testing less cumbersome and more efficient.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thank you so much for getting here!&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First Gear Games (2026) &lt;em&gt;Fish-Networking Documentation&lt;/em&gt;. Available at: &lt;a href="https://fish-networking.gitbook.io/docs" rel="noopener noreferrer"&gt;https://fish-networking.gitbook.io/docs&lt;/a&gt; (Accessed: 17 March 2026).&lt;/li&gt;
&lt;li&gt;Unity Technologies (2026) &lt;em&gt;Netcode for GameObjects (NGO) Documentation&lt;/em&gt;. Available at: &lt;a href="https://docs.unity3d.com/Packages/com.unity.netcode.gameobjects@2.10/manual/index.html" rel="noopener noreferrer"&gt;https://docs.unity3d.com/Packages/com.unity.netcode.gameobjects@2.10/manual/index.html&lt;/a&gt; (Accessed: 17 March 2026).&lt;/li&gt;
&lt;li&gt;Unity Technologies (2022) &lt;em&gt;Updated Free Networking Solution Comparison Chart&lt;/em&gt;. Available at: &lt;a href="https://discussions.unity.com/t/updated-free-networking-solution-comparison-chart/899755" rel="noopener noreferrer"&gt;https://discussions.unity.com/t/updated-free-networking-solution-comparison-chart/899755&lt;/a&gt; (Accessed: 17 March 2026).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Unity Multiplayer Networking Comparison&lt;/em&gt; (2024) [Google Sheet]. Available at: &lt;a href="https://docs.google.com/spreadsheets/d/1Bj5uLdnxZYlJykBg3Qd9BNOtvE8sp1ZQ4EgX1sI0RFA/" rel="noopener noreferrer"&gt;https://docs.google.com/spreadsheets/d/1Bj5uLdnxZYlJykBg3Qd9BNOtvE8sp1ZQ4EgX1sI0RFA/&lt;/a&gt; (Accessed: 17 March 2026).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>multiplayer</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Conquering Chunks, UV Mapping, and Spaghetti Code</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Mon, 16 Mar 2026 21:29:15 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/conquering-chunks-uv-mapping-and-spaghetti-code-240e</link>
      <guid>https://dev.to/jesuspinarte/conquering-chunks-uv-mapping-and-spaghetti-code-240e</guid>
      <description>&lt;p&gt;Hellu, and welcome back to another weekly update for our Game Studio project! 👾&lt;/p&gt;

&lt;p&gt;This week was incredibly code-heavy. I dove deep into the algorithms behind our procedural map generation, experiencing both the highs of solving complex math and the lows of debugging UV coordinates for hours on end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Foundation: Octaves and Custom Chunks&lt;/strong&gt;&lt;br&gt;
I started the sprint by implementing octaves into our noise generation, which went fairly smoothly thanks to Professor Jimmy's guidance. This added the necessary granular detail to our terrain.&lt;/p&gt;

&lt;p&gt;However, I severely underestimated the effort required for the next step: the chunking algorithm. Instead of following the standard approach of generating perfectly squared maps with squared chunks, I decided to implement a custom solution to support rectangular maps. This meant that certain chunks could have different widths and height values depending on the map's overall dimensions.&lt;/p&gt;

&lt;p&gt;I spent an entire day wrestling with the math for this. While Professor Jimmy was intrigued by the approach, the initial result was pure "spaghetti code", clunky and hard to read, but functionally working. When I cross-referenced my logic with Sebastian Lague's highly regarded procedural chunking tutorials, I found that while our foundational logic was similar, adapting it to a rectangular, variable-dimension grid required a uniquely tailored approach.&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/gs_MJfSXFhA"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 8-Hour UV Battle &amp;amp; Refactoring&lt;/strong&gt;&lt;br&gt;
The next day was dedicated entirely to refactoring that spaghetti code and fixing the mesh generation. The chunks were generating, but the colours and mesh UVs were completely broken.&lt;/p&gt;

&lt;p&gt;I spent 8 continuous hours trying to understand exactly how the UV coordinates were being calculated across the divided mesh. It was a gruelling process, but finally cracking the math and understanding how UVs map to dynamically generated vertices was a massive technical victory. The connections (seams) between the chunks are not yet 100% perfect, but the system now flawlessly supports both square and rectangular maps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture and Polish&lt;/strong&gt;&lt;br&gt;
For the remainder of the week, I focused on architectural polish and adjustments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Procedural Gradients:&lt;/strong&gt; I completely changed how the terrain calculates colour, shifting from a static list of colours to a dynamic gradient system for smoother transitions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separation of Concerns:&lt;/strong&gt; Drawing on standard software engineering practices, I divided the monolithic generation code into distinct, single-responsibility scripts. The architecture is now much cleaner and highly scalable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destructible Integration:&lt;/strong&gt; Finally, I integrated the destructible terrain system to work seamlessly with the new chunks. It is not fully optimised for performance yet, but the core functionality is there.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reflective Practice: The Cost of Custom Solutions&lt;/strong&gt;&lt;br&gt;
This week reinforced a hard truth about game development: custom solutions are time-consuming. Straying from standard, squared-chunk tutorials to build a flexible, rectangular system cost me days of debugging complex math and UV rendering issues. However, the architectural payoff, having a highly modular, decoupled system, was worth the initial frustration. It highlighted the importance of balancing rapid prototyping with clean code principles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt;&lt;br&gt;
While I would like to focus more on the terrain generation, I will be investigating how to implement the multiplayer functionality into our game.&lt;/p&gt;

&lt;p&gt;Thank you so much if you made it this far into the technical weeds!&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lague, S. (2016) &lt;em&gt;Procedural Landmass Generation (E07: Endless Terrain)&lt;/em&gt;. Available at: &lt;a href="https://www.google.com/search?q=https://www.youtube.com/watch%3Fv%3DWP-ZiClmqWE" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=WP-ZiClmqWE&lt;/a&gt; (Accessed: 7 March 2026).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>terraingeneration</category>
      <category>programming</category>
      <category>unity3d</category>
    </item>
    <item>
      <title>Micro games</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Mon, 16 Mar 2026 20:57:08 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/micro-games-4f1c</link>
      <guid>https://dev.to/jesuspinarte/micro-games-4f1c</guid>
      <description>&lt;p&gt;Hey Gamers! 👾&lt;/p&gt;

&lt;p&gt;As part of the &lt;strong&gt;Rapid Games Prototyping&lt;/strong&gt; module, we are tasked with reviewing a peer's game. The challenge is to analyse a prototype built in just one week, so here is my latest review!&lt;/p&gt;

&lt;p&gt;The theme for this week was &lt;strong&gt;"Microgames"&lt;/strong&gt; with the modifier &lt;strong&gt;"Mash Up."&lt;/strong&gt; This implies a &lt;em&gt;WarioWare&lt;/em&gt;-style paradigm, where individual mini-games are integrated into a single sequence, played one after another with escalating difficulty. Because of this unique format, today I won't be reviewing a single game, but rather dissecting a few standout mechanics from the collection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Magical Girl Transform!!!&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fik8gsiffylukm0nc2mbo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fik8gsiffylukm0nc2mbo.png" alt="Magical Girl Transform" width="800" height="410"&gt;&lt;/a&gt;&lt;br&gt;
Creativity is the strongest pillar of this microgame. The gameplay is elegantly simple: make the required pose to defeat the villain, but it feels incredibly rewarding. The challenge scales perfectly as the difficulty ramps up, and it excels at delivering a highly satisfying animation as a payoff.&lt;/p&gt;

&lt;p&gt;This game is a brilliant example of taking a complex technical system, such as &lt;strong&gt;Inverse Kinematics (IK)&lt;/strong&gt;, and distilling it into a highly accessible, minimalist gameplay loop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The B Wizard&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6wszpnz1uix87034tlv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6wszpnz1uix87034tlv.png" alt="The B Wizard" width="800" height="408"&gt;&lt;/a&gt;&lt;br&gt;
This was easily one of my favourites for three distinct reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scope:&lt;/strong&gt; Typing games are perfect for microgames because they offer immediate engagement in a short time frame.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Twist:&lt;/strong&gt; Unlike standard typing games where you type exactly what you see, this prototype forces a cognitive twist: you must do a letter replacement on the fly (replacing every 'A' with a 'B').&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Worldbuilding:&lt;/strong&gt; The mechanic ties directly into the lore from Blake's very first prototype in this module, where a wizard stole the letter 'A' and forced the world to use 'B' instead. Continuity across weekly prototypes is a fantastic touch!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Cat Slap&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnx9vf3hfhgd179ushwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnx9vf3hfhgd179ushwq.png" alt="Cat Slap" width="800" height="442"&gt;&lt;/a&gt;&lt;br&gt;
The physical mechanics of swiping the mouse were explored heavily by Toby this week across various prototypes, but &lt;em&gt;Cat Slap&lt;/em&gt; stood out the most. Why? Because it absolutely nails the satisfaction at gaming. The visual feedback is incredibly satisfying, seamlessly matching the on-screen reaction with the physical, kinesthetic movement of the player's mouse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Healer POV&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Healer POV&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs7pchh2zfczrfldgtxv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs7pchh2zfczrfldgtxv.png" alt="Healer POV" width="800" height="409"&gt;&lt;/a&gt;&lt;br&gt;
As a &lt;em&gt;World of Warcraft&lt;/em&gt; healer myself, this prototype immediately caught my attention. I am quite a fan of the clicker/idle genre, but designing a good one is notoriously challenging. How do you make repetitive clicking engaging? The concept of healing a tank via a clicker mechanic is highly clever. While I believe the core loop has the potential to introduce more challenging resource management, it delivers perfectly on the "healer fantasy." It provides both the stress of keeping a tank alive and the inherent satisfaction of making a number go up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflective Practice: The Power of Minimalism&lt;/strong&gt;&lt;br&gt;
This week made me realise the immense value of microgames as a development tool. They are the perfect environment to quickly playtest an isolated mechanic and gauge player feedback before expanding it. By simplifying an idea down to its most minimalist core, you quickly discover if a mechanic is actually fun, or just masked by complex systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt; Inspired by this week's microgames, my goal for the next prototyping sprint is to apply this minimalist philosophy to my own work. I will focus entirely on a single mechanic. Instead of adding more and more systems into a game, I will spend my extra time purely on refining and balancing one mechanic.&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>mechanics</category>
      <category>learning</category>
    </item>
    <item>
      <title>Procedural Gradients, Hotfixes, and the Power of QA</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Sat, 07 Mar 2026 14:48:57 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/procedural-gradients-hotfixes-and-the-power-of-qa-51cb</link>
      <guid>https://dev.to/jesuspinarte/procedural-gradients-hotfixes-and-the-power-of-qa-51cb</guid>
      <description>&lt;p&gt;Hellu, and welcome back to another weekly update for &lt;em&gt;A Wargame Without Compromise&lt;/em&gt; (WWC)! 👾&lt;/p&gt;

&lt;p&gt;This sprint was a masterclass in time management and the iterative nature of game development. The beginning of my week started a bit slower than usual; balancing the heavy workload from my Rapid Games Prototyping (RGP) module and personal commitments meant I had to be highly strategic with my time once I jumped back into the WWC codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agile Rituals &amp;amp; Scope Management&lt;/strong&gt;&lt;br&gt;
We kicked off our weekly meeting with our now-standard "Rose, Bud, Thorn" retrospective, which continues to keep our team communication healthy and transparent.&lt;/p&gt;

&lt;p&gt;First, we addressed an issue with the Unit Movement. We made a strict scope-management decision. Rather than rewriting the entire movement system in one day, which could introduce new bugs and block the team, we implemented an easy hotfix. This stabilised the build immediately and allowed us to keep moving forward without feature creep.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Spotlight: Procedural Texturing &amp;amp; Animation Curves&lt;/strong&gt;&lt;br&gt;
My primary focus this week was bringing the map to life. I finished the core documentation for the map generation and moved directly into colour texturing.&lt;/p&gt;

&lt;p&gt;To achieve a natural look, I researched &lt;strong&gt;Sebastian Lague's&lt;/strong&gt; highly regarded procedural generation techniques and adapted them to fit our specific grid system. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Animation Curves:&lt;/strong&gt; Instead of relying on the Perlin Noise height values, I implemented an &lt;code&gt;AnimationCurve&lt;/code&gt; in Unity. This exposes the data to the inspector, giving us visual, granular control over the terrain's height distribution without touching the script.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless Gradients:&lt;/strong&gt; To prevent harsh lines between different biomes (e.g., sand transitioning abruptly to grass), I engineered a system to apply colour gradients. The colours now blend seamlessly based on the vertex height data, making the environment look significantly more organic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/BvOrKllXkrk"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;The best moment of the week was seeing our QA in action. &lt;strong&gt;Allen&lt;/strong&gt; did a phenomenal job pushing the map generator to its limits. He created some incredibly creative, complex maps that I hadn't even imagined were possible with my current implementation. Seeing the system's flexibility validated all the hard work; it was incredibly rewarding.&lt;/p&gt;

&lt;p&gt;The rest of the team has been crushing it as well. The UI is now successfully integrating with character actions, and new mechanics, such as the &lt;em&gt;die system&lt;/em&gt;, have been merged. The most exciting news? &lt;strong&gt;The game is currently in a playable state!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My kudos this week go to &lt;strong&gt;Mohamed&lt;/strong&gt;. Despite having very limited time due to personal reasons, he improved his output tremendously and successfully delivered his tasks. Recognising and supporting teammates when they push through external challenges is what makes a great studio culture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflective Practice: Research vs. Iteration&lt;/strong&gt;&lt;br&gt;
My biggest takeaway this week involves the balance between immediate implementation and technical research. When implementing the terrain colours, I realised that some of the foundational work I did in previous sprints could have been significantly enhanced had I studied resources like Lague's tutorials &lt;em&gt;before&lt;/em&gt; writing the initial code.&lt;/p&gt;

&lt;p&gt;While I simply didn't have the time to do that deep-dive research weeks ago, this experience reinforced a valuable lesson: taking the time to review existing industry solutions before building custom architecture almost always yields a more robust result. However, I also recognise that in Rapid Prototyping, getting a functional baseline first and iterating later (as I did this week) is a valid and necessary approach to keep a project moving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt;&lt;br&gt;
Looking ahead, my goals are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Robust Refactoring:&lt;/strong&gt; I will take my current terrain generation implementation and make the architecture more robust, applying the structural lessons I learned this week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standalone Repository:&lt;/strong&gt; I plan to organise the code and move it into my own standalone repository to share my work and use it as a portfolio piece.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thank you so much if you got here!&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>unity3d</category>
      <category>terraingeneration</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Reaching the Demo</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Mon, 02 Mar 2026 18:44:36 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/reaching-the-demo-2mp6</link>
      <guid>https://dev.to/jesuspinarte/reaching-the-demo-2mp6</guid>
      <description>&lt;p&gt;Hellu, and welcome to my fourth week at A Wargame Without Compromise (WWC)! 👾&lt;/p&gt;

&lt;p&gt;Our primary goal for this sprint was to finally deliver a playable version of our game. We had a higher capacity this week because our other module assignments did not overlap, but we still faced a massive mountain of integration work.&lt;/p&gt;

&lt;p&gt;Early in the sprint, I spotted a critical workflow issue, multiple team members were working on similar core files simultaneously, most notably the &lt;code&gt;GameManager&lt;/code&gt;. The &lt;code&gt;GameManager&lt;/code&gt; was still under active development, but it was a hard dependency for everyone else's features to function properly.&lt;/p&gt;

&lt;p&gt;To unblock the team and prevent catastrophic merge conflicts, I took the initiative to restructure our version control workflow. I created a centralised &lt;code&gt;dev&lt;/code&gt; branch based on &lt;code&gt;main&lt;/code&gt;. I then integrated the work-in-progress &lt;code&gt;GameManager&lt;/code&gt; into this &lt;code&gt;dev&lt;/code&gt; branch and updated all other active feature branches to point to it. This allowed everyone to use the current state of the core architecture without breaking the &lt;code&gt;main&lt;/code&gt; production branch, drastically reducing the risk of major merge conflicts down the line.&lt;/p&gt;

&lt;p&gt;My specific feature task was relatively straightforward, create a bullet trail particle effect when a character shoots. It was really enjoyable to continue messing around with Unity's particle systems. However, while the visual trail itself was not difficult to create, I severely underestimated the time required to integrate it into the codebase. Because our systems were not properly connected at the time of completion, the integration took much longer than anticipated.&lt;/p&gt;

&lt;p&gt;My final effort of the week was assisting Josh in assembling the actual Demo build just before our team standup meeting. I felt that this sprint involved a lot of rushing, trying to integrate code, resolve dependencies, and update scripts simultaneously. It was a bit exhausting, but seeing the playable game made it absolutely worth it.&lt;/p&gt;

&lt;p&gt;I want to give kudos this sprint to Allen, who invested a lot of time into researching and implementing the Game Manager System!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt;&lt;br&gt;
With the demo ready, I can finally return to my favourite area: algorithms!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Terrain Generation:&lt;/strong&gt; I will continue updating the procedural terrain. If time permits, I aim to implement texturing and potentially some foliage algorithms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capacity Planning:&lt;/strong&gt; I have a heavy workload in other areas next week, so I will ensure I strictly time-box my terrain tasks to avoid overcommitting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Reflective Learning&lt;/strong&gt; &lt;br&gt;
While everything came together in the end, the "integration crunch" was a wake-up call. We need to pay much closer attention to the code's architecture. This sprint taught me that a feature isn't truly "done" until it is cohesively integrated. Moving forward, we need to communicate our dependencies earlier to avoid this disjointed scramble at the end of the sprint.&lt;/p&gt;

&lt;p&gt;Thank you so much if you got this far!&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽👻&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;p&gt;Driessen, V. (2010) A successful Git branching model. Available at: &lt;a href="https://nvie.com/posts/a-successful-git-branching-model/" rel="noopener noreferrer"&gt;https://nvie.com/posts/a-successful-git-branching-model/&lt;/a&gt; (Accessed: 23 February 2026).&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>unity3d</category>
      <category>git</category>
      <category>mvp</category>
    </item>
    <item>
      <title>Competitive Puzzles</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Sun, 22 Feb 2026 16:27:35 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/competitive-puzzles-ma1</link>
      <guid>https://dev.to/jesuspinarte/competitive-puzzles-ma1</guid>
      <description>&lt;p&gt;Hey Gamers!&lt;/p&gt;

&lt;p&gt;As part of the &lt;strong&gt;Rapid Games Prototyping&lt;/strong&gt; module, we are tasked with reviewing a peer's game every two weeks. The challenge is to analyse a game built in just one week, so here is my weekly review!&lt;/p&gt;

&lt;p&gt;The theme for this week was &lt;strong&gt;"The Greatest Tournament"&lt;/strong&gt; with the modifier &lt;strong&gt;"Monochromatic"&lt;/strong&gt;. My pick for the week? &lt;em&gt;Discoku&lt;/em&gt;, a competitive Sudoku type game, in a 1v1 form, using colors instead of number. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Impressions&lt;/strong&gt;&lt;br&gt;
My immediate thought upon playing was simply: &lt;em&gt;"This is very clever."&lt;/em&gt; The name itself is genius, and as a Sudoku lover, I grasped the core loop incredibly fast. The experience felt a lot like playing competitive &lt;em&gt;Tetris&lt;/em&gt;, intense, high-stakes, and a lot of fun!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbp985y5dre9kj2739x73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbp985y5dre9kj2739x73.png" alt="Discoku 1v1 grid" width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mechanics &amp;amp; Balancing&lt;/strong&gt;&lt;br&gt;
The mechanics are simple but rewarding. You navigate the &lt;em&gt;Discoku&lt;/em&gt; grid, randomly, and a "blocker power" appears on the screen, which, when the first player presses the ability button, freezes the other player's grid for a short time.&lt;/p&gt;

&lt;p&gt;However, this mechanic highlights a balancing issue. Currently, the blocker power rewards players' speed on the keyboard, allowing them to pull further ahead if they are already ahead, which can be frustrating for the losing player. To improve the user experience, the game would benefit from a "catch-up" mechanic. As seen in games like &lt;em&gt;Mario Kart&lt;/em&gt; or &lt;em&gt;Crash Team Racing&lt;/em&gt; (Shortcat, 2023), giving the most powerful items to the players who are behind helps balance the scales and keeps the match tense until the very end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv9d68ykd1k1yawa9s4n5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv9d68ykd1k1yawa9s4n5.png" alt="Sabotage power" width="325" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additionally, the control scheme required a full-length keyboard (using the right-side numpad) for the second player. For better accessibility, utilising the arrow keys would have been a more universal choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visuals &amp;amp; UX&lt;/strong&gt;&lt;br&gt;
The music and visual aesthetic added a lot of appeal; it genuinely felt like being in a disco, making it highly immersive! However, there was a minor User Experience (UX) flaw regarding visual hierarchy. Because of the monochromatic modifier, it was difficult to notice which cell in the grid was selected (it was only slightly darker than the rest). Highlighting the active cell with a bolder outline would have greatly improved player navigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43w2oqfxw89laid868cj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43w2oqfxw89laid868cj.png" alt="Discoku grid selection" width="767" height="696"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflection: How this influences my work&lt;/strong&gt;&lt;br&gt;
Playing &lt;em&gt;Discoku&lt;/em&gt; made me reflect on the concept of "Games with a twist" and how adding or removing a single element changes the entire feel of a game.&lt;/p&gt;

&lt;p&gt;Once again, this week I found myself focusing too heavily on complex backend systems. I strayed so far from my initial vision that my core gameplay loop (inspired by "Musical Chairs") was completely lost. I ended up twisting the mechanics to fit a forced narrative, which ultimately resulted in a game that felt a bit creepy rather than fun. Seeing the effective simplicity of &lt;em&gt;Discoku&lt;/em&gt; was a wake-up call.&lt;/p&gt;

&lt;p&gt;My primary goal for next week's prototype is to implement a very simple mechanic and polish the "game feel" until it shines. I may still explore complex systems to learn new things, but they will be strictly treated as "nice-to-have" features, not the end goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Discoku&lt;/em&gt; is a fantastic, highly enjoyable prototype. It delivered perfectly on the theme and offers an exciting, fresh twist for puzzle lovers!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shortcat321 (2023) Are ITEMS based on DISTANCE in Mario Kart 8 Deluxe? Available at: &lt;a href="https://www.youtube.com/shorts/rmLS3YB9uYA" rel="noopener noreferrer"&gt;https://www.youtube.com/shorts/rmLS3YB9uYA&lt;/a&gt; (Accessed: 22 February 2026)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>gamejam</category>
      <category>devlog</category>
      <category>mechanics</category>
    </item>
    <item>
      <title>Scoping and Lerp</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Sat, 21 Feb 2026 14:51:28 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/scoping-and-lerp-2m7i</link>
      <guid>https://dev.to/jesuspinarte/scoping-and-lerp-2m7i</guid>
      <description>&lt;p&gt;Hellu, and welcome to my third week at &lt;em&gt;A Wargame Without Compromise&lt;/em&gt; (WWC)! 👾&lt;/p&gt;

&lt;p&gt;For this sprint, our primary goal was to deliver our first playable demo. It was a challenging objective; while we had all the individual pieces built, the real test was connecting them. Predictably, we ran into some complications.&lt;/p&gt;

&lt;p&gt;Capacity was our first hurdle. We should have limited our sprint scope, taking into account that half the team had demanding external work commitments over the Valentine's Day weekend. Furthermore, we experienced some workflow disconnects. We were developing individual features, but the centralising architecture, specifically the State Machine and Game Manager, was not ready yet.&lt;/p&gt;

&lt;p&gt;We expected the State Machine to be finished earlier in the sprint to allow for seamless integration. Sadly, we underestimated the scope of this task because the team wanted to ensure the system was robust. This delay is not the end of the world; it is a common pitfall in new projects when integrating systems with which the team has limited prior experience. We overcame this bottleneck by having a discussion to refine the State Machine's requirements and doing some knowledge transfer. The key takeaway from this sprint is the necessity of better refinement and realistic capacity planning before a sprint starts.&lt;/p&gt;

&lt;p&gt;In addition to supporting the team's core goals, my specific tasks for this sprint included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Refining the Rewind Ability:&lt;/strong&gt; Resetting the rewind points after an action other than moving was triggered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smoothing Terrain Under Buildings:&lt;/strong&gt; Modifying the flat terrain around newly placed buildings to look more natural.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terrain Deformation:&lt;/strong&gt; Creating visual craters in the mesh upon collision.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rewind Ability Refining&lt;/strong&gt;&lt;br&gt;
This was straightforward to implement. With the Event Handler already in place, I simply listened for the shooting event and cleared both the rewind and fast-forward stacks when it triggered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smoothing the Terrain&lt;/strong&gt;&lt;br&gt;
To tackle terrain smoothing, I had to map out the math on paper first. Following a discussion with our tutor about the concept of &lt;em&gt;Lerping&lt;/em&gt; (Linear Interpolation), the area around a building, I researched distance calculations. I found an excellent resource by Quilez (2019) detailing mathematical formulas for shapes and point distances. This helped me understand how to calculate the distance from a given point and &lt;code&gt;Lerp&lt;/code&gt; the altitude based on that distance, the building's base altitude, and the current point's altitude. I iterated through the &lt;code&gt;gridMap[][]&lt;/code&gt; area (adding a margin) and discarded the strictly occupied points using the &lt;code&gt;occupiedMap[][]&lt;/code&gt; so the terrain directly underneath the building wouldn't be altered. This is the result:&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/A54JK29dYgQ"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terrain Deformation&lt;/strong&gt;&lt;br&gt;
Initially, I thought deforming the mesh would be highly complex because I wasn't sure how to pinpoint the exact collision coordinates. It turned out to be quite manageable. Unity’s &lt;code&gt;OnCollisionEnter&lt;/code&gt; method provides a &lt;code&gt;Collision&lt;/code&gt; object containing the contact points. Using that precise point, I looped through the surrounding vertices matrix of the mesh, calculating the Pythagorean distance to ensure the crater was circular rather than box-shaped, and applied a &lt;code&gt;Lerp&lt;/code&gt; to deform the area.&lt;/p&gt;

&lt;p&gt;Having finished the task ahead of schedule, I added some particle effects to make the crater visually appealing. This was a great opportunity for me to step outside my pure-code comfort zone and learn something new about VFX and game feel. This is the result:&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/7cq4-IqEOxM"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint&lt;/strong&gt;&lt;br&gt;
Our goal of a fully playable demo remains. To achieve this, my concrete action plan is to step back from terrain generation features and dedicate my time to stabilising the gameplay and codebase. I will assist in fully integrating the State Machine with the rest of the game's mechanics.&lt;/p&gt;

&lt;p&gt;My teammates have developed some fantastic systems this week, such as piercing shooting mechanics and a UI system to track unit status. Finally, I want to give my kudos to Josh this week! As a leader, he has planned effectively around our delays to ensure the best possible outcome for the team.&lt;/p&gt;

&lt;p&gt;Thank you so much if you got this far!&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽👻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quilez, I. (2019) &lt;em&gt;The SDF of a Box&lt;/em&gt;. Available at: &lt;a href="https://www.youtube.com/watch?v=62-pRVZuS5c" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=62-pRVZuS5c&lt;/a&gt; (Accessed: 18 February 2026).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>lerp</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Team building and Game Dev</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Wed, 11 Feb 2026 22:18:49 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/team-building-and-game-dev-5d07</link>
      <guid>https://dev.to/jesuspinarte/team-building-and-game-dev-5d07</guid>
      <description>&lt;p&gt;Hellu, and welcome to my second week at A Wargame Without Compromise (WWC)! 👾&lt;/p&gt;

&lt;p&gt;This week began with a code review of our previous deliverables. It was empowering to see every team member explain their achievements; the commitment to individual tasks is high, and the receptiveness to feedback has created a very positive environment. However, due to increased academic workload from other modules, our team had limited availability this sprint. Consequently, we adjusted our scope to be realistic, a crucial practice in Agile development to avoid burnout.&lt;/p&gt;

&lt;p&gt;My primary goal was to finalise the building placement system. The map now supports a list of buildings that are automatically placed without overlapping. I used the Occupancy Grid Mapping Nirwan (2021) to verify whether the space in the grid was already taken or not. To solve the issue of the environment looking static or "boring," I implemented a random rotation system.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Implementation:&lt;/em&gt; Buildings now instantiate with discrete rotations (0, 90, 180, 270 degrees). This adds visual variety while maintaining the grid-like structure required for gameplay.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/5uLQ7qn9yJA"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;During our Monday meeting, I proposed a &lt;strong&gt;"Rose, Bud, Thorn"&lt;/strong&gt; session LUMA Institute (no date), to serve as an icebreaker before diving into technicalities. Drawing from my previous professional experience, where my ex-teammate Ashley used to like doing these sessions and I think they are really fun! I found that Discord chats can feel quite "cold".&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rose:&lt;/strong&gt; A highlight/success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thorn:&lt;/strong&gt; A challenge/pain point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bud:&lt;/strong&gt; A new idea or something to look forward to.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The group was very receptive. This exercise isn't just for fun; it effectively builds &lt;strong&gt;psychological safety&lt;/strong&gt;, allowing us to understand each other's emotional states before critiquing work. It bridged the gap that digital communication often creates.&lt;/p&gt;

&lt;p&gt;We also focused on refining workflows and QA. Allen has proven invaluable in this regard, adopting a "breaker" mindset, pushing features to their limit to find edge cases. He discovered an issue with the map size limits, which we have now capped to prevent performance degradation. Catching this in the early stages saved us significant refactoring time later.&lt;/p&gt;

&lt;p&gt;It wasn't all smooth sailing. I spent significant time assisting Allen with Git LFS (Large File Storage) conflicts, specifically regarding the Wwise audio integration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;The Issue:&lt;/em&gt; Binary files were not locking correctly, causing merge conflicts.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;The Fix:&lt;/em&gt; We implemented a temporary workaround, we couldn't fix the LFS issue on his branch so we created a new one, fresh from main, but with the &lt;code&gt;.gitignore&lt;/code&gt; and &lt;code&gt;.gitattributes&lt;/code&gt; updated before the Wwise integration, but this consumed valuable development time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I finished the sprint by developing the Movement Restriction System based on stamina and time manipulation.&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/ymsltl8telU"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rewind mechanic overview:&lt;/strong&gt; The player now features a Stamina system where movement consumes energy based on a Stamina Per Step property.&lt;/p&gt;

&lt;p&gt;By pressing the &lt;code&gt;Toggle Rewind&lt;/code&gt; key, the player enters &lt;strong&gt;Rewind Mode&lt;/strong&gt;. In this state, the player can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hold&lt;/strong&gt; &lt;code&gt;Rewind&lt;/code&gt;: Backtrack through previous positions to recover spent stamina.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hold&lt;/strong&gt; &lt;code&gt;Fast Forward&lt;/code&gt;: Return toward the "future" point if they have already backtracked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The process is finalised by pressing &lt;code&gt;Toggle Rewind&lt;/code&gt; again. This commits the changes, restores the calculated stamina, and clears the &lt;code&gt;Fast Forward&lt;/code&gt; buffer while maintaining the history for further rewinding.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Logic:&lt;/strong&gt; I utilized the logic demonstrated by &lt;strong&gt;Brackeys (2017)&lt;/strong&gt; regarding storing transform data in lists, but adapted it to store "Stamina States" rather than just positions, also, instead of using Lists to keep track of the points where the player was, I used Stacks, GeeksforGeeks (2026), since their use case was better in this situation, because we always remove the last visited position.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Action Plan for Next Sprint:&lt;/strong&gt; I want to make the team more involve on Discord discussions. When we meet in person, everyone shares their ideas and thoughts about our process, development, and mechanics, but on chat, not everyone does. I think a good idea would be to encourage emoji reactions, at least to know if everyone agrees with the ideas, or if they have read the chats.&lt;/p&gt;

&lt;p&gt;I'm very happy with the outcome of the week, we have made a lot of progress given our time constraints, I feel that next week we will have a very very good progress.&lt;/p&gt;

&lt;p&gt;Thank you so much if you got here!&lt;/p&gt;

&lt;p&gt;See you next week for another update! 🛼🤟🏽&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brackeys (2017) &lt;em&gt;REWIND TIME in Unity&lt;/em&gt;. Available at: &lt;a href="https://www.youtube.com/watch?v=eqlHpPzS22U" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=eqlHpPzS22U&lt;/a&gt; (Accessed: 11 February 2026).&lt;/li&gt;
&lt;li&gt;GeeksforGeeks (2026) &lt;em&gt;Stack Data Structure&lt;/em&gt;. Available at: &lt;a href="https://www.geeksforgeeks.org/stack-data-structure/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/stack-data-structure/&lt;/a&gt; (Accessed: 11 February 2026).&lt;/li&gt;
&lt;li&gt;LUMA Institute (no date) &lt;em&gt;Rose, Thorn, Bud&lt;/em&gt;. Available at: &lt;a href="https://www.luma-institute.com/rose-thorn-bud" rel="noopener noreferrer"&gt;https://www.luma-institute.com/rose-thorn-bud&lt;/a&gt; (Accessed: 11 February 2026).&lt;/li&gt;
&lt;li&gt;Nirwan, D. (2021) Occupancy Grid Mapping with Webots and ROS2. Available at: &lt;a href="https://towardsdatascience.com/occupancy-grid-mapping-with-webots-and-ros2-a6162a644fab/#:%7E:text=The%20occupancy%20grid%20mapping%20is,spaced%20binary%20(random)%20variables" rel="noopener noreferrer"&gt;https://towardsdatascience.com/occupancy-grid-mapping-with-webots-and-ros2-a6162a644fab/#:~:text=The%20occupancy%20grid%20mapping%20is,spaced%20binary%20(random)%20variables&lt;/a&gt;. (Accessed: 6 February 2026).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>unity3d</category>
      <category>scrum</category>
      <category>gamedev</category>
      <category>datastructures</category>
    </item>
    <item>
      <title>Why Simple Mechanics Win in Prototyping?</title>
      <dc:creator>Jesús Pineda</dc:creator>
      <pubDate>Mon, 09 Feb 2026 02:37:55 +0000</pubDate>
      <link>https://dev.to/jesuspinarte/why-simple-mechanics-win-in-prototyping-3034</link>
      <guid>https://dev.to/jesuspinarte/why-simple-mechanics-win-in-prototyping-3034</guid>
      <description>&lt;p&gt;Hey Gamers!&lt;/p&gt;

&lt;p&gt;As part of the &lt;strong&gt;Rapid Games Prototyping&lt;/strong&gt; module, we are tasked with reviewing a peer's game every two weeks. The challenge is to analyse a game built in just one week, so here is my first review!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2oemv3gfujinj9ti0e1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2oemv3gfujinj9ti0e1.png" alt="Rat with a gun" width="347" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The theme for this week was &lt;strong&gt;From A to B&lt;/strong&gt; with the modifier &lt;strong&gt;Off-screen:&lt;/strong&gt; &lt;em&gt;implement a real-world element into the game"&lt;/em&gt;. The result? &lt;em&gt;Rat with a Gun&lt;/em&gt; (LifeIsForLego, 2026), a physics-based platformer where you must use the recoil of a gun to propel a rat through the air.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Impressions &amp;amp; Onboarding&lt;/strong&gt; One of the strongest aspects of the prototype was that no tutorial was needed. All controls were explicitly displayed on-screen. This approach, similar to &lt;em&gt;The Binding of Isaac&lt;/em&gt; or many Ubisoft titles, is incredibly valuable in a Game Jam or prototyping setting. When there are dozens of games to test, time-to-fun is a huge factor, and this game respects the player's time immediately.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fam1v7a2ua8okta30hl35.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fam1v7a2ua8okta30hl35.png" alt="Rat shooting" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mechanics as Difficulty Sliders&lt;/strong&gt; The reloading mechanic was particularly clever, it "spices up" the gameplay while acting as a hidden, organic difficulty slider. As discussed by &lt;strong&gt;GMTK (2024)&lt;/strong&gt;, games like &lt;em&gt;Super Mario&lt;/em&gt; often include elements that allow players to adjust the difficulty through their own playstyle. In &lt;em&gt;Rat with a Gun&lt;/em&gt;, bullets reload one by one when you touch the ground. If you want an "easy mode," you can simply wait for a full reload. However, for a "hardcore" experience, you can wait strictly for the necessary bullets and speedrun the level. This execution was simple yet profound.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The "Juice" and Emergent Gameplay&lt;/strong&gt; It is impossible to ignore the pigeons. They explode upon death, which is both satisfying and hilarious. During our feedback session at the university, the entire room laughed when the explosions triggered.&lt;/p&gt;

&lt;p&gt;However, since the core mechanic is physics-based, a strong addition would have been to apply directional force to the character from these explosions. This could introduce &lt;em&gt;emergent gameplay&lt;/em&gt;, allowing players to use enemies to reach previously inaccessible platforms or add chaos to the movement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bjfgqapayzbjil7nqij.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bjfgqapayzbjil7nqij.png" alt="IPigeon explosion" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visuals &amp;amp; Polish&lt;/strong&gt; There were a few minor issues regarding clarity. The colour contrast of the spikes made it difficult to see how many bullets were left in the UI, and there were issues with some platforms, so that they seemed that you could go below one platform, but in fact, your movement was locked with the platform from above. However, the overall aesthetic was cohesive, and nothing felt out of place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflection: How this influences my work&lt;/strong&gt; Analysing &lt;em&gt;Rat with a Gun&lt;/em&gt; has shifted my perspective on my own prototyping process. I tend to focus heavily on complex systems, but seeing how much enjoyment players got from the simple "pigeon explosion" feedback loop reminded me that "game feel" (juice) is just as important as the code behind it. &lt;/p&gt;

&lt;p&gt;Inspired by the effective simplicity of &lt;em&gt;Rat with a Gun&lt;/em&gt;, for my next prototypes, I plan to shift my focus toward the creative process, such as 3D modelling and 'game feel', instead of prioritising complex algorithms. While I feel confident in my technical implementation skills, this review reminded me that I should explore aspects where I am less experienced to become a more well-rounded game developer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt; The ending was hilarious, and the inclusion of a second gun showed great potential for progression. While it doesn't radically reinvent the "From A to B" theme, it is a fantastic execution of a user-centric idea. You don't play this thinking, "How is the theme integrated?" but rather, "This movement is cool!"&lt;/p&gt;

&lt;p&gt;From my perspective, with more time, this game has the potential to become a really good Rage Game, like &lt;em&gt;"Getting Over It with Bennett Foddy game type"&lt;/em&gt;, &lt;em&gt;"Golfing Over It with Alva Majo"&lt;/em&gt; or &lt;em&gt;"I wanna be that guy"&lt;/em&gt;, which are platformer games with the idea is get as high as possible with some difficult controls or physics. With more levels, it can be a successful speed run game&lt;/p&gt;

&lt;p&gt;GGs, WP! 👾👻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brown, M. (2024) &lt;em&gt;Super Mario's Invisible Difficulty Settings&lt;/em&gt;. Available at: &lt;a href="https://www.youtube.com/watch?v=gkvyYTSKTQY" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=gkvyYTSKTQY&lt;/a&gt; (Accessed: 9 January 2026).&lt;/li&gt;
&lt;li&gt;LifeIsForLego (2026) &lt;em&gt;Rat with a Gun&lt;/em&gt; [Downloadable game]. Available at: &lt;a href="https://lifeisforlego.itch.io/rat-with-a-gun" rel="noopener noreferrer"&gt;https://lifeisforlego.itch.io/rat-with-a-gun&lt;/a&gt; (Accessed: 2 February 2026).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>prototyping</category>
      <category>beginners</category>
      <category>unity3d</category>
    </item>
  </channel>
</rss>
