Posts

  • Alpha 5 and Demo Announcement

    Alpha 5 and Demo Announcement

    As the public release period wraps up for Alpha 4: The Dungeon Update, I’d like to thank everyone who tried it out and sent me bug reports and suggestions. Your feedback has already helped me make important improvements to the game, and there’s more to come!

    Next up is Alpha 5: The Castle and Town Update. This update will add castles to the game, and bring many improvements to give people and towns more character, as well as bring greater variety to quests, so that each story will feel different from the last.

    With this update, Stories from Danger’s Den will be playable on both Windows desktop and Android mobile devices. I’m excited to make this game available to more players!

    The Alpha 5 release phase will include these events:

    1. Closed Alpha 5 release for Windows and Android to selected playtesters.
    2. Public demos on Itch and Steam!
    3. Alpha 5 shared with some additional streamers and supporters. More details to come.
    4. Kickstarter launch!

    The upcoming public demo will be one (1) small, complete RPG generated by Stories from Danger’s Den’s Alpha 5 build. It will be available for free, forever, no strings attached.

    Edit: An earlier version of this post included dates for each event of the Alpha 5 rollout. As my work and development schedule are in flux, I’m not ready to promise any specific dates at this time. Also edited to add the news that the game is coming to Android!

  • Alpha 4 is here!

    I’m pleased to announce that Alpha 4, the Dungeon Update, is ready to play! It’s available for download on my Itch page for Stories from Danger’s Den, here:

    https://mckathlin.itch.io/stories-from-dangers-den

    Please be aware that this is a development version of the game, so it has only a start to what you can expect from the commercial release.

    Feedback is encouraged, whether through comments on Itch or through tweeting or sending a message to @DangersDen on Twitter. Let me know what you think of the game: what you like, and what you hope to see in future versions. If you run into a bug, you can help me find it by filling out this bug report form; that helps me fix it. Thanks!

    With help from your feedback, I’ll share an update to Alpha 4 with bugfixes and new content on Saturday, April 15.

    The latest revision of Alpha 4 will remain available through Monday, April 24, after which Stories from Danger’s Den will be closed to the public until the demo is ready to share.

    Update: Alpha 0.4.1 is now live on Itch. It brings several bugfixes to Alpha 4, plus a few new monsters and pieces of equipment and one new supporting quest.

  • Alpha 4 Announcement

    On Monday, April 10, the Alpha 4 release of Stories from Danger’s Den will be released for playtesting. It will be available to the public on my Itch.io page for two weeks, from April 10 through April 24.

    As an alpha release, this is an unfinished version of Stories from Danger’s Den. The games it generates are playable and winnable, but they lack many features that are planned for the eventual commercial release. Your feedback will be appreciated and can help influence the game’s future development.

    Here’s some of what’s new since I last shared an alpha release in September 2022:

    • Themed dungeons, with treasure and enemies matching the dungeon theme
    • Better distribution of wares in starting towns’ shops
    • New types of equipment: helmets, polearms, and orbs
    • New monsters
    • Additional dungeon music by Aaron Wilson (AAW Music) and Pedro Planas

    And here are some Alpha 4 sneak peeks:

    I look forward to sharing Alpha 4 with you on April 10. Let’s talk more then!

  • Early Gameplay Videos

    I’d like to thank my good friend Tyruswoo for making some gameplay videos of Stories from Danger’s Den! These videos were made in 2021 shortly after the game’s Alpha 1 release. (At the time, the game was called Tales from Danger’s Den; I’ve since changed its name.)

    Stories generated in Alpha 1 were bare-bones: one town, one quest, and one dungeon with a pre-defined set of treasure. Only two playable classes were available: Paladin and Enchanter. Total playtime per story was about 1 hour.

    Here’s another gameplay video from Tyruswoo: a different story and world, also from Alpha 1.

    Thanks for watching!

    Since these videos, Stories from Danger’s Den has come to offer much more: each story has main quest, about two supporting quests, and sometimes a trade offer or two, 1 or 2 towns, and roughly 3 dungeons. The hero may be one of seven playable classes, and often an ally helps out. Dungeon treasure varies randomly and is compatible with the character classes of the party. Play time per story still sits at 1 to 2 hours, even as there are more things to do.

    I have big plans yet ahead. At the time of this writing, I’m preparing quests to involve a greater variety of dungeons, with coordinated sets of monsters and treasure. And, as you may guess: more of everything! I’m going to keep adding more playable classes, more types of monsters, more world biomes and styles of cities, and more kinds of quests.

    If you’d like to keep up-to-date on the game’s progress and be among the first to know when it’s available to play, I invite you to enter your email address below to subscribe to the mailing list.

  • Building Worlds

    Building Worlds

    I spent my fifth and sixth development weeks getting the game’s overworld generation in order. After studying others’ prior work in random map generation, I implemented Perlin noise for my game. Then I tweaked the parameters until the results gave me dreams of Alefgard.

    This is what early map generation looked like in RPG Maker’s editor. The screenshot above on the left shows region numbers representing elevation.

    To shape the worlds into closed island maps, I start with a grid of zeroes and apply a series of transforms:

    1. A simple additive transform adds the same number to all cells, establishing the average elevation.
    2. A Perlin noise transform adds and subtracts from the grid in the shape of random waves. A nice large one raises the land into hills and mountains and lowers it into valleys and lakes.
    3. But just one noise transform would make for smooth, blobby-looking contours. I’ve set up plugin parameters so that I can apply as many Perlin noise transforms as I like, at any depth or breadth of my choice. After the first deep, broad transform, I add more noise transforms, with the depth and breadth roughly in half for each. Smaller Perlin waves give the terrain more of a rugged, natural look.
    4. Next I apply a rounded “bowl” transform. An upside-down bowl lowers the edges to shape the world into an island. An upright bowl raises the edges to make a valley world. I’ve configured some of each world shape, for variety.
    5. The final transform crimps the edges of the map to ensure that the edges are closed off. Low elevations are plunged into the sea; higher elevations are made mountains.
    6. Once all transforms are made, elevation cutoffs determine what becomes mountains, hills, plains, beaches, and water.

    Below are early examples of an island and a valley map.

    Next I gave each world a humidity grid on which random “wet spots” and “dry spots” spawned and spread based on terrain shape and random chance. The wet spots became forests, and the dry spots, deserts. By configuring different humidity baselines and different wet and dry spot spawn counts, I made some worlds mostly forest, and some mostly desert.

    With autotiling applied, the little worlds start to look prettier.

    World generation stayed much like this through Alpha 1 and Alpha 2, merely adding points of interest. Later revisions would enlarge the maps and add occasional bay worlds, mountain passes, rivers, and bridge-connected islands.

    Future plans include setting up ship routes, making biome-specific points of interest and enemies, and adding more biomes, including jungles, snowy places, and more types of desert regions.

  • Randomness Introduced

    Randomness Introduced

    Creating games with many different kinds of heroes is at the heart of my vision for this game, and it began early. The first thing I gave custom randomness to was the hero.

    Below is a gameplay video from Stories from Danger’s Den in October 2020, one month into development. The game is in color now. The hero’s appearance is randomly selected from a set of eight possible sprites: four male and four female. He has a gender-appropriate randomly generated name.

    These changes may look simple, but there’s a lot going on behind them.

    I knew I’d want to let players load stories from IDs eventually, so I built the game to generate randomness from a seed, courtesy of David Bau’s seedrandom library.

    The hero’s name was randomly generated using a random selection pool loaded from a file. The file contains lists of text snippets that reference each other. A name is built from a name root followed by a gender-appropriate suffix, the name root is built from one or syllables, and the syllables are built from vowels and consonants. I knew I’d want a recursive text-building tool to name people, towns, dungeons, and special items, and even to give people things to say. So I made sure to build it flexible. I’ve since rewritten these generator template files in JSON to open them up for even more flexibility.

  • Beginnings

    Beginnings

    When I first opened RPG Maker MZ to create Danger’s Den as a project, I already had a good portion of a notebook dedicated to character classes, plot point ideas, proposed solutions for procedural generation challenges, prioritized to-do lists, and more. But my first order of business in the engine was removing all of RPG Maker’s default assets, and putting in basics to make my game look and sound like itself.

    I pixeled up some basic tiles and sprites, in two-bit grayscale because I knew that fussing with the palette would take me hours. I still think the grayscale has a certain charm.

    To generate nice little retro sound effects, I tinkered with sfxr. It’s great for creating retro video game sounds quickly; I recommend it.

    This is what my game looked like at the end of September 28, 2020, its tenth day of development.

  • Prologue

    I’ve dreamed about developing games since I was a little kid with a stack of graph paper, drawing maps of levels for an imaginary game to display proudly in my own game magazine. My brothers made game magazines, too; the games we dreamed up were inspired by our favorites for the NES: Super Mario 3, the Zelda games, the Dragon Warrior games, and many more.

    At age 12, I spent countless hours in Unlimited Adventures building an ambitious yet poorly-written D&D game. I watched in awe as my older brother did real programming in QBasic. I could never! …until 6 years later, when I did. I picked up a C++ tutorial and became a programmer myself.

    I went on to pursue a degree in computer science. Summers off from college found me with my friends on the Tyruswoo team, helping with a little online game we called Lost Legends. We’ve worked on games as a team since then, but so far they’ve been too big for the time all team members could give. (We have made RPG Maker plugins along the way, and we’re proud of them!) We’re busy adults, pursuing careers, caring for family.

    My brothers and I sometimes daydreamed about what games we’d make someday, once our other work was squared away. Someday. The spark of Stories from Danger’s Den came from those conversations. The idea rested quietly in the back of my mind, until late summer of 2020, when it awoke, turning over and over. I wrote pages of notes every chance I got. Its time had come.

Subscribe to the Danger’s Den email list to get the latest updates on the game’s progress, and to be among the first to know when early access opportunities are available.