Author Topic: hard/balance mod... those interested please let me know :wink:  (Read 21435 times)

secondadvent

  • *
  • Posts: 287
    • View Profile
ok, as of right now i am just at the beginning of my mod, though it will take a long time before each new release will come out, one, due to the amount i am changing, and going solo will take a while, but is what i prefer :P, two, it will be worked on side by side with my ai compression mod, since i will need a smaller base to work with due to the amount of ai editing going on.

i had a release of my compressed ai mod out (up to air buster), but since people weren't really that interested, i decided to start on this instead. if anybody wants a newer version of it, please let me know as i progress, because i doubt it will be posted here otherwise (unless many people become interested in it).

things i plan on adding to this mod are:

1. adding a level-up method for enemies, so that they will continue to grow over time as you do, to keep the difficulty up throughout the game. i already have the base for this, all that needs to be done is to balance out the growth of the enemies, so that they start slow, then gradually get much stronger. the only bad thing is that it is likely that they will not level as well as the party does, smoothness wise, because it already takes a good bit of ai space with the current method, but if i have plenty of space near the end of the project, i will make them progress much smoother. also, it is possible for enemies to go over the lv 99 cap, and if you yourself level that high, pretty much everything you fight will be past that cap, and the damage output increases greatly at that point.

2. on top of the leveling method, they will also be adding more moves as they grow (some enemies are limited, due to me not knowing how to add animations to enemies in the battle.lgp file... if anybody could help me here, it would make many enemies much better in the end), some gaining auto statuses as they level, such as auto haste, or even auto life (still working out the kinks, but so far it will work once a battle, which is good ;)). elemental resistances will also increase, such as gaining immunity or even absorption from certain elements. this will also include manipulate moves if/when i can find the location in ai.

3. if i can find it in the ai, i will be adding status immunities to them as well, and even causing some of their attacks to inflict immunity to your party, coupled with a bad status, such as death sentence, and immunity to it, to stop removal of it. it will also be possible for the enemy to make you immune to, or absorb restorative spells/items, making phoenix downs miss, or cause instant death, depending on the resistance given, though this (zombification) will be a rare thing to be used, since it can be very bad, very fast, though death could be made to work on those killed with these resistances, unless death immunity was added as well >:D.

4. if i can find this as well, i will be adding more drop/steal/morph items through ai, as well as removing the older drops and such, as they progress in level. for now though, i can at least make them drop a new item when killed in the same way the vice enemies give back your stolen items when they are killed: a dialogue box is shown, and the item is automatically added to your inventory, though this allows you to use it in the same battle if it is usable in battle, when it should be a end-of-battle reward. i can still make them be dropped at random, and have multiple different items that can be gotten, but they will still possibly drop their regular item, and it will have the possibility to be used in the same fight, which is why i want to find the main info in the ai. i cannot currently change the steal/morph items either, but definitely will if/when i get access to them.

5. all party stats will be reduced, and sources will be made a lot harder to come by, made as drops instead of morphs, and i can also cap off stats at somewhere under 255 if i wanted to, so even if they were plentiful, they would still not offer the same amount of help as usual. i will try to make the party members have more unique stats, but i am not sure how it is going to be yet... the first release or so will only have enemies tweaked for the most part.

6. all weapons and abilities will be modded as well, to weaken some, and strengthen others (ultimate weapons will NOT have their normal attack mods, since they are too broken). KotR will take a big hit, being massively reduced, but still being the strongest summon overall (will not be reduced to a pitiful state, but it will not be reaching max damage per hit either :P. the cumulative damage will still be much greater than bahamut zero). some enemy moves will be boosted though, and may gain extra benefits as they level as well.

7. as i go, i will also try to make less things missable, especially summon materia (possibly add things to the field files, to make them appear elsewhere if missed, or as limited supply battle square prizes like omnislash). by the end, there should be very little you cannot get if you missed it, if anything (have to do something to get them though, not going to be handed to you if you missed them the first time).

a lot to read, as usual from me, but i hope people will actually have some interest in this mod, unlike my compressed ai mod  :x.

