STRAK'S PROFILE
Strak
1560
Just an indie game developer out of Alberta, Canada, building games for fun, never for profit, and always giving full effort to every project.
Search
Filter
Ch-ch-ch-changes - Progess Report 11
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.
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.
[RMVX] Edit a Registry Key from a Script Call
Yo!
So I'm working on a way to configure controls from a menu in the game, as opposed to forcing the player to open the Game Properties window with F1. I've essentially figured out everything from the UI side of things, including displaying the correct button and keyboard prompts based on the binary data from the ButtonAssign file in the registry. But there's one thing I haven't managed to do, and it's kind of a crucial component.
Namely, I have no idea how to actually change the Registry file itself, or write to the registry, so to speak. Does anyone know how to do this with RGSS2?
I have a few scripts that have helped me to get started, I'll link them below. Just having a hard time actually understanding them.
I used this script as a base to figure out what the settings are in the ButtonAssign file, but ended up trimming down quite a bit of code and simplifying it for the purposes of my own game. It looks like this is at least capable of READING files from the registry. I just have no idea how do the same trick in reverse.
And I've used this script to figure out how to write to .ini files, and even create them from scratch if they don't exist. I feel like this is pretty close to doing what I need to do, I'm just not sure how to potentially alter this to write a .reg file in the registry, instead of a .ini file to the games root folder.
I could also be dumb, and this might not be possible in RMVX. So far, everything I've attempted to do has been possible with enough effort and ingenuity, so I think it's more my own limitations, rather than the limitations of the engine, but at this point I'm stumped. Any ideas?
EDIT: I found something else that seems to be helpful, and I've been working with this, but again I'm having a hard time understanding it. Maybe it can help someone else though? Here's what I found.
EDIT EDIT: Okay, I think I'm close. I think I need to use RegSetKeyValueA to actually change the binary data in the registry, but for some reason it doesn't seem to be working. My code has stopped crashing the game, which is nice, but it doesn't really seem to be doing anything either. I think the data format that I'm trying to pass through isn't quite right, but I'm not sure. This is what I've been trying to make use of so far.
So I'm working on a way to configure controls from a menu in the game, as opposed to forcing the player to open the Game Properties window with F1. I've essentially figured out everything from the UI side of things, including displaying the correct button and keyboard prompts based on the binary data from the ButtonAssign file in the registry. But there's one thing I haven't managed to do, and it's kind of a crucial component.
Namely, I have no idea how to actually change the Registry file itself, or write to the registry, so to speak. Does anyone know how to do this with RGSS2?
I have a few scripts that have helped me to get started, I'll link them below. Just having a hard time actually understanding them.
I used this script as a base to figure out what the settings are in the ButtonAssign file, but ended up trimming down quite a bit of code and simplifying it for the purposes of my own game. It looks like this is at least capable of READING files from the registry. I just have no idea how do the same trick in reverse.
And I've used this script to figure out how to write to .ini files, and even create them from scratch if they don't exist. I feel like this is pretty close to doing what I need to do, I'm just not sure how to potentially alter this to write a .reg file in the registry, instead of a .ini file to the games root folder.
I could also be dumb, and this might not be possible in RMVX. So far, everything I've attempted to do has been possible with enough effort and ingenuity, so I think it's more my own limitations, rather than the limitations of the engine, but at this point I'm stumped. Any ideas?
EDIT: I found something else that seems to be helpful, and I've been working with this, but again I'm having a hard time understanding it. Maybe it can help someone else though? Here's what I found.
EDIT EDIT: Okay, I think I'm close. I think I need to use RegSetKeyValueA to actually change the binary data in the registry, but for some reason it doesn't seem to be working. My code has stopped crashing the game, which is nice, but it doesn't really seem to be doing anything either. I think the data format that I'm trying to pass through isn't quite right, but I'm not sure. This is what I've been trying to make use of so far.
Developing Systems
Already shared this on the discord, but I made a procedural dungeon generator! Blog post coming at the end of this month to talk more about this.
I'm working on making full procedural dungeon maps using parallax mapping, and it's hurting my brain.
I DID IT!
Took me almost a week, but I finally got everything working perfectly! I was missing a way of validating potential map layouts post generation, but I figured out a way to create a validation key that does exactly that, and now it's done! I have fully procedurally generated dungeons in RMVX that use PARALLAX maps!
I'm gonna make a video about this in the next couple days, once it's up I'll post it here.
I did it I did it I did it I did it I did it...
EDIT:
Took me almost a week, but I finally got everything working perfectly! I was missing a way of validating potential map layouts post generation, but I figured out a way to create a validation key that does exactly that, and now it's done! I have fully procedurally generated dungeons in RMVX that use PARALLAX maps!
I'm gonna make a video about this in the next couple days, once it's up I'll post it here.
I did it I did it I did it I did it I did it...
EDIT:
RMN's stance on Al.
I'm working on making full procedural dungeon maps using parallax mapping, and it's hurting my brain.
Hmm! I'll see about checking out the discord. I haven't been super active there, but I'll check it out!
I'm working on making full procedural dungeon maps using parallax mapping, and it's hurting my brain.
The actual splicing of the maps and establishing proper collision and event spawn points is easy enough, now I'm just trying to figure out a formula for making the map fully connected, with no inaccessible portions, while still filling the full space.
The Featured Game Thread
People talk about Feature Creep as though it's the act of continually putting new features into a project, pushing it out of scope and delaying it, but that's not it. Feature Creep is when you stalk this page at the end of every month to see what people suggest and what gets chosen.
It was me. I was the Feature Creep all along.
It was me. I was the Feature Creep all along.
Developing Systems
Couple more videos for y'all. Here's one about how I created a custom Experience and Leveling system for Thrall, and why it was important.
Also, here's a video detailing how the color-changing armor system works, and how cached graphics can be temporarily modified for use in cutscenes.
And finally, I made a brand new difficulty system that currently isn't available in the demo, but will be in the next update (whenever that is). The system is largely inspired by the Hades Heat System, for any of you Supergiant fans out there.
That's all for now! Stay tuned for more.
Also, here's a video detailing how the color-changing armor system works, and how cached graphics can be temporarily modified for use in cutscenes.
And finally, I made a brand new difficulty system that currently isn't available in the demo, but will be in the next update (whenever that is). The system is largely inspired by the Hades Heat System, for any of you Supergiant fans out there.
That's all for now! Stay tuned for more.













