<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged proceduralgeneration</title>
<link>https://coderlegion.com/tag/proceduralgeneration</link>
<description>Powered by Question2Answer</description>
<item>
<title>Building a Procedural Murder-Mystery Game That Still Has to Make Sense</title>
<link>https://coderlegion.com/27786/building-a-procedural-murder-mystery-game-that-still-has-to-make-sense</link>
<description>&lt;p&gt;&lt;strong&gt;Building Casefile: Sixty Seconds — From Murder-Mystery Prototype to Launch Sprint&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I’ve been spending a lot of my development time lately on a new Vasken Interactive Studios project called Casefile: Sixty Seconds, and it’s finally starting to feel less like a prototype and more like an actual game.&lt;/p&gt;
&lt;p&gt;The basic idea is a procedural mystery game built around a simple loop:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Briefing → Investigation → Accusation → Results&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Players examine suspects and evidence, look for contradictions, and decide who is responsible. The goal was to make cases short enough to play in a few minutes without turning the deduction itself into guesswork.&lt;/p&gt;
&lt;p&gt;One of the biggest development challenges has been procedural generation. Randomizing names, suspects, evidence, motives, and relationships is easy enough. Randomizing them while still producing a case that is logically solvable is another matter entirely.&lt;/p&gt;
&lt;p&gt;So the generator now performs structural validation before a case reaches the player. I recently ran 1,000 generated-case tests, and all 1,000 passed validation. That was one of those development milestones that doesn’t look flashy in a screenshot, but it felt pretty damn good.&lt;/p&gt;
&lt;p&gt;The current build includes:&lt;/p&gt;
&lt;p&gt;Three handcrafted Pinecrest cases alongside procedural Dispatch cases&lt;br&gt;
Six difficulty levels, from Rookie through Black File&lt;br&gt;
XP, streaks, case archives, personal scores, and Clue Tokens&lt;br&gt;
Daily Case and leaderboard-oriented competition systems&lt;br&gt;
A Case Rush mode where the clock actually becomes part of the pressure&lt;br&gt;
A Supply Desk with a small launch-focused purchase catalog rather than a giant monetization ladder&lt;br&gt;
A progression system that lets players unlock higher difficulty tiers through play, with an optional Investigator Access Pack&lt;/p&gt;
&lt;p&gt;The monetization philosophy has been another interesting design problem. I don’t want the game built around constantly interrupting the player or selling them the answer. The current plan is limited to optional rewarded ads, controlled interstitials between cases, Remove Ads, a small Clue Token pack, and the $9.99 Investigator Access Pack.&lt;/p&gt;
&lt;p&gt;Most of the core game systems are now working. The remaining launch work is the less glamorous but absolutely necessary stuff: production art, tutorial polish, audio and feedback, mobile layout cleanup, Android packaging, Google Play Billing, leaderboards, privacy/compliance work, and final QA.&lt;/p&gt;
&lt;p&gt;That means I’m currently in the dangerous stage of development where the game is functional enough to make you think, “I’m almost done,” while the launch checklist quietly laughs at you from the corner.&lt;/p&gt;
&lt;p&gt;Still, seeing the investigation loop, procedural generation, progression, scoring, and case systems finally working together has been a great milestone.&lt;/p&gt;
&lt;p&gt;Casefile: Sixty Seconds started as a fairly small idea: three suspects, a handful of clues, one contradiction, make the accusation.&lt;/p&gt;
&lt;p&gt;It has turned into a considerably deeper system than I originally expected.&lt;/p&gt;
&lt;p&gt;And apparently I have not yet learned my lesson about the phrase “This should be a simple app.”&lt;/p&gt;
&lt;p&gt;— Wendell Wilhelm&lt;br&gt;
Founder, Vasken Interactive Studios LLC&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/27786/building-a-procedural-murder-mystery-game-that-still-has-to-make-sense</guid>
<pubDate>Sun, 20 Sep 2026 03:50:17 +0000</pubDate>
</item>
<item>
<title>Procedural Generation Is A Rules Problem, Not A Randomness Problem</title>
<link>https://coderlegion.com/25088/procedural-generation-is-a-rules-problem-not-a-randomness-problem</link>
<description>&lt;p&gt;Most procedural generation threads turn into algorithm shopping lists, and the algorithm is rarely what went wrong. This is a writeup on the part that actually decides output quality, which is the structure you wrap around the random number generator.&lt;/p&gt;
&lt;h3 id=&quot;randomness-is-not-generation&quot;&gt;Randomness Is Not Generation&lt;/h3&gt;
&lt;p&gt;A random number generator placing blocks at arbitrary positions produces visual noise. A procedural system that builds elevation from noise, runs erosion over it, assigns biomes from moisture and temperature gradients, then places vegetation by ecological rule produces something a player reads as a landscape.&lt;/p&gt;
&lt;p&gt;The difference is that the rules encode design intent and the randomness only supplies variety inside them. When generated output feels wrong, the fix is almost always a missing constraint rather than a better noise function.&lt;/p&gt;
&lt;h3 id=&quot;the-trade-has-not-changed-since-1984&quot;&gt;The Trade Has Not Changed Since 1984&lt;/h3&gt;
&lt;p&gt;Rogue generated dungeon layouts in 1980 so that each run was a new arrangement of rooms, corridors and monsters. Elite fit an entire galaxy of star systems into a few kilobytes in 1984 using mathematical seeds.&lt;/p&gt;
&lt;p&gt;Both are the same bargain you make today: spend computation to save storage. What has grown is the pipeline, from a single RNG call to layered systems combining noise, grammars, constraint solvers and now models.&lt;/p&gt;
&lt;h3 id=&quot;determinism-is-a-debugging-feature&quot;&gt;Determinism Is A Debugging Feature&lt;/h3&gt;
&lt;p&gt;The thing teams skip until it hurts is reproducibility. If a player reports that the world at seed 8815 was unwinnable and you cannot load exactly that world, you are debugging by guesswork.&lt;/p&gt;
&lt;p&gt;That means every source of randomness has to run through the seeded generator, including the ones that sneak in later: hash iteration order, floating point differences across platforms, anything reading the wall clock. One unseeded call and the seed stops meaning anything.&lt;/p&gt;
&lt;h3 id=&quot;where-hand-built-content-still-wins&quot;&gt;Where Hand Built Content Still Wins&lt;/h3&gt;
&lt;p&gt;Generated content has a distribution and the bad tail ships too. Hand built content has no tail. That is why most shipped games run a hybrid: generated layouts assembled from hand made rooms, or a generated world with authored regions dropped into it, so the pieces are always good even when the arrangement is new.&lt;/p&gt;
&lt;p&gt;Pacing is the other thing generators do not know. A generator cannot tell that the corridor before the boss should feel long.&lt;/p&gt;
&lt;p&gt;Longer version covering the specific algorithms, noise functions, dungeon and level generation, wave function collapse, seeds and determinism, and where AI fits into this now: &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.abratabia.com/procedural-generation/&quot;&gt;procedural generation for games&lt;/a&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/25088/procedural-generation-is-a-rules-problem-not-a-randomness-problem</guid>
<pubDate>Fri, 21 Aug 2026 13:17:26 +0000</pubDate>
</item>
</channel>
</rss>