if anybody has any experience in adding animations to enemies, i would like to have your help in that part, because as it stands now, unless the enemy has direct access to magic, they will be unable to use magic in a normal way (have to use a physical animation, which doesn't show the magic animation, though damage is still done). even adding new physical attacks has to be done on older physical animations if no new animations are added, which gets repetitive.

on the same note, but less needed for now, if anybody could make it possible to have new enemies added, i would like that as well, because extra optional enemies are always nice, and adding new battle square enemies could be fun too  :-P.

when i do (if people want it) make a release, i plan to make an excel spreadsheet showing all enemy info, such as stats, moves, items, etc. since it will not be able to be seen in an enemy editor like hojo (moves for all levels would be shown though), because it will only list the base stats, and even at the same level (except the base level), enemies can be greatly different stat wise, and even resistance wise if i make them at a random chance to happen, so i think a little spreadsheet to show the min/max stats, and all possible things they can have would be a good thing to have.
« Last Edit: 2009-06-21 02:18:10 by secondadvent »

ARMs

  • *
  • Posts: 164
    • View Profile
I'm sure people would be interest in this.  I sure am.  But I have to say this.   Ouch that is a ton of work for 1 guy.   Seriously your only human and that sounds like way tooo much modding.   I suppose you can try and go as far as you can but I honestly have to say that it doesn't sound like it can be done because of laziness and bordem due to time.

And about your compression project.   Its not something that everyone will download to try out because its basically the same thing as the original.   Only a few people would even attemp to mod games.  And out of those few mainly the PSX modders would benifit form it.  So only expect those few to download it.

secondadvent

  • *
  • Posts: 287
    • View Profile
meh... i know it is a lot of work, but after getting the base for the leveling done (which it pretty much is), and with PrC's copy function for ai, it will not be much different from normal modding in that way, only a few extra test phases (for the different reactions from the ai at different levels). and i have plenty of time to boot, so why not put it to use? i am going to school for game programming anyway, so it could be considered experience  :wink:.

i know it is only really good for psx modders and such, but it also fixes ai bugs in the original, so it is a dual mod, bugfixing and made smaller for easier psx modding (this mod is going to use it as a base so hopefully i can make it fit into the original psx iso when done, but that would only be the scene.bin, other things would easily go over the limit. nobody that downloaded it even commented on it, or reported any bugs, which is what i wanted, but i guess that is what happens to less useful mods for the general users.

oh, and i will be trying to find the psx master materia sell price as well, but i am not going to put my full concentration on it (a little checking here and there until i hopefully find it), since i will eventually want to edit that as well, though for the pc version that is easy enough to do.

obesebear

  • *
  • Posts: 1389
    • View Profile
I'm interested in your bug fix mod, and this "balanced" one once it is finished.  Right now I'm just more interested in seeing what I can add to the Qhimm community than play the game.

secondadvent

  • *
  • Posts: 287
    • View Profile
yeah, i have been behind on my mods because i have been busy figuring out some of the unknowns in vii, mainly in ai and formation info, since that is where i have been spending most of my time. the more that is known, the better we can make the game  :wink:.

i am making my excel spreadsheet base right now for when i get a mod released (will take a lot of info to be added into the spreadsheet, as well as the hours/days it will take to get up to air buster done, which is where my other mod is at), similar to my dragon quest viii spreadsheet for recruitable enemies i made a while back, but much bigger :P. if you want to find anything in the enemy data (ai, formations, basically the whole scene.bin, or anything related to enemies, and some other things, like shop info), hit me up, and i will help you look, since it is where most of my time is spent. i am in the middle of finding the psx master materia sell price, which i think is in the slxx file, since it is NOT in the shopmenu.mnu file... i tested it all  8-).

meh... epsxe isn't working for me right now, so the psx location for master materia multiplier will have to wait >_>.

here is an example pic of what the stats of an enemy would look like in the excel spreadsheet, using the MP enemy from the start of the game (the pic may be hard to see). this is NOT guaranteed to be this enemy's final stats, i am just using this as a placeholder for testing purposes, and some of the max stats are not the true max (some use a random chance to gain one point, not a random amount gained like HP, and in these cases the amount listed as max would be 2x the true amount, so that the average listed is much more accurate. the stat could increase one ever level as well, so the max could be even higher than the doubled amount shown for those non-hp stats, but isn't very likely to happen at high levels).

http://static3.filefront.com/images/personal/s/secondadvent/167186/buyplsprbp.jpg

here is the same chart but with the highest person in your party's level at 1:

http://static3.filefront.com/images/personal/s/secondadvent/167186/hssdghboqz.jpg

as of right now, the MP's low level stats are pretty weak, but i do plan on making all of the enemies much harder, i am still testing out the leveling feature though  :-P. the hp for it may be ok with the reduced stats of the party, but the other stats definitely need boosted, specifically attack, which at those low levels would be doing it's attacks' worth of damage, and unless it attacked as fast as you can blink, that wouldn't be that hard to survive ;).

