183 comments

[ 4.2 ms ] story [ 227 ms ] thread
Beautiful presentation. I love when visualizations serve the goal and not the other way around. Tufte would be proud.
Bugs out for me in Firefox at around 2/3. Works fine in Safari.

My kid (6) crashes all the time, and she is naturally attracted to picking Peach. I'd say because of that, a character with high acceleration is going to be better. Though she also just likes to push the gas.

Though we're playing the one from GBA on Analogue Pocket. Which is probably a lot less advanced as the one in question here (a game for Wii U from 2012), it does resemble Wacky Wheels quite a lot.

Gotta teach the kid about using the brake and the "poomp" slide (called boost after N64) on the corner. I race Mario but when she's on, mine (8), can get me on the 150 tracks (switch). I'm still crushing on the 200 tho (for now) ;)
Bugged out for me around 2/3 on Firefox/iOS (which is really Safari) with Lockdown mode.
FYI Mario Kart for the Switch has a handful of accessibility options that help less experienced/younger/elderly players stay in the game and on the course without taking away from the fun.
The switch from 2D to 3D was so seemless and beautiful I actually gasped.
Yep same, I let out an audible "nooooo....".
Maybe it was 3D the entire time. :)
Same. What a beautiful plot twist.
Thanks a lot! That was my goal. It's a trick I learned: if you zoom in from a distance, everything appears flat. The effect is achieved by zooming out while simultaneously moving the camera closer to the subject!
Could you not just use a parallel projection (which should be the default for this kind of 3d scatter plot)?
Yes, I could have been using THREE.OrthographicCamera(), however, it makes the effect way less cinematic, and most importantly, it makes the depth harder to see (particularly for a scatter plot).
I love how that transition is relative to the scroll position rather than working off a breakpoint. Did you consider doing the same thing with the first bar chart? I think it would be nice to slowly reveal the standings :)
Honestly, I was so impressed.
> would

Tufte is still alive!

Of course, but I'm not inside his head :)
Excellent article! Super approachable and relatable, making it very good at explaining a useful model.

It immediately has me looking for other places to apply this. This'll be top of mind for a while!

This excites me to consider using it as a design tool. When trying to design a game with a more large pareto front of fun and viable builds.
I really like the article and the presentation!

With that in mind, is this style of presentation (i.e. different elements jumping out or moving into focus as you scroll down the page) easily doable OOTB with any JS libs? Or is this pretty much a custom job?

keyword you want is “scrollytelling”. lots of tutorials here and on youtube. easy to start hard to master like with most things.
One thing this should mention is what game version it uses. Updates frequently change the stats and thus what builds are “best”.
The first paragraph mentions this: "In Mario Kart 8, ..."

If this was more than a tool for teaching multi-objective optimization, I'd like to see how the Pareto front changes over Mario Kart releases!

