ROGUE LIKE RANDOM LEVEL GENERATION - INTERMEDIATE C#/UNITY TUTORIAL - #1
Вставка
- Опубліковано 29 чер 2024
- This is episode 1 of a new unity and C# tutorial series on how to make an epic level generation system similar to the one found in the game SPELUNKY ( spelunkyworld.com/ )!
---------------------------------------------------------------------------------------------------------
SUPPORT ME : / blackthornprod
---------------------------------------------------------------------------------------------------------
MARK BROWN'S SPELUNKY VIDEO : • How (and Why) Spelunky...
SPELUNKY LEVEN GEN BLOG POST : tinysubversions.com/spelunkyGen/
---------------------------------------------------------------------------------------------------------
DOWNLOAD the FINISHED PROJECT : github.com/BlackthornProd/Spe...
FOLLOW ME on TWITTER : / noacalice
JOIN the BTP DISCORD SERVER : / discord - Ігри
Finally some Intermediate Unity stuff on UA-cam! Thanks!!
Hey :) ! I'm really glad you liked the video :) ! Stay tuned for episode 2 mate :) !
CouchFerret makes Games Yoire doing really great so I subbed to help out!! 👍🏼
Thanks, I appreciate it! :)
I can't even make my player to move smoothly, why am I watching this?
try putting a circle collider on the feet of the player and check on freeze rotation on z axis . That may help you walk smoothly and also may be use Tile editor to make your rooms . If that helped then i am happy to help you
ChronoABI Great advice!
You know, I was watching this video simply because I really enjoy watching your videos and seeing how you do things. I'm currently working on my capstone project in college and I was having an issue with the A* pathfinding algorithm not dynamically updating (or being really janky when I did try an implementation). As I was sitting here watching this video I realized that the fix for my issue was totally simple and right here in this very video! Using your timer function to space out the room generation and ensuring that the enemy is not within an "attack range" I now have enemies that will pursue the player, avoiding obstacles, and able to update the path on the fly in case the player moves!
Keep up the good work! Your video literally just saved me a couple of hours of testing and troubleshooting!
I have to just remind myself that he's not programming and doing all of this in real time.. on first watch, I envision this guy literally flying through game design with a smile on his face while narrating what he's doing.
I love the use of your music from Evolution like that in your videos*. Makes me crack up every time!
That's exactly what I needed for my game AND it's for unity/c#, which is the engine/language I initially chose!
Thanks a lot, I couldn't imagine what I would go through if I didn't have this video!!
This is something that i've been looking for a while. Thanks, Noa
Excellent tutoring style, crisp, clear and intuitive. Better than a bunch of payed courses I got through a humble bundle recently. I'm definitely subscribing to see more!
Thanks so much for the support :) ! I'm really glad you liked the video ! Stay tuned mate :) !
If anyone is reading this you'll need to use a composite 2d collider to merge individual wall colliders into a single collider for performance. Otherwise the level will be flooded with many colliders quickly - especially if you want larger levels
I read this and appreciated it! Thanks!
I watched that video by Mark Brown yesterday and was really fascinated on how Spelunky worked. The next day you upload a video on the same topic about that video.
HAHA That's some great timing :) ! Hope you enjoy the series mate :) !
Great tutorial! I will totaly try this in my Top-Down Shooter game I'm working on.
perfect timing! i just started making rouglile game and this vodeo came out! Thank you alot!
Great base algorthim for building a maze! To make a more complex maze off of such a system could add critical path room dividers and set the start and end points as path-decision points in a more complex labyrinth. Of many critical paths and the setup an ultimate start and ultimate finish. :-D Thanks for sharing!!
Exactly what i was looking for! Awesome.
super well made and informative thanks for posting this made my day better you have a good eye
This is so awesome! I'm going to try to use your tactics to do a 2d sidescroller level gen! Already getting ideas....
Oh yeah, after I spend months figuring out how to make mine you finally upload this...
Believe this was good, in these months trying to create this system you certainly should have learned and evolved a lot. Sorry for bad english :(
As Solitario said, you probably learnt A LOT by trying to make this system by yourself :) !
Cool to have some intermediate stuff :)
You are amazing. So concise and clear.
I found this completely by accident and will come in handy for when I do game jams. You do a great job. Very succinct. My favorite part is that, unlike most, you first show WHAT you are going to do, so people know within the first minute if this tutorial is what they need. A lot just start without giving the user any clue in the beginning what the end result should be. Again, great job. Definitely going to sub your channel
thanks for posting this made my day better you have a good eye
Instant LIKE, before watching the video,. After watching: LOVE IT. KEEP IT UP.
Thanks so much mate :) !! Stay tuned for episode 2 !
Very nice! Episode 2 please!
I LOVE your stuff and style
I think it's cool that you're doing such a random generator now. I've also made a spelunky-like level generator and mine finally works flawless, but it's really complicated ^^ Still, your video is great! (unfortunately that does not help me that much anymore ...)
This could not be any better timing. jesus christ you are insane.
First of all, great video! (as always), Second in your how to hold to jump higher video you said that you could combine double jumping with it
(I think), and if you can then could you please make an extension of that video to show how to do that because right now I can figure out how to
do it (Sorry if i'm being a bother)
-Thanks!
Hey Sam :) ! I'm really glad you liked the video !
How about you join the BTP Discord server ( discord.gg/MyG8aC9 ), there me or some other member from the community could show you how to solve your problem :) ! Hope to see you there, cheers mate :) !
@@Blackthornprod Ok, I will thanks!
Looks cool
You sounded a bit flat, hopefully all is well for you and it's just an off day.
The content as great though man, exactly what I was looking for, thanks again :)
nice tutorial
Amazing Tutorial! Helped me A LOT!
Maybe could you do a revamped version of this but with tilemaps? I'm bursting my head arround and i cant adapt this to use it on tile maps :(
Thanks in advance! I'love your tutorials!
Good video! Very nice idea!! ;D
Thanks mate :) ! I'm so glad you liked the video, stay tuned for episode 2 :) !
i love u man. Thanks to you i can improve.
me: searching up how to do pseudo-random level generation because I want to make levels like spelunky's
Blackthornprod: allow me to introduce myself
Instant like
HAHA Thanks :) !!
Really good Video :)
Thanks mate :) ! Glad you liked it !
Great video and a great expansion on your last random level series. I was wondering if you or anyone else knows how to do random level design using scenes rather than game objects? I want to have enemies and the like only become active when my character enters that part of the map. The obvious way to do this is with different scenes that are loaded when the player exits the previous one. Now I’ve worked out how to load a random next scene, but making it so the player can travel back and forth between scenes, as well as making a set map of these random rooms, is beyond me. Any suggestions? Thanks :)
ngl this is pretty epic
Thank very much for the video !
No problem :) , I'm really glad you liked it :) !
Your drawing is awesome
You simply amaze me
thank you, very cool
Thanks!
First!
Great video, I was actually thinking about this sort of thing recently.
Ps: Noa, you are the best unity tutor on UA-cam keep it up ; )
And I'm really hyped for the game jam it's going to be my first one ever.
Hey Jake and thanks so much for your support :) !
I'm delighted to hear you'll be taking part in the first BTP game jam ! I'm also really excited and can't wait to see what all you guys come up with :) !
thank you so much 💕
Please add an option to also enable a passage on the extra rooms. It’s much more flexible and it wouldn’t be relying on ‘bombs’ to avoid spelunky clones :). Also I am a bit amazed why you don’t create a grid system for the whole level, this would make bigger levels so much more flexible. I hope you show people a
More flexible method near the end of your video list as a bonus. This is much better code and practice.
How amazing would it be if there were rooms created by the community (with strict rules) and all would be put in the RNG and it forms an endless rougelike dungeon runner
Yes yes i need more intermediate stuff
As usual Thumb up :)
Thanks Joseph :) !! This series is going to be pretty challenging so best of luck :) ! And don't hesitate to ask me any further questions if need be :) ! Cheers !
Great Vid! Don’t tell anyone but I’m planning on using this for a rpg.... don’t tell anyone
ye no one knows buddy is not like 115k people saw the comment section
I would like to see a tutorial made by you with the theme of tactic game
Blackthornprod keeps my game momentum going like no one else (>'-')>#
Hey, what's a good canvas size inside PS for making tiles for this sort of level generation? Any tips or links to guides would be much appreciated!
great!!!!
You're slowly turning into Edmund McMillan
Whoa! Do you have an explanation on how to do the bomb and effects for that?
u r the best like ur channel
So for games like binding of isaac they just predesign the look of the rooms then setup mob spawners then make it a prefab then populate the map like this?
found what i need. Be back in 4 month when I can understand it.
The Move function could be simplified a lot by not storing the new position and just setting it directly like this:
if(dir == 1 || dir == 2) // Move Right
{
transform.position += Vector3.right * moveAmount;
}
else if(dir == 3 || dir == 4) // Move Left
{
transform.position += Vector3.left * moveAmount;
}else if(dir == 5)
{
transform.position += Vector3.down * moveAmount;
}
Otherwise, great tutorial!
Welcome To Blackthornprod IAM kerhab!!!!LOL
Hey please put your art assests on some website, like the shades you use to make light, character animations etc for us !
Hey you probably wont see this but could you let me know what you use for drawing? Which model of drawing tablet or whatever else. Also is it at all possible to create designs similar to yours with just a mouse for students trying to learn this that cant afford much?
Hey :) ! I'm using an intuos pro medium wacom tablet (great quality :) ), I got it two years ago for roughly 300 euros + it came with a one year subscription to photoshop !
You can definitely create amazing art just with a mouse (for example try pixel art or vector art). However if you try other art styles (like mine) you'll need a drawing tablet. If you're really into game art and animation it will be worth it :) !
Or you could draw and paint on paper and then scan that art to animate it on your computer, it could make for a very unique art style :) ! Anyway best of luck mate and have a good day :) !
Hi. What about to make piano tiles example!!!? please! yours tutorials are fantastic!!!!!!
Are you using unity tile system or are these just square sprites? I tried with square sprites and the player gets stuck between any two sprites due to very minute spacing.
can you make audacity tutorial for some cool mic effects?
5:18 Hey Noah.. IK this is pretty old but for better details rather than doing a random.range a probablity system would look better. Like making cracked variants of that tile appear less often.
easy fix just add more numbers and extra conditions
Could you please make a second part for the ranged wapon tutorial.
Or a tutorial about combo attacks, that would also be nice!
Kewl
Hi there, what syntax theme are you using? Thanks in advance.
what can i do if i only want to spawn on room and not more? cant find videos for that
9:00 For Random.Range, did you mean "remember that the last number is *not included* (excluded)?
Yeah, he mispoke. The int overload for Random.Range is (inclusive, exclusive] while the float overload is (inclusive, inclusive).
Hey :) ! Yep I said : "isn't included", it sounded a bit like "is included" I must admit, sorry about that !
How do you set up visual studio with those colors and to recognize unity items.?
Noce spelunky tutorial
Hey I couldn't get the spawn object script to work I'm using the 2017.4.22f1 version of Unity I don't know if that's the issue and I've checked my script several times but I think it may have something to do with the prefab.
Hey i have a problem where camera doesnt show the first room that is spawned .
I don’t know if you’ve figured it out or not, but if your camera doesn’t show the rooms, try changing the camera’s Y rotation to 180. It worked for me. Also if you want the camera to follow every starting room, try making the camera a child of Level Generation gameobject
9:06 Is included? Isnt the last number not included with integers?
please tutorial tatic system battle
Could you do a tutorial like this for a platformer
Hey :) ! As I said at the start of the video this level generation is for a platformer type game ! But it also works for a top down project :) !
'GameObject[]' does not contain a definition for 'Lenght' and no accessible extension method 'Lenght' accepting a first argument of type 'GameObject[]'
I checked the script looks all good can someone please tell me where did i do wrong?
I'm having a similar issue, ill let you know if I figure it out.
So if you’re like me, you’re probably using the wrong version of unity. I had to go back and install Unity 2018.1.8 like he’s using In the video.
6:47 The black dots freak me out
They look like prison cells I guess ! Or tiny claustrophobic boxes... ;D !
@@Blackthornprod no pause the video there and moves your eyes around the corners the squares FAST
And a pixel game art tutorial in gimp
hope someone will answer me. How can you make it so you can throw bombs and destroy terrain so you can get in other rooms? and how to make a AI that can patrol free in a chamber and if the player comes close the the AI the AI attacks the player and if player leaves the chamber the AI goes back to patrol. plz help thx
Why did you use direction numbers range to 1 to 5? Instead of 1 to 3? Since you only have 3 directions needed(Left, Right and Down)
Hey :) ! This way there's MORE chance that the level gen moves left or right than down ! But of course you can just set it to be a random number between 1 and 3 if you want an equal chance :) !
Noted. Didn't expect you'll respond. You inspired me to continue this game making journey! Thanks alot Noah!
Help, my tiles spawn in scene view but not in game
is there a way to make the randomly generated levels to tile themself... for example: it has grass on the top then dirt beneth?
Can this be modified to work in a 3D world?
8:38 when I pressed play, the startingpoints were cloned as well...I did not know why...
And there was nothing showed on my game scene...
算不算偶遇。。。。
@@beaverjoe9171 不算!!hhhh 不问你你就跳过了!
how did you make the bomb??
im coming late, but i cant figure out how to implement difficulty based on players amount. I would like to make the game coop or even mp, but i would like to use this method for one player only and increase the difficulty based on how many players gonna play, so it will be challenging in all aspects.. Any ideas or something where to start please?
i'd make a DifficultyManagerer GameObject with a DifficultyManager script that other scripts refers to in their formula. For example the damage of an enemy could be 10 * DifficultyManager.difficultyModifier (where difficulty modifier varies according to the number of players in game).
Does that answer your question ?
I create a second prefab it doesn't generate
Is the Random.Range() thing still working? Anyone knows the 2020 solution for it?
I found something that works:
Random rnd = new Random();
rnd.Next(0, startingPositions.Length)
But I don't know _why_ it works, could anyone explain?
I'm not an expert so I would ask something, in which case I use this random generation map? And why?
When you want a map that works like that. It depends on what kind of game you're going for.
According to the Random.Range() Documentation Here:
docs.unity3d.com/ScriptReference/Random.Range.html
"Returns a random float number between and min [inclusive] and max [inclusive] (Read Only)."
Random.Range() in the case coded above will return a 6 sometimes.
Make video related it please.
Where's Episode 2?
I need all Episodes, but I can only find this one!
Can someone Reply to this Comment with the Links to all Episodes, please?
Hey :) ! This is a very new tutorial series ! Episode 2 is actually coming out today so stay tuned mate :) !
Stops after Generating the first room, not sure what is happening.
nvm my Update() was update()
This feels VERY inefficient. If I want to add more tiles to the object arrays I will have to add them to ALL spawn points in every room.
How to make wrestling game ?
I wanna comment a thing, Spelunky isn't a Rougue-Like is A Rogue-LITE
No one cares + ratio + L + touch grass