Dungeon Room Transitions - Godot 4 Intermediate Tutorial

  Рет қаралды 25,342

Heartbeast

Heartbeast

Күн бұрын

Пікірлер: 52
@uheartbeast
@uheartbeast Жыл бұрын
Thanks for watching the video! Here is the github repo for the project: github.com/uheartbeast/WASarD-Room-Transitions You can wishlist WASarD on Steam with this link: store.steampowered.com/app/1151870/WASarD/ Leave a comment if you have any questions for me. Ben
@hamsu7453
@hamsu7453 Жыл бұрын
Bro your actually the GOAT in the Godot space, hope there more to come! All these videos are amazing and I am learning so much from you. ❤ (More procedural generation videos but with room instead of tiles will be an amazing video, everyone follows your procedural videos first!)
@JB-xb3of
@JB-xb3of Жыл бұрын
Can you do the level generation next? It looks manageable, but before I watched the video, I briefly thought about how I would have solved the task and was totally surprised by how elegant and simple your solution is in the end.
@ZachAR3
@ZachAR3 Жыл бұрын
Look at his procedural tile map generation and just modify that to spawn your dungeon scenes instead of tiles.
@hamsu7453
@hamsu7453 Жыл бұрын
@@ZachAR3sounds great but do you have an example on how to do that?
@7_rlz_714
@7_rlz_714 Жыл бұрын
​@@ZachAR3 I think it would be more complicated with the camera transition to another room, assuming that random rooms are generated at random distances, you would have to calculate with the camera where to go.
@ZachAR3
@ZachAR3 Жыл бұрын
@@7_rlz_714 no.... If you use a tilemap you can easily just offset the given position of each tile by the size of the room so it follows a grid.....
@magnazone69
@magnazone69 Жыл бұрын
Awesome to see the tutorials, great work man
@luckyknot
@luckyknot Жыл бұрын
Fantastic explanation on how to transition rooms, much appreciated sir!
@cabbanisbrasil
@cabbanisbrasil Жыл бұрын
Nice to see, everyone is learning godot!
@Pepeutra
@Pepeutra 5 ай бұрын
I followed the tutorial word for word until 3:40 but when I loaded in the game it shifted the camera so that it only displayed the top left half of the room, and it stopped doing that when I removed the Events.room_entered.connect(func(room)... portion of the camera2d script. Have any ideas of what might be going on and ways to fix it? Edit: It does shift the rooms shift the rooms like the video, it just places the camera in the wrong spot and moving the Camera2D around doesn't change anything
@jeffvenancius
@jeffvenancius Жыл бұрын
Maybe instead of setting a target position for the player you could set a amount(?) If it's vertical, set the position.x + or - this amount, etc... That way the player will keep his original path and it will be more natural.
@uheartbeast
@uheartbeast Жыл бұрын
Admittedly this is actually what I do in WASarD haha. I simplified it a tad for the video.
@jeffvenancius
@jeffvenancius Жыл бұрын
@@uheartbeast É nóis
@mystcj
@mystcj 7 ай бұрын
I've followed up on your tutorial until around 3:45 and I'm getting this error "Parser Error: Identifier "Events" not declared in the current scope." in the DungeonRoom script at the Events.room_entered.emit(self) line. What might be the issue here?
@uheartbeast
@uheartbeast 7 ай бұрын
Sounds like your Events script hasn't been added as an autoload in the editor.
@wi-chung2603
@wi-chung2603 Жыл бұрын
Could you do a tutorial on how to generate the dungeon/rooms? that would be extremely helpful and very appreciated! thanks for the vids either way and WASarD looks great!
@SheepUndefined
@SheepUndefined Жыл бұрын
Literally was doing stuff with empty node2ds as spawn markers and wishing I could do the thing Unity did with letting you assign editor-only sprites to those. And then I find out about Marker2d through this video, lol
@Mrme-cn9je
@Mrme-cn9je Жыл бұрын
Hi Benjamin, Can you kindly explain the reason why you didnt opt to use signal up call down principle but prefered the auto-load? Is it because you came to decide autoload is better than that? I'm a novice but I had watched some tutorial saying autoload is actually dependency. Is that right? Thanks.
@uheartbeast
@uheartbeast Жыл бұрын
Hey! I used an Event Bus pattern for this. The main reason is because my rooms are generated dynamically (by the level generation system) and so connecting each room to the camera would be a huge pain. It's much easier to have a single signal inside an event buss and then connect the camera to that and have each room emit the signal when entered. There is a great article by GDQuest that talks about event busses if you want to learn more about the pros and cons: www.gdquest.com/tutorial/godot/design-patterns/event-bus-singleton/
@Mrme-cn9je
@Mrme-cn9je Жыл бұрын
@@uheartbeast Thank you.
@Drazard
@Drazard 11 ай бұрын
wouldn't a simpler fix be to make the top door collisions smaller ? or possibly add an extra collision specifically to handle the door transition on the player. it only has to be a small 1x1 pixel collision in the center of your player. and with a small say 10 pixel wide door step for each door collision and it would be extremely precise. excellent video tho. all of your videos have been amazing.
@FutureChaosTV
@FutureChaosTV Жыл бұрын
The transtition between the rooms would probably look a bit better, if the player disappeared for 50-100ms so it doesn't look like he is walking through/above walls... Or change the Z-position and change it back when the other room is entered.
@_nyx_the_killer
@_nyx_the_killer Жыл бұрын
I love your videos❤, can you do a metroidvania tutorial? like Castlevania or momodora
@felipezymor9970
@felipezymor9970 4 ай бұрын
Can you do a tutorial of this room-based dungeon generation? Seems like The Binding Of Isaac and Scourgebringer, it's exactly what I need for my game...
@Dillonian
@Dillonian Жыл бұрын
my camera is still just teleporting from room to room after turning smoothing on and trying all different speeds nothing works any ideas?
@toxicallehhighlights658
@toxicallehhighlights658 8 ай бұрын
Can you have two different collision points? One for the character when you want it to be hit by mobs etc and one for the collision for the doors. In that way you could technically make the door collision get even more precise? :) Cool video though :D
@uheartbeast
@uheartbeast 8 ай бұрын
Yes! I do that in the actual game. I've got 2 collision shapes. One for hitting walls and one for being hit by enemies.
@kunai9809
@kunai9809 Жыл бұрын
why didn't you put the collision shapes inside the door scenes? And why didn't you just center the player position in the middle of its collision shape?
@uheartbeast
@uheartbeast Жыл бұрын
1. In case I wanted the ability to use polygon shapes on some doors. 2. Because of the perspective in the room. It would look strange if the player couldn't walk in front of walls or other solids.
@ThantiK
@ThantiK Жыл бұрын
WOO HOO HE'S BACK!
@isagarcia4752
@isagarcia4752 Жыл бұрын
Unrelated with your actual project but could you consider make a tutorial of how to make a party system? Like how to change companions off battle, swap in battle, etc. Like a jrpg for example persona or pokemon
@_nyx_the_killer
@_nyx_the_killer Жыл бұрын
Can you do a tutorial for mobile touch screen controls? Pls ;--; (Sorry for any english mistakes)
@lounestb3718
@lounestb3718 Жыл бұрын
really cool
@_nyx_the_killer
@_nyx_the_killer Жыл бұрын
Can you do a tutorial for mobile touch screen buttons? Every time I try it never works
@drakenork
@drakenork 9 ай бұрын
Thx for video ❤
@capycapy8920
@capycapy8920 3 ай бұрын
Please do a vid on room generation and linking
@floatingcowinvasion
@floatingcowinvasion 5 ай бұрын
this guy sounds like gabe from the office
@cherrymanmay
@cherrymanmay 2 ай бұрын
Bro, can you make a dungeon room generated video
@debrucey
@debrucey Жыл бұрын
When did you go from Benjamin to Ben?
@uheartbeast
@uheartbeast Жыл бұрын
I use them interchangeably and don't notice the difference haha
@fatmike5038
@fatmike5038 Жыл бұрын
nice
@lincolnpepper816
@lincolnpepper816 Жыл бұрын
this doesnt seem like a good solution, specifically i dont think using singletons for node communication like this is a good idea. couldnt you simply use signals and achieve the same thing?
@uheartbeast
@uheartbeast Жыл бұрын
An events bus singleton is a pretty common and established programming pattern. I think this is a good example of where the pattern is useful. It prevents coupling between the camera and the rooms (whereas connecting the rooms directly to the camera would couple them together). If you'd like to read more about it, here is a useful article by GDQuest that talks a bit about the pros and cons: www.gdquest.com/tutorial/godot/design-patterns/event-bus-singleton/
@lincolnpepper816
@lincolnpepper816 Жыл бұрын
@@uheartbeast thanks for the informative response.
@SheepUndefined
@SheepUndefined Жыл бұрын
I always hear people bring up encapsulation principles and all that, but honestly, the real deal is just that it's annoying to hook them up. The object has to know about the object it's connecting to, in order to hook up a signal, which means get_node() and a bunch of extra boilerplate code every time you want to hook into a signal programmatically. Singleton event buses are universally known, so there's no get_node() overhead, and neither the emitting object, nor the receiving node don't need to care about what's on the other end anymore. That's prolly what people mean by the whole encapsulation thing but that's sorta hard to parse unless you already know what they're referring to, imo.
@uheartbeast
@uheartbeast Жыл бұрын
@@SheepUndefined That's a fair point. Connecting every room to the camera would be a huge hassle, especially since the rooms are instanced dynamically by the level generation system. Having an intermediary (the events buss) between the room and the camera *might* have benefit later on if I need to make changes (who knows) but the benefit right now is that the code ends up much cleaner and easier to understand.
@thegameissimple
@thegameissimple Жыл бұрын
Not so advanced, tbh, but cool nonetheless. Thanks!
@mammonth
@mammonth Жыл бұрын
Ладно
@왜못할거라생각해
@왜못할거라생각해 10 ай бұрын
Very bad lv design are you sure you a developer??? Like wtf You are just a seller Not game developer
@jedikoops
@jedikoops 7 ай бұрын
@NguyễnLinh-z2f
@NguyễnLinh-z2f 5 ай бұрын
Stop being a untitled Karen, touch grass, the video is used to help ppl, not flexing his level. Touch grass you Karen.
Godot 4 Shader Tutorial for Absolute Beginners
13:18
Heartbeast
Рет қаралды 41 М.
What size should your assets be? | HD 2D GAME ART
12:10
Nonsensical 2D
Рет қаралды 136 М.
Wait for it 😂
00:32
ILYA BORZOV
Рет қаралды 7 МЛН
бабл ти гель для душа // Eva mash
01:00
EVA mash
Рет қаралды 1,7 МЛН
小丑家的感情危机!#小丑#天使#家庭
00:15
家庭搞笑日记
Рет қаралды 38 МЛН
Godot 4: Switching Levels Made Easy
15:59
PlugWorld
Рет қаралды 23 М.
How to Design Great Metroidvania Levels | Game Design
7:35
Goodgis
Рет қаралды 173 М.
Godot Scripts I add to Every Game
12:34
Aarimous
Рет қаралды 33 М.
Every 2D Node Explained in 9 Minutes !
9:19
Lukky
Рет қаралды 354 М.
Godot Ocean Waves
6:40
AntzGames
Рет қаралды 10 М.
Why Solo Developers Should Use Unreal
9:51
Thomas Brush
Рет қаралды 408 М.
Procedural Dungeons in Godot 4 | Tutorial
46:52
quwatz_
Рет қаралды 60 М.
Godot 4 - Tiled Dungeon Environment From Scratch
26:24
DevLogLogan
Рет қаралды 431 М.
Godot 4 Precision Platformer - state machine and movement
1:45:14
PracticalNPC
Рет қаралды 19 М.
If Minecraft had a Block Vote
8:02
Fingees
Рет қаралды 204 М.
Wait for it 😂
00:32
ILYA BORZOV
Рет қаралды 7 МЛН