The unsolved Wii game you've probably played before

Поделиться
HTML-код
  • Опубликовано: 20 сен 2024
  • a video i've been waiting to make for 5 years! hope you enjoy
    special thanks first and foremost to kiwi for making this possible!
    twitter - / kiwi_szs
    youtube - ‪@kiwidev_‬
    github - github.com/kiw...
    join the Billiards research discord - / discord
    join the Wii Series Speedrunning discord - / discord
    check out Wii Play on speedrun.com - www.speedrun.c...
    if this video interested you, you can catch plenty of Wii Play action (including a heaping dose of billiards) in the speedrunning scene on Twitch - here are a few people to go follow:
    / mrjimmysteel25
    / smmidi
    / mur45ak1
    / aryl_l
    / nicro
    / sirgoku1
    songs used (in order):
    Menu Theme from "Class of '09"
    Sungazer - Sequence Start
    cudsys - difficulty_jungle (remix of the jacket theme from Wii Music)
    Main Theme from "Wii no Ma"

Комментарии • 1,3 тыс.

  • @kataryn
    @kataryn  7 месяцев назад +1067

    UPDATE - there is now a centralized server specifically dedicated to billiards research! if you're interested in following this story as it develops, feel free to join: discord.gg/zUe9gZ8YMg
    ~ ~ ~ ~ ~ ~ ~
    hey all, thanks for the support on this video! some responses to frequently asked questions/comments:
    - there were previously some issues with the captions of the video that a couple of people brought up - I had incorrectly assumed that they were talking about the timings, but I now realize that there were words that were actually just incorrect. this is because I slightly revised my script before recording it and then mistakenly used a version that didn't have those revisions for the captioning. this issue should be fixed now, but if you come across any other discrepancies, please let me know
    - i now know that 9 ball pool is actually far more popular than 8 ball in competitive play, and more popular in general in asian countries! thanks to the irl pool players in the comments for clarifying this
    - yes, the game does require you to sink all 9 balls even though the real rules of 9 ball end the game once the 9 ball has been sunk. it's funny to think that if they followed the real rules, none of this would have ever been an issue and this video wouldn't exist
    - the cue ball positioning isn't randomized - in the code shown at 4:09, the first line is "if (id != 0) {", which checks that the current ball being affected isn't the cue ball. if it is the cue ball, the code for adding the random offsets won't run. this is also why the rng can be disabled by replacing one assembly instruction - you can simply change the beq (branch if equal) instruction to an unconditional branch so that the code for adding the random offsets never runs for any ball.
    - there could definitely be more efficient approaches to this problem involving interfacing directly with the game's physics engine and potentially even machine learning. however, the wii play research team is very small right now, and we have limited time and knowledge to work with when it comes to decompilation and complex math. part of the point of this video was just to get more eyes on this situation, so if you'd like to help or even if you just have some ideas to throw around, please feel free to DM me on discord (username: kataryn) or join the server linked above

    • @Carpythesharky
      @Carpythesharky 7 месяцев назад +3

      9-ball ftw!!

    • @ManuFortis
      @ManuFortis 7 месяцев назад +52

      I'm at the 4:45 mark where you talk about the slight offsets. Just want to say before you go further in the video (But watched further anyways just in case you covered it in full already) that it actually makes A LOT of sense to have that very slight degree of variation in the placement. The reason is that when playing any sort of billiards, the racking triangle (for normal pool at least) isn't exactly uhm... perfect every time. There's a lot of detail to this, but essentially, depending on how the person racks the balls up, they will get a slightly different arrangement and placement each time. Not only that, but even though the balls are quite precise in their size, shape, etc; there are always going to be tiny imperfections over time due to play or even original factor conditions.
      This means that ultimately to get the exact same result off the break in billiards, absolutely every single condition must match. And that's just not likely to be the case except in extreme circumstances of luck/chance and cheating.
      So, (having watched further into the video anyways) no it's not that the game is rigged. It's that billiards is one of those real world games that never really is going to have the exact same conditions multiple times at all or even in a row. And believe me, the players and designers and installers of this game are all generally very well aware of how close to perfect every condition needs to be to get a reliable table going that works how you expect it to.
      For instance, a common problem at many bar pool tables, is that they are slightly tilted to one side or the other due to the slope of the floor/ground below and how a building will gradually sink/bend/tilt in areas here and there for over time. (For those who wish to argue that, just consider that not all buildings are made purely of titanium. I.E. Most materials flex/warp/etc over time.)
      So the end result for playing pool/billiards of any form, is that no two tables will ever be entirely the same as each other. They'll all have some level of uniqueness to each. And having said that, now we are back to the problem of the position of the billiard balls at break. Depending on how well you rack them and how perfectly you manage to align them, that break could be different for every single shot placed even by a robot. And that's assuming you managed to line the rack up with the correct position on the table as well perfectly. Which probably isn't going to be the case either.
      Now, I want to say that I do realize that video games aren't real life, so we expect them to some degree to have a level of repeatability. But! Technically... if you are trying to recreate a sport or real world game in its fullest, you want to include every variable that makes it that sport or real world game. So while it may seem paradoxical to want to include imperfections into a video game... it's actually exactly what you want to do with a game like Billiards.
      Finally, to expound upon the point, let's consider what is required to actually create a 'perfect' table.
      1. You would need the floor and the table both to be perfectly level on cosmic scale. Think Morty standing on the perfectly level square of floor made by Rick. That level of level. This is because any slight variation in the slope of the surfaces will cause the balls to go a different course than intended dependent upon that slope. Many players tend to recognize when there is a slope at all, and correct for it if need be or avoid that table entirely.
      2. You would need your billiards to be made into perfect spheres. Absolutely perfect on the same level as the prior point. Not only that, but they would need to be made of a material even better than the way they are made now. They cannot be scuffed, dinged, or altered permanently in any manner... while still retaining the physical properties that allow a game of billiards to even be played. Good luck. What we use it pretty good already, I forget the exact names of each material, but it works well enough. But if we want a perfect table, even that needs an upgrade.
      3. The racking mechanism has to be flawless. Every ball must fit perfectly in such a way that no two racks are ever different. Not only that, but it must be rackable in the exact same position every single time. No exceptions.
      4. The environment the table is in also needs to be perfect, or at the very least, all the materials must be impervious to any influence from 'outside forces' like humidity for instance. It may not seem like a big issue, but humidity can be the difference between materials swelling and shrinking. When these things are minimal, it's not much of an issue to most. But if it's a large enough difference to make things change depending on an outside factor; it must not be allowed. So perfect environmental controls are needed.
      5. Finally? Maybe... The entire area around the billiards table needs to be able to withstand the weight of the players around it in such a way that it doesn't cause the floor below to flex or bend in any slight manner at all. Once again, it might not be a huge amount, but any small difference is the difference in what causes each shot to be different from before. In buildings with strong floors, this isn't a problem. In buildings with weaker floors... it can be. A very slight one. But one none the less.
      So. As you can see, there is likely never going to be a perfect billiards table in existence as far as we know right now with the materials and methods we have available to us. In a video game where everything is a sterile code vacuum, a perfect table could happen of course. But these sorts of games are made to represent reality in video game form, nothing else. So in that sense...
      Wii sports did Billiards pretty much perfectly.

    • @BobbySteelanus
      @BobbySteelanus 7 месяцев назад +7

      In normal games of pool, the closer the balls are together in the triangle, the more they will spread out

    • @professorhaystacks6606
      @professorhaystacks6606 7 месяцев назад +8

      Well the reverse-tracing physics approach is ruled out by this comment, which I had been going to say separately. The other direction, randomly changing initial parameters to find a desired outcome, is called 'monte carlo simulation'. In this case you'd need to write a script to check: it would take far too long manually. Have the script run through at the smallest increments systematically. Yeah machine learning mights speed it up, but if you turn off the graphics (I'm assuming that's doable mind) it should be able to run through each scenario so fast that the time spent to program an ML system would actually take longer. The number is large but not THAT large, based on the figures.

    • @abusethesun
      @abusethesun 7 месяцев назад

      Maybe you can get in touch with CodeBullet or another ML RUclipsr to build the TAS for 0 RNG. If you can get the 9 break with 0 RNG you can then train it with randomness on single balls while feeding it exact positions so it learns how movement impacts the setup.
      Would guess this only marginally ends up helping speedrunning -- you can see if there's something "special" you need to do to go for 9 vs going for 7 or less. Otherwise, it's likely just praying RNG lines up. Though maybe the TAS could identify the best initial shot that has the highest probability given the RNG factors and then humans can just spam that exact shot until RNG hits for them.

  • @matthewbertrand4139
    @matthewbertrand4139 7 месяцев назад +5698

    that's actually kind of incredible, though. like, it sucks for speedrunners that you just can't get a super reliable break. but the absolute genius of accounting for the fact that in real life, the diamond wouldn't be perfectly packed every time is just beautiful. someone who really cared programmed that minigame.

    • @xaviermcknight1510
      @xaviermcknight1510 7 месяцев назад +457

      Yeah I feel like a lot of Nintendo games have little details like that, intentional or coincidental I don't know

    • @WolfWalrus
      @WolfWalrus 7 месяцев назад +550

      It's a great illustration of the Butterfly Effect. The changes to the initial conditions are so slight as to be almost imperceptible, but the impact that they have on the results is immense

    • @disappointedcucumber
      @disappointedcucumber 7 месяцев назад +263

      @@WolfWalrus Love me some good chaos theory in a Wii game.

    • @Xbob42
      @Xbob42 7 месяцев назад +199

      Was about to post the same thing. The lack of perfection in real life seems like a critical detail that I'm glad they didn't miss, it makes everything about this more interesting.

    • @fastertthanyou8805
      @fastertthanyou8805 7 месяцев назад +76

      Wii play was made with lots of care the video on the tanks mini game music really showed that

  • @SummoningSalt
    @SummoningSalt 7 месяцев назад +5492

    I enjoyed this a lot, good job

    • @tweer64
      @tweer64 7 месяцев назад +92

      Hello Mr. Salt

    • @kr1v
      @kr1v 7 месяцев назад +1

      Hmmmmm

    • @JBLilPaper
      @JBLilPaper 7 месяцев назад +42

      Would you look who it is. The man who got me into Wii sports speedrunning

    • @Sam_Hue
      @Sam_Hue 7 месяцев назад +35

      History of Wii Play Speedrun world records?

    • @tomdiamonds100
      @tomdiamonds100 7 месяцев назад +4

      Hello summoning man

  • @some-replies
    @some-replies 7 месяцев назад +1504

    Hold up, that one guy's Mii was just reference points for where to hit the ball. Thats next level!
    0:45

    • @kataryn
      @kataryn  7 месяцев назад +515

      yeah that's my own footage, i made the mii for that exact purpose :)

    • @HarvoSpoon
      @HarvoSpoon 7 месяцев назад +57

      i tend to use my mii's nose as a centerpoint to aim the cue on

    • @dragonz4477
      @dragonz4477 7 месяцев назад +25

      billiardo 💪💪

    • @5omebody
      @5omebody 6 месяцев назад +10

      thanks, totally needed to see the eldritch horror that is that mii today

    • @MrSkerpentine
      @MrSkerpentine 6 месяцев назад +3

      @@5omebodycould just be going for a Mii of Rorschach from Watchmen

  • @Budgiebrain994
    @Budgiebrain994 7 месяцев назад +1109

    I like how the game designers actually incorporated the real-world innacuracies of setting up a billiards table, and that we were somehow surprised to see that the balls weren't perfectly lined up each time

    • @evwbb
      @evwbb 7 месяцев назад +41

      I feel like they just didn't want someone to be able to setup a 9 break every time and this was the easiest way to accomplish thay

    • @speedhunter7156
      @speedhunter7156 7 месяцев назад +15

      ​@@evwbbeven irl thats virtually impossible ive watched enough to confirm that

    • @TheJacklikesvideos
      @TheJacklikesvideos 7 месяцев назад +17

      @@evwbb i feel like this is an intrinsic mechanic to billiards that would be found in any decent videogame version.

    • @TheAmazingCowpig
      @TheAmazingCowpig 7 месяцев назад +23

      ⁠@@evwbb why... would they care about making a 9 break impossible, compared to, you know, simply making the game more realistic, the more obvious motivation?

    • @ShankerJN
      @ShankerJN 6 месяцев назад +3

      @@TheAmazingCowpigWell it’s not only about 9 breaks, let’s say it was as realistic as possible, there would still be a “best break”. Even if that was only say 4 balls, if you could replicate it easily it would be kind of dumb

  • @coolmanjack1995
    @coolmanjack1995 7 месяцев назад +1253

    Honestly this randomness makes sense considering how balls are racked up in real life. Kind of impressive of the devs to think about doing something like this although they wouldnt be so spaced out

    • @the.bog.
      @the.bog. 7 месяцев назад +8

      But billiard balls are racked in a very repeatable and accurate way irl

    • @ultraeon
      @ultraeon 7 месяцев назад +195

      @@the.bog.there is still some small difference that occurs in the position of the balls irl

    • @NeatNit
      @NeatNit 7 месяцев назад +97

      @@the.bog. Not in a microscopic scale. The game's simulation doesn't have a microscopic scale (no dust particles, no molecules, no scratches on the balls, no random tiny gusts of wind, etc.) so if a deterministic physics simulation is used, the only way to introduce randomness is to randomize position in this way. It's smart, for sure, although personally I don't think it's *that* impressively smart.

    • @Hotobu
      @Hotobu 7 месяцев назад +5

      @@the.bog. 🤦🤦🤦🤦🤦🤦🤦🤦

    • @nathanbentley1939
      @nathanbentley1939 7 месяцев назад +53

      That was my first thought too, that the RNG was an attempt to simulate the minuscule errors and offsets that would realistically occur when setting up a real billiards table, due to how utterly improbable it is that a human hand will plop something down in the same precise spot twice.

  • @JM-qd6ot
    @JM-qd6ot 7 месяцев назад +1899

    the part where you were like "one in 60? try one in 60 million" and played the Wii fit obese audio clip is comedy gold

    • @1unar_eclipse
      @1unar_eclipse 7 месяцев назад +86

      5:49 for those looking

    • @hahasamian8010
      @hahasamian8010 7 месяцев назад

      That's obese!

    • @SpammingY
      @SpammingY 7 месяцев назад +20

      @@1unar_eclipse Thanks, saved me some time

    • @rprskalo1
      @rprskalo1 7 месяцев назад

      only fatties recognize this noise

  • @nicroveda
    @nicroveda 7 месяцев назад +1081

    7 BALLS

    • @hu5ky755
      @hu5ky755 7 месяцев назад +57

      WHAT THE FU-

    • @arcticdino1650
      @arcticdino1650 7 месяцев назад +8

      9 BALLS

    • @UniqueHandles
      @UniqueHandles 7 месяцев назад +8

      Please return to speedrunning All Golds that was peak content

    • @NF30
      @NF30 7 месяцев назад +2

      That moment made Nicro a household name

    • @Chrnan6710
      @Chrnan6710 7 месяцев назад +5

      NINE-BREAK TWENTY-FOUR HOUR CHALLENGE

  • @ArkanoidZero
    @ArkanoidZero 7 месяцев назад +251

    You know it's actually quite funny that no real billiards players ever looked at this, because they could have told you right off that the exact position of the balls in the rack has a dramatic effect on the break, and my immediate assumption is that the game is doing position randomization, since other pool games nintendo has made also do it, Clubhouse games (ds) does it really obviously for example.

    • @kataryn
      @kataryn  7 месяцев назад +90

      very interesting insight. Murasaki, one of the best Wii Play speedrunners and someone I briefly mentioned in the video, actually does have real life pool experience. I don't think he ever mentioned this, but he was one of the first people to put his stake in the "there's definitely RNG" ground

    • @exscalliber
      @exscalliber 7 месяцев назад +47

      Knowing how to read a rack is definitely something higher level players do. You almost never see lower to mid level players (Fargo

    • @kataryn
      @kataryn  7 месяцев назад +14

      @@exscalliber that's super interesting

    • @GiraffeFlavoredCondoms
      @GiraffeFlavoredCondoms 6 месяцев назад +7

      @@exscalliberNeeding to learn the rules and nuances of pool? In MY pool game!? It's more likely than you think!

  • @PendragonDaGreat
    @PendragonDaGreat 7 месяцев назад +441

    It's so subtle, and very much like the packing differences you see in pool IRL. It's also a perfect representation of a chaotic system, where very minor, even imperceptible, differences in initial conditions leads to wildly diverging results.

    • @MarioMastar
      @MarioMastar 7 месяцев назад +12

      and the best part is, it doesn't look or feel like they did this JUST to prevent players from enjoying the game, but more so to make the game feel as realistic as possible. Nothing worse than when game developers add randomness to a system that didn't need to be random (like a basketball game having a programmed 5% chance to not fall into the hoop for "balance reasons") but in this case, it's an accurate representation of how billiards is set up IRL and thus with no two games being exactly alike, that adds a lot of replay value for casual players (and some risk pressure for speed runners that makes the game more fun to watch and see them adapt to get a faster time in the moment instead of just memorizing and making it another checkbox not worth watching).

  • @slouch186
    @slouch186 7 месяцев назад +418

    im glad the physics are deterministic and that the RNG only comes from initial position.
    i need to see the 9 break

    • @Dremth
      @Dremth 7 месяцев назад +8

      My first thought was that maybe the physics is non-deterministic, which is pretty easy to do if you use a variable time step.

    • @MarioMastar
      @MarioMastar 7 месяцев назад +10

      Yeah, sounds like from here you don't even need to brute force. It's now a matter of math. You can probably write a script to make the micro adjustments and simulate the results without watching manually and highlighting the combination of variables that result in interesting points like a 9 ball, an 8 ball, or a scratch (something the video didn't bring up, but is worth noting, if the white ball is sunk, that's a scratch and thus a dud, but for curiousity's sake, would it be possible to hit the ball where all 10 balls are sunk? just for fun).
      Reminds me of how RNG seeds are brute forced to find the perfect seed that gets the right outcome and what actions it takes to get that. In those games you have to do some brute force to advance the seed just enough, but in this, since all that matters is the position of the cue, the angle, how far back you pull the cue, and maybe how fast you push the cue forward (not sure), all you need is the algorithms for how the balls interact with each other and the walls, then put it all in python and let it run. Then test the successes manually to verify. That's what computer science is all about.

  • @SharpForceTrauma
    @SharpForceTrauma 7 месяцев назад +197

    Billiards is chaos theory in practice. Infinitesimal variables all come together to impact how your shot goes, everything from how you are holding your cue, your technique, the condition of the table, where the cueball strikes, everything.
    You could make the exact same break hundreds of times and you'll never get the same outcome.

  • @Veltrosstho
    @Veltrosstho 7 месяцев назад +309

    From a real life physics POV, sinking the 9th ball is almost impossible due to the way the balls are set up in a diamond pattern, as the center ball is akin to the middle balls in a newton's cradle, all the force delivered onto is exerted into another ball.
    The physics engine in the game may literally not have enough power to move every single ball into a hole.
    Good luck, I want to see it happen!

    • @xvgm24
      @xvgm24 7 месяцев назад +11

      "almost"😎

    • @TemmiePlays
      @TemmiePlays 7 месяцев назад +5

      actually Ivd thought in this and it's more impossible due to a single thing!
      _scratching_
      that is to say, when you *sink the cueball* or *sink the 8 ball at any time where you didn't call the shot, And not before sinking your solid/stripes.
      so in addition to physically getting 8 balls to sink, you'd need them to go in a way where the cueball does not , and the 8 ball goes last.
      I kinda think this is actually impossible
      unless you just wanna get 9 balls in and also scratch 🤷🏻‍♀️ odds are palpable in that Instance.
      based on this videos evidence and the sheer amount of rng involved I don't think this is gonna happen organically nor in a way that adheres to the game rules

    • @lukeahandsa
      @lukeahandsa 7 месяцев назад +36

      ​@@TemmiePlays Wii Play uses 9ball rules, not 8ball. You don't have to sink the 8 ball last. You have to hit balls in increasing order, but you can sink any ball any time, no solids or stripes necessary (the balls in game are all solid too)

    • @kolaas2006
      @kolaas2006 7 месяцев назад +8

      The 9 gets potted pretty often in real life 9-ball pool, but it's being caromed by other balls into a pocket.

    • @MarioMastar
      @MarioMastar 7 месяцев назад +1

      @@TemmiePlaysWell you're basically asking for a 10-ball pot if you include the cue ball. Due to the physics though, the only way that'd happen is if you hit the ball in such a way that the balls bounced off the wall and hit the cue ball in a way that caused it to sink as well. Whcih is less likely due to limitations in how much power you can put in, but I'm sure there are seeds that make it possible. It's all a numbers game at this point, so regardless of physics or skill, this kind of turned into a computer science or math problem now that we know all the variables involved so far and the math never changes in code (unless they also added RNG to the balls bouncing and based that on factors that in no way could be measured but I doubt this game is THAT deep)

  • @ruinerryan
    @ruinerryan 7 месяцев назад +133

    10 break will happen… even the cue ball goin in 🔥

  • @thomaswalters7117
    @thomaswalters7117 7 месяцев назад +82

    Small, random changes to the ball position in the rack seems like exactly the correct way to produce randomness in a billiards game, since it is also a source of randomness in a real game.

  • @steeliest
    @steeliest 7 месяцев назад +109

    the fact that Wii Sports billiards has probably the most realistic depiction of a break diamond between each round is amazing

    • @MarioMastar
      @MarioMastar 7 месяцев назад +11

      Reminds me of how Pokemon Heart Gold/Soul Silver's Pokewalker was the most accurate step counter for a time.

  • @_fudgepop01
    @_fudgepop01 7 месяцев назад +224

    @ 4:00 Pro Ghidra tip:
    Something I learned in reverse engineering Brawl is that direct reads from FLOAT_address and DOUBLE_address are pretty much always read-only when there’s a series of known bytes there. If you follow the address, you can untick the “volatile” box and it should show the actual proper values that are at those locations instead of just “a float/double exists at this address and we don’t know what it might be”

    • @kataryn
      @kataryn  7 месяцев назад +74

      yeah, I learned that in the process of decompiling the piece of code mentioned in the video and it helped a lot

    • @kiwidev_
      @kiwidev_ 7 месяцев назад +8

      WHAT

    • @_fudgepop01
      @_fudgepop01 7 месяцев назад +18

      ​@@kiwidev_ YEAH IT SAVES SO MUCH HASSLE LMAOOO
      before I knew that I went and manually named each variable to its value so like... "FLOAT_6" or whatever.
      it was hellish - BUT making them as read only makes it SOOOOO much easier to intuit the functions of things with lots of floats ^^

    • @kataryn
      @kataryn  7 месяцев назад +35

      @@_fudgepop01 i totally misunderstood your comment at first - i knew the "FLOAT_address" values were constants but i was using a dolphin memory viewer to look at the values, i didn't know there was a setting to access them directly in ghidra. that's such a timesaver lol

    • @_fudgepop01
      @_fudgepop01 7 месяцев назад +9

      @@kataryn OH HECK YEA I’m glad it helps!! It really was a game changer ^^

  • @Xeare204
    @Xeare204 7 месяцев назад +35

    Definitely feels like the intro to a much longer video, and then it ends.
    Which means part 2 in 7 years is gonna be a fuckin' banger.

    • @MrKo1233
      @MrKo1233 7 месяцев назад +7

      I really hope that just randomly pops up in my recommendations 7 years from now

    • @ToaderTheToad
      @ToaderTheToad 7 месяцев назад +5

      Yeah I was expecting 8:49 to lead into a video showing a TAS of a 7 or more break and then it just...ended

  • @EnderCrome
    @EnderCrome 7 месяцев назад +62

    The fact that someone hasn't even been able to TAS this yet makes it so incredible. I hope that even if it proves to be theoretically possible with no position deviations, someone is able to accomplish sinking 9 balls even with the randomness of the positions.

    • @TyroRNG
      @TyroRNG 7 месяцев назад +6

      I guess you could just run a bot now which would check every possibility strength, angle, hit position and ball position one by one.
      Though who knows just how long that would take, not to mention lag might be a factor.

  • @Trelior
    @Trelior 7 месяцев назад +45

    The random variance on the diamond is actually fairly realistic, there's the same kind of variance on a real pool table. Kudos to Nintendo for factoring something like that in.

    • @MarioMastar
      @MarioMastar 7 месяцев назад +4

      and not for "fake balance" reasons but to actually simulate IRL variance.

    • @Trelior
      @Trelior 4 месяца назад

      @@MarioMastar Who said _anything_ about "fake balance?"

  • @RyMacG4
    @RyMacG4 3 месяца назад +12

    Update: ElectrifiedStrawberry finally got the first 9 break in TAS!!!
    ruclips.net/video/Dd_BZfO1L24/видео.html

  • @SMMidi
    @SMMidi 7 месяцев назад +91

    you led up to 7 BALLS perfectly omg and included the new one, this is so well made! also 9 ball irl is pretty cool would recommend

    • @eins2001
      @eins2001 7 месяцев назад +2

      I personally prefer it to 8 ball irl for sure

    • @bruceyuchuanyu
      @bruceyuchuanyu 4 месяца назад +1

      In my country everyone plays nine balls

  • @darx2823
    @darx2823 7 месяцев назад +43

    I absolutely love how on a video about a 9 break, its exactly 9:00 long

  • @benruniko
    @benruniko 7 месяцев назад +9

    That is a clever solution Nintendo added for the sake of realism. Obviously in reality no two shots can ever be identical but the randomness could have been added in a hundred different places. Very smart of them to understand chaos is easiest simulated with slight changes to initial conditions.

  • @Simoran
    @Simoran 7 месяцев назад +39

    Adam Neely enjoyer spotted, always nice to see Sungazer's music in random videos lol. Awesome video, also!

    • @calvinwright1605
      @calvinwright1605 7 месяцев назад +1

      I was hyped right when I heard it

    • @jBun12
      @jBun12 7 месяцев назад

      Agreed. I heard the into fill and went :o

    • @ikosahelix9342
      @ikosahelix9342 6 месяцев назад

      that shit always puts me in a good mood, came to see if anyone else recognized lol

  • @thomasharris9059
    @thomasharris9059 7 месяцев назад +26

    It is very interesting how they’ve added RNG in a way which still leaves it up to the player. Even if it’s not really humanly possible to take advantage of.

  • @Jademalo
    @Jademalo 7 месяцев назад +49

    Ooohhh, this is incredibly fun.
    Bruteforceing like this has been done a few times, Sockfolder's old OoT/SM64/SMB setups and Krithalith's recent work on SM64 spring to mind. The interesting part will be deciding what variables to lock and what to iterate, since even locking the balls there's so many available just in cue speed, cue position, and aim.
    Good luck!

    • @Ghi102
      @Ghi102 7 месяцев назад +3

      Exactly! You could set the balls to always the same position, but there's no guarantee that an 8 or 9 break exists for all cue positions and speeds, it's a really big solution space

    • @StartTheDayWithKeele
      @StartTheDayWithKeele 7 месяцев назад

      Would probably lock all of the cue variables and focus only on adjusting the initial ball positions until you get closer and closer to 9 balls in. Once a ball goes in with a shot, lock its position for the next shot, and brute force the other positions until 2 go in. Then 3, then 4 etc. This would at least be my initial approach.

  • @maxmustermann5590
    @maxmustermann5590 6 месяцев назад +5

    It's not 'rigged'. It's just a good simulator lol. Real billiard has those Tiny differnces, which makes all breaks unique

  • @Nintendrew
    @Nintendrew 7 месяцев назад +22

    This is fascinating! May the algorithm smile upon you.

  • @Stereomoo
    @Stereomoo 7 месяцев назад +34

    One thought I have for simplifying the search is, if you can figure out when balls touch, maybe you can work from front to back, find a solution that sinks the front ball after it's only hit the cue ball and one of the ones behind it, then use the random adjustment available on the 3rd ball that the second ball hits, to make the second one sink, etc. If you can reduce it to 1-2 collisions at a time then the behaviour gets a lot closer to deterministic so you can use normal optimization methods like hill climbing to get balls into pockets.
    I suppose you'd want to do a viability study first, toss out a bunch of random starts, count collisions, and see if there are any that sink lots of balls and remain at low collision counts, or if the early microseconds of the break involve a huge number of back and forths before the balls scatter.

  • @HoboJR4
    @HoboJR4 6 месяцев назад +4

    that randomizing of the small shift of the balls on the rack is so realistic to real billiards that's cracked from the devs on doing that.

  • @Duckable
    @Duckable 7 месяцев назад +36

    I genuinely admire the fact that you can make a 10 minute video about Wii play 9 ball billiards. Great video

    • @LiliumOrientalis
      @LiliumOrientalis 7 месяцев назад +2

      It's exactly 9 minutes long, which just makes it that much better!

  • @The_Peter_Channel
    @The_Peter_Channel 7 месяцев назад +7

    This video until 1:21: "Hey, what aboutTAS?"
    This video after 1:21: "Now this is getting interesting!"

  • @AstralSpiff
    @AstralSpiff 7 месяцев назад +3

    This SLAPS I LOVED wii play as a kid, I will be waiting patiently for the 9 break

  • @soggycat
    @soggycat 3 месяца назад +4

    electrifiedstrawberry did it in a tas!!!

  • @therealdia
    @therealdia 7 месяцев назад +16

    This sounds very interesting; if you genuinely want to do this, this is my suggestion:
    Take the time to recreate a stripped down version of the game, that will simply take the inputs (the 9 randomness values, ir position, etc.) and then calculate the end result as it would happen in the game. This would allow you to test things out much much quicker than by trying to automatically patch the values and test it in Dolphin.
    Plus, you may find ways to optimize the code even further.
    And if all else fails, chart all the different end positions and use statistics to determine the odds of a 9 shot.

    • @kataryn
      @kataryn  7 месяцев назад +6

      hey, thanks for the input. we're already sort of doing that within dolphin by disabling some of the rendering, but turning it into a fully headless simulation like you're suggesting would require a much bigger decompilation project. as shown in the video, if we want to do anything with the game's code, we have to piece it together from the raw assembly to turn it into something readable, which none of us currently have the time to do on a large scale. maybe someday though

    • @TheArtikae
      @TheArtikae 7 месяцев назад +5

      @@katarynOh jeez, that would certainly be a task and a half.

  • @Niosai
    @Niosai 7 месяцев назад +8

    I am suddenly emotionally invested in the Wii Play Billiards challenge community

  • @mattymattffs
    @mattymattffs 7 месяцев назад +3

    Guess I should've found the community a decade ago because I could have told you that the starting position of the balls is randomized.

  • @Tydusis1
    @Tydusis1 7 месяцев назад +7

    I think the biggest constraint would be finding out if all ball positions support getting a 9-break. Assuming that a max power shot put in the right place every time is a key to success (to reduce variables), is there a ball position offset that is conducive to a 9-break? Alternatively, if the positions are fixed, is there a shot angle and power that can cause a 9-break? A lot of variables to be sure, but quite interesting to think about!

  • @justlookaroundpeople
    @justlookaroundpeople 3 месяца назад +3

    It's been done! and it's beautiful!

  • @saintsheepy6682
    @saintsheepy6682 7 месяцев назад +5

    0:06 Actually, 9 ball pool is the game of choice in national World of Pool championships.

    • @eins2001
      @eins2001 7 месяцев назад +1

      Makes sense. It's far more focused on consistency, accuracy, and layup prediction.

    • @saintsheepy6682
      @saintsheepy6682 7 месяцев назад

      @@eins2001 Eeyup. And I even heard in a video where Efren Reyes and Mike Siegel played against each other in a game of 🎱, one of the announcers mentioned how he heard how 9-ball is to checkers whilst 8-ball is to chess.

  • @HmmmmmLemmeThinkNo
    @HmmmmmLemmeThinkNo 7 месяцев назад +2

    That is _such_ a good bit of realism added to a video game!! A lot of care went into making that game, and I'm pleasantly surprised and impressed.

  • @AbbyMMusic
    @AbbyMMusic 7 месяцев назад +41

    10/10 video but it must be pointed out that your Wii Play Billiards journey began in like 2009

    • @kataryn
      @kataryn  7 месяцев назад +42

      the first obstacle was figuring out how to hit the ball

  • @avgact
    @avgact 7 месяцев назад +8

    9ball pool is arguably more popular in the competitive pool scene (I've played in both 8 and 9 ball tournaments and the 9 ball ones always have a bigger field even in the same regions)

    • @Scotty97
      @Scotty97 7 месяцев назад +2

      Yeah 9 ball is pretty much the game at an elite level

    • @scottl.1568
      @scottl.1568 7 месяцев назад

      I was getting ready to say the same thing... 9-ball is all I play 😅

  • @bugjams
    @bugjams 7 месяцев назад +1

    3:46 Recently, Wii Teamed Up to try and take another stab at solving it from the inside out, and Wii Actually Found Something.

  • @BigBossJelly
    @BigBossJelly 7 месяцев назад +5

    I actually uploaded a video 13 years ago of Wii Play getting a 4 break and thinking that was already amazing/lucky. The 7 is just crazy to me

  • @SqueakyNeb
    @SqueakyNeb 7 месяцев назад +2

    Phillip is an absolute G for admitting the video is fake. Proper gentleman.

  • @j.r.williamson5475
    @j.r.williamson5475 7 месяцев назад +9

    Sungazer as background music? Excellent taste!

  • @jamesknapp64
    @jamesknapp64 7 месяцев назад +1

    3 thoughts
    1. I highly suspect that if a 9 Break is possible that it may require a very small subset of the possible starting positions **and** an exact break fron the given starting position.
    Finding it by brute force would be like winning multiple lotery tickets at the same time.
    2. This video was amazing. 5 years well worth the effort
    3. I wonder if an 8-break is even possible though.

  • @Audio_noodle
    @Audio_noodle 7 месяцев назад +5

    Gotta love the sungazer banger, didn't expect that on a wii play video of all things

  • @deanomood
    @deanomood 4 месяца назад +1

    The day that a perfect game of Billiards is legitimately achieved, it better make international news

  • @shocker1410
    @shocker1410 7 месяцев назад +4

    An incredible video. Smooth, well-edited, well spoken, informative. I was glued to the screen the entire time.

  • @BBSplat
    @BBSplat 7 месяцев назад

    While searching for a 9-break by manually specifying the initial positions of the balls is a good lead, it's also important to note that you'll need to verify that there exists a random starting seed that can generate that exact list of positions, which isn't guaranteed.

  • @EmDanNel-ol9oz
    @EmDanNel-ol9oz 7 месяцев назад +4

    FYI, the guy you emailed is one of the best mobile indie game developers in the world. 🙂

  • @EjayB
    @EjayB 6 месяцев назад

    Great video dude! Billiards was my favourite Wii Play game growing up as a kid, so seeing the effort that was put into the decomp and physics analysis is awesome

  • @RedKincaid
    @RedKincaid 7 месяцев назад +3

    9 minutes ago I had never even heard of Wii Billiards, now i'm excited and anxious to see a potential 9 break. Subbed

  • @DanTheStripe
    @DanTheStripe 7 месяцев назад +2

    Really good video this, short and sweet. Can see the algorithm picking this up and running with it over the next few weeks. Good luck in your journey to finding the 9 break!

  • @galaxsci
    @galaxsci 7 месяцев назад +3

    i love the editing on this video: the font especially. good luck on the nine ball sink!

  • @KefkeWren
    @KefkeWren 6 месяцев назад +1

    Funny thing. The RNG in Wii Billiards is actually attention to detail. In real billiards, the balls are manually racked with a loose guide, and jostled slightly prior to the break. Which means that they will, in fact, always be in very slightly randomized positions. The Wii is accurately modelling a human setting up the game.

  • @firefox1965
    @firefox1965 7 месяцев назад +3

    Banger video. Good to know you're still breaking down Wii games. Crazy stuff. I also jumped when I saw Philipp Stollenmayer's name pop up because he's a game dev that made several mobile games I've played before. So the fact that you reached out to him and he responded is kind of nuts.

    • @kataryn
      @kataryn  7 месяцев назад +3

      thanks so much, and also wow, that's really cool! i had no idea. i guess he's been around for a long time then because that impossible shot video was uploaded in 2009

    • @firefox1965
      @firefox1965 7 месяцев назад +1

      @@kataryn Yeah I guess!

    • @ripstick45
      @ripstick45 7 месяцев назад +1

      didn't ever think Wii Play Billiards would somehow be connected to my middle-school addiction to the mobile game "Okay?" all those years ago LMAO.

  • @FairlySadPanda
    @FairlySadPanda 7 месяцев назад +1

    Hello, I am a maintainer of a billiards game.
    This is really smart and I am probably going to rip it off to add to my own sim. :D
    The reason this was done was almost certainly to avoid the common problem of people figuring out a cheesy "optimal" break and spamming it. 9-ball is pretty notable for being a type of billiards where someone can just play a solo game off a good break, and the virtualized mathematical sim that the Wii will do (and games like mine do) is stable, as you prove.
    Would love to see a decomp of the physics system they used. You can express a complete 2d billiards system in surprisingly little code.

    • @ThisUsernameSystemF-ckingSucks
      @ThisUsernameSystemF-ckingSucks 7 месяцев назад

      See this kinda confuses me. Did it really take this long to figure out the randomisation of the balls considering the breaks were always random? Seem like the first thing anyone would do for a game that involves random outcomes for fun and varied matches.

  • @MrJimmysteel25
    @MrJimmysteel25 7 месяцев назад +7

    Awesome video explaining the journey to a potential 9 break

  • @ChickenScratch
    @ChickenScratch 7 месяцев назад +2

    I really want to see a 9 break become a real thing (even if it's only in a tas)

  • @Aidanryry
    @Aidanryry 7 месяцев назад +3

    0:47 I like the mii with the face to help aim

  • @Pikamander2
    @Pikamander2 6 месяцев назад +1

    If you know all the game's underlying physics math, then you could probably run a simulation in Python or something until you get the right combo of starting seed and shot strength.

  • @heroclix0rz
    @heroclix0rz 7 месяцев назад +7

    This is a chaos theory problem. The solution space is probably not differentiable. I suspect your best chance at brute forcing this involves a super computer. And it still might take a heat death of the universe or two.

    • @jamesknapp64
      @jamesknapp64 7 месяцев назад

      Several Heat Deaths of the Universe later we're still looking.

    • @DrewryPope
      @DrewryPope 7 месяцев назад

      it'll involve luck but that's all of speedrun. keep good track of which runs you've tried and focus on parallelizing.

  • @alexandre3989
    @alexandre3989 6 месяцев назад +1

    Finding good starting positions and cue action seems like a task for a genetic algorithm. But maybe it's too chaotic for that.

  • @cubesandpi
    @cubesandpi 7 месяцев назад +3

    the wii fit BMI sound at 5:50 got me

  • @grafknives9544
    @grafknives9544 7 месяцев назад +1

    IF the ball position precision is as high as the reverse eng. number(0.143925) suggest than we have:
    287 850 positions in x axis and
    TIMES 287 850 in z axis.
    To the power of 9. (9 balls)
    Times hit power levels - lets say 256
    Times the direction of hit - lets say 256
    times cue position (x and y axis) - lets say 64 each.
    wolfram alpha says it is 10^106.
    If every atom (10^79 )of the universe was a computer, making one wii billard simulation per second since the beginning of time (10^17) we would test only one billionth of the possible hits.
    Good luck with brute forcing that.
    All that considering that physics enging is really THAT precise.

  • @ODISeth
    @ODISeth 7 месяцев назад +4

    I kinda hate how much of the tech world is revolving around AI these days but, this seems like a really good opportunity for it. Setting up a neural net, feeding it the RNG values, and training it with the goal of getting a 9 ball break would be a great tool tor TAS makers to figure out a) if it’s possible, b) what RNG seeds it is and isn’t possible on, and c) whether or not it can be consistent. This is exactly what AI should be for, not stealing the hard work of creators for generating content, but performing repetitive trivial tasks based on extremely precise values to achieve theoretically possible goals!

    • @teliots
      @teliots 7 месяцев назад

      This is a stupid comment and totally misses the purpose of machine learning.

  • @piguyn
    @piguyn 7 месяцев назад +2

    Great video and incredible discovery. Also you are so crazy awesome for the Sungazer music

  • @Mr.ShyGuyYT
    @Mr.ShyGuyYT 7 месяцев назад +12

    if this gets a million views, just know i predicted it.

  • @StrathPool
    @StrathPool 6 месяцев назад +1

    In real pool, the best breaks come from the tightest racks. Try manually changing the code to ensure that ajacent balls in the rack are touching. Then break with maximum power. Hope this helps!

  • @c.d.x34
    @c.d.x34 7 месяцев назад +3

    If there's one thing I've learned from speedrun communities across who knows how many games, it's that if there's RNG, there's a manip for it. Someone just has to find it.

  • @mariamachida7571
    @mariamachida7571 6 месяцев назад

    I do enjoy that a very slight bit of RNG was implemented to mimic like the slight randomness of actual sets and that people assumed something was up for so long but collectively just thought "That's crazy Nintendo would never."

  • @finkelmana
    @finkelmana 6 месяцев назад +2

    People dont play 9 ball in real life? Its THE most popular and televised billiard game in America. Most tournaments are 9 ball. Granted 10 ball is gaining in popularity, as it does take luck out of accidentally making a ball on a legal shot and continuing play. 10 ball requires calling one ball and one pocket. 8 ball is definitely the most well known game and is the easiest to learn and play. Granted, most people dont actually know the real rules to 8 ball anyway. They just play the way someone else told them. Finally, there is a phrase pool players know, "what is the most important shot in pool? The next one."

  • @ScrDesh
    @ScrDesh 7 месяцев назад +1

    The video is 9 minutes long exactly, nice detail.
    Also I particularly like your Groove, I hope we'll see a one-shot game of Wii Play Billiards soon!

  • @Killysunt
    @Killysunt 7 месяцев назад

    Well presented & interesting, good job man

  • @5MadMovieMakers
    @5MadMovieMakers 6 месяцев назад +2

    Looking forward to the hypothetical big break

  • @Spronkadunk
    @Spronkadunk 6 месяцев назад

    The best part of the game is how close the randomness is to real life. Like so many real life pool players you are chasing something repeatable that involves randomness and will remain elusive.

  • @pierrotA
    @pierrotA 7 месяцев назад

    I would say that the main role of that randomness is to block bots.
    Because the game physic is deterministic, it would be easy to record the inputs of a game you win without missing once, then play back the inputs each time you have to break.
    However it could seem unfair if the shoots were random, thus adding positions offsets on the balls is the best solution.
    It's also very easy to do.

  • @waxknucklebearingjuice5592
    @waxknucklebearingjuice5592 7 месяцев назад +1

    9 ball is actually much more competitive , as it is considerably more strategic. 8 ball is what everyone plays at bars because it uses all the balls and the rules are easy to explain and the game itself is easier.

    • @PointNemo9
      @PointNemo9 7 месяцев назад

      8-ball is actually more strategic, but the problem is that for top players it is very easy for them to run-out nearly every rack. Chinese 8-ball is the best form of pool because it has the strategy of 8-ball but potting and run-outs are far more difficult than on a normal pool table.

  • @tofmill3640
    @tofmill3640 7 месяцев назад

    As a pool enthusiast, I saw all those random breaks and immediately thought, "So the balls aren't racked tightly?"
    I didn't know pool existed as a Wii game, so I'm glad to see people being passionate for something I have a passion for. Maybe the speedrunning community can consult some professional pool players and see how they could help.
    Hope to see the perfect break very soon.

  • @peternewson2275
    @peternewson2275 6 месяцев назад

    Slightly randomizing the ball placement at break is very realistic, its not like bowling where the pins are set by a machine, you rack the billiard balls by hand so theres always a slight difference between any two racks after the triangle is removed

  • @jakemauger8377
    @jakemauger8377 7 месяцев назад

    As far as I've ever known the goal in 9ball isn't to pocket all the balls but just to legally pocket the nine. That is, the cue ball can only make first contact with the lowest ball on the table. If you can strike the one and sink the nine on the break, you win.

    • @kataryn
      @kataryn  7 месяцев назад +1

      read the pinned comment

  • @lifeiswonderful22
    @lifeiswonderful22 7 месяцев назад +1

    Sometimes the algorithm just gives me a mind-blowing video about a game or topic I never cared about until now.

  • @octavgg
    @octavgg 7 месяцев назад +1

    I just watched the best video about a digital 9 ball game with janky code ever, and it was amazing. Truly fascinating how code with such simple goals remains hidden for so long

  • @twitertaker
    @twitertaker 6 месяцев назад

    Kudos to the developers to come up with such a simple, elegant, invisible and realistic solution to introduce randomness. It is quiet clever.

  • @robertdilorenzo1183
    @robertdilorenzo1183 6 месяцев назад

    Just a random side note, but my guess is that the Nintendo designers and engineers who worked on this put the slight randomness on ball placement purposefully to make it play closer to real life, where humans are definitely not able to place each ball in exactly the same spot down to the nanometer every game. It also adds replay-ability so more casual players won't get bored by seeing very similar breaks all the time

  • @abaddonarts1129
    @abaddonarts1129 7 месяцев назад

    Me one minute from the end of this video: "I wonder if someone could run an emulation on a computer that endlessly rolls the first strike until it gets a 9 break and then save the numbers in the placement code." And then you mentioned trying to do something like that.
    Brilliant stuff man, I hope to one day see a genuine 9 break in engine.

  • @StevetheWizard2591
    @StevetheWizard2591 6 месяцев назад

    ... You know, the actual random element of the game generating the positioning of the balls randomly makes this one of the best pool simulators in existence. You literally cannot replicate the exact placement of the balls between sets. Even with the most precise measurements possible, there will always be microscopic differences in initial placement.

  • @evanmixon1808
    @evanmixon1808 7 месяцев назад

    My grandfather used to play pool professionally for a time and I remember him and I used to play this so often. 9 ball is actually my favorite way to play pool. 6 ball was his favorite and we would play it if we wanted to get a quick game in.

  • @forlape
    @forlape 7 месяцев назад

    actually a really good watch, keep up the good work!

  • @TemmiePlays
    @TemmiePlays 7 месяцев назад

    quick answer: Nintendo likes fairness.
    In pool, someone goes first, and when you sink a ball; you can go again.
    This means a skilled player going first can clear the board.
    By introducing small RNG Nintendo was able to level the playing field by making that crucial break impossible to crack.

  • @SeanOBrienK
    @SeanOBrienK 6 месяцев назад

    This was a rollercoaster start to finish. Solid explanation in under 10 min. I really hope the original developer who put in that RNG sees this. I can imagine feeling so proud that someone finally noticed.

  • @shmovinnn
    @shmovinnn 7 месяцев назад +2

    great video!!! so high quality, keep up the good work

  • @Zander2212
    @Zander2212 7 месяцев назад

    I think I read somewhere that, at least when Wii Play was being made, 9 Ball was much more popular in Japan than 8 ball, and that's why that's the version they made.

  • @Leander_
    @Leander_ 6 месяцев назад

    That was shockingly engaging, awesome video! Good luck with the research.

  • @seazeiscool
    @seazeiscool 7 месяцев назад +2

    im not into the wii play* community but im really surprised it took that long to figure out the ball positioning being randomised, like i would have imagined speedrunners would have figured it out years or decades before through comparisons to optimise runs
    great video btw, its cool that there is still unsolved mysteries like this in a game so old

    • @isavenewspapers8890
      @isavenewspapers8890 7 месяцев назад

      This is Wii Play, not Wii Sports.

    • @th3on3c
      @th3on3c 7 месяцев назад

      Hello I know you

    • @seazeiscool
      @seazeiscool 7 месяцев назад +1

      @@isavenewspapers8890 oops thats the worst mistake i will ever make ever

  • @nidavis
    @nidavis 7 месяцев назад

    As a software engineer who has racked a lot of billiard balls, this is exactly what I'd do for a first order of approximation. The rack determines the break. This is even likely the origin of the meaning "bad break" and "these are the breaks" etc -- which to me is another way of saying "high degree of randomness involved". Great game design!