thanks man! ive been getting used to godot and your videos are a great help. you're awesome!
@MajikayoGames4 сағат бұрын
awesome!! glad you're enjoying :)
@zeepnely567819 сағат бұрын
hi, im having an isue with the camara smoothing where, the higher up on the node tree i assighn the smoothing too when going down steps the more the camara sinks into the floor, and the lower on the node tree the higher the camra floats into the sky, all of the postions of these nodes are 0, 0, 0.
@MajikayoGames10 сағат бұрын
It's hard to say without looking at your code, but another person had a very similar problem, the solution ended up being the node structure and position. The head original position should be moved, and the rest stay at 0,0,0. If you have double checked your code and it's just like mine, i would think it's a similar thing. Are you sure the nodes are exactly the same as mine?
@zeepnely567810 сағат бұрын
@@MajikayoGames it's not quite the same I have the character body witch is at 0,0,0. Then a body node also centered then a heads node that is moved up, and then a head 1 node that is centered and then the Camara node. The one I am smoothing is the head 1 node. One more thing to note is that the camera is not only drifting vertically but also horizontal. For now I just got rid of the camera smoothing and I plan to lerp the velocity down the stairs
@MajikayoGames9 сағат бұрын
@@zeepnely5678 Gotcha if you have your own setup, it may need some different code. This method is designed to be used with the exact same node and positions setup i have.
@zeepnely56789 сағат бұрын
@@MajikayoGames alright, thanks for thinking about it!
@schemesmith22 сағат бұрын
This is awesome, thank you so much!
@DBZBardock0023 сағат бұрын
This looks awesome!! Do you think theres a way to have procedural generation every time the game starts, like a roguelike? I'm new to godot
@MajikayoGames10 сағат бұрын
Yep that should be the default! The generate on ready checkbox should do what you want.
@ChaonicMewКүн бұрын
The one problem I have with how this plugin works is how the corridors tend to be very long while not contributing nearly as much to the game as rooms do. When dissecting games like Lethal Company, the approach how dungeons are generated isn't perfect, but it puts an emphasis on every room, corridor or not, being potentially really important. (From a generation perspective and how loot is distributed) I've been using this tool for Unity called DunGen. If it isn't what's used in Lethal Company, it's at the very least extremely close. Long corridors may choke you if you're designing around a fast paced game loop while also aiming to give players a lot of things to look at. When designing my rooms using DunGen, I've been treating most rooms as room/corridor agnostic falling somewhere between them. This has the benefit that no matter where you are in the map, there is likely something for you to see very close. The system is by far not perfect. I for instance wish that there was a way to kill a path that's using certain tiles if it doesn't lead somewhere important. Like stairs that go down or up, but create a dead end. There is a lot more to this I think can improve that formula. I just honestly don't even know how one would start coding it.
@cataclysmicnothing3 күн бұрын
Come to learn how to walk up stairs, stay for everything else. Great playlist. Really appreciate the notes/corrections in pinned comments and seeing you respond to others' suggestions in the comments.
@MajikayoGames3 күн бұрын
Glad you enjoyed! :D
@serioussammy3 күн бұрын
What about going under water?
@MajikayoGames3 күн бұрын
you can check my other video for that: kzfaq.info/get/bejne/fuCBqaxl3N3WXWQ.html
@IsaacHisey3 күн бұрын
Awesome addon and good video. Maybe a bit more prep in terms of script will help in future videos. Keep up the great work!
@MajikayoGames3 күн бұрын
Thank you for the feedback appreciate your thoughts :) will keep it in mind for the next ones im planning
@laughingmantis17693 күн бұрын
Would there be a way to generate corridors using rooms larger than 1x1? My game uses fixed cameras, and the 1x1 rooms dont work well with that, as you can imagine. Being able to instead mark 3-4 different 'corridor' rooms of different sizes would be helpful. I'm not sure how to achieve it without overhauling source code. Either way, thanks for this vid.
@MajikayoGames3 күн бұрын
Closest we have at the moment is just to swap in a different model for the 1x1x1 corridor after generation. Also to play with astar settings to try to make the corridors more wide and straight, heuristic scale 3 and corridor cost 1 would maybe be some ones to try. Main problem/ difficulty with this idea of different corridor sizes, is it's not super clear how that would even work. I mean it's not well defined, currently we have astar which pathfinds/tunnels to/from rooms. You can mess with the shape of the hallways a bit, but because it is procedural, I don't see how we even define some alternating corridor shapes like that. I'm sure it's possible but I really don't see a clear idea of how one would do that or even define what it means. Hope this helps.
@lethn29294 күн бұрын
Since people were understandably asking about ladders I thought I'd post something up that I hacked together. if isTouchingLadder == false: self.velocity.x = wishDirection.x * getMoveSpeed() self.velocity.z = wishDirection.z * getMoveSpeed() elif isTouchingLadder == true: self.velocity.x = 0 self.velocity.z = 0 var inputDirection = Input.get_vector("Right", "Left", "Backward", "Forward").normalized() wishDirection = self.global_transform.basis * Vector3(-inputDirection.x, 0, -inputDirection.y) if isTouchingLadder == true && Input.is_action_pressed("Forward"): self.velocity.y = 1 if isTouchingLadder == true && Input.is_action_pressed("Backward"): self.velocity.y = -1 if isTouchingLadder == true && Input.is_action_just_released("Forward") || Input.is_action_just_released("Backward"): self.velocity.y = 0 elif isTouchingLadder == true && Input.is_action_just_pressed("Jump"): isTouchingLadder == false Seems to work alright, I prefer having more control on ladders when it comes to my movement so on this one you can go up and down I think there's a bit of a bug where the jump key doesn't seem to quite work right away but that's potentially just my character clipping through the ladder and not colliding correctly because when I crouch and jump instead it comes off the ladder which I kind of like anyway lol. The IsTouchingLadder is simply a boolean, I had it change based on whether or not I triggered an Area3D in this case on the ladder and then that allowed the ladder movement to happen, if you want to do it with a keypress just edit the code to your liking, everyone's got their preferences.
@MajikayoGames4 күн бұрын
Looks great! I have a more comprehensive video on ladders as well if anyone is interested: kzfaq.info/get/bejne/q71gZNiQlrbQlH0.html
@Name-qd7vh5 күн бұрын
How would you connect navmeshes from different rooms?
@MajikayoGames4 күн бұрын
I haven't tried it, but AFAIK there are a couple ways to connect navigation meshes, from looking i think using edge_connection_margin looks easiest, i would think you make sure that is greater than the gap between any dungeon room doors: docs.godotengine.org/en/stable/tutorials/navigation/navigation_connecting_navmesh.html
@kimplll5 күн бұрын
How would I change the direction the water moves?
@MajikayoGames5 күн бұрын
you could add another multiply in the shader like * -1.0 or * vec3(-1., -1., 1.) to multiply each the xyz components separately
@villainsgame97786 күн бұрын
🙏🙏plz make soulslike melee combat system...
@Syrdaimons6 күн бұрын
I've been working on my own source/valorant inspired project for the last couple of months and your channel is exactly what I've been looking for. You've covered everything I could ask for and more, even had the same idea for portals that I did a while ago. Can't wait for more videos!!
@fridge.interactive6 күн бұрын
Honored to have our game GRIMHAVEN featured! Your plugin is an absolute must-have for anyone in the market for procedural gen -- highly recommend!
@MajikayoGames6 күн бұрын
awesome!! thanks so much
@robertcosta68916 күн бұрын
nice video, what do you use for your ingame console?
@MajikayoGames6 күн бұрын
thanks, i used my own basic one i made, i might release it at some point, but it's very basic not many features. just made it for the video real quick.
@tyler361t27 күн бұрын
any ragdoll physics?
@MajikayoGames7 күн бұрын
im interested in doing a video on this but i have some other stuff planned first :)
@ConnorSaxe7 күн бұрын
Is there a way to avoid using 'Engine.get_physics_frames()'? The idea of having a counter that just keeps going up effectively infinitely seems like a bad practice that could lead to issues.
@timmygilbert41027 күн бұрын
Now add cyclic dungeon design😊
@menteirradiante13077 күн бұрын
cara muito bom o seu trabalho, obrigado por compartilhar. desejo tudo de melhor pra vc.
@oddlytimbotwillison62967 күн бұрын
Very nice! A good primer for rigidbody interactions.
@kulak85487 күн бұрын
Add this line after you declare move_amount: move_amount = min(move_amount, %CameraSmooth.position.length() * delta * 20)
@futursoup90077 күн бұрын
👏👏👏👏 😎
@DarinLawsonHosking7 күн бұрын
Any idea how I could add a buoyancy surface to this so I could have a boat float on it and have it "swimmable" both under and on the surface?
@MajikayoGames7 күн бұрын
I did a video on making a swimming mechanic for FPS controllers here: kzfaq.info/get/bejne/fuCBqaxl3N3WXWQ.html However, I haven't worked with buoyancy much. I think you might be able to modify gravity for rigid bodies using an Area3D.
@DarinLawsonHosking7 күн бұрын
@@MajikayoGames I am trying to build a game based around island exploration (majority ocean biome and boat travel) but buoyancy is kicking my ...
@JustinThorLPs8 күн бұрын
I like the pre-placed room idea, Would it be a possibility to have several pre-placed rooms that the dungeon could randomly generate to create connections between? So say I have another pre-placed room every 2 or so levels It will connect them.
@MajikayoGames8 күн бұрын
not sure i fully understand, but it sounds like that would work. you could even pre place rooms in code, then call .generate after. that's what i did in the mansion example. there's also the custom get random rooms function which could work for this.
@livesleyboxing91038 күн бұрын
Fantastic!! I was making my own but this seems so sophisticated I can already use the rooms I made too 👍👌 I’ll mention you in credits for sure haha 🤣 I have one question tho… how can I generate a navigation mesh after generating the dungeon? I just have a one floor dungeon so just parent all rooms to a nav mesh node and bake after generation?
@MajikayoGames8 күн бұрын
glad you enjoyed :) i haven't tried nav mesh generation yet. but yeah i assume you could just bake it after if you needed to. or, i think you might be able to pre bake it for each individual room and then the navigation server joins overlapping points. i haven't looked too much into it though.
@livesleyboxing91038 күн бұрын
@@MajikayoGames oh great yah I thought maybe it would work baking it in pieces, it works for occlusion culling at least! I wonder what you got cooking now ahah this is such an awesome unknown godot add-on! 👍👍🙏
@GrunkleSoos8 күн бұрын
Have you heard of Dungeon Architect for Unreal / Unity? I have been dreaming about something similar for Godot for a while now. Like another commenter said lock and key generation would be amazing! Thanks for making this I really think we will see some great games using it soon.
@MajikayoGames8 күн бұрын
i have seen dungeon architect, it did look pretty cool. would be neat to build this out some more, if i have time :)
@quinnleavitt41058 күн бұрын
Dungeon Architect was one of the inspirations for my comment. If we even got a fraction of that functionality, I think it'd go a long way for making procedural generation easier in Godot.
@SantiFarina-pd8od8 күн бұрын
Man, this is extremely helpful for my game (and my sanity), now I don't have to code it from scratch XD TY!!!!
@quinnleavitt41058 күн бұрын
Would you be interested in lock and key generation? By defining rooms as having a key and then having farther rooms with locks you can use the room/node order to make sure each key is available before you encounter the lock. The lock could be an enemy you have to defeat to progress or a puzzle or just a locked door. I think that would be the thing that would take this add on to the next step. I'd be interested in contributing to help accomplish that goal since I'd need it for my game's dungeon generation.
@MajikayoGames8 күн бұрын
Currently planning some other projects so I won't have time to implement this, but you may find the source code overview portion of the tutorial I did helpful. All the code is CC0 so you are welcome to modify and do with it as you please.
@quinnleavitt41058 күн бұрын
@@MajikayoGames Alright I'll see if I can implement it and if I get something working I'll open a pull request with the changes from my fork.
@MajikayoGames8 күн бұрын
Make sure to check out the awesome indie games being created with this addon! Grimhaven by Fridge Games: www.youtube.com/@fridge.interactive / x.com/fridge_game Rift of Nostaria: www.youtube.com/@RiftOfNostaria-AFantasyL-nj6lg / x.com/RiftOfNostaria Also check out the full tutorial if you want to use it yourself: kzfaq.info/get/bejne/rJton5Nmq9nIgKc.html
@onokoreal8 күн бұрын
The gift that keeps on giving! Great work. Anything I should be aware of when updating from older version?
@MajikayoGames8 күн бұрын
The main difference is that dungeon kits are no longer a thing, but many improvements were made other than that. Instead of dungeon kits now, you just define individual room scenes, and add them to the DungeonGenerator3D's room_scenes property. Also, you no longer need AABBs you just set the room's size_in_voxels property for that. I added a ton of debug info so hopefully the new version is a lot easier to use.
@onokoreal8 күн бұрын
@@MajikayoGames Oh I see so I already had this version this is the same one that you showed on your last tutorial video right? I'm guessing I still need to update for a few fixes that happened over the last two weeks? I'll make sure to send you footage when I get a playable version of my game!
@MajikayoGames8 күн бұрын
@@onokoreal awesome would love to see it! yep i did a few bug fixes and minor improvements in the last couple weeks, it should be stable by now. anything else ill be adding, will probably just be bug fixes if anyone finds any glitches.
@onokoreal7 күн бұрын
@@MajikayoGames Awesome thanks. Quick question if you don't mind I just updated my whole addon folder and everything seem to work the same so it went well. But I wanted to try some of your new prefabs to see how they work, notably the mansion. Didn't want to reuse your "debug" spawn tool again since I have my own setup for things so I setup a Dungen3D node with the mansion rooms, then added the HouseExterior prefab around and also added MansionEntranceRoom and aligned it in the editor (did manually what the script does when you choose mansion with your debug tool basically) Despite that I'm getting an issue where HouseExterior stays invisible and never make the "cut" needed for the entrace to be collision free. TLDR I setup a DungeonGenerator3D with HouseExterior scene from the mansion prefab along with the mansionrooms but the housexterior script doesn't seem to load properly outside of being loaded from the debug tool. I'll let you know if I figure out why haven't dabbled too much with your tool lately. thanks.
@MajikayoGames7 күн бұрын
@@onokoreal ah yeah you might have to adapt the HouseExterior to your own scenes. that one has some setup being done from the demo scene generation script. it's just meant as an example to show what is possible, you can refer to the scripts in the DemoScene and the HouseExterior and create some similar. Also you can check the wiki for more info on how to use the addon: github.com/majikayogames/SimpleDungeons/wiki
@RiftOfNostaria8 күн бұрын
Once again, great job on the addon!
@Darmanarnar8 күн бұрын
excellent tutorial I appreciate that you take time to show documentation and do more show than tell.
@elilentiart80258 күн бұрын
So, I've been playing around with this tool and am having a blast. I have tried several terrain options for Godot and this is by far my favourite and the most intuitive for a beginner. I have a few questions but please forgive my ignorance as I am new to game dev. Is there any way to add further textures to the map or is it locked to 4 (I'm assuming not)? Also, is it possible to use a shader as a texture while still using the splatmap function? A final suggestion, I feel like the one key feature this tool could use is a smooth brush. It could help a lot with sculpting land formations. I realise that is something you have probably already considered but wanted to share my impressions. Thanks again for sharing this!
@MajikayoGames8 күн бұрын
Glad you are enjoying! All valid questions, and would be very good to add. However, this add-on was more intended as a proof of concept/starting point for anyone to create their own terrain system, modifying mine or referencing my code and this video. For the core of it, I want to keep it as simple as possible. It is locked to 4 textures currently. Shader you couldn't use as a texture. It only accepts Texture2Ds as textures, whereas a shader would be a material (BaseMaterial accepts Texture2Ds to color it). I'm sure if you modified the terrain shader, you could have some interesting setup where for certain colors of the splatmap you could use different fragment shader logic. Smooth brush is a good idea. I wonder does flatten accomplish a similar purpose? I guess not as effectively, probably for smooth you would want to maintain hills. For another pretty easy to use terrain system which has a lot more features such as more than 4 textures, I would recommend hterrain if my SimpleTerrain isn't enough for your needs. Hope this helps :)
@elilentiart80258 күн бұрын
@@MajikayoGames Thanks for the reply :) I suspect I'm trying to run before I walk here. If I stick with learning GDScript I could potentially implement these changes myself for my own projects.
@entergamingvn718610 күн бұрын
u can make tutorial procedural infinite terrain 3d generation in godot ? please
@nevespt12 күн бұрын
is there anyway to use it for 2d roguelike dungeons games?
@MajikayoGames12 күн бұрын
currently no it just works for 3d. ive thought about adding 2d but moving on to other things than this addon after doing a bunch of work on it.
@UnderGamer_Official12 күн бұрын
When rocket scientist makes game. 💙
@PastaMaster11513 күн бұрын
I also experienced that problem you had where the InteractableComponent node showed up in the wrong place and I had to place it in the correct node. I didn't notice it until my door wouldn't work and I kept playing parts of the video over and over. It was that.
@PastaMaster11513 күн бұрын
It took me so long to figure out what "i" was until I heard you say "iterations". That makes more sense. You used i in the RiggidBody3D video too and I didn't know what it was then either. Now the code is clicking in my head lol
@MajikayoGames13 күн бұрын
interesting i don't think i ever realized i implies 'iterations' haha. i always just used i because that's what all the examples used when i first learned loops. i, then j for nested loops, nested again i think it's usually k for the var name. but yes for i in range(0, 10): iterates our i var from 0 to 9 throughout the loop
@elilentiart802513 күн бұрын
This tool is amazing! Thank you so much for sharing this with the Godot community.
@adamthefirst40113 күн бұрын
Is there a way to not generate diagonal corridors?
@MajikayoGames13 күн бұрын
i actually just added a heuristic_scale option to DungeonGenerator3D because of this comment. previously i thought euclidean helped with that but upon looking it up it doesn't seem to. you can try increasing heuristic scale to 3 with manhattan or euclidean modes, and also try messing with the corridor cost option, raising this (probably just to 1) can make the corridors more bulky, possibly helping with the problem of zigzagging corridors. it's hard to completely prevent this when using astar.
@adamthefirst40112 күн бұрын
@@MajikayoGames You are the best, thx!
@futursoup900714 күн бұрын
v dope my guy 👾
@NubsHai15 күн бұрын
How do you go about adding enemies and npcs throughout the rooms in the dungeon? I have been having trouble with making them move towards the player, attack, etc I believe because my player is spawning in a seperate scene (the entrance room)
@MajikayoGames15 күн бұрын
I think you should be able to put a navmesh in each room scene and as long as they get connected properly, enemies should be able to pathfind through the dungeon. docs.godotengine.org/en/stable/tutorials/navigation/navigation_connecting_navmesh.html
@matthewobrien414016 күн бұрын
Would love to see door "types" for transitional rooms between themes or areas of the dungeon. So you could have 2 different styles of corridors that only connect to a specific type of door. You could then have a room that has both door types that could allow for controlled branching in the dungeon.
@PastaMaster11516 күн бұрын
It doesn't appear to be working. I don't have the weight shapes you have in the video. But I'm playing with the colored cubes and spheres, which I can see already came with programmed masses. 10s, 7s, 5, and 1s. But it seems they all push exactly the same. I've even increased their masses to 1000 and still get the same result. I even copied your code directly to see if I did something wrong. I could see you got way more resistance from the bigger shapes. With me that's not happening.
@MajikayoGames16 күн бұрын
maybe because they are spheres, easier to push, but yes it's not a perfect method, it would be very difficult to get perfect physics interaction. this is just a simple method to apply some force when pushing against objects. as i said at the end, for more complex cases you would probably want to program it in yourself.
@HarpDevCo17 күн бұрын
anyone know anything like this for unity?
@Lily-kv3rb17 күн бұрын
I'm running into some issues with the "Advanced ground movement with friction/bhop" section. I copied exactly what was in the video but unless I decrease the ground_friction var from 6.0 to atleast 5.0 or lower my character doesn't move when I press forward. I even downloaded the starter project file from github and copy pasted the _handle_ground_movement func from their (except for the headbob piece, I didn't want to add headbob) and I'm still frozen when the friction value is set at 6.0. This wouldnt be a problem if setting the friction value lower also made my base speed extremely fast. Any ideas on fixing this issue?
@MajikayoGames17 күн бұрын
It's hard to say without seeing your code, those accel/decel/friction vars are pretty sensitive though. I would try with my values first, copying exactly from my code. Then adjust one by one. Yes if friction or decel is higher than accel or walk speed, probably you won't be able to move. I don't have a clear explanation for each, other than it's just the quake/source movement recipe. Not super intuitive but it gets the exact same movement style so it's important that these variables are used how they are. So I would try copying exactly from my code and changing one by one adjusted until you get your desired move speed/feel. Also check if the properties are changed in the editor inspector on your character, if you change them once, they will stay the same even if you change them in code I think. If you can't figure it out, you can pastebin your code and message it to me on twitter and I could take a look if you want.
@konstryktor3418 күн бұрын
I can finally implement physics in my game with character bodies. It was a big problem for me, cause I am not a coder, but i wanted it so bad! Learning something new everyday. Definitely like and subscribe.
@SoulofStorm33319 күн бұрын
Hello ! how do you flight at 18:40 ? is it special control you implemented for the tutorial ?
@MajikayoGames19 күн бұрын
The tutorial fps controller has no clip bound to V
@SoulofStorm33318 күн бұрын
@@MajikayoGames ye i found it when using your dungeon exemple, thanks !
@user-oy4hk9yr3n19 күн бұрын
Great work, I really enjoyed playing around with simple dungeons!