9 ms·
Mario Meets Pareto
- reconnecting 2mo agoThanks! Very useful information. I will never play for Bowser again.
- Jepacor 2mo agoOnce at a Mario Kart 8 tournament I was helping run there was a kid who had picked Bowser and max speed and he was struggling to make every turn. I switched him to the meta build and suddenly boom, he went from like 10th to 2nd against the AIs. It's kinda weird that you can shoot yourself in the foot so much when picking your kart in this game.
- latexr 2mo ago> It's kinda weird that you can shoot yourself in the foot so much when picking your kart in this game. Nintendo optimises for fun, not competitive play. Infamously, to curb the competitiveness of Super Smash Bros (SSB) Melee, they introduce a random tripping mechanic in the following SSB (Brawl). Everyone hated it so they removed it in the one after that.
- CM30 2mo agoTo some degree it's because certain options work better in other game modes and settings. For example, there are characters and karts in Mario Kart Wii which are only viable on a handful of tracks, but can dominate those tracks in time trials. A very basic opening cup track with only gentle turns might get dominated by a high speed character and kart combo with middling stats everywhere else. That's why certain tracks were played with the Torpedo/Spear in that game. It's very fast, but has the turning radius of a bus on ice. Great on something like Mario Circuit, probably a complete catastrophe on something like Bowser's Castle or Rainbow Road. There's also battle mode, but I have no idea which karts are preferred there.
- latexr 2mo agoIt might still be the best option, depending on your play group. For example, if you’re in a play group with a bunch of novices and you’re destroying them, like finishing a full lap before the second place, choosing Bowser gives you a handicap. Lowers your chances of winning but increases fun for the group as a whole.
- elwell 2mo ago> I will never play for Bowser again. What do you mean "play for Bowser"?
- andai 2mo agoExcellent. This is some kind of 3D PowerPoint. How did he do that?
- Retr0id 2mo agoLooks like html+css+js+webgl
- beklein 2mo agoI guess the author used a different framework but I like this one: https://animejs.com/ https://animejs.com/
- superMayo 2mo agoAuthor here. The source code is available at https://github.com/SuperMayo/mayerowitz.io https://github.com/SuperMayo/mayerowitz.io. It’s called scrollytelling. For this particular project, I borrowed a lot from https://mlu-explain.github.io/ https://mlu-explain.github.io/. For the 3D elements, I used Threejs and a custom vertex shader for the 3D plot.
- dxdm 2mo agoIs there a version I can just read as text without having to push every paragraph out of the way with my fingers across an unevenly colored background that shines through? I get that this form of presentation may be great for many people, but for my brain, it makes it extremely hard to engage with the content.
- superMayo 2mo agoI'm sorry, this is by design colorful and interactive. If you still want to read about this topic in a less "juicy" way, you can can take a look at this other article: https://hinnefe2.github.io/python/tools/2015/09/21/mario-kart.html https://hinnefe2.github.io/python/tools/2015/09/21/mario-kar...
- dxdm 2mo ago
- devin 2mo agohttps://news.ycombinator.com/item?id=39936246 https://news.ycombinator.com/item?id=39936246 for the discussion 2 years ago
- a3w 2mo agoI did not understand https://news.ycombinator.com/item?id=49096439 https://news.ycombinator.com/item?id=49096439, but I understood this.
- caxco93 2mo agoI can only imagine the guy that made Mario Meets Pareto waiting for some Pareto related post to hit the front page before sharing his
- darkwater 2mo agoI remember seeing this on HN frontpage already in the past, and indeed here it is: https://news.ycombinator.com/item?id=39936246 https://news.ycombinator.com/item?id=39936246
- applfanboysbgon 2mo agoIt turns out a lot of things are extremely accessible to a lot more people when you teach them as concrete, relatable scenarios in simple language with useful visualizations instead of abstract X, Y foos and bars described with an unfamiliar jargon term every 3rd word. We really need to do better when it comes to pedagogy.
- prvc 2mo agoI am the complete opposite of that. My attention wanes when someone fails to get to the point, instead dwelling in irrelevant details which are not intrinsically interesting. Have to muster the motivation to concentrate in such circumstances, and doing so is not enjoyable.
- woodrowbarlow 2mo agois this also true when the irrelevant details are (by coincidence) interesting (to you)? it sounds to me like GP is interested in mario kart and you simply aren't, so this is a perfectly natural result.
- 2mo ago
- ShinyLeftPad 2mo agoThe site is really broken on mobile.
- rokkamokka 2mo agoWorks for me in Firefox on Android anyway
- fnordian_slip 2mo agoWorks for me with Firefox on android and ublock origin.
- voidnullvalue 2mo agoI cannot be the only one who atrongly dislikes this bloated web design. I hit back after scrolling a bit
- andai 2mo agoUntil recently I thought I hated sites that messed with the scroll out of principle, but then I found a handful of them that do a good job of it. This is one of them.
- kfarr 2mo agoThe key here is to have a foreground layer that always responds to scroll and informs the background layer based on its position
- recursive 2mo agoThis is a good job? It takes me a half dozen scroll actions to get each sentence of text. I'm not risking a carpal tunnel flare-up just to get through effectively one paragraph of content.
- duskdozer 2mo agoNo, you're not. A lot of the web is becoming increasingly unusable for me because of things like this.
- Retr0id 2mo agoPrevious discussion (2024): https://news.ycombinator.com/item?id=39936246 https://news.ycombinator.com/item?id=39936246
- suzukivenom 2mo agobeautiful site
- jerf 2mo agoThis is a really important concept for developers. One aspect for developers that I see quite often is the assertion that "We can't have X without giving up more Y", most commonly "we can't have more security without giving up on user experience". With the Pareto idea in mind, we can see that that statement is true, if and only if you are in fact on the Pareto frontier of security and user experience already. However, many times these confident pronouncements are being made when the system under question is quite evidently not on the Pareto frontier in the first place and indeed you can get more of one without giving up the other. Making it more tricky is that in business, you can never discard "money" as a dimension, so unless you're taking "money" as one of the dimensions in the original comparison you want to do, it sneaks its way in. Or, a composite time/money, or "cost to business", or some other similar concept, time & money aren't orthogonal and don't need to be treated as two separate dimensions in general, though you can if you want. Which puts you into the 3D case, and as the page says, that grows the frontier quite a lot, which is good in some ways and bad in others. Nevertheless, in my opinion it is still often the case that even in that space we are often making "tradeoffs" without checking that we're on the Pareto frontier in the first place.
- voidhorse 2mo agoYes, the difference between coding (writing software) and engineering (making informed trade offs about system design) is effectively bound up in analyses like those supported by concepts like pareto efficiency. One should keep in mind though that not all problems have a neat solution. Many spaces have multiple efficient points that still need to be chosen from, and many pareto optimization problems actually become NP hard computationally when the problem is large enough.
- ksclk 2mo agoSay someone wanted to transition from coding to engineering. What path would you have them take? What should they learn?
- voidhorse 2mo agoI would say start with software architecture books for large or highly distributed systems. This will get you thinking beyond code level to system component level with subject matter that's familiar. From there I would round things out with general systems theory books and even dabble in some non-software engineering texts just to get a sense of how people reason about designing systems and evaluating trade-offs. That's just my two cents on it.
- Aeroi 2mo agowow that took alot of work. nice job
- Xirdus 2mo agoIn Firefox reader mode, there's like 5 paragraphs of text. I am unable to digest the content on the website itself. Can someone confirm if the 5 paragraphs is the whole content or if I have large parts of it missing?
- Levitz 2mo agoThe article includes interactive graphs and scrolling animations that explain them, as well as data.
- duskdozer 2mo agoIt looks like it. There are four images that pop up and start animating numbers, and those aren't visible in the built in reader. I use Tranquility Reader which ime tends to do a bit better, but it still wasn't readable. Looking at the source, that content seems to be created only on scroll with javascript, so it won't be able to be read accessibly. I had to close it so I can't say what else is missing.
- rtkwe 2mo agoTurn off reader there are graphics along with the paragraphs. Reminds me of the complaints that used to be super common from people religiously refusing to enable javascript and complaining when breaking the site breaks the site.
- duskdozer 2mo agoWhy do you think people refused to enable javascript?
- rtkwe 2mo agoI saw a lot of people saying various things along the lines of "not running strangers code on my machine" and some "you should serve me the site working even if JS is disabled". The exact reason doesn't really matter it's more that if you're intentionally gimping the website you don't really get to complain about the site not loading.
- 2mo ago
- rakamotog 2mo agoThis was fun, thank you
- __s 2mo ago> You probably won't pick a driver sitting on the edge of the frontier because you want some balance between speed and acceleration for super mario kart speedruns go with bowser/dk: https://www.speedrun.com/smk/runs/zp68nr8m https://www.speedrun.com/smk/runs/zp68nr8m That seemed to hold up for Mario Kart 8 too going with Bowser at the edge of their pareto frontier, https://www.speedrun.com/mk8 https://www.speedrun.com/mk8 needing acceleration is a skill issue
- ChrisGreenHeur 2mo agoAdding skill is just another dimension to the calculation.
- deleted 2mo ago[deleted]
- frantathefranta 2mo agoOn the other hand, if you are a casual and want to dominate 99% races you enter at people's homes, pick Toadette (with Mr. Scooty). I don't think I've lost since 2019.
- paytonjjones 2mo agoSpeedruns are for playing the track solo, right? If you're playing normally (with other people and items), even the most skilled player can't avoid getting hit by some universal items and will benefit from acceleration. Hence, as the author notes, the balanced build with Peach being favored among competitive players.
- nwsm 2mo agoNice article, I'm sad to learn that I shouldn't be using Koopa. How are Peach and Mario not dominated on acceleration by Tanooki Mario and Luigi respectively? Also, wonderful visualizations, but the change between blue and white backgrounds is really jarring to me.
- SubiculumCode 2mo agoKoopa came out in offroad vs weight..without being that familiar with the game, I don't know whether that would ever be important enough to care about
- mef51 2mo agoI always pick koopa, I always win
- demibabs 2mo agoThis article isn’t quite accurate; acceleration is surprisingly unimportant in Mario Kart and not really considered a major factor when choosing a optimal combo. The optimal combo is solely decided on the basis of speed and mini-turbo. Otherwise good analysis.
- bix6 2mo agoLakitu ftw
- FailMore 2mo agoIf you liked the playing card interaction at the start (I did), I run a random side project where you (or your coding agent) can build similar 3d cards: https://requirement5.com https://requirement5.com build a card here: https://requirement5.com/create https://requirement5.com/create (and the CLI instructions are there too) https://github.com/vilt9/requirement5 https://github.com/vilt9/requirement5
- DarkCrusader2 2mo agoI noticed DaisyUI also has a component for this just a couple of days back - https://daisyui.com/components/hover-3d/ https://daisyui.com/components/hover-3d/
- FailMore 2mo agoThis is the OG: https://poke-holo.simey.me/ https://poke-holo.simey.me/ - inspired me as an old pokemon collector
- phoghed 2mo agoTo think I gimped myself so much by using baby Rosalina on a scooter with rollers
- hnmu4c5zar 2mo ago[dead]
- kevinwang 2mo agoCan anyone explain why Rosalina is not Pareto optimal here? It kind of looks like she should be.
- bspammer 2mo agoBecause Donkey Kong gives more speed for exactly the same acceleration. I.e. you sacrifice nothing and gain something by switching away. EDIT: If you mean that Rosalina looks slightly higher on the graph, I believe that's just a visual effect to allow multiple characters to occupy the same square - the stats are all integers.
- kevinwang 2mo ago> If you mean that Rosalina looks slightly higher on the graph, I believe that's just a visual effect to allow multiple characters to occupy the same square - the stats are all integers. Ah, yeah. That is what I meant. Thanks!
- deleted 2mo ago[deleted]
- charv 2mo agoI would really love to be able to explore this data, e.g. what is the "worst" driver? Is there an inverse Pareto front?
- chriswarbo 2mo ago> Is there an inverse Pareto front? Yes, trivially. Just look at the opposite end of each metric. Pareto optimality doesn't know/care what each metrics means, since it keeps them all separate.
- paulnpace 2mo agoMario was an elite?
- yathern 2mo agoApologies for the self-promotion, but I learned about the Pareto Front from this site a while back - and applied it to Mini PCs with https://minipcs.zip https://minipcs.zip which plots Mini PCs based on Compute vs Price (and other metrics) - highlighting the pareto front to find the optimal unit.
- xp84 2mo agoThanks for posting this! It's an awesome tool. Makes me want to buy more tiny PCs. My only feedback is many of the ebay listings it points to are sold out, but I assume there's a limit to the freshness you can get. Still though, I found pretty good rates of success just pasting the important parts of the name of the sold-out listing into search.
- phyzix5761 2mo agoA lot of these optimization problems can benefit from using a genetic algorithm: https://github.com/lodenrogue/genetic-algorithm-js https://github.com/lodenrogue/genetic-algorithm-js
- hn22fazjsv 2mo ago[dead]
- sendes 2mo agoFinally an important and realistic application of economic theory to real life!
- moomin 2mo agoOf course I, and most of the dads I know, optimise for something else: what’s the car that will keep me competitive, but probably losing, to the kids?
- jedberg 2mo agoI don't. I need to keep winning until I can't to keep the boy in his place. He is getting closer every time. I know my day is soon to end, and a new house champion will reign.
- 8n4vidtmkvmk 2mo agoBetter get the trophy ready
- aselimov3 2mo agoThis was going to be my reply. Can't let them get ahead of you too quick.
- hamburglar 2mo agoI’m still trying to beat my dad at ping pong. He’s 75.
- jedberg 2mo agoKeep at it tiger, you'll get him one day!
- SaltyBackendGuy 2mo agoHa exactly. Can't let the kids win for free.
- kridsdale1 2mo agoMy trick is to just never power slide when I need to be handicapped to not ruin the kids Christmas. Or tap the accel A button in a PWM pattern.
- sudobash1 2mo ago
- Agentlien 2mo agoOn a tangent, I was a bit confused by the everyday examples given in this article. "We're often faced with similar trade-offs. You want a meal that's both cheap and delicious? A job that's both well-paid, easy, and fulfilling?" I really don't feel like "easy" is a dimension I wish to optimize for in a job. It almost feels opposite to what I've actually optimized for - since for me a fulfilling job usually means full of deep technical challenges. I want a job without unnecessary friction, without interpersonal drama, even one that's low stress. But definitely not easy.
- StilesCrisis 2mo agoIt sounds like you're saying "easy" and "fulfilling" cannot coexist, and obviously they are in tension, but a Pareto frontier still exists there.
- Georgelemental 2mo agoWell then, you would prioritize "fulfilling" in your utility function. Others might make a different choice; e.g. a single parent who needs to save time and energy for family might prefer "easy" at the cost of boring drudgery
- Agentlien 2mo agoI think what I am saying is more that "easy" is too broad a vector to optimize along because it combines too much - both good and bad. I don't want a job without challenges of any kind. But I definitely want a job without stress, danger, or physical strain on my body. Perhaps I am just looking for a similar word which doesn't imply anything about the complexity of the task at hand.
- blanched 2mo agoI get what you’re saying, but I wouldn’t say easy is the opposite of challenging. As a quick example, I would surely find a day job of manual labor harder and significantly less enjoyable than a day job of software engineering challenges. (And please note that I do not mean to imply that there are no challenges in manual labor or that software engineering is more important.)
- deleted 2mo ago[deleted]
- amilovepdf 2mo ago[flagged]
- yaqubroli 2mo agoSo Pareto’s the third brother then?
- hspeiser 2mo agoIve been played. Me and my brother used to play this all the time. He would always beat me and whenever I would win it would be a momentous occasion. Turns out his build was directly on the pareto frontier and mine was not even close. Damn you brother. Hes totally screwed next time we play
- initramfs 2mo agoI used to play Diddy Kong Racing for the Nintento 64 a lot and what I learned is that the smaller carts with fast acceleration were good for learning how to navigate around the course and for battle royal, but the heavier drivers like Banjo had the highest top speed, and I developed better steering capabilities to time each curve, eventually making it sometimes the only way to win the race.
- declan_roberts 2mo agoFun but still didn't tell me who the "best" player is.
- bleuarff 2mo agoThere's no ultimate best player/build. When you factor in that each cart has different stats depending on the terrain, there's a "best" build for each track.
- johnisom2001 2mo agoDependent on your play style and which of the 3 main attributes you care about. Did you even read the post?
- dorfsmay 2mo agoI did not know the term but I'm thinking that the old project management triangle (cheap, good, fast) is a specialisation of that concept.
- SaltyBackendGuy 2mo agoI love how the data from top players shows that they're using a build on the Pareto Front, i.e. that the wisdom of crowds settles on a meta that is optimum. I wonder if we analyzed other games, if the meta were all consistently on the Pareto Front (WoW, Diablo, w/e). Likely so.
- drdexebtjl 2mo agoCompetitive players (from Mario Kart in particular) are doing this type of data mining and analysis ever since the game releases, and sharing them in tightly knit communities. The analysis comes before the meta settles, so of course it’s consistent :)
- valiant55 2mo agoProbably but they could be arrived at via different means. In WoW for instance top players run simulated combat using third party tools to compare different gearing setup, often to determine if a new piece of gear is better than their current piece. This often isn't immediately obvious if the stats are completely different and "simming" is the easiest way to evaluate a piece of gear.
- kasts 2mo agoWhat I've found is that my favorite person is not optimal... I have decided that I'm going to believe that the driver is worth more than the sum of their choices. And when I lose I'll just accept it as my own failing of skill. #rosalina
- cortesoft 2mo agoThere are a few things that are assumed to be true when talking about the Pareto frontier here, but aren’t always true. One, that more of something is always better, e.g. it is always better to have more speed. Maybe, but what if having too much speed causes you to run off the track and perform worse? It could be that there is actually a peak in the utility of speed that declines as it increases. There could also be important relations between attributes that make determining a Pareto frontier impossible or at least more difficult. For example, some pairs of attributes work best when they are a specific ratio, and increasing one or the other will actually decrease utility unless the other is increased at the same time.
- Barbing 2mo ago> [is it really] always better to have more speed[?] I'm reminded of two things that in a way support your premise with the second example being more relevant. Both are outside what’s being discussed exactly, more about knock-on effects maybe, anyway: The first is that Angry Birds found the speed of launching birds into structures was important for engagement: it cannot be too fast. The second is from a commenter somewhere who said they had or worked on software that took ten minutes to boot in the morning, which is when employees made coffee and talked and brainstormed. Everyone was disappointed when after refactoring, the software booted immediately.
- dfdydx 2mo agoWouldn't that just change the shape of the pareto frontier? It stops at some point (when marginal utility becomes negative) - but this is not special, they typically stop at 0 as well.
- CobrastanJorji 2mo agoI love when people do an amazing job carefully explaining something complicated in a way that makes it seem very intuitive. Excellent job. Way to show off those technical communication chops!
- giekaton 2mo ago80/20 Rule in Mario Games - https://8020.in/mario-games https://8020.in/mario-games
- danilocesar 2mo agoShame it isn't Luis Pareto.
- redbell 2mo ago> You can identify all efficient drivers that, unlike Koopa, are never dominated on both speed and acceleration. Together, they form what is called the Pareto front (or frontier). Coincidently, this Pareto Front concept is currently on the front page on HN at #10 (https://news.ycombinator.com/item?id=49096439 https://news.ycombinator.com/item?id=49096439) and apparently, it was posted before this post.
- Aachen 2mo ago(2024) according to https://www.mayerowitz.io/blog https://www.mayerowitz.io/blog and https://github.com/SuperMayo/mayerowitz.io/tree/main/src/routes/(standalone)/blog/mario-meets-pareto https://github.com/SuperMayo/mayerowitz.io/tree/main/src/rou...
- uzerfcwn 2mo agoI did similar analysis a couple years ago for optimizing item builds in WoW classic. The tricky part in WoW is that there are 15ish item slots with hundreds of item choices for each slot, so the total number of builds is well over 100^15. I ended up using a divide-and-conquer style approach, where I 1) pruned items that weren't on the Pareto frontier individually for each slot, 2) took the two slots X and Y that had the least items after pruning and grouped them by calculating Z:={x+y|x∈X,y∈Y}, 3) pruned items that weren't on the Pareto frontier in Z, and 4) repeated steps 2-3 until there was only one group remaining, comprised of the full Pareto-optimal item builds. This ran in a couple of seconds, as opposed to the other solutions I tried that took somewhere between minutes and years. The downside was that including set bonuses into the model took extra work.
- r3trohack3r 2mo agoFascinating! Do you still have any of the code or datasets/datasources laying around?
- uzerfcwn 2mo agoThe data came from wow.tools (which has since been replaced by https://wago.tools https://wago.tools) and Wowhead. I still have some code but it has so many ad-hoc scripts and sections that I commented in/out while experimenting that I'd feel embarrassed sharing it.
- deleted 2mo ago[deleted]
- tgtweak 2mo ago2020: https://www.civisanalytics.com/resources/the-best-mario-kart-character-according-to-data-science https://www.civisanalytics.com/resources/the-best-mario-kart... OG credit to: Henry Hinnefeld 2015: https://hinnefe2.github.io/python/tools/2015/09/21/mario-kart.html https://hinnefe2.github.io/python/tools/2015/09/21/mario-kar...
- Velocifyer 2mo agoThis doesn't account for vehicle size (important for red shell wall breaking[0]) and drifting style[1]. [0] A redshell wall break is when you point your vehicle near a wall to break a redshell without using a defense item. [1] Drifting style is either inward or outward. Inward drift has more intuitive controlls and is way better for intermidiate players, but pro players dislike it because is removes various difficult tricks. I recommend yoshi on the yoshi bike with azure rollers and the paper glider.
- cantalopes 2mo agoI always thought in these games; picking acceleration is a way for you to recover from your mistakes. If you made no mistakes the speed would win. So, it is always better to pick the harder option and have a room to improve
- tkclough 2mo agoThat's not the full picture though, because other players can hit you with items, and it's sometimes unavoidable. If you get hit by a blue shell with a build fully optimized for speed at the cost of acceleration, it's likely to cost you the race.
- hei-lima 2mo agoHoly! This is one of the best articles i ever read here. Really, really cool.
- alana314 2mo agoPeach was goated in Super Mario Bros 2 as well. I always pick her.
- swrrt 2mo agoNice figuratively demonstrating, I think it can be a impressive lecture material if my teacher/prof use this kind of demonstration.
- underlines 2mo agoPreviously on HN: https://news.ycombinator.com/item?id=39936246 https://news.ycombinator.com/item?id=39936246
- cocodill 2mo agoFinally, this page has some information that's actually useful in real life.
- jamesforestwest 2mo ago[dead]
- hskimse 2mo agoI didn't know that even characters of similar size had different stats
- vrighter 2mo agoOnce I was told to upgrade tls to 1.2 (latest version at the time) due to some compliance thing or other. So I did. Then I noticed something. The user never provided any certificates themselves. I asked why. "Because it would be bad ux". I went looking and lo and behold, there it was, the first line in Main(): ServicePointManager .ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; But it was using TLS1.2!