øAslickproductions.org/forum/index.php?PHPSESSID=f8use1kl939e8atl5nbvvln3j5&action=printpage;topic=2306.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexd03d-4.htmllayedslickproductions.org/forum/index.php?topic=2306.15e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexd03d-4.html.zx °h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ àš ’EOKtext/htmlISO-8859-1gzip@øÕ’EÿÿÿÿÿÿÿÿÑHWed, 11 Mar 2020 09:50:47 GMT0ó°° ®0®P®€§²ð®ž°h^ÿÿÿÿÿÿÿÿÖ©’E Print Page - FF4 Roguelikeifyer (underground/moon transition working)

Board of Slick

Library of the Ancients => Final Fantasy IV Research & Development => Topic started by: Pinkpuff on October 31, 2016, 03:54:41 PM

Title: FF4 Roguelikeifyer (underground/moon transition working)
Post by: Pinkpuff on October 31, 2016, 03:54:41 PM
I know something like this has been suggested before but I think I have an idea for how to make it in an actually very straightforward way.

The Goal

The idea of this program would be to take FF4 and change it from a linear plot-based standard JRPG game into a randomly-generated dungeon crawler. You would (probably) have a scene at the beginning where you can select/configure your party, and from then on, it's floor after floor of randomly generated content. No plot to speak of, no characters joining and leaving, whoever you pick at the beginning is your team for the game, no idea what's coming up. Probably a final boss or something at the end; in fact we can even punctuate the dungeon at fixed intervals with certain boss fights (e.g. the fiends) or something.

Changing the code of the game to randomly generate dungeons would pose quite the task and I have no expertise in how to go about that whatsoever; rather, my solution is more akin to something like the FF6 randomizer where you input a seed and an FF4 rom and the program does some stuff, then outputs a changed rom that has all the randomizations done ahead of time. From the point of view of the user, it would be hard to distinguish the end result from something that was generated on the fly.

Generating Dungeons

Ok, so there are a couple of ways the layout of the maps could be generated. The two main categories would be:

The advantages of the fixed list strategy are that it will be easy (trivial) to program, and the maps will definitely look natural as they were made by hand by a human. The advantages of the dynamically generated strategy are that it will be much more random (no matter how many fixed maps we make, they will eventually start to look familiar), and won't involve the drudgery of having to design hundreds and hundreds of maps by hand. Personally, after having experienced quite enough of the Lunar Ruins, I'm more inclined towards the latter.

In either case, the dungeon layouts at first will not contain chests. This is a separate step. After the map layouts have been generated by whatever method, then we litter them with chests in places where said chests can be accessed (no orphaned chests that are inaccessible). There are known and documented ways of doing this. During this process we will be careful to track the appropriate "treasure indexes" for the maps so nothing gets messed up in that regard. Save points would also be randomly littered throughout the dungeon in a similar manner.

Generating Treasure

Just because the treasure is random doesn't mean it has to be possible to get, f.ex. a Crystal sword in the first chest. We can make a "smart" algorithm that populates the chests based on the dungeon level. For example, we can take, say, all the weapons in the game and assign them an index of how "powerful" they are relative to each other (or otherwise how early in the game it would be acceptable to receive such an item) manually beforehand. Then, when generating chest contents, it would only put a given weapon on a floor within a certain margin of its assigned index. So the Wooden Rod would only be possible to be found on the first few floors, say, whereas the Crystal sword would only be possible to be found on the final few floors.

Most consumables would be generated at pretty much any point in the dungeon, but we can apply a similar strategy for when it starts to generate Hi Potions or X Potions as opposed to regular Potions, or Cabins as opposed to Tents, etc. We can even undummy all the cool items and litter those throughout as well.

Generating Shops

In a similar manner to chests and save points, NPCs can also be littered throughout the dungeon. We can have a variety of events to pick from, but I think certainly at first it would mostly just be shops. So you go up to the NPC and talk and up comes a shop. Shop contents can be generated in a similar manner to treasure. Alternatively, we could have a bunch of preset shops, and when it generates a shop in the dungeon, it will randomly pick one within an appropriate power level range.

NPCs could be made to do other things too, though. Fat chocobos might be something you encounter from time to time. What about summons you can optionally talk to and fight and if Rydia is in your party she'll learn them.

Other Changes

It might be necessary (or prudent) to make some slight changes to the content of (presumably vanilla) "FF2" in the name of making all the characters viable from beginning to end. Dark Knight in particular won't be a very good character if the content is unchanged, or even if all we do is undummy everything. Deathbringer is pretty solid with its OHK ability but still, his HP growth makes him pretty squishy late game and he can't use any late game armor except I think Glass Mask and Adamant? Can he even use the ribbon? Cid might be able to get by with axes maybe but he'll be pretty meh, and let's not even get started on Edward. Then there's the Yang HP. Tellah will have to have some mechanism for learning his spells... and for casting them... and for not losing stats as he levels up... and then there are some characters that, if nothing is changed, would be pretty broken early on like Edge and FuSoYa (if he's even included).

Independent of all that, though, I do think the dummied items should be restored, and the commands I guess would depend on how we go about balancing the characters.



Anyway this is all just a concept right now. Who knows if I'll have gumption to make it, especially after having basically abandoned FF4kster, but the thought struck me so I figured I should at least share the idea. That said, I feel like this is something I have much more in the way of existing skills to be able to do as opposed to making an overworld editor. Maybe it's something we can work on together?

Thoughts?
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Bahamut ZERO on October 31, 2016, 05:43:56 PM
If it isn't too event-heavy, you could use a dozen or more events as transfer events that exploit the living hell out of Grimoire's conditional branching mod to "randomly" switch up which map you get transfered to.  :cycle:
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Grimoire LD on October 31, 2016, 11:14:33 PM
I just finished my assignments for tonight  so let's take a closer look at your proposition PinkPuff...

Quote from: PinkPuff
The Goal

The idea of this program would be to take FF4 and change it from a linear plot-based standard JRPG game into a randomly-generated dungeon crawler. You would (probably) have a scene at the beginning where you can select/configure your party, and from then on, it's floor after floor of randomly generated content. No plot to speak of, no characters joining and leaving, whoever you pick at the beginning is your team for the game, no idea what's coming up. Probably a final boss or something at the end; in fact we can even punctuate the dungeon at fixed intervals with certain boss fights (e.g. the fiends) or something.

Changing the code of the game to randomly generate dungeons would pose quite the task and I have no expertise in how to go about that whatsoever; rather, my solution is more akin to something like the FF6 randomizer where you input a seed and an FF4 rom and the program does some stuff, then outputs a changed rom that has all the randomizations done ahead of time. From the point of view of the user, it would be hard to distinguish the end result from something that was generated on the fly.

Doing the pre-generated way is likely the best way to approach this. I have always loved this concept and it's now been done successfully for FFV and VI, but  I can understand the difficulties of trying this with IV. I don't trust leaving anything to the game as far as creating random maps. That just seems like something we'd have to approach. However even in this a few problems present themselves. Each Tile Warp sets the next area's X/Y before that map even exists. Because of that setting those up to be applicable could be tricky without a specific algorithm to approach that (I don't know if the FFV and VI version deals with that)

Quote
Generating Dungeons

Ok, so there are a couple of ways the layout of the maps could be generated. The two main categories would be:
  • Fixed list: Essentially, we would create ahead of time hundreds of map layouts and the program would shuffle them and take the first X to be the floors of the dungeon (X being the number of total dungeon floors in the game).

  • Dynamically generated: Basically we would implement some sort of standard technique for creating randomly generated dugneons using simply "floor" and "wall" tiles, then have filters that would be applied afterwards to "polish" off the dungeon, putting in corner tiles, caps, details like torches or stones, etc.

The advantages of the fixed list strategy are that it will be easy (trivial) to program, and the maps will definitely look natural as they were made by hand by a human. The advantages of the dynamically generated strategy are that it will be much more random (no matter how many fixed maps we make, they will eventually start to look familiar), and won't involve the drudgery of having to design hundreds and hundreds of maps by hand. Personally, after having experienced quite enough of the Lunar Ruins, I'm more inclined towards the latter.

In either case, the dungeon layouts at first will not contain chests. This is a separate step. After the map layouts have been generated by whatever method, then we litter them with chests in places where said chests can be accessed (no orphaned chests that are inaccessible). There are known and documented ways of doing this. During this process we will be careful to track the appropriate "treasure indexes" for the maps so nothing gets messed up in that regard. Save points would also be randomly littered throughout the dungeon in a similar manner.

While it will take a while to get the new maps to line up with everything, I think it would work much better than to deal with it randomly. That said one might be able to create a tool that creates randomized FFIV maps and then we can build on those until they look presentable for the actual game. As it stands though FFIV has a decent supply of rooms to start with, so as a proof of concept we should probably stick with the original dungeon maps, then when we see we have the randomization system working properly, than we can include custom maps. Randomizing the locations of chests seems like it shouldn't be too difficult until we assure that these locations don't block a path. I wouldn't know how to avoid that specific issue.

Quote
Generating Treasure

Just because the treasure is random doesn't mean it has to be possible to get, f.ex. a Crystal sword in the first chest. We can make a "smart" algorithm that populates the chests based on the dungeon level. For example, we can take, say, all the weapons in the game and assign them an index of how "powerful" they are relative to each other (or otherwise how early in the game it would be acceptable to receive such an item) manually beforehand. Then, when generating chest contents, it would only put a given weapon on a floor within a certain margin of its assigned index. So the Wooden Rod would only be possible to be found on the first few floors, say, whereas the Crystal sword would only be possible to be found on the final few floors.

Most consumables would be generated at pretty much any point in the dungeon, but we can apply a similar strategy for when it starts to generate Hi Potions or X Potions as opposed to regular Potions, or Cabins as opposed to Tents, etc. We can even undummy all the cool items and litter those throughout as well.

This all sounds very workable and shouldn't be all of that difficult to setup. The mention of dungeon level (which doesn't exist normally) would mean that a slight bit of extra programming for the game would be involved to keep track of how deep you've gone. I am pretty sure a lot of dungeon randomizers use a similar formula and finding a byte and space to add that extra code to "add 1" when you leave a room would not be difficult. What may be tricky is developing these treasure drops. Will the chests by set dynamically, perhaps included in the "add 1" portion of the programming? And if so, how do we decide what item falls where? I don't know how the FFVI Randomizer does it, but that might be worth a look.

Quote
Generating Shops

In a similar manner to chests and save points, NPCs can also be littered throughout the dungeon. We can have a variety of events to pick from, but I think certainly at first it would mostly just be shops. So you go up to the NPC and talk and up comes a shop. Shop contents can be generated in a similar manner to treasure. Alternatively, we could have a bunch of preset shops, and when it generates a shop in the dungeon, it will randomly pick one within an appropriate power level range.

NPCs could be made to do other things too, though. Fat chocobos might be something you encounter from time to time. What about summons you can optionally talk to and fight and if Rydia is in your party she'll learn them.

Neat ideas! Shops would probably work on a similar algorithm as the treasure and their wares dependent on the floor you're on. However with the way FFIV is setup pre-set shops may be for the best. We would need to do something about pricing in such a case, I'd say.

Quote
Other Changes

It might be necessary (or prudent) to make some slight changes to the content of (presumably vanilla) "FF2" in the name of making all the characters viable from beginning to end. Dark Knight in particular won't be a very good character if the content is unchanged, or even if all we do is undummy everything. Deathbringer is pretty solid with its OHK ability but still, his HP growth makes him pretty squishy late game and he can't use any late game armor except I think Glass Mask and Adamant? Can he even use the ribbon? Cid might be able to get by with axes maybe but he'll be pretty meh, and let's not even get started on Edward. Then there's the Yang HP. Tellah will have to have some mechanism for learning his spells... and for casting them... and for not losing stats as he levels up... and then there are some characters that, if nothing is changed, would be pretty broken early on like Edge and FuSoYa (if he's even included).

Oh yes, some major balancing would need to be done to make every character eventually somewhat viable. Maybe even differentiate Child Rydia and Adult Rydia in some fashion. Rare and dummied equipment would probably need turned into other equipment so more characters could stand on their own (this is where the GBA/PSP version has the original beat by far) Edge is pretty broken early, yes. Did we ever make a hack so that all characters have Level 1 stats and levelups? Or was there just no space for that?

Quote
Independent of all that, though, I do think the dummied items should be restored, and the commands I guess would depend on how we go about balancing the characters.



Anyway this is all just a concept right now. Who knows if I'll have gumption to make it, especially after having basically abandoned FF4kster, but the thought struck me so I figured I should at least share the idea. That said, I feel like this is something I have much more in the way of existing skills to be able to do as opposed to making an overworld editor. Maybe it's something we can work on together?

Thoughts?

It does fit your skillset, there's no denying that. Entroper has the Overworld Editor in hand (I think it's compatible with FF4kster), so I wouldn't beat yourself up over it. You did a Phenomenal job with FF4kster and should be rightfully proud of what you managed to do with it. There are a lot of moving pieces in this, there's no denying that, I'd also suggest to get in contact with the maker of FFVI's randomizer. He'd definitely have some good starting tips for you.

Work and school have kept me consistently on my toes, but I've learned I work much better as an assistant than director (highly unfortunate, that) so if you need some help, I can do what I can with the time allotted to me.
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Pinkpuff on November 01, 2016, 04:00:39 AM
However even in this a few problems present themselves. Each Tile Warp sets the next area's X/Y before that map even exists. Because of that setting those up to be applicable could be tricky without a specific algorithm to approach that (I don't know if the FFV and VI version deals with that)

Part of the process of generating a map will be setting it entrance and exit points. Once we have the entrance points for all the maps, can't we simply go back and set the triggers for each map's exit point to lead to the next map's entrance point? Or am I misunderstanding what you're saying? I can see there being an issue going to/from the underworld, but in general won't that work?