Mario Kart 8 is now frozen, no more patches to come.
Wait, Bowser and Wario are the fastest? I thought it was the other way around. I guess it's reversed from Mario Kart 64.
I'm not sure, but it kind of makes sense as a choice, since acceleration and speed should be negatively correlated and since Bowser and Wario are both massive they should accelerate more slowly than others (given constant force). So they get to have the highest top speeds to compensate.
In a real kart a heavier driver would have lower top speed and acceleration, in exchange for better handling (more body weight means you can more easily shift weight to the wheels that need more traction, unlike a car where the driver's weight is insignificant).

But they seem to have ignored kart physics and made it more like a car, where bigger cars might accelerate slower but can accommodate a more powerful engine.

Why would the top speed be lower? Because of increased friction with the ground due to the weight? Ignoring friction, I think what I said would be true.

I hadn’t actually thought about it before but as an incredibly skinny person what you said lines up with my experience in a kart. I could seemingly go slightly faster than others but more easily span off and lost control.

Given two equal karts I guess top speed would be the same but most courses don't have long enough straights to let you reach full speed.

When I wrote that comment I was thinking one might tune the kart for the driver to make up for lack of acceleration which would reduce top speed.

Actually, I'm talking rubbish since without friction there wouldn't even be a top speed. It's true that having a high top speed is only useful if you have enough time to accelerate up to it!
It’s exactly as in Mario Kart 64! Remember, heavy characters have the higher top speed, but light characters have the higher acceleration!
I distinctly remember that the light characters had the highest top speed in Mario Kart 64. And according to this table, I'm right: https://tasvideos.org/GameResources/N64/MarioKart64#:~:text=...
That'd make the heavy characters completely useless, once you're behind, there's no way to catch up anymore!
Yes, except for items and doing better in the pack.
Heavy characters in Mario 64 have tighter handling than lighter characters and can cause them to spin out when bumping into them.
How, if both your acceleration and your top speed is worse?
I'm not sure what exactly "how" is referring to, but by "tight handling" I mean having a smaller turning radius and losing less speed when turning.
It's not a big difference and you can't be at top speed for long.
It was similar in the original Mario Kart of the SNES. I clearly remember always choosing toad or koopa because they "felt" the more average to me. Donkey Kong was difficult to handle and also had slow acceleration, same with bowser.
Yes, but with their poor acceleration, and given how chaotic some Mario Kart races are, it is hard to achieve their maximum speed.
(comment deleted)
(comment deleted)
Yes, but higher-speed characters have lower acceleration and less mini-turbo, which disadvantages them in many situations.
Well... that was a seriously impressive presentation. I already knew about Pareto efficiency/the Pareto frontier, but now I'll never be able to forget it. And I'll think of Mario Kart (and poor Koopa being dominated) every time.
If it was Pareto efficient, Koopa would do better too.
Playing with Koopa is MK on hard mode, and you can feel better about winning. You'll be like Piccolo or Rock Lee keeping their weights on while training ;)
These are the sorts of articles that a lot of news sites and digital publications dream of when pitching venture capitalists to cultivate this as a new sort of medium. But I've always found that the most compelling stuff, the most compelling digital presentations are often emergent. I think designing around it as a goal is impossible and often comes off as contrived and annoying. However, there are a times like this where it's just stunning as in, "yes, please hijack my scroll, go ahead".
From what I understand of Svelte, it was built by a working data journalist with the dream of enabling these type of rich media articles. So yeah, 'emergent' and 'uncontrived' are in the DNA of this article and the tech beneath it.
I wonder if Koopa does better with different customization?
One thing I noticed is if you set the graph axes to "Speed" and "handling" and the weight slider about 3/4 toward "handling" then Koopa becomes the only member of that 2D slice of pareto front. I suppose this could be a benefit depending on the course design. At least, it's an example of how looking at only 2 dimensions can be limiting.
I was disappointed by the lack of a radar chart
I did not know the drivers and carts made a difference at all.
My 9 yo is better than me at Mario Kart but not by much. This knowledge may make the difference for me. Thank you!
In summary: the difference between raw talent and experience.

Your kid has likely better reflexes and motor skills than you have, but on your side you have experience and wisdom accumulated over the years :)

Do professionals use different builds per map? For example, a map has long straightaways (favoring top speed) vs a map with more sharp turns (preferring acceleration)?
If you look at the first place (after clear cheaters) time trials for different tracks, you'll see different choices but clear patterns. The main mode of the game has you race a set of four different tracks, and the online mode throws in all of the tracks; So in those modes the choices are going to be more constrained towards an average good.

For my part, I got the best rank in single player on all pre-DLC tracks with only toad and the default kart, so it's a part of the game you can entirely ignore if you're not competing against other humans.

Tends to just be yoshi on one of two karts for nearly all tracks on 150cc because miniturbo speed is the same as top speed of the fastest build in the game.
The breakdown is actually bagging vs. front running tracks. Bagging favors speed and front running favors mini turbo.

Bagging means purposefully being far from first to get good items which allow you to come back hard.

to add to this, "bagging" tracks are determined by how many shortcuts they have (ones that require good items to take, such as mushrooms or stars).
For time trials, yes that is true. There are also other concerns such as that the speed stat is actually comprised of 4 different stats that have different values depending on the terrain: Ground, Air, Water, and Anti-Gravity. Some tracks that have a lot of water and so for that you would be better going for a kart that has high water speed. There are other less important statistics at play too that aren't mentioned here such as handling, traction, and also the hitbox of the vehicle is also important since it might change how tightly you can hug a turn against a wall or how wide you have to steer to collect coins.

In practice when playing online however, you won't know what track is about to be played, and so the meta right now prioritises mini-turbo stat much higher than speed. Having a high mini-turbo can also overcome the lack of speed by performing additional mini-turbos even on straight sections. Also when playing online you also will be hit by items a lot and need to try dodge other items being thrown at you, and for that having higher acceleration helps too.

> the speed stat is actually comprised of 4 different stats that have different values depending on the terrain: Ground, Air, Water, and Anti-Gravity

Weirdly, this has a huge impact on the game, and it's also not mentioned anywhere. To find it out, you have to go to mariowiki and look up the part statistics. The kart that looks like a boat has great water statistics. That makes sense, but without even documenting that water speed exists, it's mostly just an in-joke by the developers. Why did they do this?

