• Add Review
  • Subscribe
  • Nominate
  • Submit Media
  • RSS

Ch-ch-ch-changes - Progess Report 11

  • Strak
  • 03/29/2024 10:00 PM
  • 224 views
Greetings Vampire Hunters!

Thrall is undergoing some changes. Turns out, I vastly underestimated the scope of this project. Allow me to illustrate.



The image above is essentially a very simple layout of the story progression for Thrall, and how the development is currently going. Up to this point, I've essentially completed three dungeons and a "boss rush" style of dungeon, which has taken me close to one full year to do. I should mention, these dungeons are the smallest in the game. Each of the bullet points on this image signify another dungeon, each one getting progressively longer.

Problem is, my method of making dungeons up to this point is extremely time consuming, taking months to complete even a relatively small dungeon. When I ran the numbers on how long it would actually take to make every dungeon in the game with my current method, it equated to around 1200 maps, each taking 2-3 hours to make. That's like, three to four years of working every single day, 2-3 hours a day on just maps. No cutscenes, no story, no bosses, no mechanics. Just maps. Four years, no breaks.

I'd like to release this game sometime in my life. Preferably in the next two years. So something had to change. I came up with four potential solutions.

One, I could team up with someone, or a group of people. Couple issues with this, however. First of all, I'm not selling this game, or at least I don't plan to at this point in time. So any help that I get would either need to be paid out of my own pocket with no expected return, or I'd need to find people willing to work for free. I believe in compensating people for their time and their work, so that's a no-go. In addition, teaming up with people will inevitably change some things about the game. It's difficult to teach people a consistent art style, so I'd likely have to make some compromises there. Not my favorite choice.

Two, I could reduce the scope of the game. Instead of around 25 dungeons, I could maybe reduce it to ten, and eliminate some of the branching paths. Maybe eliminate the branching narrative structure altogether. Again, not really the vision I had for the game, and not my favorite choice.

Three, I could change the artistic style of the game. Simplify the dungeon style, maybe go tile-based instead of parallax mapped. But, one of the reasons I embraced this style in the first place was because I couldn't stand how bland the dungeons were in the Pokemon Mystery Dungeon games, which is what the dungeon generation aspect of this game is based on. I just felt that the dungeons needed to have some flavor, some character to them. I didn't want basic bland empty square rooms, with maybe a few swapped tiles and different music. So again, not the ideal choice.

And so, there's the fourth option. Find a way to create procedurally generated dungeons, while retaining the artistic style of parallax mapping. And that's exactly what I did.



This mockup is still pretty square and grid-based, but I successfully managed to create a system that procedurally generates dungeons using a series of parallax mapped rooms. The game constructs a dungeon layout, then searches specific folders for image files to stitch together, then reads the image file name to get collision and spawn point data for that room. The game then creates a parallax and overlay using those images, changes the tile data within the map, and reallocates the player, enemies, chests, and any other events such as exits and item bags.

I also got creative with how spawn points are set up, so that a player will never spawn in the same room as a monster, and you'll never have two monsters spawn in one room. Events will never spawn on top of each other, and the map will always generate a layout that is fully accessible, with no isolated sections. And it's still parallax mapping! I have full control over what each individual room and corridor looks like, how it's decorated, how collision is determined, and I don't have to resort to using tiles in the engine! Every dungeon can still have the flavor and character that I'm going for, while actually being MORE random than it was before!

And the best part? Every dungeon, no matter how many floors it has, will only EVER need 82 small maps to create fully random, procedurally generated maps. 82 sounds like a lot, but it's really not. Especially because they're very tiny maps. Like, this tiny.



Tiny. 82 of those? I can make that in about two weeks working for less than an hour a day, maybe three weeks if I take a day or two off. And that's for every single dungeon in the game. No more spending months on end working on a single dungeon, getting burned out, and wanting to give up.

So, what does this mean for Thrall? Well, first I'm going to remake all the existing dungeons. Yes, I'm basically throwing away nearly a year of work, at least on the mapping side. But the end result will be worth it. I've already nearly finished remaking the Bloodstone Mine, and I only started on the maps a week ago. Next is Eleston, then the Lyre Forest. Those will take some creative thinking, but I'll find a way to make it work. The end result might be a little bit more simple, not as detailed, but still very distinctly unique.