Using the "pregenerated map" strategy, or using the "randomize among existing FF4 maps" strategy, we would have to associate the "entrance" location with each pregenerated map manually. (Although I'm sure just getting the algorithm to blindly search the map for a warp tile would also work as a proof of concept).

While it will take a while to get the new maps to line up with everything, I think it would work much better than to deal with it randomly. That said one might be able to create a tool that creates randomized FFIV maps and then we can build on those until they look presentable for the actual game. As it stands though FFIV has a decent supply of rooms to start with, so as a proof of concept we should probably stick with the original dungeon maps, then when we see we have the randomization system working properly, than we can include custom maps.

Sounds like a plan  :childish:

Randomizing the locations of chests seems like it shouldn't be too difficult until we assure that these locations don't block a path. I wouldn't know how to avoid that specific issue.

As I said, there are known ways to do this that roguelikes use; although come to think of it, in those the treasures are usually walkable. Off the top of my head, one way to do it would be to have it suggest a location at complete random, then probe that tile and the four cardinal surrounding tiles for walkability. If the tile itself is solid already, making it a chest is guaranteed to not cut you off. If it has a walkable tile in at least one of the cardinal directions, it means the chest is accessible and not buried completely within a wall. Assuming we use an algorithm that creates a single unbroken path (as opposed to something like some of the Babel floors where you have two paths that have no access to each other), then this should guarantee the chests are both reachable and will never block you off; that said, they will be often found "up against the wall", as the only way to find them in the middle of the floor would be if the dungeon had naturally carved itself in a way that left a little hole in the middle (not impossible, but seems like it would be the exception as opposed to the rule). Actually if we wanted to increase the chance of those, we could even modify the check to ask, "is it either a wall tile adjacent cardinally to at least one floor tile, or is it any tile surrounded in all eight directions by floor".

This all sounds very workable and shouldn't be all of that difficult to setup. The mention of dungeon level (which doesn't exist normally) would mean that a slight bit of extra programming for the game would be involved to keep track of how deep you've gone. I am pretty sure a lot of dungeon randomizers use a similar formula and finding a byte and space to add that extra code to "add 1" when you leave a room would not be difficult. What may be tricky is developing these treasure drops. Will the chests by set dynamically, perhaps included in the "add 1" portion of the programming? And if so, how do we decide what item falls where? I don't know how the FFVI Randomizer does it, but that might be worth a look.

I'm not sure why we'd need extra code in the game unless I'm misunderstanding what you mean here. The way I picture it, the dungeon floor concept would only matter during the randomization process, which is all done before anything is written to the rom (I figure we'd construct everything in memory first, then essentially patch the rom as the last step). So before we've written anything to the rom, we have dungeon maps generated, including chest locations, and now we're figuring out what to put in them. Well, the maps are already ordered 1-255 or however deep we intend to go (200 is probably plenty and will leave room for maps that are not so RLE-friendly), so the map index essentially is the dungeon level. So at the step when we're figuring out treasures we can say, ok, this chest is in this range so it should be this power level of equipment, if it's an equipment (it might be a potion or money or something). Trapped chests should probably be rare and maybe can contain an item of a slightly higher level than would otherwise be there normally. Anyway, the point is, by the time the rom is ready to go, the game will already have chests with contents in them that we randomized but made sure they were in appropriate power level ranges.

Neat ideas! Shops would probably work on a similar algorithm as the treasure and their wares dependent on the floor you're on. However with the way FFIV is setup pre-set shops may be for the best. We would need to do something about pricing in such a case, I'd say.

For sure. I figure preset shops is definitely the thing to do initially and just randomize where they end up. In later iterations we can distribute shop locations first, then randomize their wares based on where they landed.

Oh yes, some major balancing would need to be done to make every character eventually somewhat viable. Maybe even differentiate Child Rydia and Adult Rydia in some fashion.

I had completely forgotten about that problem... too much Unprecedented Crisis LOL!

My preference on that would be to say ahead of time that she's either always a kid or always an adult, no transformation. Or what we can do is pick one default and have an option you can set in the randomizer that patches it so that she's the other. So say by default she's always Adult Rydia, but when you run the program, you can set an option to make her instead be always a child (it would really just be a graphics swap).

Rare and dummied equipment would probably need turned into other equipment so more characters could stand on their own (this is where the GBA/PSP version has the original beat by far)

Agreed. For the purposes of this project, I'm of the philosophy that we should stick as close as we can to the vanilla content, changing only what needs to be changed for the game to be playable and not horribly broken. Salvaging equipment that is borked (Dummy sword), inaccessible (Assassin, Hand Axe), or rare but questionable (Cursed Ring comes to mind) to make content that can help characters stay viable is a change worth making. I'd even be fine with changing game code for certain commands to make them more scalable (though if we do this I will definitely need your help LOL).

There's another possibility that we can explore: In FF4kster, you can change item ranges. In theory, this includes what items would count as weapons and armors and what items count as consumables or tools. Suppose we moved a bunch of items around in such a way that we could ditch a bunch of plot items that were either dummied to begin with or rendered useless due to the lack of any remaining plot in favor of more actual weapons and armor?? This idea originally occurred to me to solve the problem of how to help Yang in UC but moving things around when I was that far in was too daunting of a task (I would have to go and adjust all the chest contents, the starting equipment, anything dropped or "looked for" in events, make sure I didn't miss anything... I was like "nope").

Edge is pretty broken early, yes. Did we ever make a hack so that all characters have Level 1 stats and levelups? Or was there just no space for that?

Levelup data is packed pretty tight IIRC. However, If we're willing to ditch someone (I vote FuSoYa), we might be able to do it. If not level 1, then almost certainly level 10 as a lot of characters started there in vanilla anyway (plus that way we can salvage a few levelups from Rydia and Paladin).

Would Paladin and Dark Knight be just separate independent characters? (I'm in favor of this.) If so, what default names do we give them? Both Cecil?

It does fit your skillset, there's no denying that. Entroper has the Overworld Editor in hand (I think it's compatible with FF4kster), so I wouldn't beat yourself up over it. You did a Phenomenal job with FF4kster and should be rightfully proud of what you managed to do with it.

Thanks, that actually means a lot ^_^

Work and school have kept me consistently on my toes, but I've learned I work much better as an assistant than director (highly unfortunate, that) so if you need some help, I can do what I can with the time allotted to me.

Thanks! This also means a lot! How about this: I'll use this thread to keep updates both on the progress I've made and any challenges I'm experiencing as well as what's left to do, and if you see anything you feel like you can help with, go right ahead.
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: chillyfeez on November 01, 2016, 10:58:59 AM
I probably should try my best to stay out of this project entirely, given its scope, the amount of other hacking balls I have in the air currently, and the fact that right now is my busy time at work and therefore will likely keep me away from the computer more than normal.
That being said, I'll keep an eye on the thread and will offer advice, ideas and cheerleading when they're needed and I can.
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: x0_000 on November 01, 2016, 01:38:57 PM
Making random post-NES maps is significantly more challenging than making random NES-era maps, mostly because post-NES maps have to "look good" on top of being fine gameplay wise, and autotiling is historically really annoying to implement. It might be good to import the NES tilesets and generate maps using those as a starting point.

Having played a few roguelikes one strategy for generating "random" maps that I find very nice is vault building. Basically, it's like the mapmaking version of a madlib: You have a preset map that has several areas that need to be filled in, and a set of potential rooms that can fill it in and you pick one of them at random. You have the advantage of being able to tweak the playability of the parameter rooms while still having randomization.

I also started working on my own "Ancient Cave" mod for FF5A a while ago (with a vaguely playable beta!!!) so I'll go through my notes to see if there's anything useful there.
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Grimoire LD on November 01, 2016, 11:01:18 PM
Part of the process of generating a map will be setting it entrance and exit points. Once we have the entrance points for all the maps, can't we simply go back and set the triggers for each map's exit point to lead to the next map's entrance point? Or am I misunderstanding what you're saying? I can see there being an issue going to/from the underworld, but in general won't that work?

...Heh, yes it will. Not entirely sure why I thought it was going to be handled in a different, frankly, highly inefficient manner. Yes what you're saying will work fine.

Quote
Using the "pregenerated map" strategy, or using the "randomize among existing FF4 maps" strategy, we would have to associate the "entrance" location with each pregenerated map manually. (Although I'm sure just getting the algorithm to blindly search the map for a warp tile would also work as a proof of concept).

The search for a warp tile through the program seems like an interesting idea, that amount of randomness I've seen as rarely done in these sorts of randomizers and in theory may be easier to implement than the original idea of manually using pre-set points.


Randomizing the locations of chests seems like it shouldn't be too difficult until we assure that these locations don't block a path. I wouldn't know how to avoid that specific issue.

Quote
As I said, there are known ways to do this that roguelikes use; although come to think of it, in those the treasures are usually walkable. Off the top of my head, one way to do it would be to have it suggest a location at complete random, then probe that tile and the four cardinal surrounding tiles for walkability. If the tile itself is solid already, making it a chest is guaranteed to not cut you off. If it has a walkable tile in at least one of the cardinal directions, it means the chest is accessible and not buried completely within a wall. Assuming we use an algorithm that creates a single unbroken path (as opposed to something like some of the Babel floors where you have two paths that have no access to each other), then this should guarantee the chests are both reachable and will never block you off; that said, they will be often found "up against the wall", as the only way to find them in the middle of the floor would be if the dungeon had naturally carved itself in a way that left a little hole in the middle (not impossible, but seems like it would be the exception as opposed to the rule). Actually if we wanted to increase the chance of those, we could even modify the check to ask, "is it either a wall tile adjacent cardinally to at least one floor tile, or is it any tile surrounded in all eight directions by floor".

A very smart idea, I'm not too talented when it comes to Math... or spatial reasoning so this seems like an optimal way to handle that conundrum.

Quote
I'm not sure why we'd need extra code in the game unless I'm misunderstanding what you mean here. The way I picture it, the dungeon floor concept would only matter during the randomization process, which is all done before anything is written to the rom (I figure we'd construct everything in memory first, then essentially patch the rom as the last step). So before we've written anything to the rom, we have dungeon maps generated, including chest locations, and now we're figuring out what to put in them. Well, the maps are already ordered 1-255 or however deep we intend to go (200 is probably plenty and will leave room for maps that are not so RLE-friendly), so the map index essentially is the dungeon level. So at the step when we're figuring out treasures we can say, ok, this chest is in this range so it should be this power level of equipment, if it's an equipment (it might be a potion or money or something). Trapped chests should probably be rare and maybe can contain an item of a slightly higher level than would otherwise be there normally. Anyway, the point is, by the time the rom is ready to go, the game will already have chests with contents in them that we randomized but made sure they were in appropriate power level ranges.

Yeah, that was a misunderstanding on my part. Trapped Chests... this brings to mind Monsters, would you plan on including the option for Monster randomizations? As far as AI goes, that doesn't seem... likely, in a way that I can think would be highly workable (except changing the assigned spells an enemy uses). Your idea for chests should work out pretty easily once the contents are pre-arranged per level.


Quote
For sure. I figure preset shops is definitely the thing to do initially and just randomize where they end up. In later iterations we can distribute shop locations first, then randomize their wares based on where they landed.

I agree, initially preset is the way to go.


Quote
I had completely forgotten about that problem... too much Unprecedented Crisis LOL!

My preference on that would be to say ahead of time that she's either always a kid or always an adult, no transformation. Or what we can do is pick one default and have an option you can set in the randomizer that patches it so that she's the other. So say by default she's always Adult Rydia, but when you run the program, you can set an option to make her instead be always a child (it would really just be a graphics swap).

You know what... no other hack has tried to balance out characters in the way you did for Unprecedented Crisis, you made every character unique with their own specific gimmicks (with several sidequests no less!). While I guess we could try to compile another balancing set, it would likely end up closer to what you did for Unprecedented Crisis rather than not. So I say we stick with how you set up Unprecedented Crisis, of course if you have any other ideas in mind or an alternative I would also love to hear that/

Quote
Agreed. For the purposes of this project, I'm of the philosophy that we should stick as close as we can to the vanilla content, changing only what needs to be changed for the game to be playable and not horribly broken. Salvaging equipment that is borked (Dummy sword), inaccessible (Assassin, Hand Axe), or rare but questionable (Cursed Ring comes to mind) to make content that can help characters stay viable is a change worth making. I'd even be fine with changing game code for certain commands to make them more scalable (though if we do this I will definitely need your help LOL).

I haven't lost all my skill, I don't think, and I have copious notes to assist me in creating new material. If you have any idea for certain commands to be changed, be sure to let me know.

Quote
There's another possibility that we can explore: In FF4kster, you can change item ranges. In theory, this includes what items would count as weapons and armors and what items count as consumables or tools. Suppose we moved a bunch of items around in such a way that we could ditch a bunch of plot items that were either dummied to begin with or rendered useless due to the lack of any remaining plot in favor of more actual weapons and armor?? This idea originally occurred to me to solve the problem of how to help Yang in UC but moving things around when I was that far in was too daunting of a task (I would have to go and adjust all the chest contents, the starting equipment, anything dropped or "looked for" in events, make sure I didn't miss anything... I was like "nope").

That is an intriguing concept, but the game has a Lot of hard checks looking for where Armor begins and ends. I have to wonder if I even got a fair amount of them when I provided the code to change for these... I can try all the same. Yeah, I tested it with how the editor currently deals with it and while it does read these items as their appropriate portions, the issue lay in definitions being decided by Two-Handed/Arrows/Bows, While yes, you might be able to expand weapons over some shields, it still seems to be somewhat finnicky in battle, none of these further items have any graphics assignment to them when used as weapons, so it defaults to punching.

