Can I Remake Super Mario World in Godot? (Part 2: Blocks and enemies)

  Рет қаралды 137,356

wye

wye

Күн бұрын

Пікірлер: 528
@___wye
@___wye 5 ай бұрын
Hi there, and thanks for your patience! Making videos always seems to take longer than I think. (And I'm still finding my way towards better audio too.) Either way, hope you can get some enjoyment out of this video. :)
@Kat21
@Kat21 5 ай бұрын
yay pt.2 :)
@digbyfraze
@digbyfraze 5 ай бұрын
Elated to see your progress! I'm sure you're very busy right now but my offer from the first video still stands. I would love to hire you! I'm sure that you would find the complexity challenging but familiar. If the idea of bringing a project to life with more than a decade dedicated to the visual design of it is in any way appealing... i encourage you to reach out! You certainly seem to have a wonderful head on your shoulders as far as problem solving is concerned. All the best. -Digby
@2137animation
@2137animation 5 ай бұрын
If you make a third part, you would make over world.
@___wye
@___wye 5 ай бұрын
@@digbyfraze Thanks, glad you're enjoying it! I have a few projects of my own to take care of, so I'm not available for hire. Thanks for the offer though, and all the best for your endeavor too. :)
@Vieislost
@Vieislost 5 ай бұрын
​@@___wye Will you make the game widescreen? Because a functional way to play SMW wide-screen would be amazing
@pmangano
@pmangano 3 ай бұрын
"i'm gonna be releasing the code..." Somewhere in japan the cease and desist siren just started sounding.
@alguienxder3xd539
@alguienxder3xd539 21 күн бұрын
14:02 -"You know what they say" +"all toas-" -"Once you make money, you make enemies" +"Wut?"
@shayes.x
@shayes.x 5 ай бұрын
The nice thing about composition over inheritance is that you can swap out the inner object during runtime, which can be very helpful for things like dependency injection. I'm curious to see how you'd use it here! Awesome video!
@arthur-vn1ug
@arthur-vn1ug 5 ай бұрын
This video seriously gave me inspiration to try to learn Godot again! Thank you for the high quality videos you produce, i seriously can't wait for the next video or the next project!
@LexTheCat
@LexTheCat 5 ай бұрын
Nintendo's lawyers will get an aneurysm when you realise the code
@montage.of.heck.
@montage.of.heck. 5 ай бұрын
awesome!! nice to see the progress on it :3
@RSMR029
@RSMR029 3 ай бұрын
FINALLY SOMEONE NOT USING CHATGPT TO MAKE THEIR GAME
@visibletoallusersonyoutube5928
@visibletoallusersonyoutube5928 2 ай бұрын
I USE CHAT GPT TO MAKE GAMES
@MrSkeleton14
@MrSkeleton14 Ай бұрын
Fr
@mcdaddy1982
@mcdaddy1982 5 ай бұрын
1:21 why is Mario's pallet different from all the other sprites?
@aberlol
@aberlol 5 ай бұрын
Can't wait for someone to make "super legally distinct plumber world"
@davidthecommenter
@davidthecommenter 5 ай бұрын
(Legally Distinct) Epic Carpenter Place
@miguelpina2006
@miguelpina2006 5 ай бұрын
Hyper Marty's planet
@ElleDoesThingysLol
@ElleDoesThingysLol 5 ай бұрын
@@miguelpina2006 sounds like a rip-off you'd find on google play 💀
@matthewlawton9241
@matthewlawton9241 3 ай бұрын
This is Big Boo, the legal counsel of Nintendo Co, LTD. I am writing to inform you that you have been served a cease and desist from using the Nintendo Co, LTD copyrighted term "Plumber". Nintendo Co, LTD owns all plumbers throughout the universe in perpetuity. In fact, don't even use your sink. Pipes belong to us as well.
@ConNinGame
@ConNinGame 2 ай бұрын
And Bricks, Turtles, Dinosaurs, Mushrooms, Water, Air, Fish, Squid, Squid People, Swords, Gravity, Castles, Princesses, Bombs, And Planets, Will Take This All Away From Earth.
@liloak00
@liloak00 5 ай бұрын
Watching this video, I only just realized the Super Mario World question mark blocks have eyes.
@jjonoise
@jjonoise 5 ай бұрын
im sorry what
@Quinn-kr2cp
@Quinn-kr2cp 5 ай бұрын
Wtf you're right
@RipVanFish09
@RipVanFish09 5 ай бұрын
I thought you meant the turn blocks, but then I looked closer. You’re right! I never would’ve realized that the question blocks are literally just turn blocks with a moving ? on them if it wasn’t for your comment lol.
@dacueba-games
@dacueba-games 5 ай бұрын
Oh my God.
@Soriokeink
@Soriokeink 5 ай бұрын
No way, you're lying.. *Checks video* WHAT. How have i never noticed that?! in all my years of playing that game and i never noticed what was in front of my face for decades. incredible. I mean it's only really visible for 2 frames but still! Now i can't Us-see it!
@dehfab
@dehfab 5 ай бұрын
FINALLY IVE BEEN STALKING FOR WEEKS!
@DriftWare
@DriftWare 5 ай бұрын
Relatable
@gabagoo_grimbo
@gabagoo_grimbo 5 ай бұрын
Same lmao
@Naltrex
@Naltrex 5 ай бұрын
aweonasogang!?!?!?
@spaceowl5957
@spaceowl5957 5 ай бұрын
Friggin nerd
@GamingWithRJ_YT
@GamingWithRJ_YT 5 ай бұрын
Same
@pettypenguin656
@pettypenguin656 5 ай бұрын
One thing worth mentioning for eventual code release: make sure you address copyrighted enemy names in code/don't release re-recreated sprites. Make enemy names something really generic (i.e. this isn't a bullet bill- it's a shooting bullet). Sprites should be fairly obvious as to the why, so maybe include in the readme expectations for the sprites the user provides themselves. You could just fire-and-forget and not have to worry about this, but it would help future sustainability for whomever ends up adopting/extending this project to not have to first strip copyrightable works out of DMCA fears.
@Zippy_Zolton
@Zippy_Zolton 4 ай бұрын
I think they're aware enough, I'd hope they would release the basis as a standalone generic "classic platformer" package and have SMW stuff be a separate repo
@dv_interval42
@dv_interval42 4 ай бұрын
Nintendo PTSD
@DarkShroom
@DarkShroom 3 ай бұрын
i can't hear you ... what? sorry what was that
@worm-king
@worm-king 5 ай бұрын
Really appreciate the added SMW sound effects and graphics to your explanations. Adds a lot of charm to the video.
@randelionred
@randelionred 5 ай бұрын
The tilemap trick at 8:40 is incredible! And this series has been a great source of inspiration as a total novice to Godot and game development as a whole. My current goal is to make small projects to gain experience and work towards developing a feature-rich game with satisfying mechanics and controls, but it feels like an overwhelmingly daunting task to do from scratch for anything more complicated than pong or breakout; but watching you recreate Super Mario World's offers has been really encouraging! These videos are entertaining on their own, but I've also learned about nodes, paradigms, and problem-solving approaches that I haven't seen anywhere else. So thanks again for making this series, I can't wait for future installments and to see what else you get up to!
@MichaelGame_Dev
@MichaelGame_Dev 5 ай бұрын
If you aren't already, I would encourage you to try some game jams! They have been helpful to me when it comes to getting started. I still have a long way to go, but ultimately, the big thing is knowing the tool you use better and how to go about using the tools (nodes in Godot's case) you have to create the feature you want. Ex. My first game jam, I wanted to add a way for the player to respawn close to where they died. I could have added checkpoints anywhere, but instead I checked to see if the player was on the ground for longer than x amount of time and if so, I set that as the respawn point. This worked great!.... until the player died on the moving platforms haha. That was the only thing I couldn't get to work and I ultimately ran out of time. But considering it was my first non-tutorial project, I think my solution turned out pretty solid. I think ideally, I would not allow the value to be set on the moving platform but at the time, I couldn't come up with that idea as I worked through various other things for the jam.
@The-64th-Gamer
@The-64th-Gamer 5 ай бұрын
5:14 I noticed the value you put for the timer got truncated by the inspector. If you'd like to use more precise values you can go to Editor Settings -> Inspector -> Default Float Step, and turn it down to a much lower value.
@RealQuarlie
@RealQuarlie 5 ай бұрын
One thing that's more commonly used in Godot is actually composition, instead of directly going for inheritance. It's basically just the idea of having many several mini-scripts in Form of components, that all do their small needed tasks. (It's basically already what you are doing right now. You give your object a collision component, a Sprite component, etc.) The main reason for that, is so you can build your scenes modular and don't have to rely on the restrictions of the inheritated class, or always have to make new ones. So for an enemy for example, instead of having it have an entity inheritance or similar, you would make something like a "hurtMarioComponent" and a "bounceMarioComponent" (and any other kind of behavior) instead. Basically packing each single thing into a component. This doesn't obviously mean that you would need to use components for everything and never use inheritance, but more so dependent on what you already planned on doing with them, and if certain components could ever get used between certain classes.
@___wye
@___wye 5 ай бұрын
Thanks for the info! I was already planning on experimenting with that.
@Aeduo
@Aeduo Ай бұрын
Modern OOP does seem to focus more on traits that bring in different behaviors to compose an object and allow them to fit more roles than strictly single superclasses.
@SpringySpring04
@SpringySpring04 5 ай бұрын
My dude, you are super underrated with this. I love the deep dive into SMW's physics and code and implementing those intricate and detailed concepts in the modern game engine. Super awesome, and I can't wait for the next episode!
@sadrobot2603
@sadrobot2603 5 ай бұрын
About the statement at ~11:02 As someone who's been making a collision system in pygame which is similar to the one described, you probably wouldn't have to put the code to "push Mario away" in every solid. Rather, Mario himself could have code that pushes away whenever he touches any solid. This info probably won't affect your trajectory (and tbf my code is far from bug-free), but I thought it was worth putting out there.
@TheMaitreC
@TheMaitreC 5 ай бұрын
''Dayum, this video is so cool, fresh, positive and-'' ''When you make money, you make enemies''. ''DAYUM THAT'S COLD!'' Awesome vid! I'm learning just watching/listening to you! Keep it up! :D
@Kthnx2
@Kthnx2 5 ай бұрын
8:40 why have i never seen this in any other godot tutorial this is such a useful tip
@MichaelGame_Dev
@MichaelGame_Dev 5 ай бұрын
Honestly, imo, it's a very unique scenario that makes it useful. If you need to have any export variables set for the scenes in the tileset, I don't believe there's a way to easily set these in the scene version in a tileset. I'm replying with my own comment when I get done with the video, I am wondering if composition would have been better than inheritance for the blocks. That being said, for the way it's setup in this video, yeah it's a great option! Ex. in my game I wanted to set a color. I tried this route first, only to realize you can't really set export variables (if I'm remembering right). I ended up having to add the sprites to a standard tile map, then basically have a function delete the tiles out and instantiate the scenes in place. This was a bit simpler than you'd think. But since in a standard tilemap you can add custom data it was much easier to set things like colors and health. Otherwise, I would have needed up to 15 scene variants and that's before I added other stuff like different types, etc. Edit: To clarify, some tutorials use export variables as variables you want to easily change/tweak for example player speed. However, to me, the really powerful way to use export variables is to let you easily set values on instances of scenes. To me, when creating a level and adding question blocks, an export variable would be great for what item should spawn. Then you could easily set the item that should spawn each time you place a block.
@intangiblematter_misc
@intangiblematter_misc 5 ай бұрын
Amazing video as always! Here are my recommendations :) 4:18 - > -Tilemaps can have scenes as tiles, it'll probably make your scene tree much cleaner!- Dammit, you're too competent for my advice! (8:40) 4:30 - > -I think a KinematicBody2D would be better suited here? Not 100% sure but like 98%- Nevermind (6:23) Yeah I... don't really have any advice! You're straight up just good at what you do! Can't wait for the next one! I of course say all of this with *immense* respect for you and this project. I've just been using Godot for years and want to help you with some small tips here and there on how to best do things :) (if anyone is wondering why it's edited, it's because youtube's markdown is unlike every other markdown I've used)
@___wye
@___wye 5 ай бұрын
Thank you very much! Glad I'm heading in the right direction. :)
@SleepyTF
@SleepyTF 5 ай бұрын
16:55 it is CRAZY how unsatisfying it is to see mario bounce on multiple enemies in a row and not hear the bounce sound change pitch with each successive bounce
@SimplySnaps
@SimplySnaps 18 күн бұрын
So many different skills on display here. The obvious ones are your game development and programming skills, but there's also the entertaining script, concise explanations, and engaging visuals to accompany the dense subject matter and make it consumable without much effort on the viewer's end. Really good stuff! Can't wait for more.
@jacoL8
@jacoL8 5 ай бұрын
glad I subbed yesterday, didn't have to wait that long for part 2 :)
@ArtoriasNX
@ArtoriasNX 2 ай бұрын
2 months since the last video... I think Nintendo ninjas got him :( RIP
@___wye
@___wye 2 ай бұрын
Part 3 is in the works :)
@dacueba-games
@dacueba-games 5 ай бұрын
I hope you open source this so people can make cool projects based on Mario physics! Not me tho. I'm just some leech.
@greyarchamedisblackthorn
@greyarchamedisblackthorn 5 ай бұрын
I feel this series should be called "Making Super Godario World", though it's probably just me thinking that.
@AkaNoBaka
@AkaNoBaka 4 ай бұрын
That's actually a fun & smart idea! I could imagine replacing all the sprites with custom Godot adjacent themes and likeness this project could easily become like a preview/project demo for the engine's capabilities and simplicity in features.
@greyarchamedisblackthorn
@greyarchamedisblackthorn 4 ай бұрын
@@AkaNoBaka Ok cool idea... but I feel that's a lot of thought stemming from a pun I thought of in 2 seconds. But I'd certainly watch a series on that.
@diagram_sock
@diagram_sock 5 ай бұрын
I'm so happy to be one of the first to see this video ☺
@MrDynamiteCD
@MrDynamiteCD 3 ай бұрын
I NEED SOMEBODY TO TAKE THE CODE (once it releases) AND FULLY PORT SUPER MARIO WORLD TO THE PC IN WIDESCREEN GRAHHHHHHHHH
@NaitorStudios
@NaitorStudios 5 ай бұрын
I'm not a Godot developer, I use another much less popular engine, but it's nice to see someone that actually understands SMW trying to remake it! I have my own project to make the most accurate remake of SMW, something to replace rom hacking.
@saroule
@saroule 5 ай бұрын
share the url ;)
@NaitorStudios
@NaitorStudios 4 ай бұрын
@@saroule I have a video of it in my channel, I believe it has a download link. That's actually an old version, I rewrote it from scratch and that ended up being used on a demo game from a friend, the game is named TeamJumpers 2.
@saroule
@saroule 4 ай бұрын
@@NaitorStudios thanks good to know. I saw it on steam. thanks. Oups windows only. I can't use ;)…
@Palendrome
@Palendrome 4 ай бұрын
Wow! I've been recently saying "A Plumber for all Seasons is the best romhack I've ever seen". And I had this video reccomended separately and.... here you are! Bravo!
@Hyperion_21
@Hyperion_21 5 ай бұрын
Recently, I watched a video about Entity Component Systems (I'd link it if I could find it), and I feel that your examples of inheritance would be better suited for an ECS-based system. Essentially, in ECS, instead of inheriting functionality from parent classes/objects, functionality is instead added via child classes acting on their parent. An example of this being helpful is in the case of your QuestionBlock and TurnBlock. In SMW, P-Switches can turn TurnBlocks and UsedBlocks into Coins, but not QuestionBlocks. If you were to implement this using inheritance, you would probably have a child of Block called PSwitchableBlock, and try to have UsedBlock and TurnBlock inheit it... until you realize that Godot (GDScript technically) doesn't support multiple inheritance, and TurnBlock is already inheriting TurnBlock. Using ECS, you could have the QuestionBlock and TurnBlock scenes have a HittableBlock child node, which gives its parent (the block) the functionality to be hit. You can also have a PSwitchableBlock node as a child of UsedBlock and TurnBlock that allows them to be turned into coins when a P-Switch is activated. This avoids the multiple inheritance issue, because TurnBlock can have *both* the HittableBlock and PSwitchableBlock nodes. You mention composition near the end of the video (which I am presuming means each block has functionality stored as a member variable rather than being inherited), and that would also solve the multiple inheritance issue, but I feel that ECS fits better with Godot design philosophy and is easier to organize. This was a great video! I'm looking forward to how this project develops. (P.S. Your microphone is very bassy. I don't have much experience with audio stuff, but I believe that putting on a (probably low-intensity) high-pass filter on voice audio would improve audio quality a lot. That's my only complaint with audio, though.)
@___wye
@___wye 5 ай бұрын
Thanks! ECS is actually pretty much what I was referring to. I'll be experimenting with that.
@23Scadu
@23Scadu 5 ай бұрын
18:47 I noticed that little bump off side of the one-way platform. Pretty sure that's not in the original, so I wonder if we'll see that fixed next episode.
@drtrouser
@drtrouser 5 ай бұрын
I got recommended the first part again after months of seeing it just before you post the second one... KZbin is strange
@Enan63.
@Enan63. 5 ай бұрын
Just an question, are you going to convert all the custom ASM in SMW Romhacks and convert them into SMW Godot?
@matthewlawton9241
@matthewlawton9241 3 ай бұрын
"Cape physics" Oh...Oh no...That's gonna suuuuuck.
@Chaquetastale777
@Chaquetastale777 2 ай бұрын
Nintendo wants to know your location
@flerfbuster7993
@flerfbuster7993 4 ай бұрын
Woah, I didn't know tilemaps could manage scenes like that! That's so useful!
@intangiblematter_misc
@intangiblematter_misc 5 ай бұрын
I was just rewatching the first one! Can't believe it! Going to watch *quite* attentively.
@Retro2ModernGaming
@Retro2ModernGaming 3 ай бұрын
This is definitely some good stuff right here dude. Once you do a full on Godot remake of SMW, can you also try with the SNES Donkey Kong Country Trilogy maybe?
@linkmod960
@linkmod960 5 ай бұрын
Man, I've been having so many troubles making my own game in Godot and you somehow managed to solve a good majority of the problems I couldn't. This was super eye opening and I really appreciate you putting it out there!
@BobzBlue
@BobzBlue 5 ай бұрын
There's a performance mod for Minecraft that makes chests and other block entities render like static blocks, this is great for stuff like beds and even doors because they don't have dynamic animations. But chests have an animation that can only be done on an entity, so the mod changes it back on the fly to keep the animation and the performance, just like Super Mario World's question blocks. The Minecraft mod is called Enhanced Block Entities.
@JustJory
@JustJory 4 ай бұрын
If you release the source code to the public, it would honestly be revolutionary. The amount of possibilities of making custom levels, enemies, and anything without 99% of the limitations on the SNES.
@chaostheboyXD3644
@chaostheboyXD3644 5 ай бұрын
In part 3 you should make Mario ride Yoshi :).
@RollingCutter
@RollingCutter 5 ай бұрын
It's here! I waited weeks and part 2 is here!!
@fishcelery4894
@fishcelery4894 4 ай бұрын
WHAT ABOUT 1UPS WHEN YOU GET MANY COINS OR 1UPS IN GENERAL
@ariffirdaus5376
@ariffirdaus5376 5 ай бұрын
heres a interesting, more performant way to tackle the blocks, theres a function in the tilemap node that converts in game coords into tile coords, which then allow you to basically check what tile of the tileset is at that tile coords of the tilemap. then you can just check the tile at the position above mario when hes jumping up (not when falling ofc), allowing you to simplify the block bounce fx to more of a visual fx rather than normal objects you have to place manually in the level basically the standard way for object to interact with tilemaps : 1. get object position 2. convert position to tile coords 3. check data of tile at tile coords 4. code goes here after
@ny-11195
@ny-11195 4 ай бұрын
Can you give tne source code next time?
@SofiaStar1463
@SofiaStar1463 5 ай бұрын
Nerd here, I really loved your video!! I was patiently waiting for Part 2 and it was worth it!! I like the way you're referencing the original Game and explain everything. There is so much to learn ❤
@SuperGibaLogan
@SuperGibaLogan 2 ай бұрын
please make pac-man next (the original arcade one)
@Navarein
@Navarein 2 ай бұрын
He’s still working on Mario bro
@Navarein
@Navarein 2 ай бұрын
….is this guy schizophrenic
@SuperGibaLogan
@SuperGibaLogan 2 ай бұрын
@@Navarein ik i was just making a request, im ok if he wont do it
@SuperGibaLogan
@SuperGibaLogan 2 ай бұрын
@@Navarein dude i just wanted to make this comment for fun
@guyrocketram9698
@guyrocketram9698 5 ай бұрын
when you release the code have you thought of using generic placeholder assets instead of mario sprites so nintendo can't do anything about it?
@___wye
@___wye 5 ай бұрын
I'll probably do something like that, even though I really don't think it'll be an issue (not a lawyer though).
@Zenva
@Zenva 4 ай бұрын
Thanks for making this content! How could we get in touch for sponsorship opportunities? we are looking for ways to reach more people with our Godot courses and learning pathways
@___wye
@___wye 4 ай бұрын
Hi, glad you like it! Thanks very much for your offer, but I'm not looking for sponsorships right now.
@fmhqbattousai
@fmhqbattousai 5 ай бұрын
This is just fantastic. I have been playing the original (off and on) since the 90's and yours is difficult to distinguish from it ( apart from some animation change silliness when mario goes from running to jumping.) Very well done. Please be careful not to draw the attention of Nin***** .. I want to see more of this and they ruin everything!
@HeadmostCantaloupe
@HeadmostCantaloupe 5 ай бұрын
FINALLY!! I just watched the previous episode a few weeks ago, and it was probably my favorite devlog thingie videos I've watched, and so is this one!
@nddragoon
@nddragoon 3 ай бұрын
the marios popping out of the question blocks had no right to make me laugh so hard
@fallstoclimb14
@fallstoclimb14 3 күн бұрын
“Let’s see how much longer I can put off cape physics…” 😂
@dandy_is_lion
@dandy_is_lion 4 ай бұрын
This video series is incredible
@jordanfish
@jordanfish 5 ай бұрын
Excited for you to tackle the world map!
@mikeysaurlol
@mikeysaurlol 5 ай бұрын
I don't know if you know this but you can add scenes to a tilemap to paint those!! :) EDIT: Oops, I'm glad you ended up figuring that out yourself a little later in the video :)
@DriftWare
@DriftWare 5 ай бұрын
Oh nice, glad to see this is still going. Any chance you can link the documents that describe Mario's physics?
@___wye
@___wye 5 ай бұрын
Glad you like it! :) For the basic physics I got some info from bin.smwcentral.net/u/2318/SMW%2BPhysics.png , but mostly I'm referencing a disassembly of the game (ASM knowledge is helpful here).
@DriftWare
@DriftWare 5 ай бұрын
@@___wye thanks wye!
@naomeencheosaco8595
@naomeencheosaco8595 5 ай бұрын
your videos have been teaching me godot better than any tutorial i could ever find, i really enjoy your explanations and id like to see more !
@DayumAli
@DayumAli 4 ай бұрын
PLEASE PART 3 PLEASE PLEASE PLEASE
@LukeManiac
@LukeManiac 3 ай бұрын
This is JUST like the original except the camera Y scrolling is fully functional and you won't need to build P-Speed.
@selfhosted918
@selfhosted918 5 ай бұрын
I am indeed a nerd and this video is epic! You have some real talent.
@DaWhiteTyger
@DaWhiteTyger 4 ай бұрын
Swear you have the voice of "@MattKC" on YT. Ever so slight difference, but it'd be VERY hard to distinguish. Excellent breakdown (and love the mention of RetroGameMechanics Explained. Love his channel also!
@Ninjujitsu
@Ninjujitsu 5 ай бұрын
man as you dive into the mechanics it's like... as complicated as you imagine any given part of the game was to develop, it's probably actually 5 times more complicated than you thought. it's a miracle they ever managed to make it.
@SlonkyGamez
@SlonkyGamez 2 ай бұрын
Hi there! I'm just barely starting out on my journey of making a 2d platformer and I've been absolutely adoring this series so far, it's super informative, relaxing to watch and for my little ADHD having brain it really manages to hold my attention, keep up the great work Wye!
@PanosGeorgiadis
@PanosGeorgiadis 5 ай бұрын
Thank you for your time, lot's of interesting things I learned from your adventures with Godot. I am curious, if you had the ability to change Godot itself, how would you prefer to handle the blocks? e.g. instead of having 1 scene per block, what would it be your preferred architecture and inheritance?
@RPG_Hacker
@RPG_Hacker 5 ай бұрын
Hell yeah, king wye is cooking again! Many of the things you talked about here sound awfully familiar to things I'm doing in my job. We also handle "level collisions" and "entity collisions" separately. (And yeah, we also call them "entities"). If you ever get further into implementing enemies, I'm really curious to see how far you'll get using just inheritance alone. In my experience, inheritance can be a very useful tool for a limited range of use cases, but you'll eventually run into issues once things diversify too much. I had this problem when creating entities in our prototype using inheritance. Let's just say it really wasn't a long-term solution. For our acual game, we've created our own implementation of an ECS (entity component system), which solves many of those issues. Basically, whereas inheritance tries to describe entities based on what they are, an ECS more so tries to describe them based on what they can do. An ECS an inheritance can be combined, though the latter will usually be used quite sparingly in that case. I'd say it only makes sense between entities that are very, very similar. I don't know if Godot actually features any built-in ECS implementation (even Unity and Unreal Engine only added support for ones in recent years), but I feel it would work wonders for an SMW recreation. In fact, I'm like 70% sure the original SMW featured something similar to an ECS (based on some code I saw in a disassembly, and also based on the fact you can customize original sprites so easily via the Tweaker application). So hey, since you probably want to gain some general game dev experience along the way as well, it's probably worth looking into an ECS. There's even some open-source implementations around, like EnTT or flecs.
@razorvolare
@razorvolare 4 ай бұрын
So I'm gonna ask something rather blasphemous. I know this is Super Mario World but-- What bout adding another character that is unfitting? Like Super Metriod's Samus, Superstar Kirby, or even...Sonic The Hedgehog?
@lukabrasi001
@lukabrasi001 5 ай бұрын
to be real honest, at 5:15 when you're making the blocks bounce. you don't really have to use _process to calculate anything. you could simply do this with tweens, tween their position by an offset amount and then tween them back. doesn't calculate every frame, and if you happen to hit it multiple times just call the tween.kill() function first and then tween the property. much tidier, much less costly
@MFringo_art
@MFringo_art 5 ай бұрын
Heyo! Awesome video, just one quick thing I noticed, the Rexes hitbox doesn't change upon being squished and stays at its previous head level. You can rather easily fix this by just moving the collision shape in the animationplayer. Good job with everything, looks really good! :)
@elithelegobrick
@elithelegobrick 5 ай бұрын
Didn't think this video would be this good, it exceeded my expectations. I'm starting to learn Godot but I might go with something simpler than that... GG vid keep it up
@JXQU3
@JXQU3 13 күн бұрын
Duuuude, I've been using godot for years and I just realized you can inherit scenes from this one video! I've inherited scripts a lot but I didn't know you could do the same with scenes!!
@jobadavies1003
@jobadavies1003 Ай бұрын
Make sure you implement that trick from the original SMW which lets you carry an item while climbing a vine and make it so Mario can spin-jump while carrying something.
@lucbloom
@lucbloom 5 ай бұрын
Swiss-army-knifing the blocks to some level would be fine. (Instead of multiclassing & inheritance templates) Blasphemy, I know, but it does help when you want to combine properties of objects or switch out their functionality during gameplay at some point.
@diskpoppy
@diskpoppy 5 ай бұрын
It'd be interesting to see how the SMW-tailored stuff interact with generic Godot stuff and if there are potentially any issues to resolve. For example you could add a Chomp Rock with rigid body physics (though I'd assume that'd work out of the box)
@byucknahthered3914
@byucknahthered3914 4 ай бұрын
@__wye at 4:02 in your video I noticed your tile map's physics/collision was locking in to like a grid when you were adjusting it. How do you enable that in the tilemap editor? One of my biggest frustrations working with the tilemap stuff is having to be super super precise with collision points. EDIT: I just found it, grid snap, oh my god this is a game changer! I know this series isn't a tutorial but I am actually learning some really cool stuff from these videos so thank you for sharing your progress! Like being able to make objects tiles is something I never knew!
@Jaxrud
@Jaxrud 5 ай бұрын
This project is so inspiring Loved the first video, its fun to see the technical knowledge you have from modding roms. And how well they align with my platformer where the code is obviously pretty different but the end goal is pretty close. I wanted my game to have avery similar feel to SMW with its character controller I made a similar powermeter function and variable junp heights as well as sliding mechanics. Struggling a bit with platforms though, especially angled. I've got it working but they have some issues if angled and sliding. Aware about the one way hit feature. But my game is in a 3D scene as its 2.5D. and it doesnt exist there. Edit: The way collision is handled here might be a solution to my problem, very interesting to learn! SMW is the best platformer!
@lorincszabo7411
@lorincszabo7411 4 ай бұрын
wow :) amazed, can't wait the next part :) your videos are very informative on both ends :) (i'm new to godot as well, so these videos kinda act like "cheat sheets"/shortcuts :) you know...the feeling when you are a seasoned developer, but still it's way easier if somebody paved the path before you, saving some hours of "where to find this/that in this engine?" :)
@Grassbrook
@Grassbrook 5 ай бұрын
Excellent, informative, entertaining and chill. Very nice video overall about the pinnacle of platformers, well done! You briefly mentioned SPAWNING/DESPAWNING and this is one aspect that I find fascinating and there's a huge variety in how games from that time period handle that. If memory serves me well, SMW does have a bit more complex system, whereas many other games simply make the "entities" disappear when exiting the screen. At this time it was quite normal that you couldn't freely move back around the level, so that was basically the reason why a complex system was not needed. A common strategy in some games was to get the enemy outside of the screen instead of killing it. In SMW you need to at least save some of the information about what has been interacted with and how entities are still "alive" and what they are doing when outside of the screen. This would be interesting to hear more about - if you find it interesting too ;) Cheers and all the best! Looking forward to the cape physics but also the different Yoshis and the really convoluted special stages with lots of secrets and hidden exits - if you have the patience to go that far.
@GreenCloversGuy
@GreenCloversGuy 5 ай бұрын
It feels very satisfying to see you organically come across solutions the same way i did. I think the question mark box is a great example of a mechanic that seems simple, but requires a lot of abstraction and planning to work out exactly how to implement it. One question I have: Completely understand not wanting to make a platformer template, but would you consider making a plug-in, such as 2D platformer character? Thanks again for the video, nerd (affectionate)
@JUMPY_NEB
@JUMPY_NEB 2 ай бұрын
Love the video! one thing I'd like if i could tell what's your recreation what what's the original game. but every thing else is incredible can't wait for part 3!
@DarkShroom
@DarkShroom 3 ай бұрын
i think you could have used a function on the character body to detcted what block you hit, "get_slide_collision_count() and get_slide_collision()"... they will register on the frame they hit so iterate the count each frame and get_slide_collision() with the ref ( i think you need that in the physics process)... i mean for that first box, but later i guess you have al them points (btw could use intersect point alternatly there to) also it's possible to detect where the gridmap hits, by getting the collision point and using a function on the gridmap to convert that to a grid coordinate but that's a little more hacky amazing videos though wow knowing all this infor about how mario controls i would never have guessed all this, please keep it up
@jobadavies1003
@jobadavies1003 Ай бұрын
Try and find a way to allow YY-CHR Graphics to become useable in Godot
@_sophies
@_sophies 4 ай бұрын
In Godot, Rigidbody2Ds can detect collsions, so I tend to use those for a lot of this kind of thing. Though they're also supposed to move, so it can be awkward with solid objects, but it's solvable.
@TheFearedStorm
@TheFearedStorm 21 күн бұрын
I would love to see the cape physics because I’m making my own Mario game in construct 3 and would love to see how it works. A lot people put off doing cape it’s like there intimidated on tackling it. So a video on how cape physics works and how do them would be nice thanks for the amazing video.
@cinvader
@cinvader 5 ай бұрын
Still a big fan of the whole Idea. It seems like, its possible to get rid of Lunar Magic to make same Rom-"Beutyfies". Godot looks way easier to create chocolate Actions.
@GGGUSZ
@GGGUSZ 5 ай бұрын
first of all, just wanna say absolutely epic video! I am also making a little platformer game and I basically did the same thing for handling blocks in my platformer project but am really disapointed that you cant access PackedScenes that are placed within a tile map in Godot, so i am curious how you are gonna handle different blocks containing different items, powerups or even yoshi eggs, since i myself only have a hacky solution XD, but good luck with this project man and great work!!
@S4Luux
@S4Luux 5 ай бұрын
If you put out the source code, make sure *not* to include resources such as sprites as they are quite aggressive when it comes to copyright. Otherwise, Nintendo will probably take it down fast. Maybe some solution to extract them from a ROM (that you have to find yourself) would be nice.
@GyroCannon
@GyroCannon 5 ай бұрын
15:47 Obligatory software engineering "Composition over inheritance" comment lol Not saying that this is bad work - don't run before you know how to walk :D
@moonoovie
@moonoovie 5 ай бұрын
I have an ambitious coding project using what was going to involve snes register values during SMW gameplay as live value inputs for a custom program that drives a wholly unrelated piece of tech. But this project of yours seems like it will blow the doors wide open for more possibilities! It’s exciting to see your progress!!
@Daemoknife
@Daemoknife 2 ай бұрын
Something stressful is in the way here, the collision between enemies objects will require an alternative approach, could potentially lead to rework the entire physics used from scratch, this is why I lose patience sometimes ahaha but I can see that you handle everything on the go, which is insanely good and you are really dominating coding seriously you have a gift or you are on Adderall😂😂
@BenderBendingRodriguezOFFICIAL
@BenderBendingRodriguezOFFICIAL Ай бұрын
I really think you should make templating a secondary goal. You could potentially help thousands of people learn to understand the intricacies of platformers. Your mario world engine could be a great learning tool.
@JamesMowery
@JamesMowery 5 ай бұрын
I did not realize you could add generic sprites to tilemaps. Super useful to know! Great work! Enjoying the series!
@Vickyorlo
@Vickyorlo 5 ай бұрын
Little suggestion/musing/whatever- while using inheritance for block behaviors is good, I think it would be a better idea for the Mario controller to be the one checking for interactions with blocks and then 'asking' the block scripts what should happen. You can also replace the area2d interaction points with raycasts, but it doesn't matter too much. While the main reason to do this is because it reduces the amount of collision checks being done and thus is a performance benefit, I find it significantly easier to debug in the long run also. Plus, without having too much familiarity with SMW source code, I reckon it would be more accurate to the original - as you said, in the original game the 'blocks' are not sprites but background tiles.
@salad1021_
@salad1021_ 5 ай бұрын
As someone who's been learning Godot recently as well, it's fun to see/learn alongside all this progress Keep it up ! (Also, using packed scenes in a tilemap is insanely useful information I never even thought of before ! very neat)
@astro5105
@astro5105 5 ай бұрын
Hello, I really like your content, but are you going to make the super mario world map system? because I've been trying for a while to make the animation of the terrain and the levels appearing when you complete a level, could you please include this in the next video?!
@kirbyydoge
@kirbyydoge 5 ай бұрын
I love that you are planning on open-sourcing your project but please check the interaction of similar projects with Nintendo. They are usually very salty when it comes to their intellectual properties and I think they would eventually take action against a port of their game. Others might have more knowledge on the subject and there are probably ways to avoid Nintendo. Just putting this out as a pointer so you double check everything before you publish anything.
Speedrunning 10 DIFFERENT Versions of Super Mario Bros.
33:09
Kosmic
Рет қаралды 1,1 МЛН
Players vs Corner Flags 🤯
00:28
LE FOOT EN VIDÉO
Рет қаралды 73 МЛН
Can I Remake Super Mario World in Godot? (Part 1)
18:44
The HARDEST part of game development | Devlog
6:16
Challacade
Рет қаралды 77 М.
The Revolution of Godot
7:01
anyDev
Рет қаралды 8 М.
The Curious Quirks of Wild World
13:15
Hunter R.
Рет қаралды 189 М.
The Goomba Revolution - Into the Void
9:54
Level UP
Рет қаралды 583 М.
4 Godot 4 Devs Make 4 Games in 44 Hours
25:19
DevLogLogan
Рет қаралды 523 М.
Exploring Word Chains
9:45
CodeParade
Рет қаралды 213 М.
The Problem with the Grass in Mario 64
35:04
Kaze Emanuar
Рет қаралды 385 М.
I redesigned my game
23:32
jdh
Рет қаралды 16 М.
Can Windows XP Run Minecraft 1 21?
44:40
ChrisPro
Рет қаралды 821 М.