i think i may modify my chart to make more accurate status listing, it currently has the minimum with no random stats added, the "max" which has relatively high depictions of the highest stats (could be higher, but unlikely to do so), and an average that is just min+max/2, which could definitely use more work. i think i am going to add the absolute max, as if all random stat boosts were to reach their highest, a slightly higher low (basically the reverse of the current max, set it to use 1/2 random amount boosts, and 1/4 random chance boosts), slightly mod the max one currently in use to make it have 3/4 the random amount mods, and a true average calculation using the average of each random mod, so 5 different stat listings for the enemy, which isn't necessary, but having just the min and max alone doesn't sow a decent average, even while having the true average there (looks sloppy :P), and having a high and low would look weird without a base and capped stat listing as well, so micgh as well put em all in :P.
« Last Edit: 2009-06-21 11:01:13 by secondadvent »

secondadvent

  • *
  • Posts: 287
    • View Profile
the only big snag i am worried about is the ai size limitation. the leveling up ai addition takes a good 300+ bytes for stats alone, not including the newer pieces of ai that i would want to add eventually, meaning for a group of three enemies, the leveling ai could take up to 1/4 the max ai allowed for a specific scene file. some enemies will have to settle with what they have, made as simple and effective as possible, which should help make room for other enemies to have more room for added ai.

in the end, if space becomes an issue, enemies will have to have the best balance between stats and abilities i can manage, though i doubt there will be too many places where size will become an issue, even with the massive amount needed. psx users are probably going to be unable to use this mod, since it is very unlikely that i can make it fit back into the original disk when done.

my other mod made the ai as small as possible, and in this one i have to pretty much use up all the room made and then some  :|.

obesebear

  • *
  • Posts: 1389
    • View Profile
Does the PC version also have problems with a scene that is too large?

I figure some enemies (like MP) aren't seen as you progress through the game, and in fact get replaced with "sailors" and so forth.  Would it not save even more space to completely optimize the MP's AI but then have the sailors simply use the same AI?   This way as you get farther in the game the original MP will level up (making him harder) and seem like a stronger enemy.

There are a few other instances of this... like the Turks for example.  They show up some 4 or 5 times to fight, but have different models for each battle.  Just give all those attacks to one model and allow his AI to level up.

secondadvent

  • *
  • Posts: 287
    • View Profile
the pc one has no regular size limit, but the scene.bin has an ai size limitation of 4kb per scene file (256 of them in the scene.bin), and my little addition will take over 1kb for a group of three.

i could reuse some of the ai for multiple instances of enemies, like reusing the MP ai for grenade combatants, marines, attack squad, submarine crew, captain, and the underwater MP, but that would only save time, not space, since you cannot directly reuse an enemy from a different scene file without it being there, so no simple pointing to an enemy in the formation data across scene files.

if i could do that, then there would still be an issue with the same name being used throughout the game. i can actually reuse battle formations from other areas (i could make the guard scorpion battle a common enemy in the northern crater for instance), but the battlefield would look like the original instance of the fight (so you would see the reactor's background instead of the crater's), and if i were to reuse enemies instead of having palette swaps, there would be the name issue, the background issue, and formation limitations (have to use a pre-built formation, and there can only be four formations per scene file).

it isn't quite that simple to do, but the best i can do is reuse ai for palette swapped enemies, just tweaking slightly for a little bit of variety (and because palette swaps of mp also have grenades they can use, whereas the MP cannot due to not having that animation). now something else i can eventually do is increase the encounter rate in many areas to make it so you actually see more of the battles, instead of only fighting a few times an area, though it'd take longer to finish an area, but that is the point, and levelling up too far is going to be a thing of the past :P.

Izban

  • *
  • Posts: 432
    • View Profile
you could go the way of using meteor and make it so where all the things that use the MP model are it loads that scene because that would free up some space in general and give the MP's different drops based on there level range that would give you 2 things one of which being some empty scene files that could be used to add new enemys the other being 1 MP file to save on copy pasting

secondadvent

  • *
  • Posts: 287
    • View Profile
