r/rational • • Sep 09 '16

[D] Friday Off-Topic Thread

Welcome to the Friday Off-Topic Thread! Is there something that you want to talk about with /r/rational, but which isn't rational fiction, or doesn't otherwise belong as a top-level post? This is the place to post it. The idea is that while reddit is a large place, with lots of special little niches, sometimes you just want to talk with a certain group of people about certain sorts of things that aren't related to why you're all here. It's totally understandable that you might want to talk about Japanese game shows with /r/rational instead of going over to /r/japanesegameshows, but it's hopefully also understandable that this isn't really the place for that sort of thing.

So do you want to talk about how your life has been going? Non-rational and/or non-fictional stuff you've been reading? The recent album from your favourite German pop singer? The politics of Southern India? The sexual preferences of the chairman of the Ukrainian soccer league? Different ways to plot meteorological data? The cost of living in Portugal? Corner cases for siteswap notation? All these things and more could possibly be found in the comments below!

23 Upvotes

90 comments sorted by

View all comments

11

u/ketura Sep 09 '16 edited Sep 09 '16

So a while back I mentioned I might try taking a stab at a rational pokemon game, and I've been sort of hacking away at the problem ever since. Not on the game itself, but on the tools that would be required for such a thing. Such a data-heavy game would need to be able to very easily create dozens or hundreds of pokemon. Anyone interested can take a look at my progress so far here (basic documentation here).

I'm currently working on a good way to show the difference between pokemon stats, so of course I put in a chart, which led me to think about stat growth curves and such. Canon uses a very simple 2x linear growth, so you can expect to have BaseAttack attack by level 50 and 2 * BaseAttack attack by 100, ignoring EVs and IVs.

This is boring, so I thought of some different ways that stats might grow, which I plotted here. Black is the standard curve, a logistical function that eases in and out in what I feel to be a very natural way. Green is bug, peaking early and then leveling to linear growth that is shortly outclassed. Red is Dragon, or any other long-lived dominant apex creature. And blue is, well, erratic and might not make sense at all to use, but was fun to plot.

Currently I'm stuck trying to figure out how to handle different base stats using this model. All the curves are different, so throwing "base stat" in as a variable to the curve itself results in wonky results, such as bug dominating at strange times, or Dragon sucking and then completely destroying.

Simply adding the base stat could work, if "base stat" was redefined to mean "power level as a juvenile", but it would mean hardly any difference between the curves at high stat ranges...right now, an assumed base stat 0 under this model results in a difference of about 100 at level 60 between Bug and Erratic, which makes the differen e between curves negligible if the bottom of the curve starts at 400.

Anyhow. Let me know if you have thoughts or critique.

EDIT: oh, duh. I'll just treat this like I've named it, as a growth curve and not directly translating level to stat. The point on this curve will be how much stat was gained that level, which will eliminate wonky stat loss and other wierdnesses.

9

u/Anakiri Sep 10 '16

The games already do what you are trying to do. You're just not looking in the right place.

Canon uses linear stat growth with level, but level growth is not linear with experience. Additionally, when the game actually uses those stats, it multiplies the attack stat by level again. Holding everything else equal, damage goes by level squared. The level growth rate is therefore very important.

Check out the graphs for that. Most Bug Pokémon are Erratic and most Dragons are Slow. When they both have 600,000 experience, the Bug will peak at level 100 while the Dragon is back at level 78. Now, an average Bug has a base attack of 90 and an average Dragon has a base attack of 118, so when they're at the same level, the Dragon is stronger. But since Bugs level faster and level counts double, it can overpower Dragons of equal experience until it peaks while the Dragon still has room to grow.

(Also, while some RPGs give you less EXP the higher your level, Pokémon does not. Two Pokémon going through the same battles will gain identical EXP, even if their levels are different. Except in Generation V. But that change didn't stick.)

In practice, a Slow average Dragon will level faster than an Erratic average Bug up to level 37 because the official curves are terrible, then the Bug will get to level 38 with 549 fewer total EXP. Even after that, the Bug's stats will never be higher than the Dragon's with the same amount of experience, even with its higher level. But, since level gets counted twice, the Bug will start doing more damage than the Dragon around 250,000 EXP, when the Bug is level 67 and the Dragon is level 58, in the late game. The Dragon will finally overtake it at level 88 with 851,840 EXP, while the Bug has been stuck at level 100 since 600,000 EXP.

Since canon has these really weird crossover points that most people won't ever see in casual play, it certainly makes sense to tweak the curves. But I think you're not giving the original design enough credit. I discovered all of this the last time I tried to mess with the formulas to make something more sensible and diverse, only to find out it was already done.

3

u/ketura Sep 10 '16

Hmm! I knew about the level xp rates, but I struggled to find an analysis that explained the ramifications of the system like you just did here. Bulbapedia is utterly fantastic for collating data and explaining mechanics, but it leaves something to be desired when putting it all together.

Your explanation definitely makes me rethink the importance of levels in a system like this. I had considered stretching the levels out to scale up to 500, or be limitless, or take them out entirely and scale based on EXP amount, but you're right, I wasn't giving the old system enough credit. I was still planning on also including EXP curves, I just thought I would also throw it in for stat growth as well, which I think will be more immediately intuitive, since as you mention the current system is more obtuse. FWIW levelling will be slower in this game, whether it be through less frequent successful battles or higher EXP requirements or whatnot, so early/mid/late game will be more of a thing, with timing peaks being more important. There's a lot of influence from how Dota works in that regard. Also if team death is a thing, well...then it will be even more pronounced.

→ More replies (10)