Пікірлер
@ignis621
@ignis621 4 сағат бұрын
thanks man! ive been getting used to godot and your videos are a great help. you're awesome!
@MajikayoGames
@MajikayoGames 4 сағат бұрын
awesome!! glad you're enjoying :)
@zeepnely5678
@zeepnely5678 19 сағат бұрын
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.
@MajikayoGames
@MajikayoGames 10 сағат бұрын
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?
@zeepnely5678
@zeepnely5678 10 сағат бұрын
@@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
@MajikayoGames
@MajikayoGames 9 сағат бұрын
@@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.
@zeepnely5678
@zeepnely5678 9 сағат бұрын
@@MajikayoGames alright, thanks for thinking about it!
@schemesmith
@schemesmith 22 сағат бұрын
This is awesome, thank you so much!
@DBZBardock00
@DBZBardock00 23 сағат бұрын
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
@MajikayoGames
@MajikayoGames 10 сағат бұрын
Yep that should be the default! The generate on ready checkbox should do what you want.
@ChaonicMew
@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.
@cataclysmicnothing
@cataclysmicnothing 3 күн бұрын
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.
@MajikayoGames
@MajikayoGames 3 күн бұрын
Glad you enjoyed! :D
@serioussammy
@serioussammy 3 күн бұрын
What about going under water?
@MajikayoGames
@MajikayoGames 3 күн бұрын
you can check my other video for that: kzfaq.info/get/bejne/fuCBqaxl3N3WXWQ.html
@IsaacHisey
@IsaacHisey 3 күн бұрын
Awesome addon and good video. Maybe a bit more prep in terms of script will help in future videos. Keep up the great work!
@MajikayoGames
@MajikayoGames 3 күн бұрын
Thank you for the feedback appreciate your thoughts :) will keep it in mind for the next ones im planning
@laughingmantis1769
@laughingmantis1769 3 күн бұрын
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.
@MajikayoGames
@MajikayoGames 3 күн бұрын
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.
@lethn2929
@lethn2929 4 күн бұрын
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.
@MajikayoGames
@MajikayoGames 4 күн бұрын
Looks great! I have a more comprehensive video on ladders as well if anyone is interested: kzfaq.info/get/bejne/q71gZNiQlrbQlH0.html
@Name-qd7vh
@Name-qd7vh 5 күн бұрын
How would you connect navmeshes from different rooms?
@MajikayoGames
@MajikayoGames 4 күн бұрын
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
@kimplll
@kimplll 5 күн бұрын
How would I change the direction the water moves?
@MajikayoGames
@MajikayoGames 5 күн бұрын
you could add another multiply in the shader like * -1.0 or * vec3(-1., -1., 1.) to multiply each the xyz components separately
@villainsgame9778
@villainsgame9778 6 күн бұрын
🙏🙏plz make soulslike melee combat system...
@Syrdaimons
@Syrdaimons 6 күн бұрын
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.interactive
@fridge.interactive 6 күн бұрын
Honored to have our game GRIMHAVEN featured! Your plugin is an absolute must-have for anyone in the market for procedural gen -- highly recommend!
@MajikayoGames
@MajikayoGames 6 күн бұрын
awesome!! thanks so much
@robertcosta6891
@robertcosta6891 6 күн бұрын
nice video, what do you use for your ingame console?
@MajikayoGames
@MajikayoGames 6 күн бұрын
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.
@tyler361t2
@tyler361t2 7 күн бұрын
any ragdoll physics?
@MajikayoGames
@MajikayoGames 7 күн бұрын
im interested in doing a video on this but i have some other stuff planned first :)
@ConnorSaxe
@ConnorSaxe 7 күн бұрын
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.
@timmygilbert4102
@timmygilbert4102 7 күн бұрын
Now add cyclic dungeon design😊
@menteirradiante1307
@menteirradiante1307 7 күн бұрын
cara muito bom o seu trabalho, obrigado por compartilhar. desejo tudo de melhor pra vc.
@oddlytimbotwillison6296
@oddlytimbotwillison6296 7 күн бұрын
Very nice! A good primer for rigidbody interactions.
@kulak8548
@kulak8548 7 күн бұрын
Add this line after you declare move_amount: move_amount = min(move_amount, %CameraSmooth.position.length() * delta * 20)
@futursoup9007
@futursoup9007 7 күн бұрын
👏👏👏👏 😎
@DarinLawsonHosking
@DarinLawsonHosking 7 күн бұрын
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?
@MajikayoGames
@MajikayoGames 7 күн бұрын
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.
@DarinLawsonHosking
@DarinLawsonHosking 7 күн бұрын
@@MajikayoGames I am trying to build a game based around island exploration (majority ocean biome and boat travel) but buoyancy is kicking my ...
@JustinThorLPs
@JustinThorLPs 8 күн бұрын
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.
@MajikayoGames
@MajikayoGames 8 күн бұрын
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.
@livesleyboxing9103
@livesleyboxing9103 8 күн бұрын
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?
@MajikayoGames
@MajikayoGames 8 күн бұрын
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.
@livesleyboxing9103
@livesleyboxing9103 8 күн бұрын
@@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! 👍👍🙏
@GrunkleSoos
@GrunkleSoos 8 күн бұрын
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.
@MajikayoGames
@MajikayoGames 8 күн бұрын
i have seen dungeon architect, it did look pretty cool. would be neat to build this out some more, if i have time :)
@quinnleavitt4105
@quinnleavitt4105 8 күн бұрын
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-pd8od
@SantiFarina-pd8od 8 күн бұрын
Man, this is extremely helpful for my game (and my sanity), now I don't have to code it from scratch XD TY!!!!
@quinnleavitt4105
@quinnleavitt4105 8 күн бұрын
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.
@MajikayoGames
@MajikayoGames 8 күн бұрын
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.
@quinnleavitt4105
@quinnleavitt4105 8 күн бұрын
@@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.
@MajikayoGames
@MajikayoGames 8 күн бұрын
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
@onokoreal
@onokoreal 8 күн бұрын
The gift that keeps on giving! Great work. Anything I should be aware of when updating from older version?
@MajikayoGames
@MajikayoGames 8 күн бұрын
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.
@onokoreal
@onokoreal 8 күн бұрын
@@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!
@MajikayoGames
@MajikayoGames 8 күн бұрын
@@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.
@onokoreal
@onokoreal 7 күн бұрын
@@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.
@MajikayoGames
@MajikayoGames 7 күн бұрын
@@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
@RiftOfNostaria
@RiftOfNostaria 8 күн бұрын
Once again, great job on the addon!
@Darmanarnar
@Darmanarnar 8 күн бұрын
excellent tutorial I appreciate that you take time to show documentation and do more show than tell.
@elilentiart8025
@elilentiart8025 8 күн бұрын
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!
@MajikayoGames
@MajikayoGames 8 күн бұрын
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 :)
@elilentiart8025
@elilentiart8025 8 күн бұрын
@@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.
@entergamingvn7186
@entergamingvn7186 10 күн бұрын
u can make tutorial procedural infinite terrain 3d generation in godot ? please
@nevespt
@nevespt 12 күн бұрын
is there anyway to use it for 2d roguelike dungeons games?
@MajikayoGames
@MajikayoGames 12 күн бұрын
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_Official
@UnderGamer_Official 12 күн бұрын
When rocket scientist makes game. 💙
@PastaMaster115
@PastaMaster115 13 күн бұрын
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.
@PastaMaster115
@PastaMaster115 13 күн бұрын
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
@MajikayoGames
@MajikayoGames 13 күн бұрын
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
@elilentiart8025
@elilentiart8025 13 күн бұрын
This tool is amazing! Thank you so much for sharing this with the Godot community.
@adamthefirst401
@adamthefirst401 13 күн бұрын
Is there a way to not generate diagonal corridors?
@MajikayoGames
@MajikayoGames 13 күн бұрын
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.
@adamthefirst401
@adamthefirst401 12 күн бұрын
@@MajikayoGames You are the best, thx!
@futursoup9007
@futursoup9007 14 күн бұрын
v dope my guy 👾
@NubsHai
@NubsHai 15 күн бұрын
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)
@MajikayoGames
@MajikayoGames 15 күн бұрын
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
@matthewobrien4140
@matthewobrien4140 16 күн бұрын
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.
@PastaMaster115
@PastaMaster115 16 күн бұрын
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.
@MajikayoGames
@MajikayoGames 16 күн бұрын
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.
@HarpDevCo
@HarpDevCo 17 күн бұрын
anyone know anything like this for unity?
@Lily-kv3rb
@Lily-kv3rb 17 күн бұрын
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?
@MajikayoGames
@MajikayoGames 17 күн бұрын
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.
@konstryktor34
@konstryktor34 18 күн бұрын
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.
@SoulofStorm333
@SoulofStorm333 19 күн бұрын
Hello ! how do you flight at 18:40 ? is it special control you implemented for the tutorial ?
@MajikayoGames
@MajikayoGames 19 күн бұрын
The tutorial fps controller has no clip bound to V
@SoulofStorm333
@SoulofStorm333 18 күн бұрын
@@MajikayoGames ye i found it when using your dungeon exemple, thanks !
@user-oy4hk9yr3n
@user-oy4hk9yr3n 19 күн бұрын
Great work, I really enjoyed playing around with simple dungeons!