My Adventure with 3D Perlin Noise

Поділитися
Вставка
  • Опубліковано 27 гру 2024

КОМЕНТАРІ •

  • @chromosoze
    @chromosoze 5 років тому +3579

    "You can't make a voxel game without being accused of copying Minecraft"
    ...That is unbelievably true...

    • @getgle
      @getgle 5 років тому +146

      What's funny is Notch ripped off infiniminer.

    • @reallyjoyless8389
      @reallyjoyless8389 5 років тому +18

      @@getgle i though it was called spacecraft

    • @BlindingLight
      @BlindingLight 5 років тому +71

      me: makes a pixelated adventure game
      MC 6 year olds: hey you copied Minecraft eeeeeee

    • @TooManyNulls
      @TooManyNulls 5 років тому

      Gta clones?

    • @rwsd343
      @rwsd343 5 років тому +37

      @@getgle By ripped off, you mean copied. Or your view of rip off is different to mine. I view rip off as an awful copy of a good game.

  • @MysteryPancake
    @MysteryPancake 5 років тому +2192

    "i didn't really understand it, but it was isolated logic" - every programmer 2019

    • @konstantinkh
      @konstantinkh 5 років тому +17

      This is making hiring competent gameplay/engine engineers very difficult, sadly.

    • @arzr_er
      @arzr_er 5 років тому +85

      @@konstantinkh
      My guy, you know anything about programming?
      Guys with 20+ years of experience still google how to do basic stuff in most languages

    • @konstantinkh
      @konstantinkh 5 років тому +72

      @@arzr_er There's a difference between not memorizing every API out there and not knowing how to do things. If you are implementing something that requires vector math, it's ok to look up what function/operator performs cross products in your engine/library of choice. In fact, that's expected. What's not alright is not knowing how to compute a cross product if you are writing code that uses them. Same goes for just about every algorithm, no matter how complex - within realm of game development, at least. You don't have to know all the intricate details involved in optimization - though, a good senior engineer will have a domain where they are an expert in these. But you have to understand how an algorithm works well enough to write a simple implementation. Naturally, I don't actually expect this to be the case for a junior engineer, but that should be the goal. That is something you strive towards throughout your career. That means taking an interest in things you are working with and not treating every API call as a black box. Digging into things, figuring out how they work, trying to write our own implementation, even if you know it won't ever be as good as what's already in the library - that's how we get better as engineers. People who don't do that don't get better. And since nobody gets born a good engineer, I can confidently say they never became a good engineer. There is, of course, a flip side to this. Engineers who re-write absolutely everything, because they never learned to search through documentation, the code base, or open source projects as applicable. In my experience, however, that's easier to fix, so it's not a deal breaker in new hires for junior or mid level, in my opinion.

    • @NicolaiWeitkemper
      @NicolaiWeitkemper 5 років тому +1

      *2020

    • @osten222312
      @osten222312 4 роки тому +6

      @@konstantinkh It's in fact okay to look up how to do cross products too. Stop being a gatekeeper. It's much more about how workable the code becomes as it grows, if it scales, if it is readable, if it is modular. You are very right in that doing an implementation is good for learning. But then you misinterpret why. That is because you see how battle tested formulas were written. How they have been perfected on, and the structures that exists in the code, the polished optimization that mathematicians have evolved and then you get to imitate that. It has nothing to do with actually memorizing those implementations. You may look at google for even the simplest of things. It is okay. If you get stuck in the thought loop "Do you know how atan2 works?" "Can you write your own ik solver?" trying to just compare knowledge. Nothing like that is actually useful unless you take away how the structures and flow works. You rarely have to re-write any solved formula or tech. You do however need to study it to learn code structures and flow. You arrive at the conclusion that you need to balance rewriting stuff and not rewriting stuff. But that is actually not that useful, just like @ARZRer mentioned. Every function is already at your fingertips. Being competent is not in knowing the science that went into them. Just how to utilize them. How to structure the code so it builds a good architecture.

  • @ethanodell8044
    @ethanodell8044 5 років тому +659

    "Everyone knows that you can't have voxels in a game without being accused of coping Minecraft"
    The thumbnail actually made me think this was a Minecraft video before I watched this, so, yeah, that is true

    • @kezzerz
      @kezzerz 5 років тому +1

      Same

    • @cassandradawn780
      @cassandradawn780 5 років тому

      Same

    • @chromosoze
      @chromosoze 4 роки тому +2

      Either you stole my comment or i stole yours or it is a total coincidence. I didnt see yours until I posted mine and I don't want to wrongfully accuse you of theft so its most likely a total coincidence.

    • @Nugcon
      @Nugcon 4 роки тому

      same

  • @martinananas7894
    @martinananas7894 5 років тому +719

    I thought it was a picture of minecraft farlands.

  • @gen157
    @gen157 5 років тому +538

    I almost skipped over this video when it appeared in my recommended. Looked away for a moment and looked back and noticed the short 4 minute video length it had and said "Why not? I need a break from these 45 minutes videos I keep watching.". Well am I glad that I decided to click it. This was an interesting video and I kind of wish it was recommended to me sooner. Thanks for the insight.

    • @nova84d
      @nova84d  5 років тому +27

      Thank you! Glad you liked it!

    • @StormBurnX
      @StormBurnX 5 років тому +4

      @@nova84d Curious to see if you got any further on this? It was nice to watch and I'll be checking out your channel for more interesting content soon!

    • @fellshaw7058
      @fellshaw7058 5 років тому +2

      I was actually in the same boat as you.

    • @yahyaozturk2338
      @yahyaozturk2338 5 років тому

      So basically "blabla i watched this video now give me likes"

    • @yahyaozturk2338
      @yahyaozturk2338 5 років тому

      @@gen157 yeah yeah there's like million of you lmao "i DİDnT İnTeaNd To GeT LiKeS" just reading the comment and seeing how made up it is already blows it ya know

  • @simplematters4893
    @simplematters4893 5 років тому +548

    I hear numbers

  • @h4724-q6j
    @h4724-q6j 5 років тому +282

    Vertices.

    • @KapybaraKSP
      @KapybaraKSP 5 років тому +16

      Mmmmmm tasty things, they are.

    • @privateger
      @privateger 5 років тому +1

      Huh.

    • @h4724-q6j
      @h4724-q6j 5 років тому

      @@privateger hey

    • @zedaddy3530
      @zedaddy3530 5 років тому

      @@h4724-q6j huhhellow

    • @privateger
      @privateger 5 років тому

      @@h4724-q6j I didn't expect you under a video about perlin noise ^^

  • @monocore
    @monocore 6 років тому +285

    I don't know how I ended up here but this was cool.

  • @Skippy7704
    @Skippy7704 5 років тому +52

    “You can’t make a voxel game without being accused of copying Minecraft”
    NoCubes mod - Hold my beer

  • @user-ro1cc8tz6d
    @user-ro1cc8tz6d 5 років тому +76

    Astronier is a classical example of closed source dev.
    "was some free library"

  • @CrapZackGames
    @CrapZackGames 5 років тому +126

    I have no idea what he's talking about but I'm fascinated.

  • @aster1sk294
    @aster1sk294 5 років тому +364

    You should make it so that it generates terrain with 2d noise and then does 3d noise and deletes all the blocks touched by it so it's like a world but with caves

    • @laggianput
      @laggianput 5 років тому +1

      Cool

    • @theM4R4T
      @theM4R4T 3 роки тому

      But how do you get a surface? That just makes holes in your 2d terrain, but no caves.

    • @ducky4303
      @ducky4303 2 роки тому

      didnt realize thats how it was done until now, good explanation

    • @TristanPopken
      @TristanPopken 2 роки тому +6

      @@ducky4303 That is one possibility, another one (Which Minecraft used before 1.18, and still partially uses) is an algorithm called Perlin worms.
      Basically, you sample 1D Perlin noise (Input is time) 3 times to get a value for x, y and z. Then use this vector for the direction the cave will move. Now you have the path a cave takes, and you can remove blocks around this path to remove volume.

  • @shambi581
    @shambi581 5 років тому +27

    “Algebra, Math.. and cooking” -Nova

  • @DaveBanasz
    @DaveBanasz 5 років тому +9

    Very informative video, and it's refreshing to see a dev video that covers the difficulties of being a game developer, rather than present it as "and then you simply do x and it works exactly how you want/need it!"

    • @nova84d
      @nova84d  5 років тому +4

      Glad you liked it! And yeah I know what you mean.

  • @Josp101
    @Josp101 5 років тому +199

    Hey! I'm a software developer and I've implemented the marching cubes algorithm in Unity before. Let me know if you want me to explain it to you!

  • @timhansen5468
    @timhansen5468 2 роки тому +4

    I mean he has to be on your radar but Sebastian Lague did 2 phenomenal tutorials on this and included his source code. Definitely goes over my head, I’ve been experimenting with marching cubes and procedural terrain generation as well. Best of luck to you, looking forward to seeing more!

  • @TheBendixSA
    @TheBendixSA 5 років тому +15

    Dude I loved the way you did this video, more please!

    • @nova84d
      @nova84d  5 років тому +4

      Hopefully I'll have more soon. Procrastinating is very time consuming.

  • @tyridge7714
    @tyridge7714 6 років тому +36

    If I'm not mistaken, minecraft uses perlin worms for cave generation.

    • @nova84d
      @nova84d  6 років тому +10

      Cool. I'll look into it.

    • @DlcEnergy
      @DlcEnergy 5 років тому +17

      you are indeed mistaken. (don't worry, i've been there) they're actually just custom generated worms. (spheres travelling in some randomly changing direction while changing radius) think back to when minecraft was just a small world size. after generating the general terrain, tons of these worms are generated to carve out the terrain. ores/trees are custom generations that populate the world too.
      in the "infinite" generation model, a single chunk generates all the worms in some radius to carve out that individual chunk. the ores/trees are only generated when adj chunks are present. (so they can generate over the boundaries to make it seamless. otherwise it'd all have to fit inside the chunk generating it. meaning we wouldn't have room for larger oak trees either)
      along with caves there's also ravines. it's just another type of cave generation. (obviously less common)
      then there's stuff like villages. they're simply a load of pre-made structures being randomly arranged. obviously they aren't generated chunk by chunk like caves are. (since they're obviously a lot less common too) they just generate out entirely into the world and those chunks are saved. like as if we just used some command to spawn a village that goes out of bounds.

    • @galaxyguy4247
      @galaxyguy4247 4 роки тому +1

      @@nova84d did you actually believe him? or is it real..

    • @stardust-reverie
      @stardust-reverie 4 роки тому +1

      didnt they massively change the cave generation in the cave update
      unless that hasnt happened yet

    • @ducky4303
      @ducky4303 2 роки тому

      damn its the man tyridge

  • @TheBcoolGuy
    @TheBcoolGuy 5 років тому +2

    Didn't even realise this was from a smaller channel. Looks really cool! While perlin noise is beyond my capabilities as it stands, your more simplistic models make me feel good about my 3D art skills. Good luck, man!

  • @jaydenztv
    @jaydenztv 5 років тому +66

    I have 0% knowledge of what you’re saying damn this seems hard

    • @jannikheidemann3805
      @jannikheidemann3805 5 років тому +2

      That's probably how he feels talking about the math involved in his project.

    • @somepersonyup9746
      @somepersonyup9746 5 років тому

      Tbh, It's not that hard. As he did point out many times, He couldn't be asked to do the "Hard" stuff as you need to understand a ton of things but most things he's talking about can be learned by wiki, School, Collage.

  • @Mimerneos
    @Mimerneos 5 років тому +41

    Marching cube algorithm is an efficient way to generate meshes from a series of points.
    I think that if you could isolate every cube vertex that's facing outwards, and feed those vertices into the marching cube algorithm, you'd get something more or less interesting.
    You'll need to make sure that you treat any detached shapes as their own objects too

    • @konstantinkh
      @konstantinkh 5 років тому

      Technically, marching cubes work off a function defined over some space that you draw an approximate isobar for. But there are several good ways to convert points into such functions suitable for particular uses. E.g. in 3d reconstruction, point clouds, typically with an approximate normal defined for each point, can be converted into a gradient function using something called Poisson reconstruction. You then draw a surface using marching cubes where that gradient function is approximately zero. The resulting mesh then passes close to the original points and has roughly correct orientation. The reason you don't care about it being exact is usually because points you start from tend to have a lot of error and simply joining them together would result in a very bad mesh.

  • @shuriken188
    @shuriken188 5 років тому +1

    I don't know if you'll see this, but have you considered skipping the voxel step entirely? Sample the noise directly for each point as you have, and build a polyhedron out of those points as vertices depending on if the individual points pass the threshold. If a point passes the threshold, check if it's adjacent to a point which does not. If so, it's on the surface of your solid, so you consider it a vertex. That would limit your shape's polygons to the surface, and no faces will appear inside the shape.

  • @To-mos
    @To-mos 4 роки тому

    Searched for hours looking for a procedural method to generating 3d Perlin noise without the permutation table and here in your video is a 3d solver combining lower orders together only 0:35 sec in. I love the internet.
    Also, I would recommend looking into erosion systems to add on top of your Perlin generation, it will give you those rolling hills you are after.

  • @darki6339
    @darki6339 5 років тому +32

    You just gained yourself a sub this was interesteing af

    • @MINECRAFTMizo
      @MINECRAFTMizo 5 років тому +2

      But it seems like this channel is dead

    • @nova84d
      @nova84d  5 років тому +6

      Thanks!

  • @akiharuse825
    @akiharuse825 5 років тому +9

    See you bois in 8 years when UA-cam decides to recommend this to everyone.

    • @quack51
      @quack51 5 років тому

      Or... today?

    • @lordofthecats6397
      @lordofthecats6397 5 років тому

      But isn't there a saying that "The algorithm never strikes the same video twice"?

  • @orr4945
    @orr4945 5 років тому +1

    Really nice video, I've been through a very similar process of learning about this subject, after learning about it for a long while I decided to write a story or a scientific explanation if you will of my learning process and explaining everything that I learned so that it would be easier for other people with the same passion as me to gather sources and information about it but being the lazy person that I am made me stop in the middle. All in all I really identify with you and your learning process and you've earned another sub :)

    • @nova84d
      @nova84d  5 років тому +1

      I'm glad you liked it

  • @sunless7413
    @sunless7413 5 років тому +16

    okay , so who else thought its gonna be a minecraft world edit video ?
    only me ?
    okay

  • @michaelmccarthy5166
    @michaelmccarthy5166 5 років тому

    I can't pretend I have any knowledge on the subject, but the way this guy talks about what clearly interests him makes me want to see more videos.

  • @Roupization
    @Roupization 6 років тому +2

    this is amazing, perfectly describes many of the coding and creative journeys ive been down.

  • @BrainSlugs83
    @BrainSlugs83 5 років тому +13

    Sebastian Lague has a video up on combining Perlin noise with marching cubes, also there's a good Wikipedia article on the topic. /fyi

  • @EpicTyphlosionTV
    @EpicTyphlosionTV 5 років тому +4

    Finally, the recommend section gives me something good

  • @olliem439
    @olliem439 5 років тому

    I like watching videos like this, absolutely all of this is alien language to me but I never fail to find it interesting, good stuff man.

  • @thesapphiredragon8568
    @thesapphiredragon8568 3 роки тому +1

    for people just now watching this there is an excellent tutorial called "How to make 7 days to die in unity" that covers terrain generation like this

  • @Le_Codex
    @Le_Codex 5 років тому +48

    Go watch Sebastian Lague, he has an entire video/series dedicated to marching cubes ^^

    • @adenpower249
      @adenpower249 5 років тому +1

      Those are such great videos. I love them.

  • @joaovitorreynaldo
    @joaovitorreynaldo 4 роки тому

    how did i not find this channel before?
    Great video, keep up the work!

  • @obsidianclorox
    @obsidianclorox 5 років тому +2

    "Clearly you needed to be an expert on algebra, physics, calculus and *cooking* "

  • @Jejkobbb
    @Jejkobbb 5 років тому

    This was very well written. Enjoyed the video a lot, keep it up :)

  • @NonTwinBrothers
    @NonTwinBrothers 5 років тому +3

    UA-cam algorithm's having a fun time with this one!

  • @Yamyatos
    @Yamyatos 5 років тому

    This was very helpful, thank you so much! This plus your "Infinite Procedural Terrain in Unity" video make it really "easy" (on a reasonable level) to understand the topic :D

    • @nova84d
      @nova84d  5 років тому

      Well I'm glad I could help :)

  • @xavierbradford5528
    @xavierbradford5528 4 роки тому +2

    This is my third time watching this and I might watch it again

  • @RainbowDark
    @RainbowDark 4 роки тому

    Wow that was quite interesting!
    I didn't understand everything but I'll be checking more stuff on your channel, seems like good content

  • @adonas3903
    @adonas3903 5 років тому +12

    UA-cam recommended this to me... after almost 2 years? I'm happy!

    • @chris_wizzudz
      @chris_wizzudz 5 років тому +1

      It showed up in my recommended feed too!

  • @deprecated4284
    @deprecated4284 6 років тому +7

    This is outstanding tutorial(I don't know if that is what this is but I copied your code to play with in unity and it works like a charm!)
    I tackled the Marching Cubes algorithm before, but I was never successful in implementing it. though i did get the marching squares to work.
    I would love to see more(Especially on Marching Cubes) so I subscribed

    • @nova84d
      @nova84d  6 років тому +6

      For some reason this was marked as spam :/
      I still plan on trying to get marching cubes to work but I haven't gotten the chance to look into it yet. Glad you liked this!

    • @deprecated4284
      @deprecated4284 6 років тому +1

      UA-cam can be a little... Broken sometimes. XD
      I hope your able to get it working, and anymore algorithms you find to improve the terrain generation.

  • @vayyloaa7921
    @vayyloaa7921 5 років тому +4

    ah yes,
    *a video a year or older just getting into my recommended.*

  • @popcornchicken9762
    @popcornchicken9762 5 років тому +1

    Just got recommended this and my interest has peeked I would love to see more. Even if I am a year late...

  • @fiveoneecho
    @fiveoneecho 3 роки тому

    I know I'm a little late to the party, but if you haven't looked at marching cubes, you definitely should. It's super simple in concept- just appears way more complicated than it is. It will be your best friend with something like this in terms of a straightforward solution. I was able to learn how it works and whip up a simple implementation in about two hours in Java Processing 3 a while ago- really not too complicated.

  • @medmel2160
    @medmel2160 5 років тому

    fascinating video... I told you already but I love the way you narrate your investigation !

  • @hypermind15
    @hypermind15 6 місяців тому +1

    Is that the music from bond breaker on coolmmath?

  • @tijsp.8162
    @tijsp.8162 4 роки тому +1

    Just an fyi: the fastnoise library you mentioned is an *amazing* noise library. I believe the is an unpaid one, and one that makes use of SIMD instructions, which makes it noticeably faster. The paid version is just a port made by the author, as the original is written in C++ (which is available on GitHub by the way). It comes with an unbelievable amount of different noise types with numerous settings, including gradient en perturb variants. It is definitely worth checking out!

  • @LeeTwentyThree
    @LeeTwentyThree 5 років тому +9

    Lmao I did this same exact thing, with the same steps you did. I even ran through the same problems! I got stuck and then found this video.

  • @nziom
    @nziom 5 років тому +1

    This is the perfection of minecraft.

  • @voidling2632
    @voidling2632 5 років тому

    as far as I know, Sebastian Lague coding adventure does use marching cubes and in the description, you can download his project. And I see 10 000 people already posted this plus this video is over an year old.
    I have to program an procedural generated island for my college and only 2 months time. Which is frightening as an artist who did graphic design for over 10 years with almost zero programming knowledge. I'm glad for every bit knowledge I can find. Thanks for this video.

  • @stevenh4314
    @stevenh4314 5 років тому

    I love watching videos about topics that I don’t know anything about

  • @zielbird
    @zielbird 5 років тому +1

    1:33 the 3D noise is symmetrical across y=x=z

    • @nova84d
      @nova84d  5 років тому +1

      Yeah I didn't realize that until after I uploaded the video. oops

  • @Em3rgency2
    @Em3rgency2 5 років тому

    It's so fun to watch someone else go through the same steps of discovery :D

  • @evervirescent
    @evervirescent 5 років тому

    i think you’re a smart person who knows what you’re doing

  • @shanekim28
    @shanekim28 5 років тому

    So interesting, I had the same sort of adventure when I was starting out as well! Glad to know we're not alone

  • @guardffire
    @guardffire 5 років тому

    Distractions can sometimes lead us in the right direction. Nice quote.

  • @ChaseAerospace
    @ChaseAerospace 3 роки тому

    Thank you for this and posting the code. Also, for anyone who reads this, the PerlinNoise function creates symmetry about the axes (x,y, and z), fyi. I just add 1, 2, and 3 respectively to x, y, and z inputs to the Perlin3D function to get around this. Makes the map a bit more interested and less redundant. Hope that helps people. Also, about to look into getting libnoise working in C#. I keep seeing people talk about how great those functions are for this type of thing.

  • @elia_ssss
    @elia_ssss 5 років тому

    thank you youtube recommendations, i love this kind of stuff

  • @Xgamesvidoes
    @Xgamesvidoes 6 років тому

    Ow my!
    This is a subscription worth!
    I am looking forward for your next attemp! :D

    • @nova84d
      @nova84d  6 років тому

      Hopefully soon ;)

  • @thegamingjoeys9745
    @thegamingjoeys9745 2 роки тому +1

    theirs a good tutorial about 7 days to die and it has marching cubes

  • @declannnnnnnnn
    @declannnnnnnnn 5 років тому

    I don't know what the hell was going on in this video, but this man sounds pretty big brain if he can figure out how mojang generated structure in Minecraft

  • @DevaWay
    @DevaWay 5 років тому

    Amazing and underrated video
    You deserve more!

  • @bev2224
    @bev2224 2 роки тому

    High quality video recommended for me!

  • @hammer_ttk
    @hammer_ttk 5 років тому

    I have been looking for this since weeks. I have never found anything. Now I find this on my reccommendet

  • @otesunki
    @otesunki 5 років тому

    I'm exited for what you will do!

  • @Nikki-2981
    @Nikki-2981 4 роки тому

    the final shot reminds me of Space Engineers, and i'm excited to see more

  • @ARGHouse504
    @ARGHouse504 6 років тому +2

    Very cool, I'm using the same 3D perlin to distribute star systems in a wireframe box.

    • @nova84d
      @nova84d  6 років тому +1

      Sounds cool.

  • @shatley123
    @shatley123 6 років тому +3

    Great work, i'm ringing DAT bell.

  • @chexo3
    @chexo3 5 років тому

    I have subscribed. This was cool and had decent sound too.

  • @finn9233
    @finn9233 3 роки тому

    thanks, multiplying my coordinates with the noise scale fixed my issue.

  • @jaqf
    @jaqf 5 років тому +2

    why does he sound like he's recounting an unsolved murder in the 1960's

  • @shibi6939
    @shibi6939 4 роки тому

    good tuto, love it, noise3d really helpful when i test my marchingcube, and also met the limitation of mesh.

  • @PhilTruthborne
    @PhilTruthborne 5 років тому

    All algorithms require understanding of logic rather than just knowing formulas. Keep experimenting and you'll slowly stack up clues that will take you closer to your goal.

  • @ViprazDesigns
    @ViprazDesigns 5 років тому +1

    Could you merge the vertices by distance and then smooth the mesh out?

  • @anggaadandiputra8450
    @anggaadandiputra8450 5 років тому

    This Minecraft cave update looking awesome already

  • @MrCrompz
    @MrCrompz 3 роки тому +1

    I am trying to recreate the voxel-like terrain. can you send me the line where "combine" is defined. it does not seem to be on the final code

  • @ocoolwow
    @ocoolwow 5 років тому

    Awesome video it is a shame you don't have more subs cause you deserve them.

  • @slimeypiston574
    @slimeypiston574 5 років тому +2

    "And everyone knows that you can't have voxels in a game without it being accused of copying Minecraft."

  • @albingrahn5576
    @albingrahn5576 5 років тому +37

    I went down almost the exact same rabbit hole a couple of months ago! I wanted to learn about being able to modify terrain and "dig" in real time after I saw a cool reddit post. I also downloaded the exact same example at 2:48, and I managed to find a working version of cubiquity from the description of a youtube video if i remember correctly. I also got to learn about marching cubes and the slightly better marching tetrahedra algorithm. It's so cool that I did basically the exact same journey as you without even knowing it!
    Edit: Here's the cubiquity video I found, with a bitbucket link to download the package in the description ua-cam.com/video/xybv-aldhtI/v-deo.html

    • @DougTaggart
      @DougTaggart 3 роки тому

      You reference the example at 2:48, do you know the source or do you have a copy still?

  • @RomanGen1
    @RomanGen1 4 роки тому

    Great review. I also used 3D perlin in my project (infinite "minecraft" like 3D space, but with dynamic constructions (videos on my channel)) I think about generating complex and various buildings/castles, the main restriction: they should be generated on the fly (no chunks, only user modifications stored as octtree)

  • @Platinum_XYZ
    @Platinum_XYZ 5 років тому +1

    I typed in "Minecraft" and your video showed up lol. I've seen all those weird bugs you've expirienced when people mess with Minecrafts terrain generation aswell

    • @nova84d
      @nova84d  5 років тому +1

      Interesting. It's probably all related somehow.

    • @Platinum_XYZ
      @Platinum_XYZ 5 років тому

      hey man, thanks for responding to comments on your year old video. appreciate it

    • @nova84d
      @nova84d  5 років тому

      No problem ;)

  • @markm1514
    @markm1514 Рік тому

    "If I hadn't went down this rabbit hole, then I would have spent these last few days wondering what would've happened if I had."
    I wish I could have come to this realization sooner, I usually phrase it along the lines of "what's stopping you?" I have a bad habit of NOT writing things down, and future me frequently suffers for it when trying to recollect those ideas.

  • @supertrooper1576
    @supertrooper1576 4 роки тому

    i saw space engineers so i assume you are a man of culture

  • @Connordore
    @Connordore 4 роки тому

    Nova: "I needed to turn all the blocks into a mesh. So I did"
    Me, who's just figured out how to do that after months of on and off work trying to understand meshes: "what"

  • @titanic_monarch796
    @titanic_monarch796 5 років тому

    Huh,Didn't expect to see space engineers in this.
    Nice video too.

  • @xeoler4124
    @xeoler4124 5 років тому

    Not kidding but i actually took this up seriously and yes implemented marching cube algo but it led me something entier life change for me ..... thanks a lot man !!

    • @nova84d
      @nova84d  5 років тому

      Well I'm glad I could help :)

  • @lewismassie
    @lewismassie 5 років тому

    A friend of mine made a marching cubes algorithm from scratch. Took him 5 months but it worked

  • @ChristosRym
    @ChristosRym 6 років тому +1

    I actually made my own working Marching Cubes Algorithm and Tested it on Unity. It's not so hard as time consuming!
    Now I choose how to Triangulate the Ambiguous cases.
    I could also make marching Tetraedra. Which have no ambiguities and are way simpler to program, but less CPU friendly.
    Well, in the future you could swap to ECS!

    • @nova84d
      @nova84d  6 років тому +1

      It's been a while since I made this video and I've made some progress on it. I have marching cubes working, and I was going to make a video on it hopefully sometime soon. I don't really get how to use ECS effectively, but I made a more basic threading system that splits it up and loads the parts at the same time. Good luck on your project!

    • @ChristosRym
      @ChristosRym 6 років тому

      @@nova84d yeah thanks. I do not know much about ECS either, but on UNITY 2019 they will add more ECS stuff to make it easier.
      Yeah, upload some video on your progress. Hmmm, maybe I should to :)

    • @nova84d
      @nova84d  6 років тому +1

      Well let me know if you do, I'd be interested. Might be a while before I get around to it though, videos take a while.

    • @ChristosRym
      @ChristosRym 5 років тому

      ​@@nova84d Hey, I actually uploaded a Video with my Marching Cubes algorithm. I just showcase it. If you are interesting you can watch it here: ua-cam.com/video/YhhnLu1oBs0/v-deo.html It's meshy and blocky. However I will focus on Marching Squares, for now. Then start building a game on 2D, drop down RPG. Because, it is so much more easier and good practice for 3D.
      However, for now I need to pause my game for person reasons. So... Maybe a year from now I will resume it, part time.

  • @lucorsavior3709
    @lucorsavior3709 5 років тому

    im glad this was in my recommended

  • @orbitaldragon9236
    @orbitaldragon9236 5 років тому

    going to be honest i thought this was gonna be a minecraft modding video on how to get this type of world generation to work. I'm filing it away because now i realize this is a much deeper and more powerful magic.

  • @deidara_8598
    @deidara_8598 5 років тому +1

    The background music sounds soooo like Burzum

  • @TooManyNulls
    @TooManyNulls 5 років тому +1

    Just put two meshes, one mesh could be generated underneath?

  • @cjandlottie
    @cjandlottie 5 років тому

    I like that little trailer at the end lol. If you could create a game that has the same sorta vibes as mario galaxy I reckon it could be real popular.

  • @kasamikona
    @kasamikona 5 років тому

    In order to get a more flat terrain-like generation you need to create a height gradient that you combine with the sampled noise value. There's various ways of doing this - adding vs multiplying, messing with minimum and maximum values, power functions, etc. but the gradient will ultimately define the vertical region in which the terrain goes from all cubes to no cubes. On the surface (no pun intended) this looks a lot like 2D height map terrain, except it produces overhangs (nice ones if you get the weights and noise scales set to your liking). Unfortunately this method doesn't produce any underground caverns except maybe a few occasional pockets near the surface, so to add caves you need to use another noise layer that carves away the terrain you made in the first step. This can be plain perlin noise like you've experimented with already, or it can be more complex stuff like 'perlin worms' to get more tunnel-like caves (I believe this is what Minecraft uses).
    EDIT: Welp, looked at comment dates and not the video date, won't be surprised if this project has gone much further or died out already... Thanks youtube algorithm

  • @welltypedwitch
    @welltypedwitch 5 років тому +13

    Couldn't you just generate vertices instead of cubes and then connect all adjacient ones? Would that look okay?

  • @MaxGuides
    @MaxGuides 5 років тому

    space chickens 2.0 looks excellent. good job.

  • @olliep6794
    @olliep6794 5 років тому

    Really well written video :)

  • @jkz123pl
    @jkz123pl 4 роки тому

    Heh, grabbed the 3D perlin noise function from here, thanks xD