Golden Sun Hacking Community

Golden Sun Resources => Misc. GS Hacking => Topic started by: marvin on 04, September, 2019, 01:12:52 AM

Title: Randomizers
Post by: marvin on 04, September, 2019, 01:12:52 AM
I thought I'd start a thread on randomizers, as I recently released a randomizer for GS1 and I've made significant headway with GS2. This first post will probably become some form of documentation further down the road and edited as needed. Responses will be useful for bug reports and suggestions.

GS1:

GS2:

The GS2 randomizer will do many similar things to GS1: djinn, summon requirements, class requirements, PC elements, and equippable weapons and armor. Some additional stuff:



At this point all of these have been setup and tested. I just need to do the logic for the key item and tablet randomizers, and then test it to ensure there are no softlocks. I think it'll take a few weeks, but my GS1 randomizer will help a lot with that (I think). That said, there's always a new bug to find.

Future work:

I think this really depends on feedback. A few things I'd like to try are shuffling weapon unleashes and scaling up the battle difficulty progressively. An all item randomizer might work for GS2 (way more difficult for GS1, unless I missed a table). We'll see how it goes.
Title: Re: Randomizers
Post by: 2tousent on 18, September, 2019, 04:48:23 PM
I immediatly got stuck because i had no access to Whirlwind before Goma Cave :/
Title: Re: Randomizers
Post by: marvin on 18, September, 2019, 10:13:43 PM
Thanks for post. It turned out to be a quick fix, so I posted an update. I tested this on seed 416416, and checked logs of about a dozen other seeds. Let me know if it works for you.

If you still have your save file, you can continue your playthrough. Just generate a new rom from scratch with the same seed and reset your classes by moving your djinn around.
Title: Re: Randomizers
Post by: 2tousent on 19, September, 2019, 05:52:00 AM
Yeah all the classes changed and with a Ninja i can Gale it.

How does the fix work? does it allways give you a ninja/wind seer now?
Title: Re: Randomizers
Post by: marvin on 19, September, 2019, 07:29:48 AM
Great!

Yeah, at the moment you will get Wind Seer/Ninja for Whirlwind/Gale before the cave, as well as Water Seer/Dragoon for Ply. It makes the default classes heavily biased, but I'm toying with some ideas for improving that. Whirlwind and Ply could be set as default psynergy, like Retreat and Move, or I could just add them to additional classes.
Title: Re: Randomizers
Post by: 2tousent on 20, September, 2019, 09:10:45 AM
Well, i beat it :P
Besides the Goma cave thing (which was fixed) and me not knowing you could get fuchin fall's treasure without the dragon's eye, i ran into no problems

Worth noting, maybe, is that as far as i'm aware, 3 of the djinn were impossible to get, as it was impossible to get the Orb of Force, Catch beads, and Cloak Ball
Title: Re: Randomizers
Post by: Misery on 24, September, 2019, 04:04:13 PM
This was fun. Beat the game (seed 342146), and I have some notes and suggestions.

-Give Ivan whirlwind as an innate psy if possible, it doesn't impact gameplay much and imposes less on class randomization than forcing one of the classes to be available at a certain point.
-As we noted, Dragon's Eye is not actually needed anywhere, since you can get the other key item from Fuchin Temple without it. So it should probably stay in its normal location and be excluded from the pool of key items.
-Class randomization results in a lot of inaccessible classes due to other classes of the same type appearing later in the list. For example, in my seed Guard and Hermit have the exact same type and requirements, meaning no one can ever be a Guard. Checking so that classes that require three elements appear after ones requiring two if they use the same class type value would go a long way towards variety. As would not generating duplicate requirements, of course.

Additional stuff I'd like to see:
-Option to ensure all gear can be equipped by at least one party member. Assign completely unequippable items to one random party member after the initial randomization to avoid increasing the overall chance of being able to equip items.
-Option to keep higher total elemental level requirements for (originally) tri-elemental classes. As it is they go well with the general randomization quirkiness, but they'll have much higher stats across the board while requiring few to no djinn, so it would be nice to be able to separate them.
-Randomization for non-key items. I guess this is what you meant by all item randomizer.

We also talked about randomizing psynergy learnsets for classes. There are several ways that could be implemented, maybe I'll get back on that later with some ideas.
Title: Re: Randomizers
Post by: marvin on 24, September, 2019, 10:18:56 PM
Thanks for playing and for the feedback. As it sounds like you had no urgent bugs, I think I'll keep focusing on GS2 at the moment. But don't worry. I'll include your suggestions in GS2 when applicable, and apply them to GS1 shortly after that release.

A few thoughts:

Title: Re: Randomizers
Post by: Salanewt on 24, September, 2019, 10:28:31 PM
Hey, just a small heads up that I moved your tools to the Utilities section; should make them easier for future users to find too. :P

Also, nice work! May I suggest implementing an option that changes/randomizes the base class modifiers? For example, to base 5% instead of 10%.
Title: Re: Randomizers
Post by: Misery on 25, September, 2019, 03:43:46 PM
Must be quite a bit of work to put everything together for a GS2 randomizer, but I'm definitely looking forward to it.

QuoteI've started rescaling class boost stats to deal with the OP default tri-elemental classes. Yay or nay? It's just a line function of the total elements, at least from what I can tell.
Yay... I think? As long as you keep it optional.
Initially I reacted to getting those classes right at the start - I had Dragoon and Ninja as base classes, and White Mage available with one djinni. But they're not as "OP" as one would expect due to not having access to their abilities. The main benefit comes from them being tankier, especially when you have more djinn available and can use them without stat penalties.

QuoteWhat first comes to mind for psynergy movesets is completely random, random but grouped (e.g. if a class gets Ply, it also gets the other Plys), or swapped (e.g. Squire psynergy becomes Wind Seer psynergy). Any other ideas?
That's basically what I had in mind as well, sounds like you've got everything covered with the options you listed earlier.

QuoteFor inaccessible classes, maybe I could write a new script for setting the class type and give each class a unique type (kind of like the class items in GS2). I'll look into that
I can't imagine how you'd actually assign the type, but if you can figure out something that works then go for it. However, the system in place is still fairly flexible (aside from types 1, 2, 6 and 7). Rather than making a new system, it seems like less work to make sure that when multiple class lines use the same type, the later entries:
Following those conditions, you shouldn't run into the issue of inaccessible classes. Although for everything to have the same chance, you'll have to move the actual class data around, otherwise it will be much less likely for something like tri-elemental Squire to be generated.
Title: Re: Randomizers
Post by: marvin on 14, November, 2019, 11:25:50 PM
I have several updates to mention:

My primary focus now will be on cleaning up the GS TLA code and releasing that on GitHub. Once I do that, I'll consider it a full release (no longer a beta version).

Any feedback is welcome, especially thoughts and suggestions for randomizing enemies. I really would like to randomize them as much as possible, but they really would need stat modifications to do so, and there are no clear constraints to enforce how that works. I don't think I'll shuffle all items or town/cave locations until something can be sorted out with enemies.

GS1 randomizer and github
http://forum.goldensunhacking.net/index.php?action=downloads;sa=view;down=120
https://github.com/MarvinXLII/GS-Randomizer

GS2 randomizer (beta);
http://forum.goldensunhacking.net/index.php?action=downloads;sa=view;down=122