Simple Biome Generation (3D World Generation #11)

Sdílet
Vložit
  • čas přidán 25. 07. 2024
  • Today we procedurally generate some simple biomes for our worlds.
    To vote on new videos, ask questions, or just support me:
    / simondevyt
    Follow me on:
    Twitter: / iced_coffee_dev
    Instagram: / beer_and_code
    Github: github.com/simondevyoutube/
    In this project, we're looking at adding some simple and easy biomes to differentiate different areas on the planet. This goes a long way to help increase the natural look of our worlds.
    We'll take a look at Whittaker's biome types and implement a simple but effective system for randomly generating temperature and precipitation values across the planet. Those can, in turn, be used by something like the shader to differentiate areas in the world.
    We're using Three.js and JavaScript for this tutorial, and if you're new to the series make sure to check out thhe rest of the playlist: • 3D World Generation (J...
  • Věda a technologie

Komentáře • 103

  • @CarlosPerez3dArt
    @CarlosPerez3dArt Před 3 lety +19

    This is your plausible reason to continue with going further into more technical things I’d love to see seasons and clouds and precipitation cycles please you’re great I love what you do and how you do it

  • @ignacio3460
    @ignacio3460 Před 3 lety +20

    The level of detail from space is so much higher than No Man's Sky, which just shows a texture of the planet surface on a generic sphere. It gets pretty blurry as you get closer, right before it switches to an actual terrain mesh. I wish they'd just do what you're doing lol. Great work!

    • @Zicrus
      @Zicrus Před 3 lety +4

      No mans skys lowest LOD is actually not just a sphere. They have 2 layers of voxel data and a height offset on the terrain, allowing small bumps in the surface.

  • @simondev758
    @simondev758  Před 3 lety +16

    Thank you to Patreon people for voting and requesting this!
    If you enjyoed this, check out my GLSL course: simondev.teachable.com/p/glsl-shaders-from-scratch
    If you'd like to support future videos and tutorials: www.patreon.com/simondevyt

    • @samuelhulme8347
      @samuelhulme8347 Před 2 lety +1

      When are you going to upload this part to GitHub?

    • @vovchisko-dev
      @vovchisko-dev Před rokem

      Does this courses contains part with making large procedural planet and atmosphere? With sources? 🥲

  • @qu765
    @qu765 Před 3 lety +7

    How I would do precipitation:
    1) make another mapping for wind direction, mostly horizontal and
    2) compare that to the normal of the terrain this constitutes part of the precipitation
    3) make a blurred version of the height map, but where ocean is 1, and land is 0. This also contributes.

  • @Syllvein
    @Syllvein Před 3 lety +7

    Thank God your videos popped up in my recommendations. I like how you tackle what seems like year+ long projects to me and break things down into little victories and then improving upon it. I'm learning python and my teachers always mention building your code in parts and then adding and improving as you go.

  • @bakerfx4968
    @bakerfx4968 Před 3 lety +7

    I saw this video pop up and was instantly happy. Thank you for all you do!

  • @Ethans_tech
    @Ethans_tech Před 3 měsíci +1

    i know you won't ever continue this series. but i really liked it, and i hope you do

  • @felleg4737
    @felleg4737 Před 3 lety +3

    beyond ‘ok’ again!! the way you approach problems and ideas is really inspiring!

  • @LewiLewi52
    @LewiLewi52 Před 3 lety +33

    Hope penguin generation falls under advanced stuff.

    • @simondev758
      @simondev758  Před 3 lety +8

      Procedural penguin generation, interesting...

  • @dempa3
    @dempa3 Před 3 lety +2

    This was very interesting! I'd happily watch you explore the more advanced stuff.

  • @chri-k
    @chri-k Před 5 měsíci +1

    Amazing series!

  • @Kahitar1
    @Kahitar1 Před 2 lety +1

    Love this series. Keep it going, pleeease!

  • @RDaneelOliwav
    @RDaneelOliwav Před 3 lety +2

    I really love your threejs videos!

  • @_maniplant
    @_maniplant Před 7 měsíci +1

    Love your videos, still waiting for the next video in the series, wondering how do we go from here to solar system scale and beyond

  • @Skeffles
    @Skeffles Před 3 lety +1

    Love how the world looks, just floating there in space!

  • @Pavel-wj7gy
    @Pavel-wj7gy Před měsícem

    I know it's been a long time, but it would be cool to see how you approach building a simple interface to add stuff to that world: custom forests, mountain ranges, volcanos, architecture, roads, etc. Loved the tutorial and would love you adding more cool things to this world you've build. Otherwise feels rather unfinished.

  • @photonpotato2490
    @photonpotato2490 Před 2 lety

    I love this series! Keep it up!

  • @rafa_guitar
    @rafa_guitar Před 2 lety +1

    I can only say: "awesome!", thanks for sharing!

  • @Kobraisten
    @Kobraisten Před 2 lety +4

    this series was genious, you are a very good teacher - not the "type what I'm typing" kind, but one that helps ppl understand the problem and the solution; although I'm not into js but it's clear how I could solve these issues now in a language-agnostic manner, thank you for this! I built an entire vocab thanks to you! it's also entertaing to watch how cool math and physics and coding are if you use them to work on cool stuff, I hope this inspires many to take a deep dive instead of staying on the surface of say web development; what you present here is real engineering : )) also the limitations you're alleviating here are relevant for any language or engine too, like unity or unreal, I saw these issues there as well, because these are related to hardware - something that no engine or language can circumvent - but being smart can : P thanks again! : )

    • @simondev758
      @simondev758  Před 2 lety +2

      Awesome, thanks! I definitely strive to do exactly that, present solutions in a language agnostic way. I happen to use JS in this case, because it's easy and let's me get right to the heart of the problem, but if you understand the problem and solution presented, it should be a snap to get it to work elsewhere.

  • @eisbearne3757
    @eisbearne3757 Před 3 lety +1

    great inspiration, love your videos

  • @acajoom
    @acajoom Před 2 lety +1

    excellent ! keep em coming !

  • @codydaniels9430
    @codydaniels9430 Před 3 lety +3

    Always excited to see the next update on this project. Keep em coming!

  • @pearofgeeksii8156
    @pearofgeeksii8156 Před 2 lety +4

    Great series, thank you and also for making the code public; there's some stuff you've solved that I haven't (particularly fixing normals on the seams!). Also, and this is silly really, but the way your accent translates to mine whenever you say "per vertex" I hear "pervert ex" and that has made me look at 3D in a whole new way :P

  • @robertoruiz7274
    @robertoruiz7274 Před 2 lety +1

    dude you are awesome. keep it up!!!!

  • @judgsmith
    @judgsmith Před 3 lety +6

    First! I love this seres.

  • @Tsskyx
    @Tsskyx Před rokem

    I see this video is a year old, but I have a thing to say about precipitation, having looked into the science behind it myself in the past. Precipitation is often tied to air pressure - when there is low pressure, there is prevalent mixing of air masses and thus high rainfall, and vice versa for high pressure. Usually, planets with atmospheres have pressure bands that encircle them. Jupiter has many (which is why it's so stripy) and Earth has three main ones on each hemisphere. They even have names: Hadley cell, Ferrel cell, and the polar cell. The logic behind them is that air rises at the equator, thus creating a lush, low pressure zone, then travels towards the poles, and eventually, it begins sinking, creating a dry, high pressure zone. On Earth, this is the reason why north Africa is so dry, because it lies precisely in this high pressure zone. The next low pressure zone is in the Eurasian/North American mid-latitudes, and the poles are regions of high pressure. If you wanna program it, simply create alternating bands of low and high precipitation. It makes sense to make more bands the larger your planet is.

  • @miguelmyers9546
    @miguelmyers9546 Před 3 lety +2

    amazing

  • @TommyLikeTom
    @TommyLikeTom Před 2 lety +1

    You should collaborate with Sebastian Laugue. You two have similar minds

  • @XenoMustache
    @XenoMustache Před 3 lety +2

    Hydraulic erosion simulation next???

  • @AlphaMoonbase
    @AlphaMoonbase Před 3 lety +1

    I just love your voice. The content is great, but without your smoothing voice I would have never subscribed.

  • @ripbycoppa
    @ripbycoppa Před 2 lety +1

    you're my idol

  • @aesdim8150
    @aesdim8150 Před 3 lety

    Hipity hopity your script is now OUR property.

  • @Fire_Rice
    @Fire_Rice Před 3 lety +1

    YESSSS

  • @kevnar
    @kevnar Před 2 lety +1

    Advanced stuff like human settlements, and a lowest-cost path road network between them? XD

  • @sorinmiroiu9404
    @sorinmiroiu9404 Před 3 lety +2

    Simon you are a fantastic programmer, let me tell you that. I'm not sure why but your monotone voice makes it all more appealing. Hmm... i think i've seen this before... yep, no just my imagination (madseasonshow). Can't think of anyone (madseasonshow) that also has a monotone voice lol

    • @simondev758
      @simondev758  Před 3 lety

      lol

    • @Syllvein
      @Syllvein Před 3 lety

      I was thinking of madseason too when I first heard him speak. Their voices are very soothing.

  • @AttackOnTyler
    @AttackOnTyler Před 2 lety +2

    I just want to say, from a person who has been looking into procedural terrain generation for planetary sized bodies for over a year to develop a game in unity or unreal, I've yet to find a guide or series documenting the individual steps involved to make a convincing transition between ground to space like you have, in js no less.
    Thank you for all the hard work you've done.
    I don't know what the scope of this project is but with biomes more or less complete, and you did say something about working on a water shader in this video, do you plan on adding procedural vegetation for grass and trees at ground lod in the future?

    • @simondev758
      @simondev758  Před 2 lety +1

      Yeah I plan to, I kinda revisit the series when I feel like it. So there may be gaps between episodes, but I like to keep pushing these planets along heh.

  • @rednibcoding3412
    @rednibcoding3412 Před 2 lety +1

    Thank you for these awesome tutorials. Are you planning to add procedural generated vegetation? Also adding 3d models on predefined random areas like shipwrecks and stuff would be awesome. Are you covering this also?
    Anyway, awesome series, I subbed so I don't miss it when you continue this series. :)

  • @ghostandinfinite9874
    @ghostandinfinite9874 Před 2 lety

    i like your flappy bird ai

  • @O_Kxzulo_O
    @O_Kxzulo_O Před 3 lety

    How can you customize more terrain?, like the world of one piece for example.

  • @Alpenjodler1
    @Alpenjodler1 Před 3 lety +1

    Now I want to make a terrain generator that starts off with a ball that gets thrown back and forth between a heat god and a frost god, denting the surface and altering the climate wherever they touch the ball...

  • @moritzscheuerle9447
    @moritzscheuerle9447 Před 3 lety +3

    i would like to see more advanced stuff... like tectonic plates or erosion

    • @dorkle9085
      @dorkle9085 Před 2 lety

      I saw Sebastian Lague's video on Hydraulic Erosion, idk how you could code it on a planet.

    • @simondev758
      @simondev758  Před 2 lety +1

      Yeah I've seen some techniques on hydraulic erosion, interesting stuff but would need to be adapted big time to work on procedural worlds in a sensible amount time.

  • @nuvotion-live
    @nuvotion-live Před 3 lety +2

    Hey SimonDev, is there a good way to get intellisense/autocomplete when you are doing GLSL-in-JS like that?

    • @user-dh8oi2mk4f
      @user-dh8oi2mk4f Před 3 lety +1

      No. If you want intellisense you’ll have to use another file, but JavaScript can’t quickly load files.

    • @simondev758
      @simondev758  Před 2 lety +1

      Supposed to be some extensions for glsl and such, but haven't looked into them.

  • @NetherFX
    @NetherFX Před 2 lety

    How did you get so good at shaders? I've tried learning about them and keep failing.

    • @simondev758
      @simondev758  Před 2 lety +2

      Same way you get good at anything man, hours and hours, probably hundreds or thousands of them.

  • @ghostandinfinite9874
    @ghostandinfinite9874 Před 2 lety

    i want some thing like that

  • @falxie_
    @falxie_ Před 3 lety +1

    Crazy to me that you write shaders in a template literal without any sort of intellisense

  • @SeanJohnson_69
    @SeanJohnson_69 Před 3 lety +1

    What software do you use to code

  • @santiagofantoni2643
    @santiagofantoni2643 Před 2 lety +2

    I made a red circle today, it moves to the right when clicked : ' )

  • @Liocattechtips
    @Liocattechtips Před 3 lety +3

    Sir this is crazyly good 🤯.
    I also want to start with these type of 3d things. Can you tell me how can I start please please 🥺🥺🥺🥺.
    Right now I am a student and very very small 😅 full stack web dev intern but can you guide me a little bit how do I start please.

  • @heteroerectus
    @heteroerectus Před 3 lety +2

    GET TO THE CHOPPA

    • @simondev758
      @simondev758  Před 3 lety

      IT'S NOT A TOOMA
      Am I doing this right?

  • @shameemevans4413
    @shameemevans4413 Před 3 lety +1

    Do some pinball.

  • @Thebaker3
    @Thebaker3 Před 2 lety

    Can I use these codes in unity?

  • @BoomBoomMushroom
    @BoomBoomMushroom Před 3 lety +2

    3rd

  • @yaser5133
    @yaser5133 Před 2 lety

    Can you please post the code for this? Thanks

    • @simondev758
      @simondev758  Před 2 lety +1

      Oh looks like I forgot to upload it, I'll try to remember when I'm back at my desktop.

    • @bitanesin
      @bitanesin Před rokem +1

      @@simondev758 I can't find the code in github. Have you uploaded this one?

  • @AleFunky890
    @AleFunky890 Před rokem

    is the source code available?

    • @simondev758
      @simondev758  Před rokem

      I post them to gIthub, link is in my profile or the description

    • @AleFunky890
      @AleFunky890 Před rokem

      @@simondev758 yeah but i can't find the code of episode 11

    • @simondev758
      @simondev758  Před rokem

      @@AleFunky890 Hmm no idea where it is, lemme look around on my computer later, maybe I just forgot

  • @tokiomutex4148
    @tokiomutex4148 Před 3 lety

    The way you do exports impacts in a negative manner the cyclomatic complexity of your code.

    • @simondev758
      @simondev758  Před 2 lety +1

      Interesting, can you point to some tips on what I can do better here? Thanks!

    • @tokiomutex4148
      @tokiomutex4148 Před 2 lety +1

      @@simondev758 Instead of writing
      export name = () => {
      //...
      return {
      name1: func1,
      name2: class1,
      func2,
      class2,
      }
      }();
      you can use export lists:
      //...
      export {
      func1 as name1,
      class1 as name2,
      func2,
      class2,
      };
      this gives you more flexibility because you can import everything via
      import * as name from "module.js"
      or just particular components via
      import { name1 } from "module.js"

  • @ghostandinfinite9874
    @ghostandinfinite9874 Před 2 lety

    Plz can youu some more ai stuff like a reall human

  • @Heccintech
    @Heccintech Před 2 lety +2

    i know your a ex software engineer did you sell a project and decide to retire and build random projects?

    • @simondev758
      @simondev758  Před 2 lety +2

      Nah, I went the boring way of working for years, paying things off, and then deciding I wanted to do something more interesting, even if it paid less. Didn't win the lottery though, so no retirement.

  • @ghostandinfinite9874
    @ghostandinfinite9874 Před 2 lety

    rather than a star

  • @ghostandinfinite9874
    @ghostandinfinite9874 Před 2 lety

    plz its my request

  • @omegaindustry
    @omegaindustry Před 3 lety +2

    Love your vids but PLEASE STOP WRITING CODE IN A STRING. Just write your code in a file and read it into a string so you can still have syntax highlighting! You already use 1 char variables how on earth are you writing code without syntax highlighting

    • @simondev758
      @simondev758  Před 3 lety +2

      Hah yeah I keep meaning to

    • @omegaindustry
      @omegaindustry Před 3 lety

      @@simondev758 how on the tectonic plate motion having earth do you write code like that

    • @NathanHedglin
      @NathanHedglin Před 2 lety

      @@omegaindustry some research would be warranted for sure.
      I’d probably work starting with the technic plates fas those are what create islands, continents and mountain ranges.
      Sounds interesting but complex :-)

  • @ghostandinfinite9874
    @ghostandinfinite9874 Před 2 lety

    Pwease