Remaking the Hardest Game is (surprisingly) Easy

  Рет қаралды 15,759

BLANKdev

BLANKdev

Күн бұрын

Let's remake the award winning game changing puzzle BABA IS YOU, figure out how it works, and how to make it yourself!
This remake is made using the python module pygame, but any game development framework or engine like Unity game engine, Construct3, or Godot would work great!
While playing this unique and mind-bending indie game, I couldn't help it but be curious to how it was made! The best way to figure it out is to reverse engineer it together in this devlog!
🕒 Timestamps:
00:00 - The Secrets of BABA IS YOU
00:30 - Remaking the Game Changing World
00:49 - How does the Unique Puzzle Mechanic work?
01:29 - Remaking BABA IS YOU
01:43 - Remaking WALL IS STOP
01:51 - Remaking ROCK IS PUSH (Stupidly Hard)
03:33 - Uncovering the Genius Custom Animation System
04:39 - Remaking FLAG IS WIN
04:50 - How do we push rules around to change them?
Other awesome BABA IS YOU remakes and devlogs:
The rules of this game change as you play it: • The rules of this game...
This game outsmarted a professional engineer... Baba Is You!: • This game outsmarted a...
How Baba Is You Makes Brain Busting Puzzles: • How Baba Is You Makes ...
Good Game Design - Baba Is You: • Good Game Design - Bab...
❤️ Join the BLANK Realm:
Discord: / discord
🎁 All Resources used in this video can be found at the following GitHub repository: github.com/tobyrcod/GameDevRe...
Happy Coding Everyone! ❤️💻

