This is a good technique but there is a problem with implementation. Cellular automata rules should be applied in parallel. This is normally achieved with a second array. When each cell is processed, it uses the current state of surrounding cells to determine its new state. As each new state is calculated it is stored in a second array. When all cells are processed, the second array becomes the current state for the next iteration. Because you are altering the current state as the iteration runs, the unprocessed cells will not have access to the true current state of the already processed cells. This results in a strong diagonal bias in your maps.
@KevinUchihaOG4 жыл бұрын
When you say "next iteration" what part of the code are you talking about? Next iteration of "smoothmap"? (he only do smoothmap once... so i assume not?) Next iteration of the for-loop inside the smoothmap-function? (if so which one, there are 2 nestled for-loops) Or what do you mean when you say "iteration"?
@Dasfrozentoast4 жыл бұрын
@@KevinUchihaOG I assume he means the nested loops inside the smoothmap-function that iterate over the whole grid.
@glebgrozin68724 жыл бұрын
@@KevinUchihaOG He is describing how you would have to do it and he is right
@goodboiadvsp32974 жыл бұрын
I knew there was something wonky in the generation.
@nikosaarinen32584 жыл бұрын
That's true, but when I tried to implement that I found that Sebastian's method just looks better
@isaacsurfraz38589 жыл бұрын
Unity Should hire you! Best most informative tutorial series they have, I seriously hope they get you to do all their tutorials from now on.
@SebastianLague9 жыл бұрын
Isaac Surfraz Thanks Isaac :)
@arnzzz19 жыл бұрын
+Isaac Surfraz They are so good, it was trivial implementing this in LibGDX.
@gamblorish7 жыл бұрын
Marching Cubes
@BlazertronGames6 жыл бұрын
Well, they featured this tutorial series on there website, on the learn section.
@jvcouk9 жыл бұрын
Improvement suggestion: The smoothing function should really write to a new copy of the map, switching 'source' and 'destination' between each iteration (standard practice for cellular automation). As-is, it writes to itself, effectively 'corrupting' the original before the job is done. You can see this in the video, where the bottom/left of the map is more 'wall' than the top/right.
@AaronStyles9 жыл бұрын
+John Valentine Came down into the comments to say the same ;)
@nickngafook9 жыл бұрын
+John Valentine Hey. By "between each iteration", do you mean write all of the new values from the smoothing method to a temp array, and then completely overwrite the map[] after both for loops are complete, or after each inner for loop is complete? I replaced map[] with a temp after both for loops and it was generating even borders as you pointed out the original code was not doing, but there was substantially less "walls" inside the "cave". Thanks!
@jvcouk9 жыл бұрын
Don't overwrite values from the previous iteration; before starting the new iteration, make a new grid and write results into that. Yes, it will change your results, and you might have to rebalanced your algorithm for that. But at least it will not be directionally biased.
@jvcouk9 жыл бұрын
It's possible to do it using two grids, and alternating between iterations by swapping the references.
@aislanarislou8 жыл бұрын
+John Valentine I can't see this "corrupting" in the video. What minute of the video I can see this "bad" effect into the map?
@monsieurouxx6 жыл бұрын
*Things to do for this to work in Unity 2017* : 1) you can't drag&drop the C# file onto the game object if you haven't renamed the class in it to "MapGenerator" BEFORE you try. 2) You need to click on the little gray tab that says "gizmos" for them to be rendered. 3) you need to fill the "width" and "height" fields of the MapGenerator (in the right pane) BEFORE you press play 4) When you click "play" you can't change the view to top AFTER you click play. Also, you can't change the camera view to top by just clicking on the camera's gizmo. That will only change the preview camera's rotation, not the actual in-game camera's rotation. That's because after clicking "play" you're now in "game" view. So after you click play you need to click on the "Scene" view tab (above the scene window). *Phew!*
@subzeroelectronics30224 жыл бұрын
RIP John Conway. I’ve gotten into his Game of Life, and it’s the most interesting cellular automata I’ve ever seen. Another great mind claimed by COVID.
@Khornel5559 жыл бұрын
Cool video, looking forward to episode 2! Change is generally applied simultaneously for cellular automatons, you can do this by storing a temporary clone of the map to read from when smoothing(Array.Clone() works for value types in this case). You get some pretty cool results, but it requires more smoothing iterations to look good on average, though.
@alderin12 жыл бұрын
Must-watch series for Unity beginners. Everything still works in Unity 2020lts! Solid code, solid explanations.
@antoniomangoni97192 жыл бұрын
Nothing shows up in mine, did it work from the start? Or only by the end of the video?
@nicholaslabrecque4 жыл бұрын
for anybody that is wondering (probably not many) but the "if else" statement he is using is called a ternary operator.
@nerod-06 ай бұрын
Thank you! This was very understandable, i could generate rooms for hours, they just look so good!
@chimeforest4 жыл бұрын
Something worth taking note of: Because the code is editing the map as it's iterating through the map, it's skewing the final results. That's why the cave's tunnels almost always run from lower left to upper right. It's especially noticeable @20:35 when he changes the
@rodrigo98silva3 жыл бұрын
thanks for this!
@chimeforest3 жыл бұрын
@@rodrigo98silva You're welcome, I'm glad someone found it useful ^^
@angelorf4 жыл бұрын
You should update the map after smoothing all cells. When you update each cell like this you get diagonal structures.
@BrandonDyer649 жыл бұрын
Thank you for the tutorial! You helped me out a lot! In short the tutorial is: Conway's Game of Life with rules: n > 4: born, n < 4 die, n = 4 remain.
@KevinOsterkilde4 жыл бұрын
This is how the game "Worms" got started. Lovely work.
@joo_nath6 жыл бұрын
Just to let you know, this series still helps people 3 years later.
@survival_man77462 жыл бұрын
7 years later still helps
@BrainRobo9 жыл бұрын
Thank you, love your tutorials truly innovative and explanatory. Going to use your cavern system for a worms like game.
@2001herne Жыл бұрын
For anyone who (even though it's many years after the fact) tried this, and realised the issue about overwriting the grid as it's being used, simply fixing the step function results in horrible caves. I found some success by changing from a 3x3 scan to a 5x5 scan and using values of 12 for thew thresholds instead of 4. I also bumped the fill percent up to 50.
@thenoze57677 жыл бұрын
"Sebastian Lague started out ambitiously making games with AppleScript when he was twelve. He had considerably greater success two years later when he discovered the Unity engine and has been engrossed in game development ever since. He loves participating in game jams with friends and has a growing passion for teaching game development at all levels." This guy is me but with two years head start! I'm only up to the "two years later discovered Unity" bit but it's only inevitable.
@Daniel-ch9jf9 жыл бұрын
Great tutorial! I'm just starting to dig into procedural generated levels in games, so I'm glad I came across this. Hope I can learn enough from this series to make my own procedurally generated levels.
@supercables2518 жыл бұрын
Can't find the "Like all in this playlist" button.
@morphman869 жыл бұрын
I've been searching, looking and asking around for good explanations on several things that you covered in the first 5 minutes of this video. Mainly, I've wanted to know how people get those sliders in the editor ([Range x, y]) and how to make your PRNG dependent on a seed. I had given up on both those long ago, and now I just stumbled on your vid and it explained everything. Thank you!
@Matthewsaaan9 жыл бұрын
Fantastic tutorial, really easy to understand. I've used this as a base for island generation instead of dungeon generation, it's really doing the trick for me so far! :-)
@yannicktraore85597 жыл бұрын
Thank you Sebastian. You raise pedagogy at its finest.
@sukram19989 жыл бұрын
Appreciating your tutorials as much as possible! You explain it very detailed and you are chosing your topics wisely. There is no other place to find better explanations.. Keep going and looking forward for the next episodes! :)
@MiikeLefebvre7 жыл бұрын
Hey man, i really enjoy the way you do your videos. Lots of information and you almost always use the Gizmos to show us what the code is actually doing. Much appreciated.
@zovo93026 жыл бұрын
6:24 I love that bah so much
@videomasters24689 жыл бұрын
a tutorial on procedural race track generation using bezier splines and then making a mesh from those splines would be awesome :) Great video as always
@montetribal9 жыл бұрын
That was a great tutorial! Can't wait for the next one. Subbed. And now to dig through the rest of your tutorials because they seem interesting. I guess going past 50 on the fill% gives a decent early final fantasy "World Map" kind of feeling. Then for turning this into a 3D model you would just change it so instead of making the black into walls, the black becomes water areas and the white stays as a walkable landmass.
@ItsAlienMoose9 жыл бұрын
Awesome topic to start covering, cannot wait for more videos in the procedural generation series.
@qizzz62016 жыл бұрын
This is the 2nd time I learn the tutorial, everything is so simple as you explained, and everything is so beautiful as the outcome, thanks again for the lesson ;D
@dnoldGames Жыл бұрын
Amazing Video, it was really easy to grasp the concept after watching, to the point that I was to implement it in my game. Thank you really much this is as useful as ever even if it is 8 years old!
@newbquesttv9 жыл бұрын
Great tutorial! Just checked out the first bit and really enjoying it. Nice clear explanations as well. Looking forward to the next part! Well done!
@antixdevelopment141611 ай бұрын
Super late to the party here but when you are getting the neighboring cells you can initially set wallCount = -map[gridX, gridY]; instead of wallCount = 0; which will enable you to skip extraneous checks during the loop.
@TimoKek4 жыл бұрын
if youre using 2d view and are only getting a line use : Vector2 pos = new Vector2(-width/2 + x + 0.5f, -height/2 + y+0.5f); Gizmos.DrawCube(pos, Vector2.one); or: Vector3 pos = new Vector3(-width/2 + x + 0.5f, -height/2 + y+0.5f, 0); Gizmos.DrawCube(pos, Vector3.one); instead of : Vector3 pos = new Vector3(-width/2 + x + 0.5f, 0, -height/2 + y+0.5f); Gizmos.DrawCube(pos, Vector3.one); this fixed the problem for me
@ChaoticNeutralMatt3 жыл бұрын
Marked this so I could come back and check this again. Glad this was here.
@lionsites63432 жыл бұрын
Thanks so much man! Sebastian needs to pin this :D
@arnzzz19 жыл бұрын
This was brilliant. Thanks for making these videos. Ive been messing around with room based dungeon algorithms for a couple days, and im not happy with them, as they are based on rectangles and maze like corridors. I wanted something more like Nuclear Throne but more organic, and this is pretty close imho :) Ive implemented this in LibGDX, and im really liking the results so far. Im going to make an XML parser now, to output TMX files so i can use LibGDX's TileMap classes :)
@REXanadu9 жыл бұрын
How stupendously convenient! I'm working on a roguelike dual-stick shooter, and I've been having a hard time figuring out how to create a procedural dungeon generator. I know it's not exactly the same thing, but I know cellular automata can be used for creating random dungeons in a sense. Now, I just need to figure out how to layout different objects (e.g. enemies, dungeon entrances and exits, objective objects) around in the level properly.
@BastienGIAFFERI9 жыл бұрын
This is just awesome ! Keep posting that kind of stuff, totally interesting.
@trevyskorner59529 жыл бұрын
I found 50% fill gave me the best looking caves. Also, 100 by 100 maps are excellent. Now if only we could join the islands, with minimum computation.
@wolfulusss9 жыл бұрын
I like the idea. The only problem here is that your "filling percent" is wrong. Its actually a filling "chance". You don't garantee for example that by setting 45%, 45% of the map will be filled. Initializing the proper values and then shuffling the array is a a solution, but there are better and less expensive ways to do this.
@ericsailer97919 жыл бұрын
Your Tutorials are the Best I've found so far.
@haachamachama74 жыл бұрын
I was looking for a tutorial on rogue-like map generation... I found a fun way to make worms levels randomly generate! lol, amazing tutorials, as always.
@HelplessProcrastinatorChannel9 жыл бұрын
_That moment you think, How could something be more epic than this?_ *+1 Like **Sebastian Lague** *
@thelinkingtinker69749 жыл бұрын
Wow, This is so cool! It reminds me of John H Conway's game of life. :)
@aranlong58859 жыл бұрын
It's a very small optimisation but instead of checking if neighbourX != gridX || neighbourY != gridY you can initialise wallCount to -1.
@antondeluca19844 жыл бұрын
Time.time.ToString() returns 0 at the start of each game so if you want a truly random seed, use DateTime.Now.ToString(). Just something I thought I'd share
@jorisslagter9 жыл бұрын
Wunderfull tutorials. I've watched also your PathFinding A* video's. I would love to see more from you. Can you for instance give a tutorial about the systems behind Prison Architect, RimWorld or other simulators about the items, stockpiles, picking items up and dropping them of, working at workshops and producing items from the stockpiles and creating new items with them. For example, I'm trying to create a worker that chops down a tree, picks up the log and bring it to a sawing machine. There the log will be turned in to wooden planks. The planks need to be picked and bring to the assigned stockpile. With the wooden items you can build new structures. I hope you can learn me how to do this at a scalable way. I am also interested how to combine this with the A* PathFinding algorithm.
@Chubzdoomer8 жыл бұрын
+Joris Slagter What you're talking about in regards to the stockpiles... Isn't that just a simple case of dealing with variables and conditional statements? An example regarding the tree process you mentioned: - Worker chops down tree (tree could have its own "HP" and when it reaches 0, it's chopped down) - Picks up the log and brings it to a sawing machine (the log could just be represented as some sort of variable on the worker) - The log is turned into wooden planks at the sawing machine (if log is present at the sawing machine, then create 'x' number of planks) - The planks need to be picked up and brought to the stockpile ('x' number of planks are placed somewhere near the mill, which the worker can come and collect; once they're collected, like the log they're represented by some sort of variable) It just seems like a collection of very basic operations to me. The most difficult part would be the pathfinding and animations.
@personthehuman12774 жыл бұрын
Wait... This guy makes ai tutorials?! I'm watching them as soon as possible!
@k0ded2654 жыл бұрын
Stockfish in the bottom bar. nice :D
@YassinTheDestroyer4 жыл бұрын
Hello, how to change the tile and make a tiles that close to water
@aarondhp207 жыл бұрын
Edit: Got it working, will update when I find the cause. Initially I couldn't get the UnityEditor to show ANYTHING when we first hit play around the 11 Minute mark. Turns out I had an extra letter "s" one of the "Gizmos" words. For those who may be stuck a, try getting the source code from the video description, then copy and pasting sections of his code over yours using ctrl+v. You can hold down ctrl and press Z or V to swap back and forth from your code, and his code. This will allow you to see any differences as the code shifts around. It's how I found my spelling error. NOW IT WORKS!
@SebastianLague7 жыл бұрын
+Aaron DeWitt Hi, if you send me a download link to your unity project I'll take a quick look and see what's going on.
@aarondhp207 жыл бұрын
Hey Sebastian! Thanks for getting back to me so quickly! It ended up being a typo. I started using your finished code to paste over my code in sections to see where the error was, and I tried all the other suggestions for clicking on Gizmos in window and such. Do you have a patreon by chance?
@SebastianLague7 жыл бұрын
+Aaron DeWitt Ah, glad to hear it. By the way, if you google c# code comparer you'll find sites that let you paste in two versions of the same code, and it will highlight any differences between them. Maybe will be helpful for the future!
@aarondhp207 жыл бұрын
What? Seriously?! Thank you so much, you've just opened my world to great new things!
@ChaoticNeutralMatt3 жыл бұрын
@@SebastianLague lmao accidently put OnDrawnGismos (well and a small parentheses difference)
@Jonah90048 жыл бұрын
your chanel is a gold mine
@DZLier7 жыл бұрын
calculating the neighbors while iterating through is what's causing the maps to be so bottom/left heavy. if you want a more even growth of walls, first iterate through and calculate the neighbors, then go through again and change the cells accordingly.
@ZeDlinG677 жыл бұрын
I've toyed with cellular automatons in the past, and for this purpose it might be good enough, if you want to create large maps, you only should have one array of vector2's, which hold only the "living" cells, and not a matrix of all cells. It is much faster (if that isn't enough for you, than look up *hashlife* )
@N7D7M77 жыл бұрын
Can you explain? I'm interested in your simplified version.
@ZeDlinG677 жыл бұрын
It isn't simplified, it is a different approach, I'll post a like to github when I'll get home
@teckyify9 жыл бұрын
At 7:40 since you only need a binary array you should have create created a boolean array. I think you confuse conceptually the _calculation of the probability_ for the binary value with the _array value_. Or one could use a compressed BitArray, which will probably be super fast for the CPU cache.
@CodeforgesInsaneDevelopment6 жыл бұрын
Nice one , but the fancy if else is called ternary operator :D
@_evillevi8 жыл бұрын
Thank you! Very useful. I'm going to try generating platformer game maps using C#, Microsoft VS and Monogame.
@_evillevi8 жыл бұрын
I made it! Procedurally generated Rectangle caverns in Monogame. Thank you!
@paulrinaldi22094 жыл бұрын
nice. -Wilford -Snowpiercer edit: If I got "Wilford's" name wrong, pls correct me
@etopowertwon9 жыл бұрын
I have a feeling you want to make another array for map[,] during smooth() first and operate on it: right now when smooth smooths 2,2: map[1,1], map[1,2], map[1,3], map[2,1] us already smoothed and their values were updated, while map[2,3], map[3,1], map[3,2], map[3,3] contain old values. It gives noticeable / slash-like bias . E.g. at 20:04 all visible lines are /slash like and there is no \ baskslash-like lines. And generally right part of map is flattened and left part is emptiesh.
@stevenb49569 жыл бұрын
Really cool. Maybe you could show us how to add the ability to mine or something? Like destroy the wall and get the resources inside.
@nanapipirara7 жыл бұрын
Thanks for the clear explanations. This is a great tutorial.
@titaniumdiveknife9 жыл бұрын
Love what I'm learning. Thank you Sebastian. You're very cool.
@brianchapman51737 жыл бұрын
You would get better results if "SmoothMap" used a second map array generated from the first. Currently you are reading the map while the map while you change it. That is why the examples at the end of the demo are lop sided. I.e. the maps are fuller on the left than on the right.
@10chaos19 жыл бұрын
this is really interesting thanks for showing us this
@VoxLightGaming4 жыл бұрын
17:42 One thing I would say is that you really overcomplicated the "get surrounding neighbors" method. int GetSurroundingWallCount(int x, int y){ int wallcount = 0; // if we are not at the top of the map // check the northern tile if(y!=0){wallcount += map[x,y-1];} // if we are not at the bottom of the map // check the southern tile if(y!=height){wallcount += map[x,y+1];} // if we are not at the left of the map // check the western tile if(x!=0){wallcount += map[x-1,y];} // if we are not at the right of the map // check the eastern tile if(x!=height){wallcount += map[x+1,y];} return wallcount; }
@Gorgious4 жыл бұрын
This does not check for diagonal tiles and also does not let you set a higher radius to look for neighbors if you want a different smoothing solution
@jernejbeg9 жыл бұрын
Love it! Will you also show us how to fill such an environment with detail, enemies or pickup items. I would imagine that this would be hard due to the fact that some of those stuff is design specific.
@batchprogrammer1088 жыл бұрын
Hey Sebastian, this tutorial is awesome just like all of your other tutorials - just a tutorial request - could you make a tutorial on how to make a navigation mesh using A* - I watched your other pathfinding tutorial but I would like to know how to turn it into a nav mesh. Thanks :)
@evmaster1143 жыл бұрын
11:59 Unity says Operator '||' cannot be applied to operands of type 'bool' and 'int'. Please help
@raubana7 жыл бұрын
Oh neat! It's like Worms.
@SonOfNatureGame9 жыл бұрын
Hey, I don't want to sound wise or something, since your the master anyway ;) But I read somewhere that multiplying is faster than dividing. So I noticed that you used /2 a lot, also in you path-finding tutorial. So just to push that little bit of performance, it might be a handy tip to use * 0.5 instead of /2 :) It doesn't really matter but if you are using it a lot of times (e.g. path-finding) it might save you some time! Thanks for the great tutorials!
@soulwingcatshot95479 ай бұрын
doesn't it compile into the same thing regardless though?
@eweeparker9 жыл бұрын
Fantastic. One of my favorite Channels.
@masterjerom8 жыл бұрын
Hi, my creation, about half way through the tutorial, won't show. When I press the play button the total screen becomes slightly darker but that's it. I copied the script from the tutorial on Unity's website, which did work. After that my own script worked as well. When I continued by adding the walls the object again seized to show, as it now does with the copied script. I'm working on Windows and no errors were shown during the above. Does anyone recognize this and/or knows how to resolve it?
@fieryducks18 жыл бұрын
I have the same problem
@DevAnomaly9 жыл бұрын
I'm digging this, looking forward for more ^_^ Great work!
@deathbunny30484 жыл бұрын
Diggy-hole? O.o
@OfficialFlashDrive8 жыл бұрын
Whenever I run my game, the object looks like it only renders one row! I ended up copying and pasting his code into mine and it won't work! Please Help. Using the latest unity version!
@peterchow1724 жыл бұрын
Great video, learned a lot!
@lakhwani3 жыл бұрын
o really?
@MorseAmalgam9 жыл бұрын
Hey Sebastian, absolutely love this tutorial series. One thing I was wondering about - Do you have any opinions on using this method of generating the "noise" for the map over, say, Perlin noise? While Perlin noise would still need some logic to close up and smooth the edges of the map, it seems like it would do the majority of the work for you. I'd love to hear your thoughts on the matter.
@tyridge77146 жыл бұрын
Hey Sebastian, I saw your tutorial on Cellular Automata for procedural cave generation, and I was wondering, what are the pros and cons of using an approach like this vs using perlin worms? Which to my understanding, is what minecraft uses.
@SpaceCaddy03078 жыл бұрын
I finally got this to work, thank you. My question is: How do I use my creation as a useable game item or feature? Everytime I click, it changes. And I really liked some of those maps. Thank you Sir. (I'll go back and erase all my other questions and pleas for help.)
@khatharrmalkavian33064 жыл бұрын
Your use of spaces enrages me.
@JamesStaud9 жыл бұрын
So for some reason when I run the basic OnDrawGizmos() explained at around 9:00 Unity won't display anything. I've tried re positioning the camera and I checked the settings. Any thoughts?
@deltaloko9 жыл бұрын
James Staud exact same issue...
@novaborn19069 жыл бұрын
+StepmaniaRocky MY MAN! (or girl).
@fieryducks18 жыл бұрын
I have the same issue and that didn't fix it
@josiahmortenson60627 жыл бұрын
For me, I was using OnDrawGizmo() and not OnDrawGizmos(). Changing to Gizmos fixed the issue.
@iskalabat9 жыл бұрын
Anyone from UUC Computing class watching this?
@Destroyanad2 жыл бұрын
If anyone is having any troubles, make sure you didnt miss-type anything. Mine was not working because a Y was an X by accident. Also make sure you have gizmos view enabled
@zokerino4474 жыл бұрын
Nice tutorials. Well explained.
@vaibhavpandey66403 жыл бұрын
hope i will be able to implement this in pygame within a week
@kevinvandijk40834 жыл бұрын
Mine doesnt draw full cubes, and because of that i have lines showing up all over the place.. what did i do wrong?
@RaverTiny9 жыл бұрын
Greate and quick tutorial. Thanks!
@tobenaigemu16127 жыл бұрын
Really cool tutorial. Thanks!
@WannabeCanadianDev8 жыл бұрын
Best British Accent on KZbin Award goes to...
@maxjackson71206 жыл бұрын
I would like to see a followup on how to generate rooms instead of caves when a variable is set. Do you have something like that?
@gshlawg9 жыл бұрын
YOU ARE ON THE UNITY WEBSITE :D
@bezz4329 жыл бұрын
simple yet awesome tutorial ty! :D
@Hadeks_Marow7 жыл бұрын
This seems very helpful. I am actually working on a 2D side stroller terrain generator. Is there anyway to implement this top down cave system to a side view cavern system with above and bellow ground level areas?
@personthehuman12774 жыл бұрын
you can, instead of generating white and black cubes, where it would be white make a cube, and if it is black dont add a cube. then it would be like a cave in 2D minecraft!
@ScottAllanJensen8 жыл бұрын
Just in case it has not been said cellular Automata can also be used for terrain generation
@林筱然8 жыл бұрын
非常感谢!终于找到资料啦。
@derekkaleida4 жыл бұрын
Best way to add destructionto this? Just on the map grid level? And how would one morph the mesh smoothly to fit the new mesh with less verts?
@rzrx13378 жыл бұрын
GameObject (Map Generator) is not visible in game view nor scene view but the translation arrows are visible in scene view. I put a sprite in the same transform as the object and it was visible (in both views). I've made gizmos visible in game view, made all layers visible, made the camera orthographic and tested the FOV in perspective mode, tried changing the clipping planes and depth, restarted the program, deleted and created the object all to no avail.
@dabartos47138 жыл бұрын
are you actually moving the RandomFillPercent slider in Hiearchy to a value so there is anything to create?
@GoldFishBoy13377 жыл бұрын
I'm having the same problem.
@aarondhp207 жыл бұрын
I've set the height and width to 100 pixels each, I've set the RandomFillPercent to ~45, I've done all the things RazorX53 has tried, and the same issue. Nothing pops up on my screen. Well, guess I'm done with this tutorial series.
@rentox39694 жыл бұрын
did you find a solution?
@adamarzo5599 жыл бұрын
Hey is there any chance you can do a video on grid placement like in games such as Banished? Maybe I'm just dumb but I can't for the life of me figure out how I can get buildings to snap to a grid when being placed.
@Ginto_O2 жыл бұрын
Do you think this algorithm was used in Worms to generate caves? They seems very similar
@taistingtheair13688 жыл бұрын
This looks like a floor plan but how would you make it 3D with varying floor levels, suitable ceiling heights and realistic cave surfaces? I also am wondering how you will implement the cave into the landscape with a sensible entrance? sounds like a lot more work to do.
@zolltf7 жыл бұрын
There are 8 other videos in the playlist detailing exactly what you just said.
@Goombatastic9 жыл бұрын
That was great!
@neuvampyrengel86536 жыл бұрын
Yes can you you this for an actual cyber planet or Procedural Planet ? Generate caves like this inside them?
@DeaMikan9 жыл бұрын
Would doing this in 2D be roughly the same? If not what would I have to change?
@SebastianLague9 жыл бұрын
It would be exactly the same, only you'd want to replace anything happening on the z axis with the y axis of course.
@MrIndiemusic1018 жыл бұрын
Sorry If you mention this later but I am curious what the triangle count on the generated meshes are meshes are.