I've Been Working a Lot on Dreamrealm Kingdom
As much as I was really excited about working on Fighting Game Engine earlier this year, and making a lot of progress on it, I think my fighting games brainworms have been waning a fair bit. Fighting games are so cool and I love watching them, but I think I like participating in the community more than I enjoy getting good at actually playing them.
On the flip side of things, my Dark Souls brainworms have been overwhelming, and I need to talk about what Dreamrealm Kingdom's been shaping up to because it's been all I can think about for the last couple months. I initially started this project last August because I was inspired by illusory wall's Dark Souls Dissected videos and by flying around the map collision data for Dark Souls 1 and 2 on noclip.website. It's so cool to me to see how games make their maps and handle their different systems, and it makes me want to do it myself. Let me make a little project where I can build maps and walk a little guy around them.
But it has uhhhh definitely grown from there. I've spent a lot of time on two areas of gamedev that I haven't gotten to really delve into and indulge as much as I want to, which are: gameplay mechanic design, and rendering tech. I want to keep the scope of this game to a decently medium size (haha good one Noé), and make design decisions that will result in me doing my favourite parts of gamedev for the most time, and here's what that means as of now:
Making it pretty
Like with Cast Fortune, I needed to make something where on the art side of things, I could make and iterate on it quickly while also making it look stylish and pretty. That means extremely low poly environments, as many billboarded sprite items and characters as I can get away with, and lots of custom rendering and post-processing effects. None of that rigging shit.
I'm leaning real hard into dithering, bloom, fog, plenty of aliasing, and crunching everything down into a vaguely 480p shape. The UI is rendered in-camera which means all of my post-processing effects will affect it, and all the text will be crunchy as hell. I also have some fun little resizing calculations happening that change your game's rendering size based on the size of your monitor to make sure that all the dithering looks perfect and square at any resolution.
I've got a custom lighting setup going for my billboarded sprites, where I can fade in shadows with dithering at a custom angle to keep them fully lit for a wider range than the normal calculation of the dot product of surface normal with the main light direction.
I've been running into this awful Unity bug where alpha clipping breaks if you try to sample additional lights as well as the main light while having more than a binary alpha transparency value in an opaque shader, so I don't have additional light calculations hooked up, but rest assured once that shit's fixed it's going in there cause it looks SO pretty!!
Making it fast
Something I've been leaning on a lot for this project so far, is this great asset called SOAP which I got on sale for $30 USD (so like $60 CAD after taxes sob) but it's already paid for itself, it's great. I've tried making my own ScriptableObject data system a handful of times because it's a great pattern for building data driven systems and decoupling data from systems where UI or NPC AI would need to access it, but god damn does it require a lot of tooling to make debugging it worth the benefits. SOAP has that tooling and it's a real game changer.
I have most of my whole magic resource system built on top of it, and it's made iterating on it so fast it's unbelievable. Speaking of magic, my spell architecture is also leaning heavily on ScriptableObjects and asynchronous code which has made it butter smooth to hook into the magic resource system. I did a stream a few weeks back where in addition to fixing a bunch of bugs, I also cracked open my spell ideas document and just implemented two of them from scratch. Worked first try, and took no time at all. It makes me so excited to make more spells which is a great relief because a lot of the design of this game relies on having a large variety of interesting spells and bespoke spell mechanics.
Reveling in the design process
The Dark Souls games and Elden Ring have obviously been a big inspiration for working on this project, but to my surprise, the list of things I'm taking from their games is a whole lot smaller than the list of things I'm explicitly leaving behind or iterating on. I love the souls games so much, but there's a lot about them that really don't suit someone like me who has ADHD and next to no free time to play games.
You have your souls equivalent in the form of celestial blood, but rather than disappearing when you die a second time before collecting them, they just soak into the ground at a fixed rate so it's less punishing. There are fewer stats and they are much more straightforward than in Dark Souls, and even the act of leveling up gives you 3 points to distribute at a time rather than 1.
The thing that I'm most excited about is my magic system. In Dark Souls, you spend ages grinding for souls to put into one of a handful of stats that should be focused for the specific build you're aiming for, because respecing isn't cheap, fast, or easy. It also leads to you end up collecting a ton of weapons, spells, and equipment that you can't use because of your stat distribution.
In Dreamrealm Kingdom, you have 3 magic stats: solar magic, lunar magic, and celestial magic. Instead of having weapons and armour that I would have to animate by hand, I have a big variety of spells that should be useful and accessible to any player no matter what their stat distribution looks like. Spells have an equip cost, and a cast cost. You can equip as many spells as you'd like, as long as their total equip cost isn't greater than your 3 magic stats. You can cast any of your equipped spells as long as you have enough magic in your meter for the cast cost. Each meter's cap is the value of its corresponding magic stat. This, in combination with the fact that you can equip/unequip any spells anytime, means that your build can be extremely flexible! If you get wrecked by a boss using one type of build, you can try again with a different selection of spells more suited to the fight.
Each of the 3 types of magic tend to incentivize a certain type of play style so it still makes some amount of intuitive sense to decide which stats to level, but more often than not you're going to have more spells you want to equip than the stats to equip them, so it's easy to make a plan for what stats you want to prioritize.
Anyways, working on this project has been teaching me a lot and it's been so much fun. I was intending on writing a handful of smaller posts that go into more specific detail about different parts of the process of working on this game than a big post like this which is all over the place, but hopefully this is a good starting point for me! There's not a whole lot to show just yet since it's been a whole lot of rendering, systems, and design work, but look forward to some more focused and granular posts! I'm hyped to share my brainworms with you.
2025 cat counter as of posting: 208