It seriously is. Download: mega.nz/file/s... Playlist (CUSTOMS): • Baba Is You - Customs ... "secret" discord: / discord
Пікірлер: 46
@gabeyk97 ай бұрын
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
@aadenboy7 ай бұрын
Add option
@plushloler7 ай бұрын
the creator should make a full game about this. It's just a question of how to make it not so attached to baba.
@JustAnotherCommenter7 ай бұрын
Dogit knew that Icely would edit the bottom branch due to the juxtaposition of the numbers' order in the top branch
@IcelyPuzzles7 ай бұрын
lmao
@stellatedhexahedron69857 ай бұрын
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)
@carpedm98467 ай бұрын
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-zj3uq7 ай бұрын
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.
@carpedm98467 ай бұрын
@@blujai831-zj3uq very fun comment to read
@angelcaru5 ай бұрын
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.81337 ай бұрын
the levels for prev were in reverse order (3, 2, 1) so clearly the tutorial for the mechanic was in 1
@theominouspigeon7 ай бұрын
jesus christ what a mechanic
@MrCheeze7 ай бұрын
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.
@barracudalake16077 ай бұрын
Imagine it allowed stacking, would be hard to implement but I’d love prev prev prev prev prev prev
@MrChaomen7 ай бұрын
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.
@roxienatura7 ай бұрын
This is one of the most interesting mechanics I’ve seen in a long time. Really cool stuff.
@Toprak1357 ай бұрын
You can never have a custom mechanic too insane.
@comexk7 ай бұрын
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.
@goosifyed97177 ай бұрын
this reminds me of that "preemptive damage potion" gag from 50 ways to die in minecraft
@Khusyasy7 ай бұрын
how tf is "prev" even implemented, like simulating a turn based on the prediction of any rules that can be made?
@mambodog53227 ай бұрын
the walls in 3 and 1 are conspicuously thick, there's almost certainly hidden text masking various levels of jank
@clownminusone7 ай бұрын
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)
@addmakerhd4807 ай бұрын
Previous battle got advanced Also prev is such a good mechanic
@Khaim.m7 ай бұрын
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.
@artman407 ай бұрын
Noticed that many later packs involve time in some fashion. Though this here is the most interesting one.
@RoboticPress7 ай бұрын
It’s good tho prev gave me a headache trying to understand it
@royaloreo12757 ай бұрын
I mean, if you tried to not cheese lvl 3 you'd immiedetely put prev somewhere around rock is push.
@extremethreat14 ай бұрын
is prev an italian restaurant because GOD thats so much spaghetti code probably
@lexyeevee7 ай бұрын
well. PREV 🏁 IS TEXT is clearly insane. wow
@lunar5327 ай бұрын
gaslighting a flag into believing its a word
@leno3007 ай бұрын
Chess is Baba advenced
@glowstonelovepad92947 ай бұрын
Verp
@DontfeelNienfeeler7 ай бұрын
from 0:11 to 0:47, I figured it out in about 36.7 seconds.
@30IYouTube7 ай бұрын
Life Baba Advanced
@30IYouTube7 ай бұрын
(Previous CBA Meme)
@felipecardope7 ай бұрын
Next Mechanic 's Nonsense
@PlayMakeReview7 ай бұрын
5:17 please just edit the icons, don't risk breaking the map
@MachineMind47 ай бұрын
Yes
@BryanLu07 ай бұрын
I actually guess that this is how it would work. It's just not well telegraphed that it modifies a statement
@inkieboi15157 ай бұрын
Marble blast advanced 2
@leokinglv19707 ай бұрын
Is every mechanic genius?
@scooterpilot7 ай бұрын
1hour after post
@Golden._Grayductions-x7j7 ай бұрын
Im the first one WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO9OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
@JustAnotherCommenter7 ай бұрын
pov: overhyped celebration of having no other better comments to read during an early time
@Cheesemongle7 ай бұрын
comments battle advanced
@orrinpants7 ай бұрын
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