<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Blog · Ignacio Meléndez</title><description>Technical articles about mobile development, game development, and software engineering.</description><link>https://ignarts.dev</link><language>en-US</language><item><title>Strangler Fig: Migrating a System Without Shutting It Down</title><link>https://ignarts.dev/blog/strangler-fig-pattern</link><guid isPermaLink="true">https://ignarts.dev/blog/strangler-fig-pattern</guid><description>The strangler fig grows around its host tree until it replaces it completely. The same trick works for migrating a legacy system: feature by feature, with no big bang and nothing switched off.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate><category>Development</category><category>architecture</category><category>migration</category><category>legacy</category><category>refactoring</category><category>typescript</category></item><item><title>Dash, Jump, and Movement: Tuning the Feel of Control</title><link>https://ignarts.dev/blog/tuning-movement-feel-acceleration-friction-curves</link><guid isPermaLink="true">https://ignarts.dev/blog/tuning-movement-feel-acceleration-friction-curves</guid><description>Acceleration, friction, and curves that make movement feel good.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>gamefeel</category><category>unity</category><category>unreal</category><category>csharp</category><category>cpp</category><category>movement</category><category>gamedesign</category></item><item><title>Dark Mode Without a Single if</title><link>https://ignarts.dev/blog/dark-mode-without-a-single-if</link><guid isPermaLink="true">https://ignarts.dev/blog/dark-mode-without-a-single-if</guid><description>If your dark mode is a chain of ternaries, you&apos;ve already lost. How a theme provider and semantic tokens make theming almost free and erase if (isDark) from your code.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><category>Development</category><category>theming</category><category>dark-mode</category><category>design-tokens</category><category>css</category><category>react</category></item><item><title>Sensors and Perception: How an NPC Sees and Hears</title><link>https://ignarts.dev/blog/npc-sensors-and-perception</link><guid isPermaLink="true">https://ignarts.dev/blog/npc-sensors-and-perception</guid><description>How to give game AI its senses: vision cones, sound events, and a memory that remembers what the NPC has perceived.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>gamedev</category><category>ai</category><category>unity</category><category>gamedesign</category><category>npc</category></item><item><title>Unity Profiling: Finding the Real Bottleneck</title><link>https://ignarts.dev/blog/unity-profiling</link><guid isPermaLink="true">https://ignarts.dev/blog/unity-profiling</guid><description>Bumping up the FPS blindly is a waste of time. How to use the Unity Profiler to find the real bottleneck (CPU, GPU, draw calls or GC) before touching a single line of code.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><category>Graphics Engines</category><category>unity</category><category>csharp</category><category>performance</category><category>profiling</category><category>optimization</category></item><item><title>Repository Pattern: Your UI Shouldn&apos;t Know Where Data Comes From</title><link>https://ignarts.dev/blog/repository-pattern</link><guid isPermaLink="true">https://ignarts.dev/blog/repository-pattern</guid><description>An interface that hides whether data comes from the network, cache, or disk. How to swap the source without touching a single screen.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><category>Development</category><category>architecture</category><category>repository-pattern</category><category>typescript</category><category>clean-architecture</category><category>testing</category></item><item><title>Coyote Time and Input Buffering: The Platformer That Forgives</title><link>https://ignarts.dev/blog/coyote-time-input-buffering</link><guid isPermaLink="true">https://ignarts.dev/blog/coyote-time-input-buffering</guid><description>The best platformers feel fair because they cheat in your favor. A deep dive into coyote time, jump buffering, and other forgiving input tricks, with Unity/C# implementations.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>unity</category><category>csharp</category><category>gamefeel</category><category>platformer</category><category>gamedesign</category></item><item><title>Atomic Design in React Native: From Atoms to Screens</title><link>https://ignarts.dev/blog/atomic-design-react-native</link><guid isPermaLink="true">https://ignarts.dev/blog/atomic-design-react-native</guid><description>Atomic Design splits the UI into atoms, molecules, and organisms. In large projects it works well. In agile ones, it can become premature abstraction. When each approach makes sense, and when feature-based is the better call.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>Development</category><category>react-native</category><category>architecture</category><category>atomic-design</category><category>mobile</category><category>components</category></item><item><title>How RNG Works in Roguelikes</title><link>https://ignarts.dev/blog/rng-in-roguelikes</link><guid isPermaLink="true">https://ignarts.dev/blog/rng-in-roguelikes</guid><description>Roguelikes depend on chance, but that chance has structure. A deep dive into seeds, determinism, and how to implement a reproducible RNG system in Unity/C#.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>unity</category><category>csharp</category><category>roguelikes</category><category>rng</category><category>gamedesign</category></item><item><title>Pathfinding in Videogames: A* and Its Variants</title><link>https://ignarts.dev/blog/pathfinding-in-videogames</link><guid isPermaLink="true">https://ignarts.dev/blog/pathfinding-in-videogames</guid><description>A* is the most well-known pathfinding algorithm, but modern games go far beyond: NavMesh, JPS, HPA*. This article explores why Dijkstra doesn&apos;t scale, how A* really works, and when to use each variant.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>unity</category><category>csharp</category><category>pathfinding</category><category>navmesh</category><category>gamedesign</category></item><item><title>Feature Flags Without Going Crazy</title><link>https://ignarts.dev/blog/feature-flags</link><guid isPermaLink="true">https://ignarts.dev/blog/feature-flags</guid><description>Feature flags are a simple idea that turns into silent debt. This article covers the full cycle: adding a flag with context, gradual rollout, and the part nobody documents: cleanup.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><category>Development</category><category>featureflags</category><category>typescript</category><category>backend</category><category>devops</category></item><item><title>How Pokémon&apos;s Genetics Actually Work</title><link>https://ignarts.dev/blog/how-pokemon-genetics-actually-work</link><guid isPermaLink="true">https://ignarts.dev/blog/how-pokemon-genetics-actually-work</guid><description>A deep dive into IVs, EVs, and breeding mechanics: what these systems can teach us about designing creature progression in games.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>gamedesign</category><category>pokemon</category><category>systemsdesign</category><category>rpg</category><category>gamedev</category></item><item><title>AI + Mutation Testing: Write Tests That Actually Fail</title><link>https://ignarts.dev/blog/ai-assisted-testing</link><guid isPermaLink="true">https://ignarts.dev/blog/ai-assisted-testing</guid><description>AI generates tests fast. That&apos;s exactly the problem. Why AI-generated tests often pass without being useful, and how mutation testing, combined with the right workflow, fixes that.</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><category>Development</category><category>testing</category><category>ai</category><category>tdd</category><category>mutation-testing</category><category>quality</category></item><item><title>Fire Emblem&apos;s Stats and the Illusion of Tactical Depth</title><link>https://ignarts.dev/blog/fire-emblem-stats-growth-rates</link><guid isPermaLink="true">https://ignarts.dev/blog/fire-emblem-stats-growth-rates</guid><description>Fire Emblem&apos;s growth rates are simple percentage rolls, but they generate brutal variance, emotional attachment, and entire subcultures of save-state manipulation.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>fireemblem</category><category>gamedesign</category><category>rng</category><category>stats</category><category>tactics</category></item><item><title>Replicating Mewgenics&apos; Genetic System in Unity</title><link>https://ignarts.dev/blog/replicating-mewgenics-genetic-system-unity</link><guid isPermaLink="true">https://ignarts.dev/blog/replicating-mewgenics-genetic-system-unity</guid><description>A technical breakdown of how to design a flexible genetic system in Unity, inspired by the breeding mechanics of Mewgenics.</description><pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate><category>Videogames</category><category>unity</category><category>csharp</category><category>genetics</category><category>gamedesign</category><category>simulation</category></item></channel></rss>