Once the existing dungeons have been recreated, I will release a new demo with the changes. This will also include the changes to the Difficulty system that I mentioned in the last blog. And then, it's onward and upward from there! The game may very well be completed by the end of 2025, like I wanted! And it will have even more randomness, even more replayability than I'd ever thought possible.

So with that, stay tuned! It only gets better from here.

By the way, I made a few videos talking about dungeon generation in Thrall, so if you want to check them out, head over to the Media page and go into "Developing Systems." There's a video that talks about the first method used to generate dungeons, and I've linked the video talking about this system as well!

Posts

Pages: 1
Thanks for sharing. I'm always happy to see when devs find creative ways like this to reach their objectives.

There are a few things I'm curious about:

-Will the parallax map be deleted once you exit the current floor or will they accumulate in the game's folders?

-What would you say are the advantages and disadvantages of such dungeons?

-And will you still rely on a few man-made maps such as entrance rooms and boss rooms, or other areas where important cutscenes might happen?
Great questions! I'll try to answer them as best I can.

So for the first question, the game doesn't actually save any of the parallaxes. The game uses the BLT method to temporarily overwrite the parallax for that map ID by taking samples from each of the individual rooms, then splicing them onto the main parallax as a cached graphic. Nothing actually gets saved. This does mean that if you close and reload the game, the map will be blank, but since this game doesn't allow saving in dungeons, it works perfectly for this game. Usually if you save and load in a dungeon, you'll be warped back to the home base.

I'll get to the second question last, since it's a bit of a longer answer.

As for the entrance and boss rooms, or places such as the home base, yes those will be created individually. There isn't really much reason to have them be randomized. This system is just for the purpose of dungeon crawling.

Now, advantages and disadvantages. For advantages, this means that I have less than 1/6th the amount of work I had previously in order to release this game. It's very likely that I can have this finished in the next two years now. From a gameplay perspective, this also means that dungeons are much more random, with far less repetition as to where chests, exits, monsters, item bags, and player spawn points are placed. Before, you could pretty easily figure out where all the potential spawn points are for each map if you'd played them enough. As the main test player/developer, I can attest to this myself. With this system, even I will have no idea where anything is on any given dungeon floor, encouraging more detailed exploration and immersion. In addition, the potential dungeon layouts can get VERY interesting and winding, far more so than they were before.

However, there are disadvantages. Mainly, there is quite a bit more limitation in exactly how dungeon "rooms" can connect to each other. In order for a more seamless transition between sections of the map, the room borders do need to be a bit more generic and standard. This means no more diversity between what constitutes a "wall" in a dungeon. For example, in the mine, you used to have cave walls OR vast underground ponds that dictated the border of the room. With this system, I can still have tiny ponds within the rooms themselves, but the border of each room will be essentially the same.

Now, there are ways around this. I'm currently working on an "overlap" feature for map generation, which will allow me to create borders that blend together a bit more, making for a more natural layout. I should also be able to create a system where instead of generating the "room," I can instead generate the "walls," allowing for more control over the things I just mentioned. This system is still in development, so the potential is still untapped, but as it currently stands the main disadvantage is that maps will be SLIGHTLY less detailed and deliberate than the originals, but will ultimately be far less repetitive and far more random than before.
Who knew that Bacon, Lettuce and Tomatoes could do that! XD
Jokes aside, that sounds like a cool method.
I suppose that you could create small save rooms between dungeon floors if you wanted to. I don't know how long you plan for dungeons to be but it might be nice for players to be able to take a break halfway through a 30+ minute dungeon.

As I was reading the blog I imagined there had to be a similar way to generate a larger variety of borders and make sure they were compatible with the surrounding rooms. I suppose that's going to be more complex to achieve, but best of luck to you!
Oh yeah, I have plans for a save point after every ten floors, where there's at least three floors following the point. As for larger rooms with more interconnectivity, I could do that now if I just came up with more room and cell rules, with some additional configurations, but it would create significantly more work and I may be able to make a workaround without it.
Pages: 1