dassen.dev

Desolate Dungeons

Desolate Dungeons is a currently work in progress Minecraft mod. While it is in a playable state, it is far from being complete. This mod aims to be a dimension-based adventure mod with roguelike elements.

Minecraft sunset over ocean with Sandswept Ruin structure on a beach

The new super mysterious sandswept ruins structure.

My goal with this mod

One of my favourite genre of games has to be roguelike and roguelite. Procedurally generated dungeons and environments, and exponential scaling through unique items give each run a fresh feel, and permadeath makes combat feel gripping. There are a lot of mods that promise an adventure, roguelike, or dungeon crawler experience. Some are more focused on adventuring through new dimensions, some are more focused on introducing new mechanics to exploring dungeons, like puzzles and challenges, and some introduce new enemies and bosses that are stronger or have more complex combat mechanics. I have tried out many of these mods, and while they were a lot of fun to play through and lived up to their promises, one mechanic that i felt like was always missing, was the power scaling aspect. With this mod I want to explore how I could implement such a system and integrate it into Minecraft's gameplay loop.

Modular augments

Which leads me to augments. The main system this mod revolves around are augments. Augments provide unique effects and are intended on shaping the overall gameplay in a "run". They maybe increase a stat, offer the player a tradeoff, buff or fundamentally change how certain tools and weapons work, give an effect when some condition is met, like when the player is about to die, or give a quest, like reward the player when a certain amount of health is gained. While I haven't fleshed out the idea of what a "run" should look like, progress on augments is going great. One thing that was very important to me from the start, was that players can easily create their own augments without needing to have any extensive programming knowledge. Because of that I created them in a modular way (more about the technical aspect later), so players can easily create and add them with json files in a datapack. They actually work somewhat similar like creating a spell in Ars Nouveau, where you use small logic building blocks to create a unique augment. You don't even have to write these json files yourself, simply visit my Datapack Generator Site (which is a fork of Misode's Datapack Generators), and create an augment from scratch. To see how any augment is built, use the "Presets" button on the top right of the page and select the augment.

Current progress

As of right now theres a bit of new content here and there, like a new structure, a new passive entity, some new items and blocks, and a new dimension. What I focused on the most though, is the augment system that comes with a new level up screen. When a player levels up, they are presented with three random augments, of which they can choose one, and these choices shape the run. Now this part is going to be a bit technical, but the system behind these augments is not that complex. Each augment comes with one augment function, a piece of logic that gets executed every tick. That can be very simple, like summoning an entity, giving the player a potion effect, or modifying a stat. However with only those functions, augments would all be very simple. So there are also augment functions, that don't really do much on their own, but are necessary to build more complex augments, like the sequence function, which holds multiple other augment functions and can execute all of them every time it gets executed, or a condition function, that can hold one function and executes it if some condition is met. This modular approach means that it is possible to combine and nest these functions in a lot of different ways to create unique and complex effects. What is also great about the system, is the fact that it is data driven, meaning that if you want to create your own augments, you don't need to write any Java at all, and instead can use JSON files through datapacks (or use the generator!), which makes creating augments very accessible.

Future plans

Moving forward, I want to flesh out the dimension concept more. I'm thinking about maybe using structures more, to give the player a specific goal and a set of challenges. One of the biggest challenges I'm facing is how to integrate the roguelike "run" concept into Minecraft's persistent world nature. In a normal roguelike, everything would reset after the end of a run, but it just doesn't feel right for Minecraft. If the player wants to build something in the new dimension because they like how it looks, I don't want to erase that again, because I feel like the world that the player explores and shapes is one thing that is special about Minecraft. So right now I'm exploring how I can implement some core concepts of roguelikes I enjoy, like power scaling with unique run variations, while staying true to Minecraft's core gameplay philosophies.

Thanks!

Thanks for your interest in Desolate Dungeons! This is a long term project, so it will take a while until the first version is out. If you have any issues or feedback, feel free to open a new issue under the Issues tab, or contact me via pm@dassen.dev.