the thing about that is there is only 4 possible formations per scene file, and while i could make only a few encounters with the MP enemy, it would make the battles really repetitive. also, i cannot easily use one MP battle for all palette swaps of the MP enemy, because for one the name would be wrong, and two the battlefield would look like the reactor, since the battlefields you fight on are coded in the formations, not the field files. i mean i could take one of the grenade using versions of the MP (for the extra animation), and actually do that, but it wouldn't look too pretty throughout the game, what with mismatched battlefields and all :P.

on the new items as they level up deal, i am still trying to find the actual ai location for it, but for now i can still do it (more ai than needed though, if i had the actual values instead), but they will still have a chance of dropping the same things even at higher levels, on top of the better stuff. i could remove drops completely from the enemy data (filling it with steal data instead, for four steals and however many drops), but that would take a lot more space.

the only downsides with not having the actual drop data (outside of size used), is one, the multiple drop thing, which can be prevented, but by making size more of an issue, and the fact that you can get some drops early that may be intended for after the battle (like possible weapons to throw for boosted damage, elixirs, damaging items like grenades, and stuff like that), which isn't that big of a deal, it just makes the battle slightly easier in some cases.

meh... i guess i will just do what i can for now, and if size becomes an issue, i will just find a square employee to hurt ^^. id probably just have to sacrifice some ai modifications, or drops to shrink it enough to fit, which isn't really that big of a problem right now, since the only places that this should be a problem is with some boss scenes, eligor and it's massive ai that takes like five mins to pop up in PrC, and the end-game areas, since enemies have much more ai modding then.

so i do have plenty of time to find a solution to the space issue, but what i'd like is for help in locating the item info (drop, steal, morph, and possibly a flag that is set on/off when an item is stolen, so i can possible enable multiple steals ^^), status immunities (for moar evilness), and possibly more different types of elemental resistances (other than the current null/absorb) in the ai.

Izban

  • *
  • Posts: 432
    • View Profile
if the battlefield is set in the scene.bin could you not set up an IF statement based on level range for that also

anyway isn't there more then one reactor that you fight mps in wouldn't that mean you could drop on of them and I'm fairly certain that there other enemy's that you could treat in such a way *cough* grunt,chocobo,solder,gaurdhound*cough* even if you drop one whole scene of them thats 4 new enemys that you could put in.

you can have more then one scene set to a specific feild from memory world map anyone

secondadvent

  • *
  • Posts: 287
    • View Profile
i don't know if the field can be changed with ai, and if it were based off of levels, it would still be possible to fight in the wrong battlefield.