Quote
Levelup data is packed pretty tight IIRC. However, If we're willing to ditch someone (I vote FuSoYa), we might be able to do it. If not level 1, then almost certainly level 10 as a lot of characters started there in vanilla anyway (plus that way we can salvage a few levelups from Rydia and Paladin).

Would Paladin and Dark Knight be just separate independent characters? (I'm in favor of this.) If so, what default names do we give them? Both Cecil?

Yeah, FuSoYa completely outclasses Tellah in every way so there's no real place for him, unfortunately. Level 10 seems like a good starting point. Separating Paladin and Dark Knight's a good idea. I'd not worry about them both being named Cecil, if Dark Kain can jump about while the real Kain is sentient there's no reason that Dark Cecil couldn't do the same thing.


Quote
Thanks! This also means a lot! How about this: I'll use this thread to keep updates both on the progress I've made and any challenges I'm experiencing as well as what's left to do, and if you see anything you feel like you can help with, go right ahead.

That sounds like a good idea. As I said I would like to help where I can, as you well know I work best when given a specific task.

Making random post-NES maps is significantly more challenging than making random NES-era maps, mostly because post-NES maps have to "look good" on top of being fine gameplay wise, and autotiling is historically really annoying to implement. It might be good to import the NES tilesets and generate maps using those as a starting point.

Having played a few roguelikes one strategy for generating "random" maps that I find very nice is vault building. Basically, it's like the mapmaking version of a madlib: You have a preset map that has several areas that need to be filled in, and a set of potential rooms that can fill it in and you pick one of them at random. You have the advantage of being able to tweak the playability of the parameter rooms while still having randomization.

I also started working on my own "Ancient Cave" mod for FF5A a while ago (with a vaguely playable beta!!!) so I'll go through my notes to see if there's anything useful there.

Normally that would be a problem x0_000, but FFIV's tile system is so similar to FFIII (and in some ways inferior) I could see it working with the same algorithm that could create maps for the NES FF's.

You're working on your own Ancient Cave mod for FFVA, eh? While I do like the SNES version of it, after all this time it is still a bit, buggy. Having one made for the English version of the game would be nice all around.
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Squall on November 02, 2016, 04:08:34 AM
I also started working on my own "Ancient Cave" mod for FF5A a while ago (with a vaguely playable beta!!!)
So what happened, did you finish it?
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: x0_000 on November 02, 2016, 12:42:51 PM
I took a break from it. :v
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Pinkpuff on November 03, 2016, 07:54:58 AM
Making random post-NES maps is significantly more challenging than making random NES-era maps, mostly because post-NES maps have to "look good" on top of being fine gameplay wise, and autotiling is historically really annoying to implement. It might be good to import the NES tilesets and generate maps using those as a starting point.

I don't think we necessarily need to import a tileset for that. We can simply take, say, the "Cave" tileset and use the "floor" tile and the "rock" tile to make the dungeon as a proof of concept.

Having played a few roguelikes one strategy for generating "random" maps that I find very nice is vault building. Basically, it's like the mapmaking version of a madlib: You have a preset map that has several areas that need to be filled in, and a set of potential rooms that can fill it in and you pick one of them at random. You have the advantage of being able to tweak the playability of the parameter rooms while still having randomization.

I assume something like this is what you're talking about:
http://www.roguebasin.com/index.php?title=Dungeon-Building_Algorithm (http://www.roguebasin.com/index.php?title=Dungeon-Building_Algorithm)

If so, that's pretty much what I had in mind. Although, I wonder if, due to the graphics issues, maybe what we could do, at least at first, is have a bunch of preset "quadrants" that can be randomized for each 16x16 corner. So like, a bunch of "top left corner" sections, premade, a bunch of "top right corner" sections, "bottom left" and "bottom right", all designed in such a way that they all connect to each other no matter which one is selected, lego brick style.

The search for a warp tile through the program seems like an interesting idea, that amount of randomness I've seen as rarely done in these sorts of randomizers and in theory may be easier to implement than the original idea of manually using pre-set points.

Speaking of warping... the warp stack breaks after 64 floors, correct? We will probably have to have a cutoff point every 50 floors or so that makes it so there's no way back. Maybe plunk down a boss battle in front of the entrance and a save point somewhere on the same floor. That way, as part of the boss battle event, we can clear the warp stack so it won't get overloaded and start sending you who knows where. I mean, I know the dungeons are supposed to be random, but that's not the way LOL...

Trapped Chests... this brings to mind Monsters, would you plan on including the option for Monster randomizations? As far as AI goes, that doesn't seem... likely, in a way that I can think would be highly workable (except changing the assigned spells an enemy uses).

I think monsters themselves, including their AIs would be untouched. Maybe if this somehow takes off, then in a far future version we can attempt tackling that if the mood strikes us but I think the existing monsters are probably fine. In fact, the existing monster formations are probably fine as well. We can probably even pre-setup the monster domains of the floors before they're even generated as it would really only depend on dungeon level (you fight stronger monster formations the further down you go; doesn't really matter what the layout of the floor is like).

You know what... no other hack has tried to balance out characters in the way you did for Unprecedented Crisis, you made every character unique with their own specific gimmicks (with several sidequests no less!). While I guess we could try to compile another balancing set, it would likely end up closer to what you did for Unprecedented Crisis rather than not. So I say we stick with how you set up Unprecedented Crisis, of course if you have any other ideas in mind or an alternative I would also love to hear that/

Thank you ^_^

However, I think there were quite a few changes in UC, even character balance wise, that were born more from my creativity and self expression than they were from necessity. The philosophy I'd prefer to go with for this would be to make it as close to vanilla as we can reasonably get away with without it being obviously unbalanced. So for example, giving Porom a command like "Bonk!" was not at all born out of necessity; it was born out of me going, "LOL wouldn't that be cute if Porom bonked your party members on the head to give them buffs". That said, there were some changes that definitely were born out of necessity of making certain characters viable at parts of the game where you wouldn't normally have them, and those I think should stay, or similar changes made.

So here's what I've thought of so far, and I'm by no means married to any of these ideas so feel free to criticize and/or suggest alternatives or additions:

I haven't lost all my skill, I don't think, and I have copious notes to assist me in creating new material. If you have any idea for certain commands to be changed, be sure to let me know.

If there's anything mentioned in the above character list that you think you can get working, by all means! Or if you have any ideas of your own, fire away!

That is an intriguing concept, but the game has a Lot of hard checks looking for where Armor begins and ends. I have to wonder if I even got a fair amount of them when I provided the code to change for these... I can try all the same.

If you wouldn't mind? I feel like the more room we have for equipment (esp. weapons), the better the finished game will be; plus, I really feel like any space spent on "plot" items really is wasted space (especially since, if we really wanted it to, a weapon could be made to serve as a plot item much more easily than the reverse).

That sounds like a good idea. As I said I would like to help where I can, as you well know I work best when given a specific task.

I certainly appreciate any help you're willing to offer! There's a big ol' list of pretty specific stuff above so you have your pick of the litter LOL, and as always, feel free to suggest alternatives.
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Grimoire LD on November 03, 2016, 10:54:40 PM

I think monsters themselves, including their AIs would be untouched. Maybe if this somehow takes off, then in a far future version we can attempt tackling that if the mood strikes us but I think the existing monsters are probably fine. In fact, the existing monster formations are probably fine as well. We can probably even pre-setup the monster domains of the floors before they're even generated as it would really only depend on dungeon level (you fight stronger monster formations the further down you go; doesn't really matter what the layout of the floor is like).

I did make a fully functioning "Random AI" command a while back where each enemy is assigned 4 random spells that they can access when a specific spell is called (in my case DullSong was replaced because it is hardcoded not to show its name on use).  It looked at the Defense number (as in the index of which defense it was) to ascertain what 4 moves they would use. It would need some tuning, but it might be worth looking into, in time.

Quote
Thank you ^_^

However, I think there were quite a few changes in UC, even character balance wise, that were born more from my creativity and self expression than they were from necessity. The philosophy I'd prefer to go with for this would be to make it as close to vanilla as we can reasonably get away with without it being obviously unbalanced. So for example, giving Porom a command like "Bonk!" was not at all born out of necessity; it was born out of me going, "LOL wouldn't that be cute if Porom bonked your party members on the head to give them buffs". That said, there were some changes that definitely were born out of necessity of making certain characters viable at parts of the game where you wouldn't normally have them, and those I think should stay, or similar changes made.

So here's what I've thought of so far, and I'm by no means married to any of these ideas so feel free to criticize and/or suggest alternatives or additions:
  • Dark Knight: This guy needs quite a bit of help, maybe the most help. Flavor wise, he's easily the coolest and probably most popular character, so he needs to be not only viable but extremely solid.

    First change I would propose here is he needs more weapons and armor accessible. Giving him access to "normal" swords (the swords Kain can use) and armor (again, the armor shared among the other heavy lifters like Kain and Cid) would solve most of this problem in one fell swoop. However, I feel like he really needs the added oomph of another unique dark sword or two. One option is we can do something like what I did in UC where the Deathbringer is his endgame ultimate weapon (actually I think that change needs to be made no matter what) and then for the middling swords, just sort of convert some existing swords into dark swords, the ones that "sound" like they should have been dark swords to begin with (e.g. "Ancient/Curse Blade", "Avenger", "Blood/Drain"). Another option would be to leave those alone and create a new one or two (e.g. "Vorpal", maybe a two hander with very high atk power and very high crit rate? Is crit rate even a thing we can modify? In any case, it would be fantastic for dark wave which loves high atk and doesn't care about your off hand). Regardless of whether we convert or make up swords or not, the existing dark swords should be spaced out a little more (and have their stats modified to be appropriate to wherever we end up putting them).
I agree that the more unusual swords, Ancient, Avenger, and Blood sword should be turned into Dark Swords and that he should be able to equip other sword variants. Crit Rate is a stat, but it is set by character and the weapon they have equipped only doubles it or divides that initial amount, without custom code it can't be increased or decreased by various equipment.

Quote
Second thing I would change for DK is his stat growth. This is pretty straightforward; mostly what he needs is more HP. He probably won't get as much as Paladin, who has to take hits for the whole team, but maybe something slightly below Kain. It might depend on what we end up doing with the blood sword.

Kain's already a bit... much, I find in terms of survivability. I think the Dark Knight should have HP comparable to Edge at Level 60, which is roughly around 3300, so I'd say 3500-3700 max HP would be proper. I think the Blood Sword will go a ways towards his sustainability for those lucky enough to get it, it also make the Dark Knight unique in that aspect.

Quote
Dark Wave is quite solid in the beginning, but tends to peter off quite a bit in the mid to late game. So does kick, and I suspect for similar reasons. My proposal: Let's just outright double the damage dealt by both. Cecil would still have a reason to attack because, well, it doesn't hurt him to do so, and also his weapons will likely have some cool properties that won't be applied by Dark Wave. Likewise, Yang will still have a reason to fight because we've all seen what those claws can do, and they don't apply to the Kick damage.

Those three changes are all, IMO, quite benign and subtle to the end user who has no idea what's going on under the hood (DK I don't think ever has access to the "normal" equipment so his lack of ability to use them is mostly undetectable outside of hacking/genie), yet will (I suspect) make him quite viable for the entire dungeon.

Did you know that there's an unused multiplier in the Kick/Dark Wave Formula that's simply set to 00? You just need to make that 01 and it should deal double damage. Here is the info. on that... http://slickproductions.org/forum/index.php?topic=1883.msg23621#msg23621
All of that should make him quite viable, I agree.

Quote
[/li][li]Rydia: In vanilla, Rydia is one of the first characters you meet and is part of your end game party, so it's not that she needs help ( :wink: ); rather, since you will have all the other characters to choose from, she has to be compared to Palom and the two need to be distinguished from each other strategically in ways that matter. Normally, Rydia is pretty much just a black mage with some summons. She has slightly less natural magic power and not quite as rampy of a spell learning progression.

My proposal would be we take that difference and sort of run with it. We can make it so that Rydia still gets a full slate of black magic, but she takes forever to fill it, and takes forever to learn anything "good". What she does learn will be noticably less powerful than Palom's casting of the same spells. The spell progression can easily be redone by hand, but the spell power thing introduces an issue in that if we simply reduce her WIS, sure that hurts her black spell power, but it also hurts her summon power. So what about this: If we can hack it so that the summons are powered by WIL rather than WIS, this sort of kills two birds with one stone. We will be able to nerf her Black spell power without hurting her Summon spell power, and she will suddenly have a use for WIL boosting equipment that she had access to but no reason to really use.

It's not a bad idea, it would require some custom code though since the game only checks if something is not White Magic (spells 0-18) to apply Wisdom to. If it is White Magic +1 is added to a value to make it look for Will instead.

Quote
[/li][li]Tellah: Tellah doesn't need help with equipment. He can use standard mage gear, which grows quite nicely throughout the entire game. The decisions we need to make with him are how is he going to learn his spells, and how is he going to gain MP?

One way to tackle both these problems is to do something similar to Tellah Rejoined in UC. This is a little extreme, but hear me out. We have it so that Tellah starts the game with every spell learned. Don't forget, we're sort of "fusing" him with FuSoYa in a sense as well. However, he starts with a measely amount of MP (my initial thoughts are something like 25. Not enough for a "3", but he can throw out a Bio if you need it). And in the beginning of the game, his MP will creep up very slowly, point by point. The idea is he's already learned all the spells but can't cast them all. As his MP creeps up bit by bit, that gives him practical access to more and more spells, almost like "learning" them in a sense, but in order of MP cost. So for example, the moment he hits 50 MP, he can start throwing around Flares, but each Flare will be all his MP. In that sense he'll be a sort of "glass cannon" character. However, his WIS stat won't grow quite as well as Palom's, and his WIL stat won't grow as well as Porom's, so compared to a more specialized mage, his spells will be weaker. In the early to mid game, this is compensated for by having access to spells that they won't be able to learn for a long time, but there will eventually come a point when the twins have their sets mastered and that will no longer be an advantage for him. So, again just like UC, we han have at that point his MP growth suddenly ramp the hell up and he basically switches roles from being a glass cannon ether guzzler into an MP battery that can throw Meteos around like Oprah giving out cars (YOU get a Meteo! YOU get a Meteo! EVERYONE gets a Meteo!).

