"PREV" (genius puzzle mechanic)

  Рет қаралды 7,306

Icely Puzzles

Icely Puzzles

Күн бұрын

It seriously is.
Download: mega.nz/file/s...
Playlist (CUSTOMS): • Baba Is You - Customs ...
"secret" discord: / discord

Пікірлер: 46
@gabeyk9
@gabeyk9 7 ай бұрын
hi i made the pack (idk why my biy name is dogit by default) 1:08 cheese battle advanced 10:25 it's a different verb 10:44 oops (it's supposed to be time is done but uhhh yeah) glad you played this yeah i had this idea but i'm terrible at level design so yeah cba
@aadenboy
@aadenboy 7 ай бұрын
Add option
@plushloler
@plushloler 7 ай бұрын
the creator should make a full game about this. It's just a question of how to make it not so attached to baba.
@JustAnotherCommenter
@JustAnotherCommenter 7 ай бұрын
Dogit knew that Icely would edit the bottom branch due to the juxtaposition of the numbers' order in the top branch
@IcelyPuzzles
@IcelyPuzzles 7 ай бұрын
lmao
@stellatedhexahedron6985
@stellatedhexahedron6985 7 ай бұрын
you haven't seen prev before because it's impossible to do in a general way that's also efficient. problems like "baba rules that could hypothetically be made this turn if that rule was already true" are, in the general case, NP hard, so your options are - check every possible rule that could be made with the existing words and see if it results in that rule (not too hard but abysmally, unusably slow) - reimplement the entire baba parsing engine except it's ten times more complicated now (extremely hard, guaranteed tons bugs and nonfunctional edge cases, and probably still too slow) - cheat by creating a different hacky solution for every level, adjusting the level design if necessary to cover any holes (not too hard, but high effort for larger packs, and some would consider it unsatisfying)
@carpedm9846
@carpedm9846 7 ай бұрын
Yeah no I have no idea how you could go about it. Perhaps you only check under specific circumstances, like if there is a [ROCK] [space] [PUSH] sequence you check for rocks that are near it. For FALL you check stuff above the tile if there is a "text is" or "is fall" or "text ... fall" sequence. Essentially giving each rule its own prev check to try to do it in a reasonable computation load. Insane mechanic and a nightmare to code. I praise their ingenuity and madness
@blujai831-zj3uq
@blujai831-zj3uq 7 ай бұрын
I think you may be pleasantly surprised about the first option you listed. Even an exponential-time procedure can be acceptably fast if the input is sufficiently small, and given the processing power of modern computers and how many words generally tend to be in a level, I think we're dealing with sufficiently small inputs. I haven't looked at the game's API, but maybe I will just to try this: 1. When a level with a prev object loads, build a list of all text objects in the level, and compute all permutations of the list which include prev. Parse the list, and further filter it down to permutations which parse as exactly one rule. Since we do this at load time, the resulting noticeable delay will be acceptable, unless the level has a ridiculous number of words. Note 1.a: When all is said and done, what I'm banking on here is that the resulting list will be a lot shorter than you worry it will. It will also help a great deal that we don't have to rebuild the list every turn. If we had to rebuild the list every turn, this whole solution would be intractable. Caveat 1.b: Step 1 will not be robust against moves which might create multiple rules in one turn. Fix 1.b.i: After the list is filtered down to valid single rules, we could keep all permutations which parse as at least one rule instead of all permutations which parse as exactly one rule, though we can throw out all but one permutation from every partition of permutations which each represent the same combination of rules. Caveat 1.c: Step 1 will not be robust against introduction of new text objects at playtime. Fix 1.c.i (bad): We could rebuild the list every time a turn passes in which at least one text object is created. Unsolvable problem 1.c.i.A: Fix 1.c.i will not be robust against "is text" or "is word" cases such as the one in the video, since we only recompute the list _after_ the text object is created, and not so as to _predict_ its creation. Unsolvable problem 1.c.i.B: Furthermore, fix 1.c.i will cause noticeable delay every time a text object is created. Fix 1.c.ii: When initially computing the list, we could add one extra potential text object for every unique potential noun (i.e. for every type of non-text object in the level, but not for every individual non-text object). Caveat 1.c.ii.a: Fix 1.c.ii will not be robust against levels that involve creating at playtime more than one of the same noun. Fix 1.c.ii.a.i: Let N = 1. Every time we compute the list, including the initial time, we add N extra potential text objects for every unique potential noun, and then, _after_ we've already used N's old value in this way, N *= B, for some constant B, e.g. 5, 5 seems like a reasonable pick. Let M be a table. For every unique potential noun w, let M[w] = 0. Every time we create a text object at playtime which is equivalent to any such w, M[w]++, and if M[w] >= N, then, and only then, we recompute the list. (This technique of ameliorating invocations of an exponentially expensive procedure, by invoking it with exponentially growing lookahead so that you have to call it exponentially less often over time, is called amortized time complexity.) Unsolvable problem 1.c.ii.a.i.A: Fix 1.c.ii.a.i will cause noticeable and exponentially increasing delay every time a move causes M[w] >= N. However, this will happen exponentially less often over repeated occurrences. 2. If the game's codebase doesn't already have one, setup a virtual model of the game state which can simulate game logic offscreen on demand. This model can be made efficient by obviating any dependency on the game engine and simply simulating the pure game logic in a self-contained bubble. This should be doable; in a grid-based puzzle game such as this, we can think of the underlying game engine as an irrelevant implementation detail. 3. Every time a move is made, go through the list we built in step 1, and for every list entry containing any rule not currently active, use our virtual model to branch from the previous game state and simulate the same move while pretending all rules in that list entry are already active. If and only if the virtual model resolves in a state where all rules in the list entry _actually are_ active, replace the real game state with the virtual game state and cease iterating the list.
@carpedm9846
@carpedm9846 7 ай бұрын
@@blujai831-zj3uq very fun comment to read
@angelcaru
@angelcaru 5 ай бұрын
I briefly looked into the code (keep in mind that I know nothing about Baba modding, but I do have general programming experience) and it looks like it's doing a mix of 1 and 3 with a special case for FALL
@k.k.8133
@k.k.8133 7 ай бұрын
the levels for prev were in reverse order (3, 2, 1) so clearly the tutorial for the mechanic was in 1
@theominouspigeon
@theominouspigeon 7 ай бұрын
jesus christ what a mechanic
@MrCheeze
@MrCheeze 7 ай бұрын
Reminds me of Braid's world 1, where you already know what the future is and are manipulating a logically consistent past that leads to that future. This one is a bit different and a lot more developed, though.
@barracudalake1607
@barracudalake1607 7 ай бұрын
Imagine it allowed stacking, would be hard to implement but I’d love prev prev prev prev prev prev
@MrChaomen
@MrChaomen 7 ай бұрын
Bottom levels were in right order (a->b->c), because they have a theme of future time machine. But I wish they were a->c>e instead, or something similar.
@roxienatura
@roxienatura 7 ай бұрын
This is one of the most interesting mechanics I’ve seen in a long time. Really cool stuff.
@Toprak135
@Toprak135 7 ай бұрын
You can never have a custom mechanic too insane.
@comexk
@comexk 7 ай бұрын
Now imagine you had PREV FLAG WRITE 🏁. What would happen? Just like with PREV 🏁 IS TEXT, the flag should turn into some word that then retroactively justifies the word being created. But whereas with PREV 🏁 IS TEXT the new word has to be “FLAG” for it to be self-consistent, with PREV FLAG WRITE 🏁 it could be any writable word. Or even a stack of them.
@goosifyed9717
@goosifyed9717 7 ай бұрын
this reminds me of that "preemptive damage potion" gag from 50 ways to die in minecraft
@Khusyasy
@Khusyasy 7 ай бұрын
how tf is "prev" even implemented, like simulating a turn based on the prediction of any rules that can be made?
@mambodog5322
@mambodog5322 7 ай бұрын
the walls in 3 and 1 are conspicuously thick, there's almost certainly hidden text masking various levels of jank
@clownminusone
@clownminusone 7 ай бұрын
as a person who tried modding baba i didn't believe anyone would make turn simulating. the code seems to be half-hardcoded since it only checks for specific rules (i might be wrong tho)
@addmakerhd480
@addmakerhd480 7 ай бұрын
Previous battle got advanced Also prev is such a good mechanic
@Khaim.m
@Khaim.m 7 ай бұрын
7:15 I think maybe you were supposed to make NOT KEKE IS WEAK, then destroy the spikes by shifting Keke onto them, then make LEVEL IS SAFE from underneath. Although in that case the NEXT wouldn't matter so maybe not? Also I'm not sure on the priority between shift/weak and weak/eat so this might not work at all.
@artman40
@artman40 7 ай бұрын
Noticed that many later packs involve time in some fashion. Though this here is the most interesting one.
@RoboticPress
@RoboticPress 7 ай бұрын
It’s good tho prev gave me a headache trying to understand it
@royaloreo1275
@royaloreo1275 7 ай бұрын
I mean, if you tried to not cheese lvl 3 you'd immiedetely put prev somewhere around rock is push.
@extremethreat1
@extremethreat1 4 ай бұрын
is prev an italian restaurant because GOD thats so much spaghetti code probably
@lexyeevee
@lexyeevee 7 ай бұрын
well. PREV 🏁 IS TEXT is clearly insane. wow
@lunar532
@lunar532 7 ай бұрын
gaslighting a flag into believing its a word
@leno300
@leno300 7 ай бұрын
Chess is Baba advenced
@glowstonelovepad9294
@glowstonelovepad9294 7 ай бұрын
Verp
@DontfeelNienfeeler
@DontfeelNienfeeler 7 ай бұрын
from 0:11 to 0:47, I figured it out in about 36.7 seconds.
@30IYouTube
@30IYouTube 7 ай бұрын
Life Baba Advanced
@30IYouTube
@30IYouTube 7 ай бұрын
(Previous CBA Meme)
@felipecardope
@felipecardope 7 ай бұрын
Next Mechanic 's Nonsense
@PlayMakeReview
@PlayMakeReview 7 ай бұрын
5:17 please just edit the icons, don't risk breaking the map
@MachineMind4
@MachineMind4 7 ай бұрын
Yes
@BryanLu0
@BryanLu0 7 ай бұрын
I actually guess that this is how it would work. It's just not well telegraphed that it modifies a statement
@inkieboi1515
@inkieboi1515 7 ай бұрын
Marble blast advanced 2
@leokinglv1970
@leokinglv1970 7 ай бұрын
Is every mechanic genius?
@scooterpilot
@scooterpilot 7 ай бұрын
1hour after post
@Golden._Grayductions-x7j
@Golden._Grayductions-x7j 7 ай бұрын
Im the first one WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO9OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
@JustAnotherCommenter
@JustAnotherCommenter 7 ай бұрын
pov: overhyped celebration of having no other better comments to read during an early time
@Cheesemongle
@Cheesemongle 7 ай бұрын
comments battle advanced
@orrinpants
@orrinpants 7 ай бұрын
I've thought of the PREV mechanic before, except not as a modifier, just as something that's always true, as a levelpack using that as a gimmick
Baba Is You Movement Mechanics That Are Insane
37:50
Icely Puzzles
Рет қаралды 12 М.
Every Softlock in Portal
43:08
Marblr
Рет қаралды 1,7 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
The levelpack with intentionally impossible levels
25:18
Icely Puzzles
Рет қаралды 23 М.
Infinite Craft Went Too Far..
30:44
Why Suda
Рет қаралды 9 МЛН
Absurd Trolley Problems in Baba is You
7:54
Aa games
Рет қаралды 6 М.
The Mob Vote is Dead, here's why
19:32
Crafting History
Рет қаралды 2 МЛН
They turned MATH into a factory game...
21:34
Real Civil Engineer
Рет қаралды 2,1 МЛН
Baba Is You but there's custom words and math symbols
15:05
Icely Puzzles
Рет қаралды 23 М.
Building A Platformer EXTREME DEMON!
20:03
Sdslayer
Рет қаралды 308 М.
It's Your Job to Learn Why This Makes Sense - Understand
23:17
Aliensrock
Рет қаралды 134 М.
Baba Is You: Editing Controls Is A Puzzle Mechanic?!
40:36
Icely Puzzles
Рет қаралды 62 М.
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.