![]() |
I'd like to bounce an idea off you guys: Difficult Pokemon Without the Grind
As with many who've grown up with the series, starting all the way back in Pokemon Yellow, I stomped my way through every game up to Emerald by virtue of simply throwing my starter out in every battle and being horrifically overleveled. After delving into communities here and there and seeing that this wasn't the only way to play, I used (slightly) fuller teams from then on out, but not much changed, although I did still enjoy the games.
It wasn't until I heard about the concept of the Nuzlocke that the idea of a difficult pokemon game came into my head and appealed to me wonderfully. Then I tried it, and discovered that I still run into the issues of level; to reliably keep my team alive (and usable), I had to spend quite literally hours grinding fresh catches in wild grass. It was not long before I just got bored. Interest in pokemon dipped a bit until I found Showdown and began to enjoy actually using these mechanics properly for the first time. I've since found romhacks, kept up with the series, and dabbled here and there in competitive, in gen3 hacking, in all sorts of stuff. Then I had an idea, after looking at all these different takes on a difficult pokemon game, which brings me to my point: I think the idea of pokemon having levels could just as well go out the window. At least, that's what first popped into my head. There's a simpler implementation though. My reasoning, as concise as I can make it.
My solution to this problem is honestly very simple: treat every pokemon as if it were level 100 in regards to stats at all times. Level-up moves and evolutions would remain unchanged. Differences in stats would be dictated entirely by IVs and EVs. I'm going to make a list of pros and cons off the top of my head, what I've come up with so far. And to clarify, this is from the viewpoint of being applied to a 3rd gen ROM in the interest of increasing difficulty and enjoyment. PROS Spoiler:
CONS Spoiler:
But to finish this post, let me discuss implementation. I think I've summed up the major changes that would need to be made in just a few points.
With the importance of EVs, some tools for players to manage them more easily wouldn't go amiss; EV checker, access and/or alternative to the EV-dropping Berries, cheaper vitamins, Power Items and Macho Brace, possible training areas, etc. I've likely forgotten and overlooked a great many pros and cons due to a combination of excitement, and idealism, so don't hesitate to offer any. Tried to be concise, so if something's not clear don't hesitate to ask, either. Hope you guys like the idea. |
Surely this sort of system would just lead to longer battles in the earlygame, where moves are weaker, and faster battles in the lategame? The way I see it, if everything is at level 100, basically nothing is, and that removes the difficulty that would come about from level inequalities, which are not always an inherently bad way of increasing the difficulty of specific battles.
|
I don't think that this is feasible from an implementation perspective in an indirect sort of way. For stats, "treating everything as level 100 without it being so" is quite easy actually. Just change the function that calculates the actual stats for party Pokemon to use level 100 instead of the actual level. However, you forget that the AI is pretty terrible. It's only really capable of making decisions based on type match-up and some abilities (i.e. it can counter abilities like Wonder Guard, and I have seen code which seems to use Natural Cure). However, that's basically as smart as it gets. You mention nuances, but there are none: brute force is basically the only way the AI increases difficulty; Battle Frontier just uses EVs to buff up enemy teams. If you remove level inequalities, you basically remove the difficulty - all battles would become the same, tedious affair.
You cite removing the need to grind as one of the key issues for implementing this. However, this is not the only solution to that problem. For example, you could just break grinding entirely by adjusting the experience calculation to grant no experience if the defeated Pokemon is of a lower level than you. Therefore, you could only gain experience by moving on to higher-levelled areas. This would also solve the problem of unbearably long battles that Spherical Ice pointed out. Maybe you should test the feasibility of this by either implementing the hack I suggested (changing the actual stat calculation) or by manually levelling everything to Lv 100 and seeing how that works with a standard play-through. |
Quote:
But you're right about the length of battles. In the early game battles would be too long because using bubble on a pokemon with 100 SpD and HP is not going to put a dent on it. (EDIT: Actually thinking about this more, if all Pokemon stats were set at lv100 then the attacking pokemon would have a high attacking stat, too, so the only mitigating factor that could slow down battles here would be move base power, which is the same condition as normal level curves. So actually, battles wouldn't be any slower or faster than they would be if the levels tracked like I suggest below.) [This is irrelevant after editing] I think a solution that would make more sense is if enemy pokemon scaled to your current pokemon levels - both for wild pokemon and trainers (with wild pokemon being set a level or two lower, trainers on point, and gym leaders a level or two higher). I don't know if that's possible, but they do it in games like Skyrim (I think). This would make level curves a non-problem and difficulty perfect. [/This is irrelevant after editing] EDIT: In summary, I really like this idea and think it would actually work perfectly. If you, OP, could implement this into a game (maybe on it's own to make it less work) just to test it, I would love to give it a try. |
Since grinding is a big thing for me in gaming (In regards to gaming, I talk about this all the time in the VG forum)- hell, I talked about something similar to this in the DCC. Actually, lemme grab that:
Quote:
|
Quote:
Quote:
If your opponent's pokemon have a type advantage and power to use it, you could well lose a sweeper (many of which are quite fragule and can't take a switch). This makes stall tactics totally viable ti have in the bag to bail you out of tight situations (Blissey, Poison Heal Gliscor, Prankster Sableye, etc.) and means that your sweepers better have coverage and be able to set up sufficiently. Or that's my hope, at least. You say implementing it would be simple; is there somewhere you could point me that would explain how to go about doing this? |
I think a good way to increase difficulty to enourage thinking and strategy is to limit the healing items the player can use. Make healing items expensive or limit the amount of money the player can get, so they have to ration and use their items wisely. Ruby Destiny Life of guardians did this pretty well (but you could just spam perish song lol).
Another thing is to take note of the pokemon the player would have encountered and probably caught so far in the game and make the bosses team counter a significant portion of them. so if the starter is squirtle and the pokemon so far enountered are birds, rock types etc, make the boss team electric and grass based for example. You can also make a script to cut the pokemons hp by any amount you want and then start the battle, so the player is at a disadvantage. Theres many things you can do. |
I'm excited to see that I'm not the only person who has been thinking along these lines! I think that just balancing the levels doesn't go far enough, in-battle items lead to Full Restore spam, and that takes all the difficulty out of the game. Instead I'd have the party heal between battles, like in the Battle Tower.
In my opinion we already have a series that deliver high difficulty with almost zero grind, and it adapts to the player's skill: Pokémon Showdown. Once we put battles on an even playing field we can scale the difficulty by fiddling with the parameters of our AI. Obviously this requires some very intelligent AI, albeit you could probably compensate somewhat by giving the AI additional or more powerful Pokémon. I don't have such an AI to offer you, but I would love to be involved in an effort to develop one! I suspect that for casual to intermediate players looking just 2–3 moves into the future and identifying which 'mons are most threatening to the player's team (and thus not risked) would provide a fair challenge. You suggested that you'd keep EVs and level-up moves the same, and I presume you'd also leave natures and evolution as-is. I'm not a huge fan of that, because you're still asking trainers to grind (in the case of natures catching many 'mons) so that they can get the most out of their team. IMO the player should have access to unlimited-use EV/nature changing NPCs and TMs. I don't know what to do about evolution, maybe expand the set of elemental stones, any ideas would be greatly appreciated. I think that something has to be done to make wild Pokémon encounters more interesting as without exp there's little point of doing any battles once I've scouted out what's available in the area. Again I'm at a loss for suggestions. I don't mean to criticize, and I'd certainly play your game through to completion when it's done. I look forward to seeing how you develop the idea, so please keep this thread up-to-date! :) |
Quote:
As far as the AI goes, I think that project would be an enormous undertaking in its own right; I, and I suspect all but a double-handful or so of the users here, have only a small amount of experience in coding. Only enough, in my case, to know that finding and revamping the AI in the mess of assembly that is the 3rd gen games would be difficult, to say the least. As it is, though, the lackluster AI works in our favor, as it means players can use slightly sub-optimal pokemon and still have great success. For the perfectionists though, the reduced xp load would mean that catching or hatching a pokemon with appropriate nature and IVs would not be a big deal; by the time you've got it EV trained, the majority will then be evolved already and the rest will take only a few minutes of training to get to that point and have all the level-up moves needed. The wild encounters wouldn't be to provide reward to players, although that's not a bad idea. Their primary purpose would be to add to that sense of exploration and adventure. This would rely on the wild pokemon having a high chance of not letting the trainer escape when they try to run, meaning you have to fight or risk them getting in a free hit. As far as reward goes... of the top of my head, being rewarded with any items the wild pokemon is holding at the end of battle would be a simple way to do it, and hopefully not tough to implement. May require rebalancing of wild held items. |
An idea somewhat close to what others have suggested would be hacking the "EXP amount received" (= calculated from the level of the enemy and base EXP given rate of that pokemon) & "EXP amount required to level up" functions.
If you for example changed these functions so that each time pokemon gains a level, it both requires and gives 1.5 times the amount of EXP it would require (or give) at the previous level. This would make a huge difference quite fast; If pokemon Y would require X amount of EXP to level up from lv19 to 20, it would require (1.5)^5^ * X = 7.6* X amount of EXP to level up from lv24 to 25. Then again, for example 1.5 ^ 6 = 11.4 > 10. Basically, each time you gain 6 levels, you start getting 1000 EXP instead of 100, next time 10000, 100000, 1 000 000 etc. This would require some working out though because the game is only meant to store experience as a 3-byte value probably (which basically means that the maximum amount of EXP you can have is 256^3 - 1 = 16 777 215. But if this was stored as a 4-byte (or maybe 5-byte) value instead, that could be changed either into over 4 billion or 1 trillion. But yeah - this kind of change would easily implement the functionality for making it practically impossible to be too many levels ahead of the enemies encoutered on the area you are on. |
Quote:
The numbers and the implementation seem meaninglessly complex to me as well, though that's more a personal opinion thing than a flaw in the idea. At least, with some tweaking they'd be fine; as is, if it's 10 xp from lvl 1 to lvl 2, we're looking at 10,000,000,000,000,000 xp at lvl 99. I know that'd be scaled to xp gain, but there's no reason we need to use numbers that big and it'd likely make a mess of the code. No need to use doubles when we're working with assembly. I appreciate you brainstorming ideas here though. The best laid plans often go awry, as the saying goes, so having alternative solutions is excellent. |
Quote:
Anyway, I didn't realize you were meaning to make it possible to catch pokemon from anywhere, no matter how far you are in the game, to make use of those caught pokemon. So of course by taking that in consideration, doing this exp function hack wouldn't work out. |
For me, although I understand the appeal of competitive battling, I think that appeal is greatly diminished when you're playing against AI. Because of this, I believe level variation is very important for the in game playing experience. That said, from what you've said in the OP, why do you even want the current form of EV training to begin with? You can't "grind" to be a higher level than your opponent, but you can still "grind" to have superior EV spreads. Surely it would be better to control "EV's" with a completely different system, most likely from the overworld. For example, defeating trainers gives you points that you can then use to alter the "EV's" of your pokemon. You could also alter the system to control the amount of EV's any of your pokemon can have based on where you are in the game.
|
Quote:
|
Quote:
But my point is that you don't have to make the game competitive level or a time shaver for it to be difficult. There are other ways, and I can't really see a Pokemon game where competitive teams have trouble against AI opponents being truly difficult and fair. And, when you really get down to brass tacks, if you spend all of this time worrying about EVs, limiting your options, and the like, at the end of the day once you actually do create this optimal team...well, that's it. There won't be a sense of accomplishment, since it will likely be a one-time thing, there won't be constant feelings of progress because you're not being rewarded in a meaningful sense (unless you do provide a way for a meaningful reward to be given), and if you hit an enemy that's a well then you just have to do more grinding, and in that sense I can't much see how that would be fun. |
Quote:
Bottom line I think is that we're getting into philosophy here. I think it's pretty widely understood that the vanilla games are not hard. Many, many players have thus chosen to change this somehow, whether through limiting themselves (Nuzlocke, Shuckle or Magikarp runs, etc.) or through changing the game itself (you guys here). The former all rely on the integrity of the player, while the latter implement hard-coded rules and paths to follow. They all have varying levels of success and are enjoyed by differing players to differing degrees. This idea I've had is falling into that second category; it's another strategy to increase the difficulty of the game, and how successful it could be remains to be seen. In a sense, it's a very powerful form of level scaling. Creating an optimal team is one way for players to enjoy a game. And they can do that in any pokemon game with, as you said, no more progress from that point out. How they choose to enjoy it otherwise is up to the player. |
Quote:
Overwrite the bytes at 0x03E544 with 01 90 64 20 00 90 28 1C 38 21 01 AA (FireRed) This changes the stat calculation to use level 100 instead of the actual level. You can still level up and learn moves, but your stats are unchanged except for EVs. Be aware that the beginning battles are awful. You run out of PP for tackle/scratch/etc every battle and Potions and things are useless. I just turned on autofire A and fast forward because it was so terrible. |
Quote:
Regardless, just leaves xp calculation to modify. As far as early-game slowness goes... wouldn't be hard to rearrange early movesets to include some STABs, or just start at level 7 or whatever things are. Thank you so much, man. I'll probably get started on this tonight. |
Quote:
|
Quote:
|
Quote:
The attack:defense ratio is similar, but HP is most certainly not. Furthermore, the damage formula takes into account level. Try plugging in a level 5 pokemon to (2 * level + 10)/250 and see how much a 40 base power non-stab move does against pokemon with 300-400 HP. The damage formula is made in a way that keeps in mind the fact that your attacks are far weaker at lower levels and that when pokemon have higher HP, they're also higher levels. |
Quote:
...hopefully there's documentation on messing with the damage formula. Looks like just changing that [Level] variable to a static 100 might fix the whole problem. |
I made a game like this, it works pretty good, i posted a thread about it
|
I made a game pretty much like this, and I made a thread for it about a week ago, the game is really fun, but I'm more into competetive battling than programming, so I haven't gone deep into game coding, but I have changed A LOT, every attack, every Pokemon, everything, it's a much more balanced evnironment than before.
(sorry for the double post, new to PokeCommunity as well) |
Quote:
EDIT: Just tested these in FireRed and it makes the beginning battles more tolerable and the damage ranges for tackle seem more reasonable. Potions are still useless though, and movesets should be updated. |
| All times are GMT -8. The time now is 2:19 AM. |
![]()
© 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.
Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.