Пікірлер: 76
@g_cabbige5
@g_cabbige5 Жыл бұрын
I love each pun in this video, whether its intentional or not. "Baba is unique"... haha very funny XD
@BLANKdev
@BLANKdev Жыл бұрын
...definitely all intentional
@yaoitiddieexpert1486
@yaoitiddieexpert1486 Жыл бұрын
just letting you know, You objects can actually stack onto themselves. there are a couple levels where you do this with something like baba iis shift to make you move like 5 tiles at a time (since every baba is on 5 other babas, which are all shift)
@Splitcyclewastaken
@Splitcyclewastaken 3 ай бұрын
you can also make one object shift multiple times, and doing that will mean one tile that's double shift will move you two tiles immediately.
@AndrewDavidJ
@AndrewDavidJ Жыл бұрын
Great work! Baba Is You looks like such a daunting game to create, but I guess once you already know all the rules, they’re not too difficult to breakdown. Still impressive that you put this together though!
@BLANKdev
@BLANKdev Жыл бұрын
Thank you so much! I definitely ignored a lot of complexity to make the remake easier though, the real baba is you is INSANE!
@Patashu
@Patashu Жыл бұрын
Baba is You is not too hard to clone (have done it myself - check out the awful-on-purpose fan game bab be u). The actual mountain that was scaled is the incredible amount of puzzles, mechanics, polish and making everything play nicely together. It's such an intriguing experience, and it's fun to try what-if questions, like 8 way movement or custom text.
@BLANKdev
@BLANKdev Жыл бұрын
That's a great way of putting it. I ended up quite surprised at how simple rules can get you most of the way there, but even with them it takes some genius to make the puzzles as amazing as there are which only he could have done
@notwithouttext
@notwithouttext Жыл бұрын
2:09 (the pushing section) i thought it was hard too, until i tried programming in puzzlescript, and found the solution. i used it in my gmtk game jam submission "that's how i roll". basically, take every player object (YOU) and put an attribute on them as "going to move in [direction]". then any pushable objects (PUSH) in front of a player object (YOU) have the same attribute. finally, remove the moving attribute from all objects going into a non-moving object (STOP, or still PUSH objects). really elegant
@notwithouttext
@notwithouttext Жыл бұрын
although originally, i did the solution you did
@BLANKdev
@BLANKdev Жыл бұрын
@@notwithouttext That is a beautiful way of doing it, thanks for sharing!
@KinuTheDragon
@KinuTheDragon Жыл бұрын
I personally haven't tried, but the way I would think to do it similar to BLANK's way of doing it: def push(position, direction): if not can_push(position): return False if is_nonexistant(position): return True output = push(position + direction, direction): if output: move(position + direction, direction) return output
@notwithouttext
@notwithouttext Жыл бұрын
@@KinuTheDragon then it doesn't work for WALL IS YOU AND PUSH since the walls will move twice (unless you reorder like blank did)
@ooooggll
@ooooggll Жыл бұрын
A few months ago I started to make a Baba demake in Pico-8. It was going great (text working and everything, even made some levels) until it got so laggy with looping over every object so many times that it was running at like 7 fps. I haven't touched it since but I really miss working on it and I hope someday I can come back to it and improve performance.
@BLANKdev
@BLANKdev Жыл бұрын
That sounds like an amazing project! I am sorry to hear it went a bit wrong, but even having that working at all in Pico-8 is a huge acheivement! If you do go back to it I wish you the best of luck!
@Davi_Dash
@Davi_Dash 9 ай бұрын
A good approach in my opinion is a look up table, you start the game loop the map to find all the words and objects , you add the objects and words add to a tables (Like diss: Obj={} Obj[x.."/"..y]="wall" ) , then when you move a objects you can check the object table like diss: If Obj[x.."/"..y]!=nil then end Like diss if the object is not nil , which means nothing then exists. To check colision you just add the spd_x and spd_y. If obj[x+spd_x.."/"..y+spd_y] then end You a can also use diss you doing collision with the words just make a table and look up the word You could also check if the rule was unmade after you moved the noun, you check the non up and down or left and right to see if the rule still exist, then depending if is true or not , you add or remove a rule. rules can be array/table that the game execute . I hope helped you, i also make games in pico8 , and use lua a lot so i know some stuff.
@TheShelfman
@TheShelfman Жыл бұрын
Knowing very little about this game, I was so confused at first, but I love this! Great experiment with awesome results
@BLANKdev
@BLANKdev Жыл бұрын
I'll definitely make the next video easier for people who haven't played the game! Really glad you liked it anyway, that's awesome 😁
@MyzticF
@MyzticF Жыл бұрын
3:00 This is the default behavior in the original game though, if I remember correctly?
@BLANKdev
@BLANKdev Жыл бұрын
I'll be right back
@BLANKdev
@BLANKdev Жыл бұрын
OMG IT IS 🥲
@notwithouttext
@notwithouttext Жыл бұрын
@@BLANKdev yes because wall isn't push, pull, or stop
@BLANKdev
@BLANKdev Жыл бұрын
@@notwithouttext Absolutely it makes sence for the rules which is why it was happening in my version originally too. I don't know howI thought they changed it but I must have messed up when testing!
@HelperWesley
@HelperWesley Жыл бұрын
I recently recreated Baba is you at work, to see how it would work in my engine. And I'll say... the most complicated part was when there were multiple objects tagged as "you", and they were all pushing stacks of objects of different sizes. 😅
@BLANKdev
@BLANKdev Жыл бұрын
I guess I have that to look forward too 😩
@RobLang
@RobLang Жыл бұрын
Lovely video and a great description of a unique mechanic!
@BLANKdev
@BLANKdev Жыл бұрын
Couldn't ask for a better compliment than that thank you!
@arrowsdev
@arrowsdev 3 ай бұрын
i did my best remaking it in unreal engine 4 XD , not all functionalities are there but it works with single noun and rules , started searching to see how others thought about this game mechanics and so on , this video provided much guidance too , thanks ill be able to improve upon my system and see where things go.
@Skeffles
@Skeffles Жыл бұрын
Fascinating to think how this is coded! Great video.
@Sevrgpro
@Sevrgpro 8 ай бұрын
Great video! This game always stumped me just thinking about how it was made, you did a great job at simplifying it.
@BLANKdev
@BLANKdev 8 ай бұрын
I'm really glad my explanations could help, have a great day
@badmanjones179
@badmanjones179 Жыл бұрын
oh my god you should watch hempuli's videos about making this game, he gave a talk about it which you can find on youtube and apparently the nightmares only continue :P good luck
@BLANKdev
@BLANKdev Жыл бұрын
If you mean the gdc talk, I'm covering that in the next video or the one after! From what I can tell I think I'm doing it in a slightly different way, all I can hope for is that it's slightly easy 😭🤞
@00001Htheprogrammer
@00001Htheprogrammer Жыл бұрын
I am also planning to remake baba is you too, but with a different approach. When an object moves, it checks if there is an obstacle there, and if there is it QUEUES the movement of itself. if not, it moves immediately. After the immediate movements are resolved, resolve the queue in multiple passes. If the obstacle is still in the way, queue the obstacle on the end of the queue for the NEXT pass, and THEN the movement itself.(like BFS, the queue dynamically grows while being looped over) when a pass is resolved, resolve the next. If no movements are made in a pass, then all remaining movements are considered failed.
@BLANKdev
@BLANKdev Жыл бұрын
Wow I really like this idea that's a beautiful implementation!
@00001Htheprogrammer
@00001Htheprogrammer Жыл бұрын
@@BLANKdev i didnt dig thru the original source code, but ive heard the original game also queues movement, with quite some quirks, like an object cannot be pushed in two different directions in a single turn. I think my version doesn’t have that problem, as IIRC baba is you only queues a single movement for each object.
@00001Htheprogrammer
@00001Htheprogrammer Жыл бұрын
@@BLANKdev A problem with this implementation is that if stacked STOP objects move, the top one gets unstacked, and the rest stays unmoved.(Or, if they are PUSH, all of them get unstacked). To fix this, all passes(including the "immediate pass") store the previous state before executing and conditions are only checked on the previous board, so as to make movements in the same pass effectively made at the same time.
@BLANKdev
@BLANKdev Жыл бұрын
I don't quite understand yet without trying to implement it all myself but this does all get a lot more complicated than I could have expected, but everything always does and figuring it out is half the fun, thank you for your help!
@00001Htheprogrammer
@00001Htheprogrammer 10 ай бұрын
@@BLANKdevI sent you an e-mail regarding my Baba is You remake. Looking forward to your response!
@sudhansubalasahoo
@sudhansubalasahoo Жыл бұрын
Very nice recreation
@BLANKdev
@BLANKdev Жыл бұрын
Thank you :)
@Brokeittwice
@Brokeittwice 8 ай бұрын
You diserve a million subs
@icoso
@icoso Жыл бұрын
Really great video!! Haven't played this game in a while but this is definitely bringing back an itch to complete more levels :P Incredible recreation and editing
@BLANKdev
@BLANKdev Жыл бұрын
The hardest part of this remake is not sitting for hours just playing it XD
@elicenyne
@elicenyne 4 ай бұрын
baba is you doesn't actually use a spritesheet, baba is you uses a bunch of loose images in a folder
@GamesBySaul
@GamesBySaul Жыл бұрын
Really interesting video, I don't know too much about the game, been meaning to check it out but the way you broke it down, and explained it all in so much detail was great, really impressive work! :D
@BLANKdev
@BLANKdev Жыл бұрын
Very glad to hear it worked for you! I was worried the explanations either went to far or not far enough in places, part 2 will hopefully be even better!
@notwithouttext
@notwithouttext Жыл бұрын
3:59 except for PIXEL
@Voxelstice
@Voxelstice 9 ай бұрын
while it may not help that much, the game actually has lua files in the Data folder, so you could've looked at parts of it. lua is similar to python by the way, so you shouldn't have a hard time trying to figure it out i dont know if you intentionally didn't want to look at any of the game's code for this video, but it's your choice when you don't want to
@BLANKdev
@BLANKdev 9 ай бұрын
I had no idea that the code was available no, thank you for telling me! I really enjoy figuring it out for myself so I probably won't take a look (...yet) but that's great!
@williamdrum9899
@williamdrum9899 9 ай бұрын
Here's what I don't get: how does the Undo feature work? It seems like that would take a massive amount of RAM. There must be a trick to it
@BLANKdev
@BLANKdev 9 ай бұрын
My guess would be it stores the button you pressed on a stack and anything you might have deleted or removed on that turn, then does some magic to undo it that way, because that would use very little ram. This is something I'm very excited to figure out in part 2!
@notwithouttext
@notwithouttext Жыл бұрын
5:28 or HAS, MAKE, etc
@kekevids134
@kekevids134 Жыл бұрын
hey nwt when non-babatubers make baba videos no one really knows about pixel, has, make, word, above, auto, or [secret ending related word], only baba, is, you, flag, rock, wall, push, sink, water etc...
@BLANKdev
@BLANKdev Жыл бұрын
Oh more blocks like that are definitely coming, it's just much easier to start with the basics!
@kekevids134
@kekevids134 Жыл бұрын
@@BLANKdev also in the original game instead of flagword it's text_flag, making it easier to use metatext i guess like text_text_keke instread of kekewordword
@BLANKdev
@BLANKdev Жыл бұрын
Oh that does actually make a lot of sense too, I like that I might change it over thank you!
@notwithouttext
@notwithouttext Жыл бұрын
@@BLANKdev if you DO include metatext though, think about what "text is text" should do
@whateep
@whateep Жыл бұрын
wake up honey, new dankblev dropped
@whateep
@whateep Жыл бұрын
wake up honey blank is committing straight up theft 😮
@BLANKdev
@BLANKdev Жыл бұрын
@@whateep 👀💰
@anispinner
@anispinner 9 ай бұрын
Dog is Dog.
@sarad2487
@sarad2487 8 ай бұрын
Omg was I the 300th like?! Ignore this just wanted 2 brag XD
@niang46
@niang46 8 ай бұрын
Hum... I can't leave a comment, even with no link (I tried to link my itch to show my attempt with no experience (but during weeks and weeks), but even by removing it, it's still removed instantly)
@niang46
@niang46 8 ай бұрын
Ok it seems to be ok for now. The main difficulty was the rules becoming exponentially harder to detect with AND and NO blocs. And the undo function, because it was a lot more than just store coordinates in a 3D array
@niang46
@niang46 8 ай бұрын
It seems to be my name which makes the comment to be erased instantly, that's... annoying. I guess my game on itch can be found searching "A baba is you prototype (Re-coded)"
@TheAdhdGaming
@TheAdhdGaming 8 ай бұрын
recreate battle advanced
@chronosVR.2763
@chronosVR.2763 Жыл бұрын
"baber is you"
@whateep
@whateep Жыл бұрын
lil’ bro can make wild stuff like this but not correctly spell “variant” consistently smh Amazing video!
@BLANKdev
@BLANKdev Жыл бұрын
Dude no I didn- omg I did. thanks whateeep now I have to delete the whole thing 😤
@whateep
@whateep Жыл бұрын
@@BLANKdev my plan has worked perfectly
@leonmarkovich4504
@leonmarkovich4504 8 ай бұрын
I've done it in c++, it wasn't easy at all :( kzfaq.info/get/bejne/q9uSmNl3lrKmh2g.html
@Wildspeck
@Wildspeck 4 ай бұрын
Why are you preventing “is you” collisions? That isn’t a part of the original game
@adityajain1211
@adityajain1211 8 ай бұрын
Python... Why man...
@BLANKdev
@BLANKdev 8 ай бұрын
What's wrong with python? :0
@Watesoftheoasis
@Watesoftheoasis 9 ай бұрын
"Remaking the Hardest Game is (surprisingly) Easy" ...if you completely ignore all the design work and niche mechanics contained within said game.
The Most Controversial Baba Is You Level, remixed 15 times
30:02
Icely Puzzles
Рет қаралды 13 М.
A game where you can make objects OLD and NEW
13:56
Icely Puzzles
Рет қаралды 30 М.
[실시간] 전철에서 찍힌 기생생물 감염 장면 | 기생수: 더 그레이
00:15
Netflix Korea 넷플릭스 코리아
Рет қаралды 37 МЛН
Süper ❤️ Cute 💕💃 #dance
00:13
Koray Zeynep
Рет қаралды 21 МЛН
Genial gadget para almacenar y lavar lentes de Let's GLOW
00:26
Let's GLOW! Spanish
Рет қаралды 36 МЛН
How Baba Is You Makes Brain Busting Puzzles
15:52
Game Maker's Toolkit
Рет қаралды 1,7 МЛН
IS BABA YOU︖︖︖︖︖︖︖︖︖︖︖︖︖︖︖︖
18:39
Icely Puzzles
Рет қаралды 29 М.
Dear Game Developers, Stop Messing This Up!
22:19
Jonas Tyroller
Рет қаралды 663 М.
The rules of this game change as you play it
17:54
Call Me Kevin
Рет қаралды 1,3 МЛН
Baba Is You, but it's      OFFSET
7:34
Icely Puzzles
Рет қаралды 8 М.
I Optimised My Game Engine Up To 12000 FPS
11:58
Vercidium
Рет қаралды 400 М.
BABA IS YOU Fan Animation
13:36
Necoroneko
Рет қаралды 16 М.
I Remade My Game 4 YEARS Later! • Gelli Fields Devlog
10:02
Baba Participates in the Global Economy
16:25
Icely Puzzles
Рет қаралды 37 М.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 744 М.
Распаковка айфона в воде😱 #shorts
0:25
Секретная функция ютуба 😱🐍 #shorts
0:14
Владислав Шудейко
Рет қаралды 1,4 МЛН
Infrared Soldering Iron from Cigarette Lighter
0:58
ALABAYCHIC
Рет қаралды 1,6 МЛН
Alat Pengisi Batre Tapi Endingnya Malah Begini
0:14
Gian Dwi Saputro
Рет қаралды 10 МЛН
🤯Самая КРУТАЯ Функция #shorts
0:58
YOLODROID
Рет қаралды 701 М.
У Nokia 3310 появился конкурент
0:36
AndroHack
Рет қаралды 1,8 МЛН