That is a pretty major change and will be pretty jarring to people used to vanilla, but I don't have any other ideas at the moment. If anyone has suggestions, I'm wide open.

I think it's a fine idea. In this manner Tellah retains usefulness throughout the game and since Inns and Tents will likely be stupidly rare, reliance on Tellah could be a mistake for the player during the early going and Tellah's stats will never match that of dedicated mages so in that manner it balances itself out.

Quote
[/li][li]Edward: Ah, his Spooniness himself. Two things need to happen here: better equipment (especially mid to end game), and better commands.

The equipment is the first problem, and probably easiest to solve. We need to make at least two more harps IMO. They also need to be spaced out more, power level wise, just like the dark swords. My suggestions for specifics would be Requiem and Apollo. Apollo is just so iconic and makes him such a badass in that lunar domain. Loki is good too, but IMO it's less interesting and not really needed. Requiem is also pretty iconic for Edward since it was in his special quest in Advance, and also I seem to recall the FF5 bards having a Requiem song they could deal great damage to undead with. Anyway, I also would suggest not only spacing the harps out, but switching up the order a little. The lamia monsters from the tower drop Charm harps long after Edward has left your party and even in the versions where you get him back, by the time you do, that weapon is way outdated. The reason they drop those, I'm almost 100% certain, is because what was translated "Charm harp" is really "Lamia harp", so it makes sense for Lamias to drop their own harps. So we can still have them drop it, but now it will be an equipment on par for that stage of the game, and instead Requiem will be the second harp, leaving Dreamer to remain the starting harp, and Apollo where it belongs at the end. His armor equips are fine as-is.

I like these ideas for Edward, there is some ridiculously rare equipment that I think we could turn into other items though, also the Silver/Mythril Anything is useless to keep around in its unaltered state.

Quote
Command wise, the easiest thing to fix is disabling auto-hide. I don't think anyone will miss that. This is a trivial change in FF4kster; we can just assign the actor to auto-hide to be the no-longer-existent FuSoYa.

The next most important thing to tackle would be Salve/Split. We can't really do what UC did to scale this up because it involved a different Edward actor with a different command. There are a few things we can do here. We can ditch Salve altogether in favor of something like Regen (which itself would still have to be scaled such that it starts weak and improves as your characters improve). My ideal solution, though, would be to have it so that when you select Salve, it brings up a menu. From this menu, you can select any consumable item (potion, ether, phoenix down, remedy, even things like baccus wine or hermes shoes). It would consume one of those items from your inventory, but apply its full effect to each party member.

