Patrick's Parabox - Floating Point Errors

Поділитися
Вставка
  • Опубліковано 17 вер 2024
  • Patrick's Parabox gameplay, a puzzle game where you can go into boxes that contain smaller levels of boxes within boxes within boxes within boxes.
    Yes it ends in a cliffhanger lol
    This is a fanmade levelpack by Patcail: cdn.discordapp...
    You will require patching Assembly-CSharp.dll with the CustomHubs mod to play the hub version: github.com/plo...
    store.steampow...
    patricktraynor...
    Steam: "Patrick's Parabox is an award-winning puzzle game that explores a unique recursive system of boxes within boxes within boxes within boxes. Learn to manipulate the world's structure by pushing boxes into and out of each other. Wrap your head around what happens when a box contains itself, and learn to use infinity to your advantage. Explore many more mechanics and recursive twists as you delve deeper and deeper into the system. It's boxes all the way down."

КОМЕНТАРІ • 37

  • @Altimary_
    @Altimary_ Рік тому +58

    "1.000000001 shouldn't affect much" they thought

  • @TBiscuit1
    @TBiscuit1 Рік тому +43

    I think the devs made enters/exits location using floats or doubles for division, which does lead to floating point error and when rounded to an int, breaks
    The crash most likely comes from an index out of bounds (since it search for a value of -1 or 5 which is impossible)
    The game WANT to insert into that box since it's possible, it can find a place to place you! But then when it calculate the placement it shifts because of rounding error
    This is def patchable, but would require a lot of the core game code to be modified

    • @FLCoeur
      @FLCoeur 11 місяців тому +1

      It is single float. In 3:42, the error occurs at 6th 1/25, which is (1/25)^6 approximately 1e-7. The single error is about 1e-7 while double is 1e-16.

  • @lordmarshmal_0643
    @lordmarshmal_0643 Рік тому +16

  • @espicelmecanicodecombustio1632

    And here I thought the level select shenanigans were as cursed as it gets

  • @victor_creator
    @victor_creator Рік тому +15

    4:00 The numbers denote the block width of the pieces

  • @BromeoWuggles
    @BromeoWuggles Рік тому +7

    I didn’t know the limit was so low, I knew there must be a limit but it’s not very many boxes

  • @user-tl4bg3ci3g
    @user-tl4bg3ci3g Рік тому +4

    The box doesnt enter because it tries to enter a wall instead of the hole in the box due to a rounding error

  • @user-qp3js5ix6i
    @user-qp3js5ix6i Рік тому +9

    here’s my idea of like how this works (just a theory tho) so like basically in like this game the positions inside boxes are recorded using decimals, like for example a 3x3 has the first tile range from decimal 0 to 0.3333333…, the second being 0.333.. to 0.666.. you get the point. now, the reason why we enter the second or “middle tile” is because when entering the game checks for a place where you can enter at decimal 0.5. The range 1/3 to 2/3 contains this, so the game goes into that tile. However the catch is that to make it easier the game rounds these to 0.33 and 0.67, since otherwise they would be infinite. Or this is natural for the unity engine. either way, if we put another box inside there, we have a box in 0.33 to 0.66, and the only enterable place there is the middle, but to check the bounds we must consider a 9x9 area since it is a 3x3 inside a 3x3. So we have 0 to 1/9, 1/9 to 2/9, and etc.. the area we are looking for is 4/9 to 5/9. Rounding this gives 0.44 and 0.56. Putting another box in gives 13/27 and 14/27. Which rounds to 0.48 and 0.52. continuing we get 0.49 and 0.51, or 40/81 and 41/81. then we get 0.5 and 0.5…. these appear to be bounds you can normally be able to enter, and as you go on they stay the same… so what’s wrong? Well, I think that instead of being close bounded like [0,1], where 0 and 1 are included, they are actually closed bounded, so (0,1) implies 0 and 1 are not included. This means our box-ception has bounds (0.5,0.5) which is nothing since 0.5 is not included. so that means the box is unenterable.
    Of course this demonstration happens way faster than in the actual game since it only uses 2 decimal points. Parabox likely uses 3 or more. So that’s it.
    I cant seem to find out why eating is normal, so if anyone could help with that thank you. Of course, it could just be that my whole theory is wrong but whatever. This was just a guess anyways.

    • @TBiscuit1
      @TBiscuit1 Рік тому +1

      Eating is working properly since the block that gets eaten go to 0.5 of the block getting pushed, block getting pushed that is just a normal 3x3, so it will always never fail
      However, if an errored block would be the pushed one, it couldn't push for the same reasons

    • @user-qp3js5ix6i
      @user-qp3js5ix6i Рік тому +1

      @@TBiscuit1 yeah I was guessing that but i didn’t really know

    • @orrinpants
      @orrinpants 6 місяців тому

      eating doesn't care if there's a wall on the other side. Then you wouldn't be able to eat a normal box

    • @SysFan808
      @SysFan808 2 місяці тому

      if you're entering, you're going inside a box inside a box inside a box... (way too many enters)
      if you're eating, you're just taking the last box (however complex it may be) and putting it in a box. (only one enter)

    • @nayutaito9421
      @nayutaito9421 Місяць тому

      So did the game divided by 0? Interesting.

  • @noface7842
    @noface7842 Рік тому +8

    ...Oh god don't let the creator of squishcraft make a PP level pack...

  • @FLCoeur
    @FLCoeur 11 місяців тому +1

    10:29 You probably entered some level of epsilon here.

  • @omgjames
    @omgjames Рік тому +5

    👀 me waiting for N other N Cryption (yes I have patience)

    • @IcelyPuzzles
      @IcelyPuzzles  Рік тому +1

      can I skip the cursedcursed level

    • @omgjames
      @omgjames Рік тому +2

      @@IcelyPuzzles sure lol, do whatever you feel like doing haha

    • @omgjames
      @omgjames Рік тому +1

      Also I don't exactly know what you mean by cursedcursed level- there be many

    • @reborn6411
      @reborn6411 Рік тому +1

      @@omgjames I'm pretty sure the cursedcursed level is that multi blue infinite

  • @sighmon5640
    @sighmon5640 Рік тому +3

    maybe entering the clone when its full has some different behavior at that point?

  • @Izzythemaker127
    @Izzythemaker127 Рік тому +3

    10:39 hmm thats odd, the game didn't freeze when I did that

    • @Izzythemaker127
      @Izzythemaker127 Рік тому +1

      I just realized that I have a different version, the non-epsilon box has an even height and only two spaces in it get filled up, don't ask me how this took me over 5 months to realize don't judge me

  • @erikhaag4250
    @erikhaag4250 10 місяців тому +1

    This is why you use fractions instead of floats

  • @neutralflowerland
    @neutralflowerland Рік тому +3

    no stop

  • @FLCoeur
    @FLCoeur 11 місяців тому

    3:42 it is a pity that we cannot see what happens in 99

  • @Fasteroid
    @Fasteroid 8 місяців тому +1

    0.1 + 0.2 = 0.30000000001

  • @haipingcao2212_.
    @haipingcao2212_. 4 місяці тому

    10:38 f̥̘̥̥̥̘̥̘̘̥̘̥̘̘̘̥̘̘̘̘̈̈̃̃̃̈̃̃̈̈̈̈̈ʟø̬̬̬̬̬̬̬̬̬̬̬̬̬̬̬̘̘̯̯̘̘̘̬̪̪̪̈̈̈̈̈̈̈̈̈̈̈̈̈̃̃̃̃̚̚̚ɑ̘ẗ̘̘̘̬̬̬̬̬̬̬̬̬̘̘̘̘̟̟̟̟̹̯̯̯̯̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̃̃̃̃̃̃̃̃̃̃̃̃̃̃̃ f̘̘̘̘̘̘̘̘̥̥̥̥̥̥̥̥̬̬̬̬̬̬̬̘̟̟̟̹̯̯̯̹̝̝̹̹̹̟̟̘̚̚̚̚̚̚̚̚ɽɛɛʂe

  • @genashv
    @genashv Рік тому +2

    1.00000000000001

  • @Toprak135
    @Toprak135 Рік тому +1

    WHAT

  • @genashv
    @genashv Рік тому +1

    1.00000000000000000000001 10:00

  • @genashv
    @genashv Рік тому +2

    1.000000000000001

  • @orrinpants
    @orrinpants 6 місяців тому

    33.0000001th comment