Why I use Wave Function Collapse to create levels for my game

Поделиться
HTML-код

Комментарии • 397

  • @user-ex6xc5ox3k
    @user-ex6xc5ox3k 2 года назад +2440

    A beginners guide to making your first simple game!
    Chapter one: quantum physics

    • @petermuller608
      @petermuller608 2 года назад +29

      You made me lol xD

    • @Illmare
      @Illmare 2 года назад +61

      Chapter 2: Probabilistic String Theory

    • @9636dev
      @9636dev 2 года назад +30

      Chapter 3: Relativity

    • @timothy6966
      @timothy6966 2 года назад

      😂😂😂

    • @DyslexicFucker
      @DyslexicFucker 2 года назад +7

      Chapter 4 Subatomic Quantum Mechanics

  • @Adam-cn5ib
    @Adam-cn5ib 2 года назад +585

    Jdh: "I wanna generate new content without having to do Much Work"
    Also Jdh:

    • @bosch5303
      @bosch5303 2 года назад +36

      @Creepi why waste 10h manually doing the work when you can write a program in 10h that will do that work in 2 minutes

    • @Adowrath
      @Adowrath 2 года назад +2

      @@bosch5303 More like 5h of manual work saved. Or 2h. But that's how we be. xD

  • @h1ndlet
    @h1ndlet 2 года назад +514

    I've seen one or two videos on wave function collapse before, and it's always been one of my favourite ways to generate terrain. Definitely glad to see one of my favourite RUclipsrs using it in a real project

    • @someonewithsomename
      @someonewithsomename 2 года назад +1

      so who's one of your favourite youtubers than?

    • @gachastorys5129
      @gachastorys5129 2 года назад +8

      @@someonewithsomename jdh

    • @w花b
      @w花b 2 года назад

      @@gachastorys5129 smc

  •  2 года назад +297

    People that don't code are being tricked into thinking people code an entire program like this without testing its small pieces a thousand times throughout the process (and at times changing the logic multiple times half-way through haha)

    • @player111q7
      @player111q7 2 года назад +7

      He's just smart

    • @ZephrymWOW
      @ZephrymWOW 2 года назад +31

      @@player111q7 He just has put lots of hours into doing it so he doesnt need to double check anymore. It takes lots of effort to get to this level dont just play it off "yeah he is smoret boi lkr dog"

    • @adrycough
      @adrycough 2 года назад +7

      Good, I need every ego boost I can get.

    • @branthebrave
      @branthebrave 2 года назад +8

      He's already made this, like he said

    • @mmdts
      @mmdts 2 года назад +5

      ​@@branthebrave It helps to know that practice makes perfect here.
      My first programs were relatively simple ones that didn't work as I expected them to. Right now, I can write 1000~2000 LoC of relatively simple logic (low cyclomatic complexity, no recursion) without any mistakes. For code that's heavy on while loops with undefined iteration count, recursive functions (esp. not pure ones), and heavy maths (optimization and whatnot), I still need to think a lot (pen and paper, as jdh shows himself doing in this video) before I write it, and I usually still miss one or two edge cases.

  • @carterisonline
    @carterisonline 2 года назад +184

    I absolutely love using WFC as a means of world generation! I've always wanted to do this in my voxel game, but each dimension makes the algorithm exponentially slower.
    I'd definitely look into using it with an LOD perspective; stuff like biome meshes can be generated first in low detail and rendered as a placeholder while structures and environment details are generated in the background.

    • @jdh
      @jdh  2 года назад +52

      you could maybe also try an approximate approach - collapse/propagate some of the wave elements and use that as an LOD while saving the data for when the player moves closer? 🤔

    • @morgan0
      @morgan0 2 года назад +8

      yea i’ve thought about this for a game i’d like to make eventually. start out with low detail plate tectonics sim for planet-scale coherence, then use wfc to refine the base height and roughness a bit, then figure out biomes, then further refine height and roughness using biome info as well, then do stuff like individual mountain peaks, valleys, small lakes, etc, then probably another pass for final features (still above the scale of individual voxels), and then get a smooth voxel output of the terrain for most stuff with either wfc or noise for detail on rougher areas

    • @ZephrymWOW
      @ZephrymWOW 2 года назад +5

      Use layers of WFC. Im working on a game that you start as a quark and the cause / effect generates a playable universe where you can "control" anything. But WFC is not "slow" just stop trying to do everything in a superfunction. break up your 1 WFC into 50 different smaller ones and only run them as you actually need them. I am able to process literally TB worth of data like this in real time. Theoretically scaling up to PB via cassandra.

  • @nix3l_
    @nix3l_ 2 года назад +143

    i remember going down the wave function collapse rabbit hole a while ago, i was surprised at how ingenious it was

  • @adrycough
    @adrycough 2 года назад +7

    c++ has way too many language features and semantics... i swear to god every time i look at c++ code, it looks like a completely different language with all the different unnecessary keywords and their nuances. Makes me want to start a blog so I can rant about how based the C language is, despite my love for objects.

  • @ratio6677
    @ratio6677 2 года назад +18

    i didn't understand a single thing because all of this is way above my level, but i still watched the whole thing because good music and code flashing across screen

  • @Sushant-ot1fp
    @Sushant-ot1fp 2 года назад +84

    This guy is the reason why Google is getting mad over their employees

  • @MasterHero10000
    @MasterHero10000 2 года назад +33

    jdh Is an Indie GOD Developer. You keep impressing me with each and every single video that comes up.

  • @anispinner
    @anispinner 2 года назад +7

    Brain Collapse Function

  • @sirflimflam
    @sirflimflam 2 года назад +62

    I spent some time with this algorithm myself. It's deceptively simple once you understand what's going on but man when you start getting into the third dimension the thing bogs down hard. Hard enough that I'd probably advocate for pregenerating many random iterations from it in development instead of generating it during end user gameplay.

    • @jdh
      @jdh  2 года назад +30

      yeah it can get very slow, especially for larger pattern sizes (size 3 -> size 5 more than doubles the time to process each pattern 😬). I've tried parallelising it without success in making it noticeably faster, but pregenerating is definitely a good solution, maybe even storing many partially-collapsed datasets and then doing the last bit of process on demand and with a little bit of randomness.

    • @newtonbomb
      @newtonbomb 2 года назад +3

      Isn't that a bit of the excitement that comes along with the thought of quantum computers? When we can cost effectively compute and render 3+ dimensional wave collapse algorithms in real time the kind of expansive interactive digital content we will be able to create will be WILD.

    • @tendies
      @tendies 2 года назад +1

      @@newtonbomb That is some great insight

    • @newtonbomb
      @newtonbomb 2 года назад +1

      @@tendies Tbf, I'm fairly certain its not an original thought lol. I can't remember for sure, but I vaguely remember reading an article somewhere a couple years ago about the unique possibilities for applications of quantum mechanical computational systems beyond just search algorithms like Shor's or cryptography that is typically discussed, and the usefulness of realtime higher dimensional wave collapse algorithm computation is the one that really stuck with me. Of course what I'd latch onto is how it could help make better games lol

  • @BenDol90
    @BenDol90 2 года назад +31

    Can you do a video explaining why you abandoned the ECS in favor of the standard OO approach? From my understanding you can have both with a Component?

  • @stuin01
    @stuin01 2 года назад +28

    For a second there I thought you were going to say "I need a physics engine and the best way to do that is from scratch. So here's how I implemented quantum mechanics..."

  • @ClokworkGremlin
    @ClokworkGremlin 2 года назад +12

    Wave Function Collapse has actually existed for decades. Age of Empires and Starcraft both used a similar technique in their map tile selection. It just hadn't been named until a couple of years ago.

    • @The-python-guy
      @The-python-guy Год назад

      I'm making a AOE style game and use Perlin noise. Because IM better

  • @R4ngeR4pidz
    @R4ngeR4pidz 2 года назад +3

    The non-descriptive template parameters with the comments describing what they are made me cry.. why not just name them something similar to that
    TYPE,
    DIMS (maybe even DIMENSIONS)
    PATTERNS,
    BITSETS ?

  • @Assassin_Droid
    @Assassin_Droid 2 года назад +25

    I can't even make a start menu and this guy is using quantum physics...

    • @shiftless215
      @shiftless215 2 года назад +5

      He started somewhere just like you did so if you work long enough you can get here too

  • @theseusRJ7
    @theseusRJ7 2 года назад +4

    Haha, I like your magic words, funny man

  • @petermuller608
    @petermuller608 2 года назад +19

    I love your style if presentation. Judging from your previous videos I expect you going down this rabbit how and designing your own quantum computer doing wave function collapse on breadboards :P

  • @JellySword8
    @JellySword8 2 года назад +5

    Sounds simple enough, now to teach it to middle schoolers in Scratch

  • @Davi_Dash
    @Davi_Dash 2 года назад +2

    Stop making diss game look so pretty is making me fell guilty for using engines.

  • @porx
    @porx 2 года назад +10

    It's nice to see more progress since the serializer stream. I've been looking more into C/C++ since then, but concepts (the C++ thing, not concepts as in "ideas") still confuse me. Looking forward to the next video in two months!

    • @evannibbe9375
      @evannibbe9375 2 года назад

      Are you talking about operator overloading or templates?

    • @katto1937
      @katto1937 2 года назад

      If you mean pointers and all the other abstract concepts you get used to them after a couple hundred lines of code, try it :)

  • @glowiak3430
    @glowiak3430 2 года назад +2

    Only what can I say it's that C++ code looks so much worse than C code.

  • @kelyncrandall7452
    @kelyncrandall7452 2 года назад +2

    14:00 "the ECS hurt more than it helped..." I'm curious, what did the refactor involve? What about the ECS made it difficult to work with? Did you end up removing it entirely?

    • @truefaceofevil
      @truefaceofevil 2 года назад

      Also curious about this - and also what the new implementation looks like

  • @av3stube480
    @av3stube480 2 года назад +2

    I think this algorithm could quite easily be modified somewhat to dictate the overall shape of the entire map by modifying the function that chooses which pattern to collapse a cell into.
    Say you want to create an objective for a dungeon map (the dungeon map is just a full size image like the ones you generated), and want it to be somewhere in the middle. You can simply look at the distance from the map border when looking at a cell to collapse, and make it so that the further away from the border it is, the higher the chance for it to collapse into the objective. You could even make a minimum distance from the border to become a particular type of cell.
    You could also overlay a noise map onto the entire grid and vary the chance of a cell's collapse based on the value of the noise map in that spot.
    Imo, that would be really interesting and (should be) possible to program.

    • @haha71687
      @haha71687 2 года назад +1

      I'm working on a roguelike shooter and we're doing that by doing 2-3 levels of WFC generation. Each level defines the tileset/example bitmaps for the level below it.

  • @MagicThanos7
    @MagicThanos7 2 года назад +2

    I'm starting my first year at university in a couple of months and I have no clue what the things you said mean. I'll come back to this video again when I know more stuff and see if I can understand lol

  • @hahafunnymen11
    @hahafunnymen11 2 года назад +2

    I understand the link between the real Wave Function but doesn't it have more similarities with a constrained random walk?

  • @its_fzx5275
    @its_fzx5275 2 года назад +4

    hey jdh!
    your videos are aewsome and insipiring,
    I have always wanted to tinker with a lot of the stuff regarding computer science such as the stuff you do on this channel but a big problem I usually face is the lack of math knowledge
    and for me a 16 yo guy these stuff can seem aggravating so can you tell where and how can I learn the neccessary MATH needed for CS?
    and THx

    • @null6482
      @null6482 2 года назад

      Same bro (im so bad at math)

  • @luckybutunlucky8937
    @luckybutunlucky8937 2 года назад +3

    No shit thought this was awesome. The best I was ever able to procedurally generate was reminiscent of the game of life rules to generate different things.

    • @inklingboi8431
      @inklingboi8431 2 года назад +2

      cool! I think thats called cellular automata?

    • @luckybutunlucky8937
      @luckybutunlucky8937 2 года назад +1

      @@inklingboi8431 Yeah except I was using the rules to generate walls and places to put npcs.

    • @inklingboi8431
      @inklingboi8431 2 года назад

      @@luckybutunlucky8937 Nice! that reminds me of when i used it for maze generation

  • @JohnnySix
    @JohnnySix Год назад +1

    12:19 Did you code a visualisation to visualise coding. Very cool - you made the coding part just as compelling as the visual as it was easy to follow along.

  • @slothinahat
    @slothinahat 2 года назад +3

    OMG he uploaded

  • @hugo-garcia
    @hugo-garcia Год назад +1

    So are you saying that a game works just like our real world ? What if our reality is actually a game been running on a quantum computer megastructure ? What if the speed of light is actually the clock speed of these megastructure? So that is why this is the speed limit. Then maybe that is why gravity makes time for slow because more mass to process makes the simulation run slower. So gravity is what happens when the frame rate drops.

  • @tandex3414
    @tandex3414 2 года назад +2

    it's great that you are not using any game engine

  • @agent-33
    @agent-33 2 года назад +2

    Man... the amount of time to practice coding until he reach that level is probably insane.

  • @Trupen
    @Trupen 2 года назад +1

    Awesome video :D

  • @kier_eli
    @kier_eli 2 года назад +1

    It is not really quantum physics, the code doesn't even use complex number or Schrodinger equation.
    They just called it Wave function collapse, but it has nothing to do with waves or quantum state function collapse.

  • @eppiox
    @eppiox 2 года назад +2

    As someone whos been doing code maintenance on a project they did not start I see this as nightmare fuel

  • @almahnak12
    @almahnak12 2 года назад +2

    When programmers stack more words onto something like "Wave Function Collaspe algorithm", I can't tell if I understand more or less

  • @chopkeys
    @chopkeys 2 года назад +3

    NEW JDH VIDEO LETS GOOOOOOO

  • @alexandernyberg8668
    @alexandernyberg8668 2 года назад +4

    Fun fact: jdh is legally obligated to bring up Minecraft at least once per video

    • @jdh
      @jdh  2 года назад +5

      it’s in my contract!

  • @jasoneve
    @jasoneve 2 года назад +4

    I've never seen wave function collapse before, this is so cool!

  • @38abrahams
    @38abrahams 2 года назад +1

    Wave function collapse? Oh yeah, super easy! [opens vim]..

  • @Logan-nz5jk
    @Logan-nz5jk 2 года назад +13

    Your game is really coming together! It looks amazing already and I can’t wait to see what else you have to implement and the furthering of your terrain generation process.

  • @quatricise
    @quatricise 2 года назад +2

    Do you think you could estimate how long this whole algorithm took to create? I'd really like to know whether i should even attempt coding something like this for fun, given that i'm a relatively noobie programmer.

  • @helio6839
    @helio6839 2 года назад +2

    If it fails, just try again until it doesn’t fail. Works every time.

  • @graydhd8688
    @graydhd8688 11 месяцев назад +1

    I tend to prefer levels design that's not randomly generated, but I have a black and white pixel tileset I had spent weeks creating a ton of cool and complicated geometric designs and structures and variations. Kinda got stuck moving on to creating actual level design with them though, but I think I'll use WFC to construct a bunch of potential level layouts- and I'll take the most promising ones and build more handcrafted levels again from there! I went wild creating a ton of elements I don't have a specific plan for, but I think this algorithm will at least present me with combinations I may not have expected that I can make what I want out of!

  • @kraxen72
    @kraxen72 2 года назад +3

    really interesting, however i did not understand too much of the implementation ( i am in highschool ). i have done some algorithms but none this difficult.
    could you recommend any resources on math/programming that could help me understand algorithms like this? Thanks.

    • @_PranavDesai
      @_PranavDesai 2 года назад +2

      Discrete Math, Differential and Integral Calculus and Statistics+Probability is the way to go.
      Don't overburden yourself with these concepts too much. Learn the basics and if there are courses in your high school, take them up. Have a basic working knowledege because you can always learn more and dive deeper once the situation demands.

    • @fghjkcvb2614
      @fghjkcvb2614 2 года назад

      Look at Sudoku solvers for a simpler implementation of the same Idea Hope that helps ^^
      Also doing the steps by hand with some simple examples always helped me understanding complex math in university

  • @dvgen
    @dvgen 2 года назад +3

    Very nice. I'm also very onboard with the plant loving robot theme!

    • @jdh
      @jdh  2 года назад +3

      glad you approve! when’s the next devlog coming out though 👀

    • @dvgen
      @dvgen 2 года назад +1

      @@jdh Soon™. I got a little delayed taking a second job this summer. Also I get distracted by the technical details, so it is going to have to be a couple of videos. I'll link back to your video one when I talk about implementation.

  • @nevokrien95
    @nevokrien95 2 года назад +1

    U can use wave functions to define a probabilty space where the player mive in. Player measurment chqnges the map

  • @chriswaller8780
    @chriswaller8780 2 года назад +1

    Annunciation will help your viewers' comprehension immensely

  • @jamesmorrison9893
    @jamesmorrison9893 2 года назад +1

    Jdh is one of those drop what you are doing and watch the new video type RUclipsr

  • @haha71687
    @haha71687 2 года назад +1

    Wait, do you calculate entropy and collapse a pixel or a 3x3 overlapping area?

  • @Stafford674
    @Stafford674 2 года назад +1

    This is intended as friendly feedback. Speak more slowly. Give your audience a chance to absorb your ideas.

  • @DerSolinski
    @DerSolinski 2 года назад +1

    Wow never heard before that somebody would get rid of a ECS before that's a first.
    But I guess it can be cumbersome.

  • @AwesomeGames56
    @AwesomeGames56 2 года назад +1

    I have no earthly idea what's going on in this video but I still somehow find it interesting. I really love this type of game and seeing the actual work that goes into making it happen makes me even more interested in it. Can't wait to see the finished product.

  • @wearr_
    @wearr_ Год назад +1

    I watched this first when I was incredibly sick, watched it again now and it made just about as much sense

  • @elin4364
    @elin4364 Год назад +1

    This is so cool! Where did you get the idea to use wave function collapse for level generation like this?

  • @marti.2718
    @marti.2718 2 года назад +1

    whats the vim color scheme called?

  • @eitantal726
    @eitantal726 2 года назад +1

    back in the day, for terrain generation, I used plasma algorithm (aka Diamond-square). How does this one compare?

  • @IDunoXD
    @IDunoXD 2 года назад +1

    Is it possible to implement smooth camera rotation in your game? Like in Fez when you change the perspective of the world. It would be quite cool visual feature to add.

  • @mfucek_
    @mfucek_ 2 года назад +1

    Just a suggestion regarding the player visibility through walls. If you are making a mask of the player, why do the extra step of raycasting when you can just overlay the player sprite over everything with a bit of transparency.
    Also, awesome vid, learned a lot! :)

  • @skryvvara
    @skryvvara 2 года назад +2

    what color scheme do you use? it looks awesome

  • @CedarGroveOrganicFarm
    @CedarGroveOrganicFarm 2 года назад +1

    This might be a huge task, but the blinking light on your characters head, it would be an amazing way to ray tracing / some kind of ambient lighting to add some immersion to your levels, right now his headlight seems a bit too distinct from its surroundings

  • @sirberg4599
    @sirberg4599 2 года назад +2

    i like your funny words magic man 😂

  • @timothy6966
    @timothy6966 2 года назад +1

    So happy I subscribed to you a week ago.

  • @JustATempest
    @JustATempest 2 года назад +1

    I need an option to wish list the game on steam.

  • @aSingularPhoton
    @aSingularPhoton 2 года назад +1

    So you’re just future future proofing

  • @Stich270
    @Stich270 2 года назад +1

    very cool. I wonder if you can combine different Maps to get some more interesting stuff.

  • @deusexmaximum8930
    @deusexmaximum8930 Год назад +1

    Is that yume Nikki Ost at the beginning?

  • @star80doessdastuff
    @star80doessdastuff 2 года назад +1

    Bad summary: *complex circuit board generator*

  • @davidfails2866
    @davidfails2866 2 года назад +1

    You have officially made me feel dumb… I needed this. Thank you.

  • @akemap4
    @akemap4 2 года назад +1

    what is the font you are using in your terminal? it's so beautiful.

  • @8kubera
    @8kubera 2 года назад

    This is awesome. Could you articulate your words better, I can't understand some things you say. Not out of hate or spite, just a minor hindrance to brilliance.

  • @sippingtexastea
    @sippingtexastea 2 года назад +2

    It's always a good day when jdh uploads

  • @abludungeonmaster5817
    @abludungeonmaster5817 2 года назад +1

    aye. WFC gives great results. The name is stupid though.

  • @RGBReact
    @RGBReact 2 года назад

    stopped watching when i saw you are a computer programmer who uses an apple... lmfao. channel blocked.

  • @Blue-Maned_Hawk
    @Blue-Maned_Hawk 2 года назад +1

    this seems unnecessarily complicated.

    • @steven11101010
      @steven11101010 2 года назад

      Much easier to adopt an existing algorithm and feed it parameters to produce an acceptable output than try to develop an algorithm that does something similar from scratch. Better question is why develop your own game engine since you could do the same? I guess the goals of the exercise might be different - to gain a deeper learning of underlying concepts by building your own engine.

  • @owfan4134
    @owfan4134 2 года назад +1

    *A R E Y O U **_C L I C K I N G_** I N V I M ?*

  • @Sakari_369
    @Sakari_369 Год назад

    You have a pretty coding style. I made a noise when you started using templates, though.

  • @wholesome8691
    @wholesome8691 2 года назад +1

    I like your words magic man

  • @markdatton1348
    @markdatton1348 2 года назад +1

    I've only used OMP in Fortran, so maybe its different in C++, but don't you have to specify private and shared variables in the directive? Is it done automatically in C++? For example, in Fortran I would need to declare that i is private and whatever the struct or class or whatever thats being modified would need to be shared, in order to see an actual speed up.

    • @12345origamimaster
      @12345origamimaster 2 года назад

      In cpp default modifier for class is private and for struct is public, except for that they are exactly the same

  • @NohBran
    @NohBran 2 года назад +2

    First

  • @_modiX
    @_modiX 2 года назад

    If you don't want to explain it fully, why even showing the code? Just link your GitHub and explain the project in rough, it would be easier to follow.

  • @hansjovis6634
    @hansjovis6634 Год назад

    I always wondered what the fuss is about the Wave Form Collapse algorithm. Isn't it the same as the Breadth First Search algorithm? As in: you're searching the state space for a state that satisfies the constraints you put on it?
    I get how the quantum physics framing of it is enticing, but to me it sounds like old wine in a new package. Unless I am missing something crucial.
    It's still a great algorithm, but with all this hype I feel like we're reinventing the wheel.

  • @zvxcvxcz
    @zvxcvxcz Год назад

    Wait... is that rand I see? Since random numbers are sort of fundamental for what you're doing here I really hope that isn't what I saw. Consider the PCG library for random numbers instead.

  • @outcast-festival
    @outcast-festival 2 года назад +1

    honey wake up new jdh video just dropped

  • @alexisrodriguez7127
    @alexisrodriguez7127 2 года назад +1

    I find it really interesting that you went back to oop approach after you initially started with it then transitioned to entity component. Makes me realize why its there in the first place

  • @smalllixin
    @smalllixin Год назад +1

    Unbelievable C++ skill ever seen...

  • @smellthel
    @smellthel 2 года назад +1

    You are one of the greatest coding RUclipsrs of all time. You make your videos extremely interesting and I learn a lot from them. Legend.

  • @user-account-not-found
    @user-account-not-found 2 года назад

    This is cool and all but I still don't see how it will produce results that are as fantastic as a hand rolled Algo.
    I feel like we come up with these concepts that solve a problem then find additional concepts for the solution to solve and it's not really it.
    It's like I can cut steel with a blow torch but do I need a blow torch to slice bread?
    Interesting is random in the sense of surprise not random in the sense of normalized noise.

  • @sakkarinsawad548
    @sakkarinsawad548 2 года назад

    any of them even if they all are bit similar. But I can tell few tNice tutorialngs changed and also I forgot almost everytNice tutorialng so I guess Im gonna start

  • @starlord0208
    @starlord0208 2 года назад +1

    OwO Whar is color theme?

  • @grantwilliams630
    @grantwilliams630 2 года назад +1

    I've been working on an implementation recently as well. I decided it would be interesting to take the famous dancing links (DLX) sudoku solver and attempt to use it for constraint solver in WFC

  • @jameender
    @jameender 2 года назад +1

    Why do you use raw iterator for loops instead of `for (auto element : iterable)` ?

    • @jdh
      @jdh  2 года назад +2

      for the Bitset-s, it's because they have two iterators, {begin, end}_on() and {begin, end}_off() to iterate all of the set and unset bits respectively. it should probably be improved though to something like for (auto index : bitset.on()) though!

  • @Heynmffc
    @Heynmffc 2 года назад

    Welp… I think I’ve done it. I’m not smart enough for this video. That or I’m too high i truly can’t tell

  • @giancarlomanalo8624
    @giancarlomanalo8624 2 года назад

    I did all of tNice tutorials for years in Protools but watcNice tutorialng tNice tutorials for soft soft I feel like a stroke victim in a hospital bed learning to speak

  • @chelonianegghead274
    @chelonianegghead274 2 года назад +1

    you should call it robotanist

  • @077tutti
    @077tutti Год назад

    blurred coding in the back is seriously distracting. You need a strobe warning for this video just because of it lol

  • @NavoNova
    @NavoNova 2 года назад +1

    This is awesome, love the series! I was wondering - you mention you wrote an 'ultra fast mesh instancer' - in terms of speed/optimisation of code is this something you simply learned over time or are there key principles that you follow when writing your code to make sure you are always writing optimally? Cheers!

    • @kilian9448
      @kilian9448 2 года назад

      @jdh I also want to know

  • @pruthviksheth2448
    @pruthviksheth2448 Год назад

    From where did you learn all this stuff? Can you make a course for beginners?