"professionals"? This is Mario Kart we are speaking about, not formula 1 or counter strike.
Mario Kart has a large and flourishing competitive scene[1][2], including numerous competitions with prize money. In 10 days, Nintendo is hosting the Mario Kart World Championships where they are flying in the best players across the world to Tokyo for it. Obviously, not on the same level as F1 or CS, but there absolutely is a competitive scene for this with dedicated players.

[1] https://www.mariokartcentral.com/ [2] https://www.mk8dx-lounge.com/

This is not the point.

How many players are making a living competing mario karts?

Taking part in competitions with prize money doesn't make you a professionnal player. When I was a road racing cyclist in the upper amateur echelon I was making a decent amount of money in finish prizes, was sponsored, was given a high end bike, clothing and enough tires to last a season, and the mechanic wouldn't charge me for his work, all non local travels were paid. Yet I wasn't a professionnal cyclist as I didn't have a salary nor would I have made enough yearly money to support a family and leave a job.

So what are the highest, median and average income of those so called 'Mario Kart pros"?

Something not mentioned in this analysis is that after summing the stats from the different components, the value is rounded down, giving 7 possible outcomes per stat.
Why is it rounded down?
That's just something the game does. I don't know why. But it shows you the little ticks in the stat bar that it rounds down to.
Missed a unique opportunity to title the article: It's-a-me, Vilfredo!
Couple points:

1. Skill absolutely matters, more than the kart, etc. that you pick. Watch some expert players on YouTube playing with weird builds and you'll see that they are still able to do well even when playing with significant disadvantages.

2. In practice, you don't really need to know the value of the hidden mini-turbo stat because higher acceleration == higher mini turbo. For 99% of players, acceleration can just be used as a proxy for mini-turbo.

Very cool love the design of the site and now I know which cart to win with
This is all very webdesign-y and might be good for a less techy audience, but tbh I think the original article with its notebook format provides a lot more useful information

https://hinnefe2.github.io/python/tools/2015/09/21/mario-kar...

that one doesn't have mini-turbo, which has largely superseded acceleration as a stat (it correlates but isn't 1:1)
Indeed. MK8 courses are absolutely loaded with mini turbo opportunities— every drift, jump, or bump in the road is a chance to get that little boost. I’m not at all surprised it can make the difference in competitive play.
I don't think it's fair to disparage this article. The other one is perhaps good for a "deeper dive" but I'd say TFA is better overall at illustrating the concept.
I always knew those little red tires were the best. Sadly, this misses the most important thing to me: style. And my love of Zelda. So I'm afraid I'll personally have to disregard all of this.
There are no grounds on which I can disagree with you.
But you can add that as a dimension to the chart!
Hard to quantify into numbers, no?

I like Luigi more than Mario. But do I love Mario like a 6 and Luigi like an 8?

Time for binary sort or an elimination chart; take every character, compare them to another, sort them as to which one you prefer. Then assign a number to each one of them.
Preferences don't tend to work that way. You know how, if you use a sort function that accepts a user-defined comparator, the documentation will have dire warnings about making sure that the comparator gives consistent results?

The procedure you're suggesting here doesn't comply with those warnings. Sorting will not terminate, or will yield different results from attempt to attempt.

In the original MK8, the Triforce tires and Hylean gliders were pretty good, but the stats in MK8 Deluxe for them are not nearly as good.
Also keep in mind that the 3.0.0 patch for Deluxe changed a bunch of stats.
You're just optimizing for a different outcome. You could still apply this thinking, just with "Zelda adjacency" as the primary metric.
Well I always pick Koopa, who is apparently the worst. Although in my group of friends I win the most by far… I’ll keep with him to keep it fair :)
Now this is ~~pod racing~~, uh, game theory
How to calculate a Pareto front world take me some thought.

I wonder, in practice, does defining my preferences and weights and then using a genetic algorithm find the optional solution? That would take me less thought, because I already know exactly how to define a score function and use a random API.

Yes, indeed. There are quite a few “nature inspired metaheuristic algorithms” which do exactly this. When I say “quite a few”, I mean countless.

Look up NSGA and NSGA-II for a good starting point. Then Kagi your way deeper into the rabbit hole.

If by “optional” you mean “optimal” then no, a GA is not guaranteed to find the optimal solution in the general case.
This is great, but like many casual players I’m very wedded to my character but not their build. Be great to pin the character and then get the best build for them.
I hope your character is not Koopa
God I am so disappointed, I thought he disassembled Mario Kart 64 into C and refactored the codebase. Fuck my life
No, just go get one. Don't be a PL obsessing over a video game.
So sorry I've disappointed you, but don't fuck your life plz
This is so neat! MOO has been a integral part of my work yet it has never occurred to be that Pareto optimization could be applied in kart picking.