Blah
Free supporter
- 1,924
- Posts
- 12
- Years
- Unknown Island
- Seen Feb 19, 2025
So I've been working on level curving and completely slacking on everything else I promised to do.
Before I start my explanation, let me first iterate that this thread's purpose is to achieve an ASM solution to the level problem.
Goal:
Create an algorithm which calculates appropriate level of wild and trainer and given Pokemon factoring in trainer's party, and Pokemon species which we are encountering.
- No exploits should be present (i.e, if I made this average level, and had a lvl 1 Pidgey in the team)
- Eliminate pointless grinding (Should not have to grind to catch up to lvl curves, and it's pointless to try)
- System should not eliminate the need to capture and train Pokemon
- Opponent's party size taken into account.
- Should be expandable, and have many "disable" switches
Let me now explain the motivations behind each of these goals I think are reasonable.
Ideas:
Average level: Get the average level of top 3 leveled Pokemon in your party, and use that level
Exploit: The one trick pony route. Have one high level Pokemon, and the rest low leveled. Any form of average levels has this issue
Max level: Get the max level and minus (0-5) from it.
Exploit: None. But you lose to need to capture and train your own Pokemon when wild Pokemon out level them due to the calculations with max Pokemon level
My idea: Base stats level cap + Max level
Basically, use the Pokemon's base stat total to determine a maximum level in which it can be in the wild.
Base stat (0-220): Level range: 0-15 ; use max level to determine. So if max level > 15 +5 then we get these Pokemon as lvl 15
Base stat (220 -320): Level range 10-30 ; use max level to determine
Base stat (320-420); Level range 25-40 ; use max level to determine
Base stat (420-500); Level range 35-60; use max level to determine
Base stat (500+); Level range 45-100 ; use max level to determine
Do you have any ideas to make this better? Maybe ideas of a better algorithm? The idea is to balance Pokemon throughout the game, Pokemon given to you and Pokemon you find. Both.
Before I start my explanation, let me first iterate that this thread's purpose is to achieve an ASM solution to the level problem.
Goal:
Create an algorithm which calculates appropriate level of wild and trainer and given Pokemon factoring in trainer's party, and Pokemon species which we are encountering.
- No exploits should be present (i.e, if I made this average level, and had a lvl 1 Pidgey in the team)
- Eliminate pointless grinding (Should not have to grind to catch up to lvl curves, and it's pointless to try)
- System should not eliminate the need to capture and train Pokemon
- Opponent's party size taken into account.
- Should be expandable, and have many "disable" switches
Let me now explain the motivations behind each of these goals I think are reasonable.
Not really any explanation to be had here. If the level calculation has an easily exploitable hole it needs to be redone completely. We should never rely solely on a single algorithm. Whether you use average party level or max party level or anything like this, as a single algorithimn, you will always find some hole. The idea is to come up with an "if else" style level generator where both the algorithms cover for each other's "exploit-case".- No exploits should be present (i.e, if I made this average level, and had a lvl 1 Pidgey in the team)
This is kind of the purpose of a level generator. We want to make sure the player doesn't feel like they should have to grind levels on the grass to progress further into the game. I think that level grinding is actually a boring exploit in the current system which allows for easy game play. Something that someone has suggested to be was an exp regulator to go with the level curving, so that you don't really get any exp for grinding levels in a pointless fashion (but how would you do that if at all?)- Eliminate pointless grinding (Should not have to grind to catch up to lvl curves, and it's pointless to try)
Say you have a group of level 24-25 Pokemon. You raise one up to be level 30. Now the wild Pokemon you find would be higher level than the rest of your party. You could go into the wild and capture a whole new party of Pokemon which are higher level than yours, and rise/repeat the process until lvl 100. Effectively, you've only grinded 1 Pokemon to get a team full of fully leveled ones. This kind of issue arises if the curving system out scales your team. We need to think of a way to counter this.- System should not eliminate the need to capture and train Pokemon
So if I fight a trainer with 1 Pokemon, I believe that this trainer's Pokemon should be higher level than fighting another trainer with 4 Pokemon. With a curving system, it becomes very difficult to progress through the game when you have to face streaks of trainers with large Pokemon party pools (since they are the same level range as your party). Visits to the PC would happen often, we need to figure out a good algorithmn to tone down these levels too if there is a large party which you must face- Opponent's party size taken into account.
Obviously, you may want certain trainers or Pokemon to have a static level. For example, I may want a legendary to be set at level 50.- Should be expandable, and have many "disable" switches
Ideas:
Average level: Get the average level of top 3 leveled Pokemon in your party, and use that level
Exploit: The one trick pony route. Have one high level Pokemon, and the rest low leveled. Any form of average levels has this issue
Max level: Get the max level and minus (0-5) from it.
Exploit: None. But you lose to need to capture and train your own Pokemon when wild Pokemon out level them due to the calculations with max Pokemon level
My idea: Base stats level cap + Max level
Basically, use the Pokemon's base stat total to determine a maximum level in which it can be in the wild.
Base stat (0-220): Level range: 0-15 ; use max level to determine. So if max level > 15 +5 then we get these Pokemon as lvl 15
Base stat (220 -320): Level range 10-30 ; use max level to determine
Base stat (320-420); Level range 25-40 ; use max level to determine
Base stat (420-500); Level range 35-60; use max level to determine
Base stat (500+); Level range 45-100 ; use max level to determine
Do you have any ideas to make this better? Maybe ideas of a better algorithm? The idea is to balance Pokemon throughout the game, Pokemon given to you and Pokemon you find. Both.