For Combat Boost, I had made ItemLord (which was Salve with a caveat) and the Chemist Ring (x2 Healing Items, building out of redundant Cure4 code). ItemLord looked at the first item in your inventory and you could choose whether to target yourself, the party, an enemy, or all enemies with the item. And if Edward is given the Chemist Ring ability innate (make it look at Job rather than what's equipped on the Arm) then that should solve that.

Quote
Finally there's Sing. Sing, Sing, what hast thou dunst. One option would be to have something like the After Years' Sing or UC's Bonk where he can use it on an ally (all allies?) to get some kind of good effect but you have no idea what it will be. I'm not particularly married to this idea though, as for one thing, it will be quite similar to my idea for how to improve Pray which I will get to further down. Another idea that crossed my mind, but again I'm not married to, is that Sing will apply a specific status to all enemies, based on which harp he has equipped (and does nothing if you have no harp). Dreamer = Sleep, Requiem = Mute, Lamia = Charm, Apollo = Stop? Except for Apollo, the harps would usually add these statuses on a hit anyway, so while Sing wouldn't deal damage, it would have the advantage of AOE targeting.

Whatever changes we make to Edward, they will most likely be major and noticable, but I somehow suspect that most people will welcome any kind of major changes that make Edward better, no matter how much of a departure they are from vanilla.

I did just that for Combat Boost, but I made them Sing (or Bardsong) a spell dependent on the Harp used (also an FFIII-esque effect where the the Song would boost everyone's attack by +5 each cast), only positive spells though. That was one of my earlier hacks actually, I could probably refine that and make it work closer to what you suggest.

Quote
[/li][li]Rosa: Rosa is probably mostly fine as is. Like Rydia, mostly what she needs is to be distinguished more from Porom. I think as an overall strategy, much like UC, Rosa will be more capable when it comes to physical attacks with her bows and arrows, but Porom will be the better healer. Unlike UC, Rosa will still get the full slate of white magic, including the healing spells, but like my suggestion for Rydia, her spell progression will be much slower than Porom's, and while Porom will probably learn a lot of the good healing spells early, Rosa will prioritize the support and effect spells.

As far as commands go, I think Rosa can ditch Pray, as she doesn't really need it, and Porom does really need it, and it suits her more flavor-wise anyway, as Rosa has no plot connection to praying for anything whereas Porom, you know, lives in the Tower of Prayers. Rosa also definitely doesn't need help with equipment; you get her early and she's in your end party, so no need to mess with that.

Fully agreed, some of the choices they ended up with in FFIV seems like remnants of earlier plans that they never figured out a replacement for, Prayer would be an example of that I feel. Instead of Elemental/Status Arrows though maybe we should make each Arrow type effective against a given enemy type? The game has some of those by default yes, like Holy Arrows and Lit Arrows, but beyond that they aren't all that useful. For instance Poison/Mute/Darkness arrows come far too late to really make a difference. However if they're included in early random draws, then maybe they could serve some purpose (except Poison, alone Poison is nigh useless).

Quote
[/li][li]Palom: More or less identical. He would still have Focus, which is probably fine as-is. Twin would need to have something done to it though so I'll talk about that here since I have more to say about Porom specifically.

Twin would need two things fixed: First, it needs to look for the other twin and disable the command (or just have it fail) if they aren't present. Second, it needs to scale better with levels. The twin spells are great early on but quickly lose their edge. Advance attempted to solve this by giving them the Twin Stars Double Meteo thing but I'm not sure that's such a great solution here (or even there, though it does make me smile). There are two potential solutions I can see here: One is to make it so the damage dealt by the twin spell(s) scale with their level rather than just having a base attack power. The other is to have something like FF4DS where you "learn" twin spells and it actually brings up a menu where you can select them. I'm more partial to the first since it seems easier to implement and doesn't eat up spell slots, but I can definitely see the appeal of having some more variety.

Yes, opening up menus in FFIV seem to be... not good? It's very difficult from my experience. Twincast does need to scale better. Comet looks to be as powerful as Titan though, they use the same formula all around. Flare is a Single Unit 30 Power spell which when split deals not impressive damage. However Titan is fast and only takes up one character where as Twincast is an eternity and takes two characters. I'm not sure of a good way to fix this one.

Quote
[/li][li]Porom: Again, more or less identical. Rather than Tears though (which I promise no one will miss), she would have Pray. Again, there's a precedent for this in the After Years, so I can't see people seeing this as too jarring of a change.

Pray I imagine would work something like Asura or Bonk where it would choose from among several different ally party buffs randomly. IMO it shouldn't be able to fail outright, simply because getting an effect you weren't looking for is in a lot of ways like the spell "missing". How many times have you needed healing from Asura but up comes the reseurrection effect, or you need the resurrection effect but here comes... protect... whoohoo... Anyway, the effects I'm thinking are: Slight HP healing (more common than the other options, scaled with level or maybe caster's MaxHP?) Basuna / heal battle statuses, Slight MP healing (again, scaled by level or MaxHP, much smaller amount than the HP healing), Arise (what good is coming back to life if you just get punted again?)

This sounds like it could easily use Recall's current slot for a base. MP Healing can be done, scaling it though would be trickier, I'm also not sure having MP recovery through a spell (That's not Osmose) is a good decision since a game like this is focused on conservation to have that ability may trivialize battles and just have the player spamming that ability until they get what they want out of it. Didn't Yang have a skill which healed by %MaxHP in Unprecedented Crisis?

Quote
[/li][li]Paladin:  :edit: (Forgot this bullet the first time) Paladin needs to have his weapons spaced out so some of the earlier holy swords are weaker and obtained earlier. We can get rid of his pre-Lv10 levelups to make room for others'. He could probably do with a little more white magic; there's somewhat of a precedent for this in FF4DS. I definitely think Raise should be on the menu. Other than that, though I think he can remain more or less untouched.

Agreed, the Legend Sword can't go around with 40 Attack at game start, or if it does it would be obtained like any other treasure and Paladin Cecil could start with... well he could start with a Staff, it would make him challenging out of the gates, but once you find some equipment he could really shine.

Quote
[/li][li]Cid: The only change Cid needs to have is an extra hammer or two. That said, Peep sucks and Cid is kinda boring with essentially just Fight and Item so I wouldn't mind coming up with something for him. I have one suggestion but it is pretty major so, again, I'm wide open to ideas for this.

Equipment wise, I think we can get away with adding one hammer, especially if we space out the existing ones more, like we did with the harps and dark swords. Especially where he can reasonably use axes and isn't so reliant on the hammers specifically. I think Thor's hammer is a cooler and more interesting candidate than Firey. Especially where Edward has the firey Apollo's Harp and bolt element seems more suited to Cid thematically.

After all the Wooden Hammer was meant to have Bolt-2 built into it before they decided against it. Yes, Thor's Hammer fits him very well. Flare Sledgehammer was always an odd choice considering the Gaia Hammer was Fire Elemental. In Combat Boost I turned the Silver Hammer into the Sage Smasher (sort of a joke on how he has a rivalry with Tellah) which was basically a Mage Masher in Hammer form but also had 15 Wisdom/Will to give him a magic defense multiplier so he could take a magical hit without imploding.

Quote
My only real idea for a command (if the game includes baccus wine, UC's Rage command would be a little lackluster) would be what I call "Boost". Essentially, he can use the attack items (and maybe even healing items) for extra effect (double? time-and-a-half?). It's in flavor with all his exploding and such and I guess an engineer would know how to use items better? That's about all I got. Tackle/Dash could be a possibility, but that was motivated more by UC Cid's berserker/Umaro type theme than it was from vanilla Cid.

We could also maybe have him keep Peep/Scan, but have it actually deliver a weakness, not just scan it. So the sequence would be: Give random weakness, report HP, report weaknesses. And the scanning part, at the very least, should be usable on bosses, and maybe even the weakness part. This would also synergize well with Boost, as, if the monster isn't weak to anything by default, you can make it weak to something and then use that attack item on it.


I did both of those for Combat Boost, heh. The first is the Scholar's Hat which doubles the damage Items do to enemies and the second was Piercing Sight (Harley's special ability from The After Years) which gives a foe a random weakness while casting Scan.

Quote
[/li][li]Edge: Edge sort of has the opposite problem of a lot of the other characters in that he's viable late game, but would be pretty broken early on. First off, we can apply our usual "spacing out" technique to his katanas. We can also take a page from UC by having knives give a speed boost, especially since most characters that can use them would probably never main them normally, and this would give a good reason for anyone to do so, but particularly Edge. The throwing weapons (shurikens etc) should also be scaled back and spread out better across the levels.

What is possible in terms of modifying Steal? I feel like early on, farming potions might be a little too good. Also being able to infinitely farm anything makes steal some combination of broken and/or boring. Can we make it operate more like the later versions of Steal where you have a chance at any rarity of item drop, but you can only steal once per monster? Can we also make it so that it fails less often and/or doesn't damage you for like 4 HP LOL when it does fail?

I'm wide open as to what in the world to do with Edge's Ninjutsu magic. Cut it completely to make room for other spells or spell-like effects that we might end up needing for other commands? Give him some standard black magic like UC did? Expand the Ninjutsu set and make some more lower level effects? Ideas?

Edge is a sticking point... Chillyfeez created a hack that made it so you could only steal one item from one enemy (I think after one it defaults to Potions) The failure rate with damage can be easily changed, yes. Any rarity is a bit trickier, it would require a bit of custom code to make work. I think they originally had some different idea in mind for Edge, notice how his skills mimic Three of the Four Fiends? Flood, Blitz, Flame, only one missing was Scarmiglione. I think it might be neat if after defeating an Elemental Fiend if Edge would learn their corresponding skill (by the way I am all for including Unprecedented Crisis's Underworld Elementals), I think in that case it should be expanded and getting rid of Smoke for Tremor would be preferable. Either the Throw Formula can be changed to be more accompanying or the thrown items can have their attack lowered, simply by removing the random variance for a /2 amount should balance it pretty nicely.

Quote
If you wouldn't mind? I feel like the more room we have for equipment (esp. weapons), the better the finished game will be; plus, I really feel like any space spent on "plot" items really is wasted space (especially since, if we really wanted it to, a weapon could be made to serve as a plot item much more easily than the reverse).

Eh... I tried and the editor doesn't seem to recognize the new ranges and the game looks at proper Usable Item Starts a ton of times that its very difficult to actively change, it's loaded in RAM, ROM, and so many specificities look at those indexes to clarify their effects (E.G. Status Healing Items, Phoenix Downs, Whistle, Summon Orbs, especially Summon Orbs, etc). I also don't think that Armor has all of the graphic options that weapons would have if weapons could somehow be extended.

[/list]
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: chillyfeez on November 04, 2016, 02:34:42 AM
I developed a fully-functional Salve command for TfW that opens a menu and lets you select any usable item, the targeting splits among all enemies for attack items and all allies for support/healing.
Now that I'm at the point in development where the Bard character is actually usable, it became apparent that the split targeting is somewhat less viable because the game splits damage/healing as well, so I put in a fix for that, too (damage/healing * 4 ? number of party members).
Anyway, if you want to use that, you're welcome to it. Just let me know and I'll fish out all the assembly required to make it happen (as I recall, I had to work quite a bit of magic to give an item selection window to a new command, and the targeting stuff was no walk in the park, either).
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Pinkpuff on November 04, 2016, 05:32:14 PM
IT'S ALIIIIIVE!

http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip (http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip)

It's very rudimentary and not very pretty, but it is functional. It currently replaces the Baron Town map with a map that:

Due to me being lazy, you have to name your rom "test.smc" for it to work. Just drop your rom (a copy of it!!) in the same folder as the program and run it. It might come up with a black screen; ignore that. Afterwards, if you open it in FF4kster, it should have Baron Town replaced with what I just described (and the rest of the maps are likely garbled since it's just naiively overwriting the map layout data). I haven't tried this yet, but I assume (hope) that if you were to set up, say, an overworld trigger to warp you to the correct tile on whatever map it generated, the map would be functional (other than the "exit" taking you who knows where due to not having modified the triggers yet).

I developed a fully-functional Salve command for TfW that opens a menu and lets you select any usable item, the targeting splits among all enemies for attack items and all allies for support/healing.
Now that I'm at the point in development where the Bard character is actually usable, it became apparent that the split targeting is somewhat less viable because the game splits damage/healing as well, so I put in a fix for that, too (damage/healing * 4 ? number of party members).
Anyway, if you want to use that, you're welcome to it. Just let me know and I'll fish out all the assembly required to make it happen (as I recall, I had to work quite a bit of magic to give an item selection window to a new command, and the targeting stuff was no walk in the park, either).

That would be so great! Thanks Chillyfeez!!

I did make a fully functioning "Random AI" command a while back where each enemy is assigned 4 random spells that they can access when a specific spell is called (in my case DullSong was replaced because it is hardcoded not to show its name on use).  It looked at the Defense number (as in the index of which defense it was) to ascertain what 4 moves they would use. It would need some tuning, but it might be worth looking into, in time.

Sweet! We'll cross that bridge when we get there.

I agree that the more unusual swords, Ancient, Avenger, and Blood sword should be turned into Dark Swords and that he should be able to equip other sword variants. Crit Rate is a stat, but it is set by character and the weapon they have equipped only doubles it or divides that initial amount, without custom code it can't be increased or decreased by various equipment.

That's too bad. Well, if we can hijack those other swords he probably doesn't need Vorpal. Or it can just do something else.

Kain's already a bit... much, I find in terms of survivability. I think the Dark Knight should have HP comparable to Edge at Level 60, which is roughly around 3300, so I'd say 3500-3700 max HP would be proper. I think the Blood Sword will go a ways towards his sustainability for those lucky enough to get it, it also make the Dark Knight unique in that aspect.

Sounds good.

Did you know that there's an unused multiplier in the Kick/Dark Wave Formula that's simply set to 00? You just need to make that 01 and it should deal double damage. Here is the info. on that... http://slickproductions.org/forum/index.php?topic=1883.msg23621#msg23621
All of that should make him quite viable, I agree.

No, I did not know that! Holy cow how randomly convenient! How often does that happen in this game haha

Fully agreed, some of the choices they ended up with in FFIV seems like remnants of earlier plans that they never figured out a replacement for, Prayer would be an example of that I feel. Instead of Elemental/Status Arrows though maybe we should make each Arrow type effective against a given enemy type? The game has some of those by default yes, like Holy Arrows and Lit Arrows, but beyond that they aren't all that useful. For instance Poison/Mute/Darkness arrows come far too late to really make a difference. However if they're included in early random draws, then maybe they could serve some purpose (except Poison, alone Poison is nigh useless).

Interesting point. We'll have to see exactly how the weapons get reworked. I must say, I do like how it would make for more of a "hunter" feel.

Yes, opening up menus in FFIV seem to be... not good? It's very difficult from my experience. Twincast does need to scale better. Comet looks to be as powerful as Titan though, they use the same formula all around. Flare is a Single Unit 30 Power spell which when split deals not impressive damage. However Titan is fast and only takes up one character where as Twincast is an eternity and takes two characters. I'm not sure of a good way to fix this one.

Can we hijack a spell routine to do some kind of damage formula based on Level? Level, magic stats, some math = dmg?

This sounds like it could easily use Recall's current slot for a base. MP Healing can be done, scaling it though would be trickier, I'm also not sure having MP recovery through a spell (That's not Osmose) is a good decision since a game like this is focused on conservation to have that ability may trivialize battles and just have the player spamming that ability until they get what they want out of it.

Good point. Maybe forget about the MP healing. I'm sure we can think of some various things for it to do.

Didn't Yang have a skill which healed by %MaxHP in Unprecedented Crisis?

Chakra was %CurHP, but there is a routine for healing based on caster's max hp. I think it's 1/10 by default but was there ever a patch made to make that amount variable by spell power?

Edge is a sticking point... Chillyfeez created a hack that made it so you could only steal one item from one enemy (I think after one it defaults to Potions) The failure rate with damage can be easily changed, yes. Any rarity is a bit trickier, it would require a bit of custom code to make work. I think they originally had some different idea in mind for Edge, notice how his skills mimic Three of the Four Fiends? Flood, Blitz, Flame, only one missing was Scarmiglione. I think it might be neat if after defeating an Elemental Fiend if Edge would learn their corresponding skill (by the way I am all for including Unprecedented Crisis's Underworld Elementals), I think in that case it should be expanded and getting rid of Smoke for Tremor would be preferable. Either the Throw Formula can be changed to be more accompanying or the thrown items can have their attack lowered, simply by removing the random variance for a /2 amount should balance it pretty nicely.

"Scarmiglione: Was it Tremor? I will show you how!" LOL

Reducing the shurikens attack power should probably do the trick. We can play it by ear and tweak as we go. The Ninjutsu moves... I'm not sure... I almost feel like they can either be cut completely or at least be a set of unique utility effects, more along the lines of Pin/Smoke/Image than Flame/Flood/Blitz; especially since anyone can just toss out attack items.

Eh... I tried and the editor doesn't seem to recognize the new ranges and the game looks at proper Usable Item Starts a ton of times that its very difficult to actively change, it's loaded in RAM, ROM, and so many specificities look at those indexes to clarify their effects (E.G. Status Healing Items, Phoenix Downs, Whistle, Summon Orbs, especially Summon Orbs, etc). I also don't think that Armor has all of the graphic options that weapons would have if weapons could somehow be extended.

That's a shame :(
If the graphics were the only problem I would suggest we could move the throwing stars and arrows over to those ones since they don't really need graphics per se, freeing up the slots they used to occupy for "real" weapons... but I can see how it would be a daunting task to find every single item range check.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: abyssonym on November 04, 2016, 11:05:29 PM
Wow, I just started investigating a project like this, and I found this thread while searching for docs. I was thinking of doing a FF4 Ancient Cave mod for the 25th anniversary of the US release. I don't want to step on anyone's toes though and y'all are better equipped to make this than I am. I'd be happy to contribute what I can though, based on my experience making the FF6 Ancient Cave mod. If you open-source it on github.com I'll submit patches and stuff.

I did try the "roguelikeifyer", but no matter what I do, it seems to spawn me in the middle of a wall or something... see the attached image.

EDIT: nvm, I see you already addressed that in the original post
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: chillyfeez on November 05, 2016, 07:34:30 AM
What would you prefer - a patch that replaces the existing Salve, or a commented disassembly of all the custom code (which would afford you the freedom to put it wherever you want in ROM)?
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 05, 2016, 07:45:19 AM
UPDATE

http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip (http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip)

It now puts contents in the treasures and it now makes two maps, one replacing Baron Town and the other replacing Mist. There should be two ways out of the "Baron" one: one that takes you to the overworld, and one that puts you at the entrance of the Mist map. The Mist map should also have two ways out: back the way you came, and an exit that takes you to (0, 0) in a probably messed up Kaipo.

I replaced the inner stone tiles with ladder tiles so that you can see where the walls "should" go while not getting stuck if you don't change the overworld trigger warping you to Baron Town.

The treasure contents are (for now) just completely random; no weighting, no tables, just roll a 256 sided die and that's what you get.

Since it's now (over)writing triggers, and not paying any attention to what comes afterwards, FF4kster compatibility will almost certainly break after running this version.

Wow, I just started investigating a project like this, and I found this thread while searching for docs. I was thinking of doing a FF4 Ancient Cave mod for the 25th anniversary of the US release. I don't want to step on anyone's toes though and y'all are better equipped to make this than I am. I'd be happy to contribute what I can though, based on my experience making the FF6 Ancient Cave mod. If you open-source it on github.com I'll submit patches and stuff.

Thanks! Any input/help/ideas/advice/tips would be very much appreciated!

My source code is a tangly mess atm but maybe once I reorganize it or if I need any help specific to coding.

What would you prefer - a patch that replaces the existing Salve, or a commented disassembly of all the custom code (which would afford you the freedom to put it wherever you want in ROM)?

I think my preference right now would be a patch if it's all the same. Thanks again!
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 05, 2016, 11:22:17 AM
I don't have much time to play around with this before work, but I'll test it out... Indeed, the map randomization actually turned out pretty well, at least for a proof of concept, treasure was absolutely random, are there also a random amount of treasure in each map, or does each map have a set number of chests currently?

Also Abyysonym it's great to see you here! I vastly enjoyed your FFVI Randomizer and FFT Chaos and I'm sure with your wealth of experience you would be able to assist in this project to a great extent. FFIV's info. is a little more... spread, but I feel it should still be possible to make a robust Randomizer.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 05, 2016, 11:28:21 AM
It attempts 20 times to drop a chest in a random spot. Before it actually puts it there, though, it first "looks around" at the adjacent tiles and makes sure it isn't about to be put in a place that could potentially block off a path. If it's all clear, it gets put there; if not, it moves on to the next. So in theory there could be up to 20 treasures on a given floor, or as few as 0. More likely, it'll be somewhere in between. The 20 can easily be tweaked as the dungeon generating algorithm evolves.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 05, 2016, 11:34:11 AM
Indeed, while that is neat that it won't always add a chest aren't we stuck with 255 Chests Overworld/255 Chests Underworld/Moon? Or do you have a plan on dealing with that as well?
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 05, 2016, 11:37:25 AM
Yeah, each time it drops a chest it will remove one from the number of chests left in the world (overworld or underworld). 20 is probably too many in the long run and will likely be scaled back so that you don't have a whole bunch of treasure up front, then a dry spell until you reach the underworld.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 05, 2016, 12:26:46 PM
Ah, planning ahead already, good foresight, yes 20 will probably be Way too much for a max per room. I'll post more on my what else you have said when I get home from work.

Also Chillyfeez when you do post the patch for Salve in a menu (I would Love to know how you accomplished that, by the way) let me know what room it takes up so none of our hacks for this step on one another.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Swordmaster on November 05, 2016, 05:25:43 PM
Pinkpuff, what you did to Edward in UC was genius.  I'm all for Edward learning bard songs by level.  But as for all the item stuff, it seems like it would be more interesting to have Cid be the "chemist".  He's so... plain in vanilla.  Even in UC he was a bit plain.  It doesn't seem easy to fix Cid.  Though I think Cid should be able to use whatever weapon will have "avenger sword" status, due to him being the closest character to a "berserker".  Cid:  the berserker chemist machinist?  lol.  Just some thoughts.

Oh, and one more thing.  How viable would it be to make a "mime"?  Maybe replacing FuSoYa?
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: abyssonym on November 05, 2016, 05:41:37 PM
There's two features I'd personally like to see.

1. More complex room generation, to create natural looking floors. You could build a floor using cellular automata + a markov chain created from existing game maps. I used this technique to create a world map generator for FF6; see the attached images. I wasn't planning to do this for FF4, but I was going to use the existing game maps (like in FF6 AC) which I like better than simple maze generation.

2. Branching paths and exploration, and reasons to go exploring. In FF6 AC I hid "rest stops" throughout the dungeon, where the player could shop, sleep at an inn, save, and pick up new espers or party members. Exploration is the aspect that most appeals to me about procedurally generated games... I'm not so much a hack 'n slash guy. It's also the reason I'd like to see more natural-looking floors, because I feel like having easily recognizable landmarks adds a lot to the experience... maybe even more so if they're maps from the game.

If you decide to keep this project as a linear dungeon crawl (it's fine if you want to), then I might go ahead and make my original idea.

Also I'd like to see the characters stay more on the vanilla side of things, or at least leave it as an option. Finishing the game with Dark Knight Cecil dragging your party down is its own kind of challenge.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: chillyfeez on November 05, 2016, 09:56:21 PM
Also Chillyfeez when you do post the patch for Salve in a menu (I would Love to know how you accomplished that, by the way) let me know what room it takes up so none of our hacks for this step on one another.

The "how" is explained here (http://slickproductions.org/forum/index.php?topic=1940.msg22203#msg22203), in a conversation I was having with... evil Grimoire LD, I guess  :wink:

Anyway, the affected data in this patch is as follows (all offsets are ROM w/o header)...
Used Empty Space:
11AB7-11ABB ($5 bytes)
11AC3-11AC7 ($5 bytes)
A0D80-A0DBD ($3E bytes)

Altered Assembly:
13606-13608 ($3 bytes)
139BA-139BC ($3 bytes)
1A6AD-1A6AE ($2 bytes)
1CA6C-1CA6E ($3 bytes)
1E2E4-1E323 ($40 bytes)
1E331-1E332 ($2 bytes)
1E33C-1E33D ($2 bytes)

And there you have it.
Just FYI - my intention in making this patch was that the strength of the Salved item would be 4x normal strength, then divided by the number of party members. it seems like, in practice, it actually ends up being slightly less than that. I tried it with a four-member party, and a character using Item seemed to get better results on a single target than the Salve-er gets on each individual target. Not significantly, mind you (~10 HP difference for cure1, <100 HP difference for cure2 and 100-200 HP difference for cure3), but I just thought it was worth mentioning. Of course, it might be that I just kept getting really unlucky in my tests.
 :hmm:

So, here's the patch.

 :edit: Sweet - I'm Golbez now
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 06, 2016, 12:42:20 AM
There's two features I'd personally like to see.

1. More complex room generation, to create natural looking floors. You could build a floor using cellular automata + a markov chain created from existing game maps. I used this technique to create a world map generator for FF6; see the attached images. I wasn't planning to do this for FF4, but I was going to use the existing game maps (like in FF6 AC) which I like better than simple maze generation.

2. Branching paths and exploration, and reasons to go exploring. In FF6 AC I hid "rest stops" throughout the dungeon, where the player could shop, sleep at an inn, save, and pick up new espers or party members. Exploration is the aspect that most appeals to me about procedurally generated games... I'm not so much a hack 'n slash guy. It's also the reason I'd like to see more natural-looking floors, because I feel like having easily recognizable landmarks adds a lot to the experience... maybe even more so if they're maps from the game.

If you decide to keep this project as a linear dungeon crawl (it's fine if you want to), then I might go ahead and make my original idea.

Also I'd like to see the characters stay more on the vanilla side of things, or at least leave it as an option. Finishing the game with Dark Knight Cecil dragging your party down is its own kind of challenge.

Your brand of randomization is normally taking Everything that can be randomized and having that option there. For instance Dark Knight Palom might have White/Kick/Regen for his special commands, being able to equip Whips, Hammers, and Harps. This looks to more so be about setting up a normal...ish game as far as setup goes with an Ancient Cave-esque feel, I think the room generation is so simple currently just as a proof of concept, rather than meant to represent the final project. Therefore your goals are already quite different (if I'm getting your MO right, I may be mischaracterizing it) and you should progress with your project (also that FFVI randomized world map idea is awesome, I would love to see that added to Beyond Chaos at some point). However I think what you find and the way you go about randomization may still be of worth to PinkPuff so I strongly suggest the sharing of info. between you two.

Quote from: PinkPuff
Can we hijack a spell routine to do some kind of damage formula based on Level? Level, magic stats, some math = dmg?

Oh yes, that won't be that difficult. I've noted used and unused routines before. I suggest using either Dispel's routine (useless piece of broken garbage... Black Hole does it right), Damage, Status (Unused?), or Rydia Returns. Since Rydia will not be returning so that is not necessary.

Quote
Chakra was %CurHP, but there is a routine for healing based on caster's max hp. I think it's 1/10 by default but was there ever a patch made to make that amount variable by spell power?

I thought I made a spell power variant of that...? Hmm, maybe Chillyfeez did? In any case, it's very simple, may not even need any extra bytes for it.

Quote
"Scarmiglione: Was it Tremor? I will show you how!" LOL

Reducing the shurikens attack power should probably do the trick. We can play it by ear and tweak as we go. The Ninjutsu moves... I'm not sure... I almost feel like they can either be cut completely or at least be a set of unique utility effects, more along the lines of Pin/Smoke/Image than Flame/Flood/Blitz; especially since anyone can just toss out attack items.

Heh, yeah... You bring up a good point, it does make Edge seem redundant, focusing on more of the unique utility seems like a good idea (though Smoke, just like Exit doesn't serve much purpose other than not losing money when running away).
Also Chillyfeez when you do post the patch for Salve in a menu (I would Love to know how you accomplished that, by the way) let me know what room it takes up so none of our hacks for this step on one another.

The "how" is explained here (http://slickproductions.org/forum/index.php?topic=1940.msg22203#msg22203), in a conversation I was having with... evil Grimoire LD, I guess  :wink:

Anyway, the affected data in this patch is as follows (all offsets are ROM w/o header)...
Used Empty Space:
11AB7-11ABB ($5 bytes)
11AC3-11AC7 ($5 bytes)
A0D80-A0DBD ($3E bytes)

Altered Assembly:
13606-13608 ($3 bytes)
139BA-139BC ($3 bytes)
1A6AD-1A6AE ($2 bytes)
1CA6C-1CA6E ($3 bytes)
1E2E4-1E323 ($40 bytes)
1E331-1E332 ($2 bytes)
1E33C-1E33D ($2 bytes)

And there you have it.
Just FYI - my intention in making this patch was that the strength of the Salved item would be 4x normal strength, then divided by the number of party members. it seems like, in practice, it actually ends up being slightly less than that. I tried it with a four-member party, and a character using Item seemed to get better results on a single target than the Salve-er gets on each individual target. Not significantly, mind you (~10 HP difference for cure1, <100 HP difference for cure2 and 100-200 HP difference for cure3), but I just thought it was worth mentioning. Of course, it might be that I just kept getting really unlucky in my tests.
 :hmm:

So, here's the patch.

 :edit: Sweet - I'm Golbez now

Hehe, I forgot all about that, how time flies... I should have been more exact Chillyfeez, since I'm a bit out of practice, what LoRom Banks are those occupying? That's what I probably should have asked in the first place.



Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: chillyfeez on November 06, 2016, 01:42:37 AM
Sure, in LoROM that's...

Used free space:
29AB7-29ABB
29AC3-29AC7
148D80-148DBD

Altered assembly:
2B606-2B608
2B9BA-2B9BC
3A6AD-3A6AE
3CA6C-3CA6E
3E2E4-3E323
3E331-3E332
3E33C-3E33D
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 06, 2016, 10:15:53 AM
Thanks Chillyfeez, that reaches into a lot of sections, hehe, I guess that's only to be expected.

In any case setting up Recover 1/10 Max and 3/10 Current is as easy as I originally assumed. (Because of this I swear someone had to tackle this before.)

Yes, it is simple, with one caveat (which doesn't change anything really)

$03/DD5A   A2 0A 00   LDX #$000A   A:0000   X:004E   Y:0000   P:envMxdiZc - Load 0A into X. (/10. How much % of HP to heal.
$03/DD6E   A2 03 00   LDX #$0003   A:0000   X:0001   Y:0000   P:envMxdiZc - Load 03 into X (/3. How much % of HP to heal.)

Changing these both to AE 9D 28 will have it looking at Spell Power, BUT! It's looking at it in a two byte manner so the Accuracy stat is being added to that value at as well, however Accuracy does nothing for these abilities as they aren't normal damage or healing so they cannot miss. If you change both of their accuracies to 0 you will get your desired outcome. Well, I'm off to work, but I should be able to get a proper Twincasting arrangement setup... maybe when I get home.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: abyssonym on November 06, 2016, 10:16:19 AM
Your brand of randomization is normally taking Everything that can be randomized and having that option there. For instance Dark Knight Palom might have White/Kick/Regen for his special commands, being able to equip Whips, Hammers, and Harps.
Oh, I'm not trying to get Pinkpuff to make a randomizer. I just see a lot of talk in the thread about custom characters with new skillsets, and I'd like to be able to play the mod with a normal Edward if I wanted to. I do agree that there should be some way for Rydia to obtain her summons, for example.

As far as an FF4 randomizer goes though, there's already one in development by fcoughlin (though it has been on hiatus for a long time).

Quote
I think the room generation is so simple currently just as a proof of concept, rather than meant to represent the final project. Therefore your goals are already quite different
The only real sticking point for me is the linearity. A non-linear dungeon with backtracking is the project I'd like to see made, and there's no reason for me to make it if Pinkpuff already is.

Quote
However I think what you find and the way you go about randomization may still be of worth to PinkPuff so I strongly suggest the sharing of info. between you two.
Of course, although I haven't worked on FF4 for very long, so I can't contribute that much.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 06, 2016, 10:34:34 AM
That's a good point and there likely can be an option for "Vanilla" (Would you like to have the cast set as they normally are?) versus "Custom" (Attempts have been made to balance the cast and give each one their own niche to participate more effectively in battte). I can't see that being too difficult to set up. It's akin to one patch over another.

Oh, I see what you mean in regards to the direction of the dungeon progression. Yes, I do not know what PinkPuff's end plans for that are.

As for catching up both Chillyfeez and myself have a large amount of matters figured out between the two of us... mostly dealing with in-battle dealings though we've worked on a fair amount of overworld and event ASM as well.

Here is Chillyfeez's topic...

http://slickproductions.org/forum/index.php?topic=1940.0

Here is mine...

http://slickproductions.org/forum/index.php?topic=1883.0

If you have a bit of time to kill feel free to give them a look over.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: chillyfeez on November 06, 2016, 12:27:29 PM
The altered ASM shouldn't be much of an imposition, it's simply tweaks to background stuff you likely wouldn't have touched and the Slave routine, which you had to know was getting changed.
As for the used free space, those five-byte spaces are taken from isolated little spots of what is normally six bytes of FFs so you won't miss those. Then the larger chunk of space is a relatively small block that exists after the world map tile properties.
I tried to be minimally invasive, but if you need I can move some stuff to a more convenient location.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 06, 2016, 06:02:54 PM
Pinkpuff, what you did to Edward in UC was genius.  I'm all for Edward learning bard songs by level.  But as for all the item stuff, it seems like it would be more interesting to have Cid be the "chemist".  He's so... plain in vanilla.  Even in UC he was a bit plain.  It doesn't seem easy to fix Cid.  Though I think Cid should be able to use whatever weapon will have "avenger sword" status, due to him being the closest character to a "berserker".  Cid:  the berserker chemist machinist?  lol.  Just some thoughts.

Oh, and one more thing.  How viable would it be to make a "mime"?  Maybe replacing FuSoYa?

How about this: Avenger replaced with "Demon Axe". It's a dark-elemental axe that's demonically possessed such that the wielder goes into a fury and constantly attacks. Since it's a dark/demon weapon, DK can use it, and since it's an axe, Cid can use it. Two birds with one stone!

Character data (esp. levelups) are at a premium so I think the standard 12 will be all we can muster. Also having more than that will mess up my really cool character selection intro map since you can only have 12 NPCs. That said, I think someone was working on creating a Mimic command at one point and met with some degree of success IIRC.

With regard to the randomization strategy, I fully intend to make the dungeons look more "natural" in a graphics sense, but not necessarily "familiar" in the sense of composing them of pieces of maps from the original. As far as branching goes, that sounds complicated and I will probably get something linear working first before I attempt anything like that. There will of course be "rest stops", shops, save points, fat chocobos, inns and the like, but I think resource management will be much more of a thing in this than it ever was in vanilla or probably any FF game.

I like the idea of having an option with regards to the character setup. We can have something like:
That way each individual can tailor it to suit their tastes  :childish:

Another thing that might be worth including as an optional feature: Many roguelikes have perma-death; you can save your progress, but if you die, you can't reload your save. Would that be a difficult thing to program? When you "load game" I guess it would somehow remember which save slot you loaded, then if your party gets wiped out, it also wipes out that save slot?
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 06, 2016, 09:49:11 PM
The altered ASM shouldn't be much of an imposition, it's simply tweaks to background stuff you likely wouldn't have touched and the Slave routine, which you had to know was getting changed.
As for the used free space, those five-byte spaces are taken from isolated little spots of what is normally six bytes of FFs so you won't miss those. Then the larger chunk of space is a relatively small block that exists after the world map tile properties.
I tried to be minimally invasive, but if you need I can move some stuff to a more convenient location.

Oh no, you misunderstand Chillyfeez. I wasn't trying to disparage your use of space, I was just surprised at how far reaching it was, it shows a better grasp of things than myself in many cases. I try to keep matters mostly contained and rarely try to change functions outside to make any hack work more efficiently. It was a point of praise, not criticizing, hehe.

How about this: Avenger replaced with "Demon Axe". It's a dark-elemental axe that's demonically possessed such that the wielder goes into a fury and constantly attacks. Since it's a dark/demon weapon, DK can use it, and since it's an axe, Cid can use it. Two birds with one stone!

Character data (esp. levelups) are at a premium so I think the standard 12 will be all we can muster. Also having more than that will mess up my really cool character selection intro map since you can only have 12 NPCs. That said, I think someone was working on creating a Mimic command at one point and met with some degree of success IIRC.

With regard to the randomization strategy, I fully intend to make the dungeons look more "natural" in a graphics sense, but not necessarily "familiar" in the sense of composing them of pieces of maps from the original. As far as branching goes, that sounds complicated and I will probably get something linear working first before I attempt anything like that. There will of course be "rest stops", shops, save points, fat chocobos, inns and the like, but I think resource management will be much more of a thing in this than it ever was in vanilla or probably any FF game.

I like the idea of having an option with regards to the character setup. We can have something like:
  • Pure Vanilla: All characters and equipment are completely unchanged; exactly as they were in the original game. No extra equipment, improved abilities, etc. You can take Edge and just crush things early on or you can take DK and get splatted in the late game.

  • Vanilla Inspired: (Default option) The characters and equipment stay more or less true to their original form, but with some slight tweaks for the sake of either making them more evenly viable from beginning to end, or to differentiate them a little more from very similar characters (e.g. Rydia/Palom, Rosa/Porom).

  • Unprecedented Crisis: The characters and equipment are more or less lifted wholesale from Unprecedented Crisis.
That way each individual can tailor it to suit their tastes  :childish:

Another thing that might be worth including as an optional feature: Many roguelikes have perma-death; you can save your progress, but if you die, you can't reload your save. Would that be a difficult thing to program? When you "load game" I guess it would somehow remember which save slot you loaded, then if your party gets wiped out, it also wipes out that save slot?

I think those ideas are the best way to go PinkPuff, Demon Axe as the Berserking Weapon and the choices you listed are optimal (Not to mention it fits thematically with the Demon set of Armor). Chillyfeez completed a Mimic command and I think it worked well.

Hmm, wiping the save file on defeat... it shouldn't be all that difficult really. It's basically a glorified massive null which is as simple as LDA 00, STA (by X) 0x1700, Add 1 to X, check if X is 200, if not, branch back and null again. Just need to find the "game over" code, which shouldn't be too tricky considering a number of easily seen events happen at that time.

Now let's look at some ideas for Twincasting...

The Golbez/FuSoYa checks are completely superfluous in this current bit of planning, did you want anything done with those checks as well? I think it might be a good idea to hear concretely what you want done with Twincast PinkPuff since there are a lot of directions it can go.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 07, 2016, 04:30:36 AM
Twincast, in an ideal world, I'd like to pretty much be comet except use the new "Level-based damage" routine or else maybe use caster's max HP (100% of it)? It should only work with Palom and Porom and should be disabled if the other twin isn't present. If possible, it should always use only Palom's stats no matter where he is in the setup.

Anyway, here's a preview of how I'm doing the character selection. Let me know what you guys think!  :childish:
(The patch is for 1.1 UN-headered)

http://www.timecave.net/ff4roguelikeifyer/FF4RL%20Base.ips (http://www.timecave.net/ff4roguelikeifyer/FF4RL%20Base.ips)

 :edit: Don't actually run the roguelikeifyer on this version of the patch. It will mess everything up.

 :edit: I just thought of a problem with the "clear the save file" idea. If you saved the same game in multiple files, you can get around it. Hm, I'll have to think more about it. Thanks anyways though ^_^
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 07, 2016, 09:30:29 AM
Twincast, in an ideal world, I'd like to pretty much be comet except use the new "Level-based damage" routine or else maybe use caster's max HP (100% of it)? It should only work with Palom and Porom and should be disabled if the other twin isn't present. If possible, it should always use only Palom's stats no matter where he is in the setup.

Yes, that seems a bit tricky. I could never figure out the "Inferior Twin" issue myself. I think there's an old patch out there somewhere which disables Twin if Palom/Porom are not present. There are various Twincast hacks around, I made a couple myself that depending on the Superior Twin, a different spell is used, and the way it is designed easily allows for four spell possibilities with one of them revolving around a special conditional beyond chance.

Quote
Anyway, here's a preview of how I'm doing the character selection. Let me know what you guys think!  :childish:
(The patch is for 1.1 UN-headered)

http://www.timecave.net/ff4roguelikeifyer/FF4RL%20Base.ips (http://www.timecave.net/ff4roguelikeifyer/FF4RL%20Base.ips)

 :edit: Don't actually run the roguelikeifyer on this version of the patch. It will mess everything up.

 :edit: I just thought of a problem with the "clear the save file" idea. If you saved the same game in multiple files, you can get around it. Hm, I'll have to think more about it. Thanks anyways though ^_^

Nice bit of warning and explanation of the various functions. I also love FuSoYa as "God the Creator", it's fitting.

Palom/Porom - I like how their explanatory text is very similar to one another and good display of their abilities.

Yang - The mention of "boosting his physical defense" with Gird is interesting. Did you want anything more for Gird other than just a Protect Spell on self? Or did you already boost the power of Protect to make it worth using?

Edge - Everything accounted for.

Cid - Oh, nice detailed explanations about his planned new functions.

Edward - Haha; "He won't hide automatically". A crucial thing to tell players indeed, also great use of 'spoony' and nice description of the new Salve.

Tellah - Good description, makes the player immediately aware of Tellah's new role.

Kain - Fine explanation

Rosa - A nice change of role for Rosa and makes her distinct from Porom.

Rydia - Effect spells over direct damage... what does that imply in Black Magic? Pig, Toad, Venom, Stone, Stop, Drain, Psych, Weak, Fatal... alright that's a pretty good amount.

Paladin/Dark Knight - Another good use of juxtaposition. All around I really like this room.

And walking into the mirror of the back of the room sends me into the trees in the Village of Mist, heh. All in all it looks very promising, my only worry now comes with people picking characters, stripping them of their gear, and starting the character choice anew. Maybe start everyone with nothing, give the player 1000/2000 Gil and after the first choosing room, a second with a predesigned shop/s to get started?

The save file clearing isn't too difficult either. Instead of clearing 1024 bytes (I was wrong with the conversion before) you would clear 4096 Bytes to clear out all of the save data.

Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 07, 2016, 09:53:13 AM
What would you say is a good value for Protect that would make Gird useful throughout the game? I didn't have anything else in mind for it specifically but I'm certainly open to ideas.

Can we hijack an unused script command or visual effect and make a "empty player's entire inventory" action?
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 07, 2016, 10:37:00 AM
...Technically speaking without normal events 90% of those Visual Effects now go unused, haha. Sure, it shouldn't be too difficult to build a clearing routine for items out of now unused Visual Effect code.

 I can make a unique routine for Protect that takes Vitality/8 = Amount to increase defense, it encourages some Vitality equipment on the White Magic Users, but would see its greatest use on Yang for Gird as his Vitality increases dramatically and by Level 40 without equipment he has around 46 Vitality.  Which would be an increase of +5 each time it's used.

Rosa by that same Level has 24 or so, which is the basic +3 it normally is but will only get better as she levels up.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 07, 2016, 10:57:14 AM
I love it! I guess Paladin will have a fantastic Protect power as well which makes sense.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Bahamut ZERO on November 07, 2016, 04:55:42 PM
Quote
:edit: I just thought of a problem with the "clear the save file" idea. If you saved the same game in multiple files, you can get around it. Hm, I'll have to think more about it. Thanks anyways though ^_^

Hmm, perhaps there's a way of having the game autosave at different intervals? I figure that way there'd be no reason to use the "Save" menu, and a player couldn't cheat by having multiples of the same save (outside of save states of course haha).
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Swordmaster on November 07, 2016, 09:19:47 PM
Twincast, in an ideal world, I'd like to pretty much be comet except use the new "Level-based damage" routine or else maybe use caster's max HP (100% of it)? It should only work with Palom and Porom and should be disabled if the other twin isn't present. If possible, it should always use only Palom's stats no matter where he is in the setup.

Is it not possible to base Twincast on level only?  It would solve Porom's low Int. issue.  Then it wouldn't matter who's stats were used.  Unless one of the twins is a few levels short of the other.

Yes, that seems a bit tricky. I could never figure out the "Inferior Twin" issue myself. I think there's an old patch out there somewhere which disables Twin if Palom/Porom are not present. There are various Twincast hacks around, I made a couple myself that depending on the Superior Twin, a different spell is used, and the way it is designed easily allows for four spell possibilities with one of them revolving around a special conditional beyond chance.

Ok, this idea is way better than mine.  I love it.  One more thing regarding the twins:  I like what was done to Porom's "Cry"/"Fake Tears" in the PSP version.

I'm not at all sure if this is possible or not, but I think it would be awesome if there was an option to start all characters with only Fight and Item (maybe even just Fight, or... a random command even), and have commands in treasure chests (or maybe random NPCs that teach a random command to one character... or a random character).  I like this even more than a "mime" class.  But... spells will probably have to be randomized and scattered as well.  Hmm....

By the way, none of these are actual requests, I'm just tossing ideas out there.  I'm enjoying this discussion.  I love this programming-clusterf**k of a game.  lol
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 08, 2016, 06:44:03 AM
I think having the new level based damage routine look at level only for the stats is probably the most straightforward solution.

How about we can add yet another option for the character and equipment setup:

Randomized: Character abilities and equip skills are shuffled up and dealt out at random
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 08, 2016, 10:01:44 PM
That can be done, yes. I'm just worried about checks and balances on what equipment they come with and if they will even be able naturally re-equip the item.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Swordmaster on November 08, 2016, 10:51:20 PM
That can be done, yes. I'm just worried about checks and balances on what equipment they come with and if they will even be able naturally re-equip the item.

My vote would be to start everyone completely unequipped, as in Lufia II's Ancient Cave.  Or if they must have something, give them a stick and basic clothes (Wooden Staff and Cloth Robe?).  lol.  Of course make it so everyone can use those.  As far as equipability, couldn't this be randomized as well?  Using the new hypothetical Randomized option, of course.  Just tossing around a couple more pennies.   :cycle:
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 09, 2016, 04:05:11 AM
What about this:

In the "Randomized characters" option, first it randomizes abilities, then gives anyone with an equipment-reliant ability the appropriate equip skill(s), then randomizes the rest, making sure each character has a certain minimum (they should at least be able to equip something in each slot except for maybe left hand), and then once equip skills have been determined, each character's starting equipment is determined by picking a random equip skill they have for each equip slot and giving them the lowest item of that type in that slot.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 09, 2016, 04:33:43 AM
I think PinkPuff has the right decision on this. Lufia II allowed you to get armor of varying quality early on in the dungeons where as FFIV has a greater emphasis on equipment (save weapons, of course).
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: thepatirckinator on November 09, 2016, 07:18:33 AM
 :hmm:Okay!
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Swordmaster on November 09, 2016, 03:15:55 PM
I think PinkPuff has the right decision on this. Lufia II allowed you to get armor of varying quality early on in the dungeons where as FFIV has a greater emphasis on equipment (save weapons, of course).

That's a good point.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 11, 2016, 11:56:33 AM
UPDATE

http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip (http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip)

The zip now contains two files:
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Grimoire LD on November 11, 2016, 04:04:22 PM
This does look much more natural a few too many black spots which take the part of more defined architecture, but it works well enough. I would suggest that each place have a name label as well like "Stage 1" etc. since it can be a little confusing to tell whether you're going forwards or backwards. The enemy scaling works and it provides an excellent base (for caves). I imagine that each tileset will require it's own randomization formulas due to tilesets and the like.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 11, 2016, 04:12:32 PM
This does look much more natural a few too many black spots which take the part of more defined architecture, but it works well enough.

Agreed. I'm content enough with it for it to suffice for the time being while I focus on getting more functional elements working. The cosmetics can come later once the basic engine is complete and stable.

I would suggest that each place have a name label as well like "Stage 1" etc. since it can be a little confusing to tell whether you're going forwards or backwards.

Good point! It will have to reset after each segment (about 20 floors followed by a boss battle, after which you can't warp back) because there are far more maps than there are labels for maps.

The enemy scaling works and it provides an excellent base (for caves). I imagine that each tileset will require it's own randomization formulas due to tilesets and the like.

In terms of the layout, yes, I suspect each tileset will have to have a fair bit of customization, but I think the underlying mechanic of "let's try to add a feature of some kind to what already exists" will remain.

Also I suspect the monster encounters will remain as they are, just steadily increasing without much regard to the terrain or tileset.
Title: Re: FF4 Roguelikeifyer (basic map randomization working)
Post by: Pinkpuff on November 12, 2016, 02:44:57 PM
Update

http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip (http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip)

The content is still straight up vanilla, and I think what I'll do is stick to the vanilla content version for the time being, and the other options will be simply content-only patches that you would put over top of the FF4RL Base.

Chests are now generated and their contents should scale correctly with the dungeon level, or rather, with the segment of the dungeon you're in. What it's doing is I've created a bunch of shops that scale up, and the chest contents are generated based on the shop entries. That way, when patches are created for the different content types (Vanilla-Inspired, Unprecedented Crisis, etc), the chest content generation is easily fixed by updating the shops with the new equipment.

It now generates 11 segments of 20 floors each. Each segment begins with a save point and ends with a boss fight. It isn't clearing the warp stack yet, so don't delve too deep in the actual game (or if you do, don't go back). On that note, if possible I would like to add to my list of requests a patch to convert one of the visual effects into "clear entire warp stack without warping". Also, upon further thought, I think I'd like to retract my request for deleting the save data. Between save stating and just resetting before your team actually gets a game over, I think it's probably fine to just have saving work as normal. Save points and inns and the like will be fairly sparse anyway.

You might see some NPCs after a certain point; just ignore them if you can. It's possible they might block your way. If so, sorry to hear it, all I can say is that will be fixed in a future version. I don't recommend talking to any of them.
Title: Re: FF4 Roguelikeifyer (chest contents and boss fights working)
Post by: Grimoire LD on November 13, 2016, 10:34:32 AM
Sorry PinkPuff I've been running to and fro these last few days. I will try out this new version, but I only have 20 or so minutes to play around with it before I have to head to work.

Well, alot of the chests I opened just said "Found !" and didn't seem to add anything to my inventory. Is that intentional?

Also the name plates go from B4F to Inn, Item Shop, Weapon Shop, etc. I just assume that's not yet done and at about Floor 24 I ran into the Troian Saloon NPC set, which I assume was part of what you were referring to. After 20 floors there was a save point though, so that was nice. No boss though, I assume that's not yet implemented. So far it's looking like a great proof of concept!
Title: Re: FF4 Roguelikeifyer (chest contents and boss fights working)
Post by: Pinkpuff on November 13, 2016, 02:15:48 PM
Sorry PinkPuff I've been running to and fro these last few days. I will try out this new version, but I only have 20 or so minutes to play around with it before I have to head to work.

Well, alot of the chests I opened just said "Found !" and didn't seem to add anything to my inventory. Is that intentional?

Also the name plates go from B4F to Inn, Item Shop, Weapon Shop, etc. I just assume that's not yet done and at about Floor 24 I ran into the Troian Saloon NPC set, which I assume was part of what you were referring to. After 20 floors there was a save point though, so that was nice. No boss though, I assume that's not yet implemented. So far it's looking like a great proof of concept!


Thanks! Neither of those are intentional. Usually "Found !" means the chest somehow contained either the "no weapon" or "no armor" item. Did you patch the rom first before running the program? Maybe I did something wrong in creating the patch... it should be for an unheadered rom.

In any case, hopefully they're fixed now because it's time once again for another...

Update!

http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip (http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip)

This time NPCs should be working, including shops, "inns", summoners who teach you summons, and the Fat Chocobo. They're fairly sparse so if you go floor after floor without seeing any, it's not necessarily a bug, it might just be chance.
Title: Re: FF4 Roguelikeifyer (chest contents and boss fights working)
Post by: Grimoire LD on November 13, 2016, 11:29:40 PM

Thanks! Neither of those are intentional. Usually "Found !" means the chest somehow contained either the "no weapon" or "no armor" item. Did you patch the rom first before running the program? Maybe I did something wrong in creating the patch... it should be for an unheadered rom.

In any case, hopefully they're fixed now because it's time once again for another...

Update!

http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip (http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip)

This time NPCs should be working, including shops, "inns", summoners who teach you summons, and the Fat Chocobo. They're fairly sparse so if you go floor after floor without seeing any, it's not necessarily a bug, it might just be chance.

Hmm, first chest I opened in the new version with a newly patched unheadered rom was "Found !" so... not sure what's going on there. I suspect since you said you're using ?shops? to decide equipment level, I wonder if maybe blank space in shops are being put into the RNG draw?

Hmm, I just found a random NPC in the dungeon which had the text of adding Rydia to my team. (couldn't do so because the party was full) does that mean that you plan on being able to recruit your team completely by chance as an option?

Ran into a random black mage who hinted at the existence of the Underworld, which I'm pretty sure is an Agart line in the normal game.

Tavern girl from the Baron Inn saying that soldiers are acting terrible in there.

And after running into a cadre of NPC's spouting nonsense from various points in the game my journey comes to an end as one has taken residence in front of a door to the next area on the 19th floor.

I found several Shortbows, a lot of Mute arrows (3 stacks, which was nice), 2 Chain Whips, an Ice Shield, an Ogre Axe, and nothing in several chests.
Title: Re: FF4 Roguelikeifyer (NPCs working)
Post by: Pinkpuff on November 14, 2016, 03:24:11 AM
Yikes, ok, by the sound of it, something is going horribly horribly wrong in the patching process...

Are you using the patch from inside the zip? Because it's been updated since the original FF4RL Base patch. What happens when you patch a fresh rom and then go into FF4kster and look at the shops? First shop should contain, in this order:

Potion
Phoenix down
Tent
MaidKiss
Eyedrop
EchoHerb
Pure
Ether
Title: Re: FF4 Roguelikeifyer (NPCs working)
Post by: thepatirckinator on November 24, 2016, 08:18:11 PM
So you're working on Rougeflyer instead of FF4kster since you are very busy with work...
Title: Re: FF4 Roguelikeifyer (NPCs working)
Post by: Bahamut ZERO on November 25, 2016, 03:13:07 PM
Just thought of an idea regarding saving, that is if the permadeath idea is still being considered.

What if the "Save" command on the menu was retooled to execute the saving routine on your current file, rather than take you to the file select screen to pick a file? That way one wouldn't be able to cheat the permadeath system, so to speak.


So you're working on Rougeflyer instead of FF4kster since you are very busy with work...

It's a free world.   :celosa:

Also FF4kster's source code was released a good while ago, so technically anyone with a grasp of Basic (I think that's the language it was built on, anyway) could work on it at this point.   :childish:
Title: Re: FF4 Roguelikeifyer (NPCs working)
Post by: thepatirckinator on November 25, 2016, 04:38:11 PM
Thank you! Pinkpuff must be very busy with work so it's great to see you work on FF4kster.
Title: Re: FF4 Roguelikeifyer (NPCs working)
Post by: Pinkpuff on November 26, 2016, 03:33:42 AM
Just thought of an idea regarding saving, that is if the permadeath idea is still being considered.

What if the "Save" command on the menu was retooled to execute the saving routine on your current file, rather than take you to the file select screen to pick a file? That way one wouldn't be able to cheat the permadeath system, so to speak.

That is a good idea; however, I've pretty much given up on the idea of roguelike saving just because no matter what lengths we go to, at the end of the day, this is a SNES rom and not a standalone exe, so people will always have savestates at their disposal. Thus, I'm fine with designing the game with that in mind and foregoing the permadeath I had originally had in mind. That does remind me, though, that I should put the save point message back to what it was so it's no longer lying to the players!

So you're working on Rougeflyer instead of FF4kster since you are very busy with work...

That's actually a fair characterization. When I started FF4kster, I wasn't working and had tons of time and energy to spend on my personal projects. Even when I was going to school, I still had plenty of time to devote to it, especially during the summers. Now that I'm working, though, my project time is at a premium, and FF4kster is currently in a place where it's increasingly complex and increasingly difficult to make additions and fixes to. Also where I hadn't been working on it in quite some time, I have to re-read a bunch of code so I can re-figure out how everything works because it's not fresh in my mind anymore. Add to that the fact that the main thing missing from it that I was wanting to add, the overworld editor, is way beyond the scope of what I'm familiar with (it involves reading graphics, but not in the usual way that the tiles for the inner maps use, and I would also have to take into account some way of dealing with the "wide" tiles such as the mountain tops), and as well the fact that there is already an existing tool that seems to do this fairly effectively anyway (Entroper's), I feel like my time would be better spent on something less redundant and more up my alley; that way I can probably make more progress and do something more interesting.

So in short, yes, since I have less time now because of work, the time I do have for projects is better spent on the roguelikeifyer than FF4kster.
Title: Re: FF4 Roguelikeifyer (NPCs working)
Post by: Pinkpuff on November 27, 2016, 08:04:57 AM
Update!

http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip (http://www.timecave.net/ff4roguelikeifyer/ff4roguelikeifyer.zip)

All 15 segments should now be working correctly, including transitioning from the overworld to the underground and to the moon. The tileset is still the same everywhere, so the only way you can really tell will be by the monster encounters. I moved the Golbez/Shadow and Zeromus encounters to different formations so hopefully those will work without trying to launch plot scenes potentially hanging the game.

There are now 15 floors per segment now, as the maps were starting to take up too much room in the rom so I had to scale it back. On the up side, this leaves room for more treasures per map.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: Madsiur on November 29, 2016, 01:56:18 AM
As I said on RHDN I really like the idea of this project.

I'd like to attempt this for FF6. I have most of the technicalities covered except efficient random generation of non-square rooms (with correct L1 & L2 tiles). Do you have a set of predefined room patterns that you give optionally some variations to have many different ones or does your random rooms are 100% generated by algorithms?

I'm just trying to find the best way to do this and currently there is a bit of head scratching.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: thepatirckinator on November 30, 2016, 08:55:56 PM
Sorry Pinkpuff had to abandon FF4kster since he doesn't have enough time to work on it. At least he's working on Final Fantasy IV Rougeflyer as a replacement.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: Pinkpuff on December 02, 2016, 05:20:38 AM
As I said on RHDN I really like the idea of this project.

I'd like to attempt this for FF6. I have most of the technicalities covered except efficient random generation of non-square rooms (with correct L1 & L2 tiles). Do you have a set of predefined room patterns that you give optionally some variations to have many different ones or does your random rooms are 100% generated by algorithms?

I'm just trying to find the best way to do this and currently there is a bit of head scratching.

My rooms are generated by algorithms, but there are some checks and balances in there to make sure the room will look proper when you put the wall and ceiling tiles in. It can currently create simple "room" and "hall" formations, but it's set up in such a way that it should be easy to add other kinds of formations. Currently, I don't have a way of dealing with L1 and L2 tiles, ladders, and the like, and I don't have any ideas in that regard. How does yours handle those?
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: Madsiur on December 08, 2016, 01:02:21 PM
Currently, I don't have a way of dealing with L1 and L2 tiles, ladders, and the like, and I don't have any ideas in that regard. How does yours handle those?

I have not coded this yet but I was thinking mapping into an array each room with L1 tiles ID. Another arrays would be the corresponding L2 tiles, this one would be generated from single L1 tile appearance or combination of L1 tiles appearance (like a ceiling corner facing down the map). This would require to map each tileset and identify a lot of combinations prior to the room generation. Same principle would go for tables with chairs, beds, etc. I think this method will be a lot of preparation work on each tileset but I don't really see another way of doing it.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: abyssonym on December 13, 2016, 11:04:22 PM
Sounds like you're planning a "markov" method similar to what I used for the world map generator, Madsiur. Assuming you have the layer 1 already generated, layer 2 should be a lot easier to work off of because it isn't as complex. You can make the program automate its own prep work by having it go through every map that uses the same tileset and catalogue which tiles can be adjacent to each other and still be valid. Ideally you would keep a running total of every instance of two adjacent tiles so you can generate layer 2 tiles that fit the probability distribution. I suppose it is possible to have a situation where a configuration of L1 tiles is legal but there is no possible L2 configuration that matches them, but I expect that this would be pretty rare so the failure strategy could be something like "just don't use L2 tiles".

For the world map, I had two basic validators, a "north-south" and an "west-east" validator, that were used to make sure each pair was legal. For a chosen tile called "center" these were applied once each ("north-center" and "west-center") since the tiles were generated starting from the northwest corner. However, because the map had high complexity, I needed to optimize the program to minimize backtracking and finish in a reasonable amount of time. So I also used the validators for a 1-step lookahead ("center-south" and "center-east"), and a 2-step lookahead based on those ("east-southeast" and "south-southeast"). Actually I had more complex lookaheads than that, but you get the general idea.

For choosing L2 tiles, I expect that you would still need the same N-S and W-E validators, but also maybe a L2North-L1South validator or something because L2 tiles are often use to create the tops of trees, etc. Since L2 isn't so complex, I don't think it needs optimization, lookaheads, or backtracking, but there probably will be a few impossible situations, which is where the "just don't use L2 tiles" strategy comes in.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: Bydoless on December 14, 2016, 07:32:57 PM
I also am planning on making a FF6 room random generator for my roguelikeifier, but I am having an issue of creating an algorithm that generates the actual walkable area for each room.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: thepatirckinator on December 16, 2016, 10:16:43 AM
Good luck with your Final Fantasy VI project!
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: Madsiur on December 18, 2016, 10:04:44 AM
Sounds like you're planning a "markov" method similar to what I used for the world map generator, Madsiur.

Thanks for your input, abyss. This will be helpful. Will your world map generator be expanded to a regular map generator too accesible from the world map? That would give a fresh new experience, a bit like a quest minus the events, but you could still have event bits that act as simple quest markers without enabling too much complex stuff.

I also am planning on making a FF6 room random generator for my roguelikeifier, but I am having an issue of creating an algorithm that generates the actual walkable area for each room.

I guess the basic strategy is generating simple forms (square, rectagle) add a perimeter (non-walkable blank / black tiles) and add a wall of X tiles of height on the north border and finally putting an south and north door. Here is your basic room.

To be honest I'm only on the planning stage of this, I haven't yet coded anything and since I got a lot on my plate, It will take some time before I have anything playable. Your generator should be out before mine.  :bah:
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: thepatirckinator on December 19, 2016, 07:17:32 AM
So one of you guys is trying to make a Final Fantasy 6 randomizer.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: abyssonym on December 19, 2016, 08:07:58 PM
Thanks for your input, abyss. This will be helpful. Will your world map generator be expanded to a regular map generator too accesible from the world map?
I was considering a project that would be an expanded Ancient Cave like in Beyond Chaos, but would have a randomized world map and would retain many of the events that are currently deleted from BCAC. But this would have involved a lot of work in parsing event scripts and re-cataloging every map's exits, NPCs, etc. So I don't know if I'll ever pick it back up. A regular map generator is doable but I wasn't planning on it.

I also am planning on making a FF6 room random generator for my roguelikeifier, but I am having an issue of creating an algorithm that generates the actual walkable area for each room.
Several years ago I was inspired by this article: http://www.roguebasin.com/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels (http://www.roguebasin.com/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels) . This is the method that I use (with a different ruleset) to generate the land masses in the world map randomizer, then I generate the details in a second pass. I think there is a problem with tiles in FF6, though, in that some of them can be walked through in one direction only, so that's something to look for.

So one of you guys is trying to make a Final Fantasy 6 randomizer.
Been there, done that!  :wink:
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: thepatirckinator on December 20, 2016, 02:06:49 PM
I see! The Final Fantasy VI Randomizer has already been taken care of.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: thepatirckinator on January 04, 2017, 08:03:05 PM
I wish you all the best of luck for the FF4 Roguelikefyer project!
Title: Re: FF4 Roguelikeifyer (concept only)
Post by: Pinkpuff on February 14, 2017, 03:23:51 PM
Did you know that there's an unused multiplier in the Kick/Dark Wave Formula that's simply set to 00? You just need to make that 01 and it should deal double damage. Here is the info. on that... http://slickproductions.org/forum/index.php?topic=1883.msg23621#msg23621

I tried changing the 00 to 01 on an Unprecedented Crisis rom and it made it so that Dark Wave and Kick dealt like 10x more damage in the beginning and a negligible amount more damage near the end.
Title: Re: FF4 Roguelikeifyer (underground/moon transition working)
Post by: thepatirckinator on February 20, 2017, 01:58:31 PM
The best part of Unprecedented Crisis rom is the most useless characters in the original game get buffed here. Fun Fact: Dark Knight Cecil's commands were the same as what Golbez had during version 1-2.1 of the Final Fantasy IV: Playable Golbez Edition mod.