Тёмный

Random Level Generation with a Walker - Godot Tutorial 

Heartbeast
Подписаться 235 тыс.
Просмотров 97 тыс.
50% 1

Хобби

Опубликовано:

 

15 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 171   
@uheartbeast
@uheartbeast 4 года назад
Here is the githup page for this project (MIT License): github.com/uheartbeast/walker-level-gen Hope you all enjoy the video! - Ben P.S. Audio was a bit off in this video. I' guess I'm having mic issues. I'll see if I can get it fixed for the next video.
@BumpDev
@BumpDev 4 года назад
No problem
@imacup5640
@imacup5640 4 года назад
Heart breast fans
@bobriver9570
@bobriver9570 4 года назад
:)
@Evan-gg1tk
@Evan-gg1tk 4 года назад
will you still make game maker tutorials?
@brandonphilander661
@brandonphilander661 4 года назад
Please make a procedural dungeon crawler or roguelike.
@henrysabin165
@henrysabin165 4 года назад
Benjamin, this video has changed everything for me, for the last four months I have been working on a procedural dungeon crawler in Godot using skills which i gained primarily from your courses online, but I had been struggling to find tutorials on the subject level generation for Godot, this video is exactly what I needed to make a breakthrough in programming my game! Thank you so much, I cannot believe you do all of this out of a passion for the art of games, I admire you more than you can know my friend. I hope one day to release my own game and to embody your passion for the art as well. Again, thank you.
@ToastBubbles
@ToastBubbles Год назад
I was having a lot of issues replicating this with the 4.1+ Terrain system, after playing around for over an hour, I was finally able to achieve the results at 4:17 Tips: -Only paint/assign the floors to the terrain, just like at 3:30, this will assign the walls a peering bit value of -1 meaning they will be placed only when adjacent cells are empty. -When going to paint cells, select Connect mode, it looks like an 8 sided arrow, if you select any of the tiles on the right, or path mode, it just acts buggy
@azulcrescent715
@azulcrescent715 4 года назад
YESSS another Heartbeast Godot tutorial!!! You've helped me so much in learning godot, and i might add, making me enjoy game dev again.
@AerikForager
@AerikForager 4 года назад
I'm interested in seeing more content about your random walker, specifically how to "coherently" place items like doors, chests, power-ups etc... :) Thanks for the interesting content!
@noxalas
@noxalas 4 года назад
Another awesome tutorial. I'm not sure of the exact term, but I would love to see your take on random level generation, but with hand-made rooms. (Connecting pre-existing rooms together) For example like in Binding of Isaac or Enter the Gungeon.
@asuseeepc5801
@asuseeepc5801 4 года назад
I'd like to see that too. Dead Cells does that as well.
@xaxaWOW
@xaxaWOW 4 года назад
The term you are looking for is " Procedural generation " right ? :)
@sleepychicken3938
@sleepychicken3938 4 года назад
yes to this! would love to see.
@noxalas
@noxalas 4 года назад
@@xaxaWOW You're right! I just always connect that term a lot more to something like randomization of color and parts for monsters (No Man's Sky, Starbound), but I guess that's kind of the same thing, just on a larger scale. :D
@Eliasdbr
@Eliasdbr 4 года назад
Spelunky is another good example
@insignia201
@insignia201 4 года назад
As someone who has done a bunch of your tutorials, I am super excited for this one too!
@JohnIvess
@JohnIvess 3 года назад
Oh my, it's just amazing. You're making complex stuff simple and INDEED understandable. No screw-your-brain recursive algorithms, just simple and plain code that results in a great system at the end of the end. Man, you're great.
@rungeon83
@rungeon83 4 года назад
PLEASE keep on with this, I'd love to see part 2, this is a great way to learn Godot for those who are past newb staging.
@RetrovoiD
@RetrovoiD 4 года назад
I really could have used this a week ago haha The dungeon generation for my game is pretty different, but this definitely would have helped! I was trying to use your old tumblr post explaining generation you did for an old game you were making, but ended up having to kind of make it from scratch. Great video!
@GraniteFaun
@GraniteFaun 11 месяцев назад
Gonna leave this here in case someone with Godot 4 wants to use this, since figuring it out wasn't very straightforward at least for me. To set a cell you use this, the Atlas Coordinate came from my fully walled tile (using default full tilemap) which is important for the terrain connect function to work properly. tileMap.set_cell(ground_layer, tile_pos, ground_layer, Vector2i(0,3) ) And the other thing you have to do for the autotiling to come to effect is by this code, ground layer is a variable for my base layer ( usually 0 ) var used_cells = tilemap.get_used_cells(ground_layer) tilemap.set_cells_terrain_connect(ground_layer, used_cells, ground_layer, ground_layer) Also with bigger tiles you might need to crank that factor for the spawn points up to 64
@Lion4de
@Lion4de 8 месяцев назад
This saved my bacon. For clarification, by "fully walled" tile, you mean the one that only has a single spot painted in the middle, which indeed, if you inspect that tile in the tile set should have every one of its bitmask fields set to -1. Thanks for the tip!
@tomod45
@tomod45 7 месяцев назад
how did you get tile_pos?
@Lion4de
@Lion4de 7 месяцев назад
@@tomod45 tile_pos comes from the loop that you are using to iterate through the tile map.
@tomod45
@tomod45 7 месяцев назад
@@Lion4de ty!
@alecmcfadyen8616
@alecmcfadyen8616 6 месяцев назад
I’m having a little trouble with the auto tile how. Did you do that?
@bigusdigus2485
@bigusdigus2485 2 года назад
This tutorial is one of the most amazing ones that I've seen so far. You pretty much explained in a small sentence what each code does in order for a wide audience to understand. Most of the tutorials don't do that, thinking that it takes too long, but you proved everyone wrong with this video man. I just started like 3 days ago learning Godot, and this video pretty much saved most of my questions that I had. Thank you so much.
@chef2654
@chef2654 4 года назад
Hey Ben, awesome video as always! I noticed that the vibrations from you typing on your keyboard gets picked up by the microphone. I used to put a small thin cushion under my keyboard to avoid this, until I got a shock mount for my mic. Just a tip, you're videos are great either way :)
@BadDesignBryan
@BadDesignBryan 4 года назад
You're an absolute legend. I was literally looking for a video on random level generation in Godot, today. Can't wait for the next part. :)
@pudgystump
@pudgystump 4 года назад
Great video! I would love to see you expand upon this random generation algorithm and go over other random generation algorithms as well! Loving your tutorials and Godot!
@ethanstringham9710
@ethanstringham9710 Год назад
Love this video, teaches important aspects of Procedural Generation without going to heavily into theory or to heavy but rather by teaching a simple algorithm.
@itsdirkelsevangilist555
@itsdirkelsevangilist555 4 года назад
You are like the brackeys of Godot, thanks for your awesome tutorials you inspired me to make my first game and release it, have an awesome day further ;)
@omjigames
@omjigames 4 года назад
Oi Ben! Muito legal ver que seu canal cresceu bastante! Abraços do Brasil!
@shirotonbo6315
@shirotonbo6315 2 года назад
I am so thankful for the wonderful godot community! Especially HeartBeast and BornCG!
@SharyqSiddiqi
@SharyqSiddiqi 4 года назад
Thanks Ben! I really love your videos, i have been watching your action RPG series, and this series gots me excited to see what you make in the future
@breadslise5659
@breadslise5659 7 месяцев назад
FOR PEOPLE STRUGGLING IN GODOT 4 i figured out a pretty good way to gibe the same effect in the video without having to have all the tiles on screen to start off with for Godot 4 create a new array called used tiles then use the for loop shown in video but have it append those positions in used tiles like this: for location in map: used tiles.append(location) then this next part is optional but if you dont want to have to place all the tiles in the editor plus itll give you variable room sizes if you want that for x in borders.size.x + 2: for y in borders.size.y + 2: var point = Vector2(x, y) tilemap.set_cell(0, point, 1, Vector2i(3, 3)) I used the fully walled or enclosed tile for the atlas coords because it has a -1 for all of its sides (dont really understand this part) and the plus twos are for the extra tiles so the tiles created dont go off the borders then ypu take the tiles you saved in used tiles, the iterate them in a for loop to erase tiles for the actual level for tile in used_tiles: tilemap.erase_cell(0, tile) then you take the used cells amd use the terrain connect method to connect them all var used_cells = tilemap.get_used_cells(0) tilemap.set_cells_terrain_connect(0, used_cells, 0, 0) this should give you the proper levels
@hitrikrtek6012
@hitrikrtek6012 4 года назад
Great stuff again Ben! I was just learning this subject myself atm and your tutorial came in perfectly :D Learned some cool stuff here that was giving me issues. Thanks!
@MithranTruck
@MithranTruck 5 месяцев назад
GODOT 4.2.2 USERS: After 3 hours of reading comments and figuring out what exactly the code does, I came up with this to get the same results in the video: func generate_level(): var walker = Walker.new(Vector2(19, 11), borders) var map = walker.walk(500) walker.queue_free() for location in map: tileMap.erase_cell(0, location) await get_tree().create_timer(0.001).timeout # You can delete this, I like to see the level slowly generate. var used_tiles = tileMap.get_used_cells(0) for tile in used_tiles: tileMap.erase_cell(0, tile) tileMap.set_cells_terrain_connect(0, used_tiles, 0, 0) I learned that ".get_used_cells" specifically gives vector coordinates for anything that wasn't erased in the "for location in map" loop. I also learned that the code doesn't want to paint over existing used cells. So the used cells are stored in the variable "used_tiles" after the location loop. Those used cells are then erased in the "for tile in used_tiles" loop, and then redrawn at the very end in the "set_cells_terrain_connect" command. For folks interested in an inverse generator, which means starting with a blank tilemap on your world node: func generate_level(): var walker = Walker.new(Vector2(19, 11), borders) var map = walker.walk(500) walker.queue_free() tileMap.set_cells_terrain_connect(0, map, 0, 0) And the variation to see the walker walk: func generate_level(): var walker = Walker.new(Vector2(19, 11), borders) var map = walker.walk(500) walker.queue_free() for location in map: var walked = [] walked.append(location) tileMap.set_cells_terrain_connect(0, walked, 0, 0) await get_tree().create_timer(0.001).timeout
@jackhammang
@jackhammang 2 месяца назад
wow these work great, thanks for all the hard work. You're right, its better watching the level slowly generate
@alessandrovarisco9162
@alessandrovarisco9162 4 года назад
Love your tutorials, I was wandering how to do this in an isometric type of game
@jellovendigar
@jellovendigar 4 года назад
Thrilled to see a new tutorial comin out. Settling in for hopefully a long series
@JesseBourretGheysen
@JesseBourretGheysen 4 года назад
I like this alot, I used the cliffs tile set from your other tutorial
@samx6557
@samx6557 4 года назад
Awesome! I requested something like this some time ago. I haven't coded for a while but this inspires me to make an Rogue-lite, as I was working on one back in the day. Thanks for the video! If you make a series out of this, it would be awesome!
@steffenderfreak1
@steffenderfreak1 4 года назад
Nice tutorial, THX 🎉 I started to use a specific wording some years ago to prevent reading and typing errors. Arrays and lists just get pluralized by adding the suffix "List" So the List directions become direction_list this is quicker to read, even when you are tired because of a short night, a log day or you are on a game jam ;) And it is easier to work with non native englisch speaking people, who sometimes need to search for the right plural form of the word. is plural of person, persons? No, it is people. Oh right, my bad. No, it is a person_list 🤷‍♂️ and you can rename it much easier, when you realize, it's not a bunch of people, it's staff. And you prevent this one weird coworker to give variables funny names loke "Oh, its a bunch of files, I call it a folder" Oh and you can call your const ALLOWED_DIRECTION_LIST This is a longer word, but code completion to the rescue, we don't need to write the whole variable name ;) I personally would add the step_history.append() stuff to the step method, because, yoou COULD access the step method from some ware else in your code and would need to add this step (haha) again, to append it to the history
@phuhoanguc563
@phuhoanguc563 4 года назад
It's been a long time since the last Godot Tutorial!
@sleepychicken3938
@sleepychicken3938 4 года назад
thank you for the tutorial! Will you consider a segment on putting monsters, biomes or other objects into the level? Most tutorials that talk about level generation leave you with instruction on how to build a randomly generated level, but with no idea on how to populate it. Thank you for all your hard work.
@theirtemple8262
@theirtemple8262 3 года назад
I would suggest getting rid of the habit of Array.shuffle() and pop, which is O(n) and instead do array[randi() % array.size()], which is O(1). And thanks for all your wonderful tutorials! ;-)
@nyannaing8217
@nyannaing8217 3 года назад
Hi HeartBeast, I would really appreciate it if you continue this series, I am trying to make a 2D sandbox game that uses random world generation but I don't know how to code that. Your videos rally helped me thanks.
@kitpierce2988
@kitpierce2988 3 года назад
Procedural generation is my jam! Always trying to learn it better.
@BoyoWhoGoesPoyo
@BoyoWhoGoesPoyo 4 года назад
CORRECTION: "const" in gdscript does not mean immutable. You can freely modify constant arrays/dictionaries. const-bound variables just can't be re-assigned (and must be initially assigned a literal constant expression). The error in the video was a result of DIRECTIONS becoming empty due to repeated erasure of elements.
@benchampagne5266
@benchampagne5266 4 года назад
First Thanks for making another procedural generation tutorial this is the exact thing I’ve been looking for. Your tutorials are awesome and I probably wouldn’t have started game development without your tutorials.
@mythology100
@mythology100 4 года назад
(sighs)... (gives HeartBeast a thumbs up while wishing he can give two)
@flamingo2946
@flamingo2946 4 года назад
this may be just exactly what I was in need of. Yay!
@AniketSingh-hr8mi
@AniketSingh-hr8mi 4 года назад
I love this guys tutorials. Please always keep them coming
@bookiemeow173
@bookiemeow173 4 года назад
Thank you so much for this great tutorial!
@Cristonic74
@Cristonic74 Год назад
you are the best i guess i learned most of godot by your tutorials keep it up man i apperciate it 👊👊👊
@shtr86
@shtr86 4 года назад
What's better than this topic ?! randomness is awesome ! tyyyy
@laknar60
@laknar60 4 года назад
Nice! I am excited for this series, after this series can you possibly do a tutorial for a text based game? Anyways thank you for your amazing tutorials. Hope your channel gets bigger.
@marcosgomes3140
@marcosgomes3140 3 года назад
Very nice, bro!! I'm subscribing right now! 👏🏼👏🏼🤘🏼
@-TheRF
@-TheRF 4 года назад
Idea for a next video on this series: using this method of generation to create a map for your actual level made of pre-made rooms. You could have pre-made rooms for corners, horizontal and vertical hallways, and open spaces. Maybe even make couple pre-mades for each "type" of room to increase the variety on the final product.
@Eliasdbr
@Eliasdbr 4 года назад
I love procedural generation in games. If the dev does it well, the game can get a great level of diversity
@AmuhAje
@AmuhAje 4 года назад
Soo lucky having myself among the first watchers. GREAT CONTENT!!! 👏👏👏
@iherbivore1
@iherbivore1 4 года назад
Your keyboard has a satisfying thumping sound.
@lufixgaming3652
@lufixgaming3652 4 года назад
Seus tutoriais são os melhores, muito obrigado!
@SeniorSupersuade
@SeniorSupersuade 4 года назад
More random level generation, please. Also, consider doing a platform genre random level generation. Thank you!
@donforex
@donforex 4 года назад
Great addition to your tuts!!
@aleks2603199
@aleks2603199 4 года назад
The only person who's big godot tutorials whe shall care about! ☺️😍🔥
@kshitijbaria5883
@kshitijbaria5883 4 года назад
Dude i was just gonna ask for this kind of tutorial Good Job! Can you please make a level generation similar to binding of isaac
@xTPXLx
@xTPXLx 4 года назад
Hey, The bit about DIRECTIONS and constants is incorrect. You cannot change a reference to it (So you can't do DIRECTIONS = []), but you can change what it contains (pop_front and the like). The null error was because you remove an element from directions every time you call change_direction. If you print the value of DIRECTIONS and direction you get: directions [(1, 0), (0, -1), (-1, 0), (0, 1)] dir (-1, 0) directions [(0, -1), (0, 1)] dir (0, -1) directions [(0, 1)] dir (0, 1) directions [] dir Null Calling duplicating the array on every call ensures you don't eventually end up with an empty array.
@guustavols
@guustavols 4 года назад
hoolly, thank you man, you really helped my a lot, and right when i was needing a model of procedural generation :P
@guustavols
@guustavols 4 года назад
but now i need search how to change just the top sprites without changing all the rest haha
@Syeno
@Syeno 4 года назад
I love your tutorials, youre so intelligent. I have one quick question tho, is it possible to include walls on the south sides of the auto tiled floors? Almost like a mountain maker.
@grymmjack
@grymmjack 4 года назад
Awesome video. Did you ever make a course on GoDot?
@sosasees
@sosasees 4 года назад
What about the Hybrid Approach? For my game, I need to spawn Hand-made Scenes a specific distance apart (Spelunky style) as suppose to just generating the level automatically (Minecraft style). That hybrid approach is like giving the Level Designer a lot of pre-made Rooms in the form of actual TSCN files, and ze can also not physically place certain rooms next to other certain rooms, and that Level Designer is a computer algorithm.
@spooki-2451
@spooki-2451 4 года назад
id like to see how to implement stuff like buildings/special rooms in the random terrain . like having a consistent starting room and ending room .
@rekkimaru7
@rekkimaru7 4 года назад
Oh yes! Give me those sweet Godot tutorials!
@dodde216
@dodde216 3 года назад
Pretty sure your nill error was because directions has the same pointer as DIRECTIONS, so if you remove items from directions, then DIRECTIONS will end up empty as well. I'm not that familiar with gdscript so I can't be sure, but in most languages cosntants are pure for assigning (using the = sign), functions can still change them
@vatsalajoshi3473
@vatsalajoshi3473 4 года назад
Thank you so much for such tutorials. I have been following your rpg series and started development on my own game but I'm facing problem in dialog box for npcs, signs, etc., please make a video on that.
@ROLU.online
@ROLU.online 2 года назад
Thank you so much, it helps a lot! Great tutorial
@rl_ledge9284
@rl_ledge9284 4 года назад
Hey heartbeast, Could you make an tutorial about items and a Inventory system. I've looked around how to make this but I am really struggling with it :(
@vinipossatto9586
@vinipossatto9586 4 года назад
nice video! I love your work
@davifox94
@davifox94 4 года назад
Awesome! Nuclear Throne fan here :)
@saulnores3477
@saulnores3477 Год назад
Great tutorial!!
@Felix-ce5de
@Felix-ce5de 4 года назад
Benjamin, could you do a tutorial on moving clouds that loops? (from right to left)
@williamliu7082
@williamliu7082 3 года назад
Wow, that's so creepy. I generarated the exact same level as the level generated in the tutorial
@VerMishelb
@VerMishelb 4 года назад
How do you look at making series about "space invaders"-like game but more complex, like "chicken invaders" series? The hard part in this could be making enemies move in correct groups.
@silluis88
@silluis88 4 года назад
love you bro :) ...you are great
@Davi_Dash
@Davi_Dash 4 года назад
You reading my mind ?
@ronitmann899
@ronitmann899 4 года назад
Finally new series Yeah!!!!!!!!
@cqtlc
@cqtlc 4 года назад
Hey Benjamin, I had the same glitch issue, I fixed it with the Pixel Snap option on in the redering project setting
@Dolfin-dolfin
@Dolfin-dolfin 4 года назад
I am very interested in videos about random level generation.
@Drachenbauer
@Drachenbauer Год назад
You make a giant rectangle out of tiles at first and than "carve" out the level-map. While i converted this project for godot 4, i noticed, that the new treeain properties, that replace autotile from previous versions, have one single function to place tiles and and connect them by the bithask: TileMap.set_tiles_terrain_connect() That wants an array of all positions, thar should get tiles of the given terrain-set, and also directly connects them to fit with their borders. So instead of drawing a giant rectangle of tiles, i created an array ("rectangle_map") of all these position-vectors in the code and in a seccond step i iterate through the map from the walker and erase all these vectors from the new rectangle_map. The result is now the array, that i pas into the new terrain-connect-function of the tilemap. So i also get a big rectanglo of tiles, where the level is a "hole" in it. Everything else was not a big problem to cinvert
@bootykong
@bootykong Год назад
This helped me so much to be honest. I first drew a rect in the 2D editor and edited the script to look like this: var walker : Walker = Walker.new(Vector2(19, 11), borders) var map = walker.walk(500) var all_cells : Array = tileMap.get_used_cells(0) tileMap.clear() walker.queue_free() var using_cells : Array = [] for cell in all_cells: if !map.has(Vector2(cell.x, cell.y)): using_cells.append(cell) tileMap.set_cells_terrain_connect(0, using_cells, 0, 0, false) I get all the tiles in the array "all_cells" it was easiest to create it this way.
@felipezymor9970
@felipezymor9970 6 месяцев назад
@@bootykong You just saved my project. Thank you so much!
@Bollalillo
@Bollalillo 3 года назад
Would be awesome to see the same result in 3D
@louietheswan9689
@louietheswan9689 4 года назад
Great video
@KlausWulfenbach
@KlausWulfenbach 4 года назад
Fantastic!
@loupax
@loupax Год назад
The levels I saw generated here really want a platformer hero with a grappling hook.
@seanocansey2956
@seanocansey2956 4 года назад
If you're doing a Series, you should use the same sprite idea and theme as the ones you had in your previous one in GameMaker. (purple robe guy)
@boone_e
@boone_e 4 года назад
When are you making a menu tutorial for the action rpg??
@TheMinecraftCookies
@TheMinecraftCookies 4 года назад
Coulda used this a while ago thanks anyways
@abhilashpawar1875
@abhilashpawar1875 4 года назад
Awsome!
@Dwy19
@Dwy19 4 года назад
henlo. can you teach us how we can interact with like the game environment like chests, npcs, coins... like how we can expand on your rpg tutorial? thanks...
@EidoEndy
@EidoEndy 3 года назад
I'm getting an error with the tileMap.set_cellv(direction, -1) command. It's saying set_cellv() is a nonexistant function. Like it's not reading the tileMap node as a $TileMap. It says tileMap is [null]. It doesn't seem to be registering "update_bitmask_region" either. I checked the tileMap variable (set to $TileMap just like in the tutorial). Not sure what the issue is or if I have to copy paste the code here.
@DamePicko
@DamePicko 3 года назад
I have the same problem 😔
@embodyingocean189
@embodyingocean189 4 года назад
should I switch to godot?
@liampeterson8299
@liampeterson8299 4 года назад
yes
@BumpDev
@BumpDev 4 года назад
yes
@KlausWulfenbach
@KlausWulfenbach 4 года назад
If you already know another engine well, and you enjoy using it, and that engine has all the features you want, no. But if Godot has what you need, or you don't have a particular attachment to another engine, then yes.
@embodyingocean189
@embodyingocean189 4 года назад
@@KlausWulfenbach I honestly don't know if it has anything useful. I use game maker.
@KaidenXIII
@KaidenXIII 4 года назад
Im a fan.
@anuradhaghatti4779
@anuradhaghatti4779 3 года назад
Hi can you make a tutorial on how to place objects in the level like random enemies and all of that cool stuff
@deetorz
@deetorz 2 года назад
I'd like to see this map generator with the 3d dungeon video you made.. hmm..
@mindstreamx
@mindstreamx 4 года назад
Cool. I hope this isn't affecting your 'Monster Pack'
@PikCelAlien
@PikCelAlien 4 года назад
Can you make proceedial generated infinite terrain tutorial for action rpg game like your action rpg series?
@Evan-gg1tk
@Evan-gg1tk 4 года назад
Are you going to still make game maker tuturials?
@Daviesdev
@Daviesdev 4 года назад
This question might sound stupid or useless but how did you remove the 3d tab from the editor
@starwars2078
@starwars2078 4 года назад
When I try to instance a player in the demo you uploaded, I get the message:"Script inherits from native type 'KinematicBody2D', so it can't be instanced in object of type: 'Node2D'" in my player's GDScript. I am not sure as to why these are interfering.
@BladeNgames
@BladeNgames 4 года назад
Yes yes YESSSSS
@johnnylinares5126
@johnnylinares5126 4 года назад
Can you do the Boomerang Projectile tutorial?
@mediabass
@mediabass 3 года назад
If the player gets controle over the seed he could replay his favorite 'level'. And share it with friends who would like to play that level too.
@7seven398
@7seven398 4 года назад
how would i approach making a spelunky styled level generation?
@akiradossantos2635
@akiradossantos2635 3 года назад
I can use this to do sometyhing like binding of Isaac?
@bvictor
@bvictor 2 года назад
may have a good way to create procedual generations like Dead Cells?
Далее
Rooms in a Walker Level Generator - Godot Tutorial
14:37
How (and Why) Spelunky Makes its Own Levels
7:13
Просмотров 817 тыс.
HD-2D Style in Godot 4.1
12:57
Просмотров 60 тыс.
Godot Scripts I add to Every Game
12:34
Просмотров 26 тыс.
Procedural Dungeons in Godot 4 | Tutorial
46:52
Просмотров 59 тыс.
I Made Minecraft in Godot
28:36
Просмотров 63 тыс.
How to make a Video Game - Godot Beginner Tutorial
1:17:12
4 Godot 4 Devs Make 4 Games in 44 Hours
25:19
Просмотров 527 тыс.