for me to be able to actually do what you are suggesting, i would need to know a way to change the battlefield with ai, global variables to be used/set for checking when the battlefield should be different (after killing guard scorpion, the battlefield for mp's would change to the street version (for the three fights right after blowing the reactor), and then again at air buster, etc (could also be changed in the field files themselves if needed, i think). i would also need a way to change the enemy names in-battle, so that it could reflect the new versions of the enemy, as well as a way to change the color of the enemy to match that as well.

but, even with all of this, formations would still be limited, as the mp doesn't always appear alone, it could be with a guard hound or mono drive, and those aren't necessarily going to be in other places as well, so i would still need a couple scenes to make multiple different formations, creating the same problem yet again. unless formations can be created in the field files, and not just set, then it will have to stay the way it is.

and i know you can use different scene files for the same area in-game, it is the limitations in the scenes themselves that is the problem - not enough formations, and inability to use monsters from other scenes in the formation data (has to be the same scene, or the game will freeze). if they made all enemies placed in one file, and formations in a separate one, then they could have x amount of enemies (no need for repeats, since one would be enough), and x amount of formations, but any enemy could be used however you want, since all enemies would be in the same file. it is likely there would be plenty of room for ai as well, but since it isn't like that, and it is doubtful anybody will be able to hack the .exe to run from a setup like that, we have these limitations.

Izban

  • *
  • Posts: 432
    • View Profile
sounds like alot of work for one person no matter which way you go about it, and i have been out of the scene for a while pardon the pun but if you want a hand with any of it pm me and ill see what i can do.

i do have one final question on this topic how does battle square work in relation to this problem and the like because im fairly certain you can run into almost any enemy in battle square

quary the second when it comes to ultimate weapon is its hp remembered by the game somehow or is it just you kill it each time but only the last it explodes.

last but not least forgive my ignorance on the scene.bin in general i really havent spent much time playing with it and i have a tendancy to live in the world of theorticals rather then practicals i do however have a wish to learn more


secondadvent

  • *
  • Posts: 287
    • View Profile
yeah, it is a good bit of work, but i dont mind (also starting breath of fire iii hacking on the side, along with school ^^).

battle square has it's own special layout, the main data is in the scene.bin itself though (recently figured out). the first battle that occurs is likely caused by the field file for the battle square (since the fights are events, and not random encounters, it may be done in the main data of the battle square field file, instead of the random encounter section), but after that, the rest is done by the scene.bin. when a series of battles occur (like the hojo battles), the first battle is the only one that matters battlefield-wise, so only the initial fights must be set to use the battle square battlefield, the rest can be any regular encounter.

when the first fight is won, it checks out part of the enemy's data to see which four formations to choose from (all with 25% chance to be the next fight), and then continues on to the next fight (which leads to four more, and so on and so forth). i may be making many older enemies make appearances in the battle square (such as bosses >:D), to spice things up a bit. because of the way the battle square works, i can pretty much link to any encounter, and possibly make them all appear there if i really wanted to (regular enemies and some bosses, not actually everything :P).

unlike the normal chain battles (also edited from the scene file formation data), the battle square battles will not always happen after the formation is defeated, it only works if the formation is defeated in the battle square (so a fight with hojo normally always lead to the heletic/heretic hojo, but in the battle square he could lead to any battle, and will not link to the normal second fight unless it is one of the options in the battle square section of the formation data). you could make the final hojo battle (lifeform) a possible candidate in the square, without needing to fight the first two battles.

ultimate weapon stores it's hp into global variables, so the amount of damage you do to him is kept track of, and he flies over CC when his hp gets to a certain point (which is why he can take longer in one save to go there than another save with a better party). you can do this for other enemies as well, to make different things happen during the fight depending on how many enemies you killed or whatever.

i have been learning most of what i know recently (as well as figuring out some unknown stuff), so don't feel bad, because a few weeks ago i knew barely anything, and now i am making a very complex mod :P.

secondadvent

  • *
  • Posts: 287
    • View Profile
hmm... just to warn people, the first version i will release will not be too smooth with the level up feature, as in it will progress smoothly three times, it will massively jump at two places, lv 30, and lv 60. the reason why is because the first version will be using a method that was my first idea to use, and it seems to be ok, but could still use work (i plan to do this later, but i want to at least see how people will like the current method before i tweak it more).

when i do release it, it would probably be a good idea to edit the kernel with, say, wall market, to make your levels (exp, not actual level, because it will not raise your stats if you just boost your level) to go through three times to see the difference (so no grinding would be needed to do it naturally), one at the normal level, one at around 30-50ish, and one higher u, say lv 99. there's an experience chart in the party mechanics guide that you could use as a reference, but i may just stick a couple of modified kernels in to test with.

i am still working on it, so it isn't being released quite yet, but this is just something i wanted to say now for those who are interested, because if you like the first version, the basic intro version, you will definitely like the future versions :P.

as of right now, i figured out how to balance the enemies pretty well with my current method of leveling, but i am pretty sure that the more refined method will react much better, and save more space than the version i am using does. i am entering the mp's stats now for testing, and i have high hopes that it will now be a pretty decent enemy (all enemies will actually be pretty weak at low levels, and increase in power massively at higher levels, something the refined method will be fixing, making them pretty balanced throughout). after i test the mp's, i will move on to the other enemies, which shouldn't take too long to do.

i should be done with the stat section of the enemies by sometime during the night, or tomorrow, but then i will have to work on the drops, resistances, and ai modding (not much i can do for many of these initial enemies, but i can add some pumped up versions of the current moves to the enemies just for added effectiveness, while using the limited animations. enemies that use magic have it made though, because i can actually make them use more powerful attacks then, suxh as mono drive using firaga/fire3 at levels over 60, and fira/fire2 at over 30 or so.

i figured out the amount of space it would take to have an enemy gain every stat, using whole number, and a fraction of a number as a gain for every level, on top of the random chance to gain another point, and for one enemy, it would eat up 623 bytes of space, 1869 for three enemies (absolute maximum), out of the 4048 available, so almost half of the ai space. that is a hell of a lot of room to level up enemies using this method, but luckily this isn't going to be the final way to do it, and hopefully my refined one (when i figure out how i am going to lay it out), will be at most 2/3 the size of this one, because ~1200 bytes i should be able to work with, without needing to sacrifice very often, but where i am looking to hit is 1/2 the size it uses now.

of course not every enemy is going to use every stat, many will have no use for magic or mp, which will cut down some, and some enemies do not even use any stats at all (dummy enemies like rufus' plane, the mu's hole, emerald's legs, etc.). i think i will eventually add an exp/gil/ap boost as well, but it isn't going to be as random as the stat boosts, just a simple exact increase every level the enemy gains (i could still make it boost at different speeds, but it isn't necessary to do). actually, even using up half of the ai room, it should still easily fit into most of the scenes after compressing down the ai, but there isn't much room for ai growth, which is the only reason i am worried about the space limit to begin with.

whoops, found a place where i could reduce the size a few bytes... my bad XD. no need to check for the level being >= 60, because if it isn't <= 29, or <= 59, then it will always be >= 60 *facepalm*. i would also make the checks be < 30 and < 60, but there is no need since it takes the same space... makes it easier to remember where the levelup changes are.


hmm... i am actually not sure if my current method will work while using fractions of a point while leveling up, i think it will just floor the fraction. i may have to get the better version done sooner than i thought, which may push me behind a bit.

Edit: nope, i just read the WM ai section for dividing, and as i thought, it does not store fractions of a whole, but it rounds up instead of down. i will have to work on my better version then, so the method my first release will have should be the final method of leveling, though the stats of the enemies may still change as i see fit.
« Last Edit: 2009-06-23 06:20:02 by secondadvent »

secondadvent

  • *
  • Posts: 287
    • View Profile
ok, i dont think i will be coming up with a very simple and effective leveling method anytime soon, so i will just have to tweak my current method slightly, since it actually works pretty well. i just have to avoid certain fractions for the random chances, and i cannot easily add fractions of a number to the stats, so that they occasionally gain another extra point naturally (or to make a stat gain once every so many levels).

i will see if i can tweak my current method some to do what i want it to do without increasing the size, preferably decreasing it, but i don't think it is easily going anywhere...
« Last Edit: 2009-06-24 08:18:44 by secondadvent »

obesebear

  • *
  • Posts: 1389
    • View Profile
Would it not be easy to give the enemy a multiplier each time cloud reaches 5 levels? so say we have a level 5 cloud, and say the enemy's attack strength is 12.  Once cloud reaches level 10 the enemy's multiplier kicks in (maybe 1.2x for all abilities)

Granted I know nothing about any of this

Kudistos Megistos

  • Banned
  • *
  • Posts: 3929
    • View Profile
Would it not be easy to give the enemy a multiplier each time cloud reaches 5 levels? so say we have a level 5 cloud, and say the enemy's attack strength is 12.  Once cloud reaches level 10 the enemy's multiplier kicks in (maybe 1.2x for all abilities)

The problem is that exponential growth like that will lead to some pretty extreme stats at higher levels...

obesebear

  • *
  • Posts: 1389
    • View Profile
Would it not be easy to give the enemy a multiplier each time cloud reaches 5 levels? so say we have a level 5 cloud, and say the enemy's attack strength is 12.  Once cloud reaches level 10 the enemy's multiplier kicks in (maybe 1.2x for all abilities)

The problem is that exponential growth like that will lead to some pretty extreme stats at higher levels...

No doubt, but once level 40 or so is reached could it not be toned down?

secondadvent

  • *
  • Posts: 287
    • View Profile
i could do that, but it would not be a true auto leveling thing (only every five levels), and as KM said, it'd make the stats get really high. if you were to make different level multipliers, it only gets larger in size.

i took my current method, and took it down to the absolute minimum (the minimum for any method of leveling enemies, plus a simple loop of 22 bytes), and to add a certain amount of stats, 0-255 a level, with no randomization, or different ranges of values, it would take 248 bytes to do. that is the bare minimum, and definitely is not something that would work out nicely, especially higher up in level.

what i need from here is a simple way to add changing stats over the course of leveling (must be fast at first, then slow don at higher levels for normal stats, and HP/MP doing the opposite, slow then fast), and i made a very simple one before i went to sleep, for the random factor (not perfect, but does do what i need, and i was half asleep when i made it ;)). the random mod will be a not (random mod) for regular stats, so at lower numbers, it has a higher chance of boosting, and at higher levels, a lower chance, while hp will gain little then a lot, since it will use a regular random mod. here is the equation:

random mod = (num1+ level)/num2

very simple and doesn't really range much, but it does do what is intended. the first num divided by the second is pretty much the base mod, so whatever it is is what you build from. lower number num2 yields greater change, while larger is smaller fluctuations. it could use some work (and a unique one will be used for every stat), but it does a pretty decent job now. the size this equation takes if used by every stat (adding the random mod as well) would be an extra 19 per stat, so max of another 171 bytes an enemy, with a new absolute max of 446 (adding a not to all random mods but hp/mp would make it 453 :P).

i still need a way to change the constant amount added (if any is to be added) through another equation, preferably, so that it goes pretty smoothly, but size is still an issue. i guess it will have to be no matter what i try out. if i just made set constants for different level ranges (sadly no simple way to add fractions of a stat... have to make an if statement, costing 19 more per stat using a fraction of a point per level), it would cost me 33 for ifs (only three level ranges), and 6 per stat per if, to a max of 162 more for three level ranges, which is why i would like another equation, because even if it does take slightly more, it'd still balance out more than just using exacts would, and emulating the same without an equation gets massive, so it's a good tradeoff  :roll:.

if you guys can think of any simple equations (or complex if it only needs one value added per stat, and is based off of level >:D) that would help me out, i am all ears, because i suxxors at making equations up :P. hp needs to be able to gain a large (like a couple hundred or more) per level in the high ranges, depending on the enemy, so it could need a separate equation, and mp is similar, but a weaker equation should still be fine (never need to gain over 255 a level for it, 255 at 255 levels is near the cap of 65535 :P).

since i know it will be al large amount of ai space either way, i would just like to balance size used with performance. the method the party uses could get up to around 800 bytes when done, and that was just for setting variables alone  :-o, so lets call that the one extreme :P. the other extreme is the basic add x per level, taking 248 bytes to do, but doesn't offer much appeal, being weak in the beginning then massively overpowered at higher levels unless only using a constant of one for basic stats. if one equation would do a simple amount, and cost a total of 550 bytes for all stats, but a 580 byte one did it 10x better, i would sacrifice more space for the much better system. right now, performance while keeping size to a minimum is all i really need to do, i will worry about the enemy attack ai when i get to it, but for now this is taking priority.

i think i am going to take a break from ffvii for right this moment, and work more on uncovering breath of fire iii info (which i found much of, it is very easy ;)), but don't hesitate to post here, because i will still be keeping up with things here. in all actuality, if i were to do a full hard mod for bof3, it wouldn't take more than a month to complete, and that is if i took my time, since it is that easy to do :P.
« Last Edit: 2009-06-25 19:15:24 by secondadvent »

Izban

  • *
  • Posts: 432
    • View Profile
ok equations are easy

(a+b)(a+bc)= d easy enough

a = level
b = stat you wanna increase
c = the incrimate range
d is the result

lvl = 10
hp = 50
c = 1 cause its sub 30
d = 3600
now if level is 40
lvl = 40
hp = 50
c = 2
d =  16200

these would be for a boss is my bet or solo enemy
« Last Edit: 2009-06-26 11:09:41 by Zack Fair »

secondadvent

  • *
  • Posts: 287
    • View Profile
edit: the only bad thing i noticed about the equation is that the hp doesn't boost a great amount over every level, the first level usually gains the highest jump, and it gains the same amount every level. it isn't very random friendly overall because it doesn't loop for the answer (a good thing in the end), and though i could give it some more added mods of it (for different level ranges), that would eat up space fast, because setting just hp alone takes a good bit of room to do. i have to use a single equation for the hp amount, and im going to tweak it until it grows perfectly >:D.

ok, right now i have it using this equation, which still needs tweaked more, but is beginning to give a better fluctuation of the growth rate, and it looks like this:

(level+(hp*random(between 20 and 40)/30))*(level+(hp*random(between 20 and 40)/30)*modifier)

this gives some extra variation between enemies even at the same level, though the random# and the divisor may be changed later (good randomness now, so not really necessary). the two randoms are separate from each other, so to get the same numbers twice is a 1/400 chance right now. for making the randoms between certain values, just add a number to the value, so random(21), which normally gives a value from 0 to 20, would now be 20-40 ^_^.

edit, i think i have it now. i now have the little extra growth modifier affecting hp like this:

(hp*level/modifier2)

and the modifier2 may be set to 255, since that is the max level. at lv 1, using a regular mod of 1, the enemy had 34 hp (base 30), and at 10 it boosted to 447, and at 20, 1117 hp, so definitely not an exact boost per level anymore. this will take a lot to implement, but should be a very nice little equation to use, since it will work for any enemy, i will just have to tweak a few values and it does the rest (also easy to implement in excel >:D). my new final equation is:

(level+(hp*random(between 20 and 40)/30)*(level+(hp*level/modifier2*random(between 20 and 40)/30)*modifier)

which should work pretty nicely now. i could also remove the double random part and just leave the level mod, if space is an issue, though enemies of the same name and level will have the same hp, but that is no big deal. for now though i will keep this equation as the final for hp and mp

meh, i suck at coming up with the bases of equations... i just need a little push here and then (because the old cogs need oiled >:D)

ok, here is a list of some levels and their outcomes with the different equations, all with a mod of 1, and base hp of 30:
base equation, level 1: 961
level 50: 6400
level 100: 16900

random equation, level 1, min: 441
level 1, average: 961
level 1, max: 1681
level 50, min: 4900
level 50, average: 6400
level 50, max: 8100
level 100, min: 14400
level 100, average: 16900
level 100, max:  19600

steady growth equation, level 1: 34
level 50: 4470
level 100: 14529

full equation, level 1, min: 22
level 1, average: 34
level 1, max: 47
level 50, min: 3774
level 50, average: 4470
level 50, max: 5205
level 100, min: 12941
level 100, average: 14529
level 100, max: 16196

as you can see, the growth one is superior to the random and original ones at making a nice growth curve, where the random and originals start high and keep a steady growth. the full version is definitely better, but takes a lot more room to do, so the plain growth version could be used instead. the stats shown aren't going to be specifically for anybody, as it still needs tweaked a tiny bit to start the hp growth off better, though the amount it grows to is plenty high enough (maybe too high :P). i will just have to find a good balance with the numbers, but nothing should need to be added to the equation other than what is already there to make it more balanced.

i think for the other stats, i may use a similar equation, but make some number divided by the level, so that it slows down or completely stops growing a constant amount, but that will require a random to gain more after that (random could be (not (random(level/some number))), where it only gains a point if the random is = to 0, so essentially a 1/(level/some number) chance for one point gain, and making it high at first and much lower later works similar to the game's leveling system. since the hp/mp equation is pretty much perfect now (just have to manually tweak for ever enemy), i think i will make a remaining stats equation now, probably based off of the base zack fair posted, or off of my own.

ok, i shortened my post by removing the older junk i put up, so now it should be less to read. again, thanks zack fair for the equation, you gave me a nice base which i tweaked into my current one :P.

the hp/mp equation could still probably use some tweaking to grow less overall, but i think it should do fine for now, and adding more to it could be bad anyway :P. i could possibly add the hp to the level before the random kicks in (or the growth mod), but i don't think i will do anything else to it anytime soon. with this equation, i have to keep the base hp down, or else it will become too high, so when i mod everything, i will have to create a base lv 1 version of every enemy, or else bad things could happen.

meh... i can't think of anything that will work to make the amount grow fast, then slow down over time, while keeping ahead of the previous amounts. ive had some that did slow down, but would require looping to keep the values growing at level up (weren't good anyway), or that grew really fast, then went negative >_<.
« Last Edit: 2009-06-27 05:20:40 by secondadvent »

Izban

  • *
  • Posts: 432
    • View Profile
how quick do you want it to increase you could always use an exponential increase
(a+b)^2(a+c)^2

secondadvent

  • *
  • Posts: 287
    • View Profile
it needs to stay at or below 255 (510 is preferred max for defenses, but for other stats 255 is the cap) for all stats, and it has to grow a few points a level the first 20 or so (like a max of three points per level, which is a little high), and i don't think i can directly do exponents, since there is no opcode for that (would require a little loop for an exponent of x, or just the same part of the equation written again for ^2), which is why i have been having so much trouble. exponents would work well if i could simply use them like adding or multiplying, but i do not know if it is possible.

now for ^2, it isn't too bad to add a part in again, but if i add a random or a separate thing in that part, i'd have to do that for the stat again, and that'd eat up room fast, especially since i have to make this for every stat except hp/mp, so up to 7 times used.

the things i can use are +, -, *, /, AND, OR, XOR (those three being bitwise special combinations that i try to stay away from :P).
« Last Edit: 2009-06-27 05:57:52 by secondadvent »

Chocobo

  • *
  • Posts: 35
    • View Profile
What about monsters around Midgar (and other easy-monster places) are like, 10 or something levels below you. Monsters in hard places (Damn. Can't remember any... Sunken ship?) Would be 10 levels higher than you? Just an idea. Medium leveled monsters would be just around the same level as you.

Anyway, it would be nice to have this... Good luck to all of you.