Coding Marching Squares

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

КОМЕНТАРІ • 369

  • @SebastianLague
    @SebastianLague 4 роки тому +658

    Really enjoyable video (as always)!
    And thanks for the mention :)

    • @TheCodingTrain
      @TheCodingTrain  4 роки тому +80

      Thank you Sebastian!!

    • @MohkKh
      @MohkKh 4 роки тому +9

      you are rock

    • @charleswiseman5727
      @charleswiseman5727 4 роки тому +9

      All the celebs in the comments section wow

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

      I dont mean to be offtopic but does any of you know of a tool to get back into an Instagram account??
      I was stupid forgot the login password. I would appreciate any tricks you can give me!

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

      @Raylan Decker i really appreciate your reply. I got to the site thru google and I'm waiting for the hacking stuff atm.
      I see it takes quite some time so I will get back to you later when my account password hopefully is recovered.

  • @Jabrils
    @Jabrils 4 роки тому +145

    Amazing. AMAZING!!!

  • @nqkhanhskewb
    @nqkhanhskewb 4 роки тому +279

    Hey you mentioned Sebastian Lague's video in description!! I love his coding adventures

    • @MAP233224
      @MAP233224 4 роки тому +12

      his latest video is sooo good

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

      Yessss

    • @Kitulous
      @Kitulous 4 роки тому +3

      Who doesn't!

    • @CrashingThunder
      @CrashingThunder 4 роки тому +7

      Same! It's like a experiencing a condensed version of all the fun parts of programming without having to tear your hair out when you encounter a bug.

  • @Lep_19
    @Lep_19 4 роки тому +103

    I really hope there are people here that haven't yet heard about Sebastian just so that they may now have the pleasure of finding his content for the first time. This channel and his are what keep me invested in programming as a form of expression.

    • @georhodiumgeo9827
      @georhodiumgeo9827 4 роки тому +3

      What I would give to watch him figure out clouds for the first time again.

    • @rubenadema1094
      @rubenadema1094 4 роки тому +4

      You should watch ThinMatrix too!

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

      @@rubenadema1094 I do! I love watching how his lifestyle influences his work ethic, its really inspiring.

    • @JamesThompson-zu3bq
      @JamesThompson-zu3bq 10 місяців тому

      @@rubenadema1094ooo thanks for the suggestion!

    • @JamesThompson-zu3bq
      @JamesThompson-zu3bq 10 місяців тому

      @@georhodiumgeo9827omg i still haven't watched the cloud one yet. You've just given put it at the top of the list

  • @Jabrils
    @Jabrils 4 роки тому +67

    Man. I am back for more because this format is so refreshing. 😌

  • @sinom
    @sinom 4 роки тому +54

    "I must align all of the spacing here"
    My teacher in highschool HATED when I always did that. I still do it to this day

    • @zebratangozebra
      @zebratangozebra 4 роки тому +4

      My aversion is spacing, to me spacing elongates code lines and makes them harder to read. Anytime I am trying to understand some bit of someone else's code I first delete all unnecessary spaces. Spaces bad.

    • @sinom
      @sinom 4 роки тому +9

      @@zebratangozebra for me personally it makes it a lot more readable, as i then can often look at a block of similar code as a whole and see what's going on in it, instead of having to go through every line separately. For small stuff like this it usually isn't a problem, and i don't always do it, but when the lines get really long, i do it a lot.

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

      @@zebratangozebra in many coding languages I think you can have a code internal line break. And with those you can make pretty consistant looking code with some automatic formatting tools. E.g. they make you use shorter lines, or format it like that.
      Yet in principle you could still discuss about if you want to have spaces or not at all. I think I'd opt for spaces. Easier to read

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

      You guys are going to love Python then!

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

      @@PixelThorn Python is too slow.

  • @tzisorey
    @tzisorey 4 роки тому +41

    "Is there a more efficient way than writing a line of code for each possibility? Possibly"
    vs
    "We're writing it this way, not for efficiency, but for understanding"

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

      Writing it this way is the most efficient because it allows you to use a switch statement. You can find a way to write it with fewer lines of code but that won't make the code faster since you will undoubtedly require several nested "if" statements which are much slower than one big switch statement.

    • @jensBendig
      @jensBendig 4 роки тому +7

      Instead of a switch, I prefer an Array of 16 Objects that hold 16 solutions...that is easy, quick and easy to understand. Great Video, b.t.w.

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

      @@jensBendig If you were going to go down that route a hash-map would likely be better since you could map each value to a solution. either way you are going to have to declare all those solutions at some point, it's just a matter of whether or not the switch is making the code less readable. (In a better editor such as vscode you could just hide the logic in the switch statement too which could be a nice solution)

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

      @@bradfin12 I like you. At least I like this attitude. Terry Davis made an interesting remark about Switch statements, too. Not sure if it applies in something as high-level as Processing or the JS-Processing, but whatever.

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

      @@rabbitcreative Im not 100% sure but i think Davis would prefer fewer lines of code. Davis had two goals in mind when writing code: beautiful simplicity, and small file size. When doing large switch statements that process every case in the most efficient way is a somewhat ugly way to code and can increase file sizes which doesn't matter to most programmers but it would certainly matter to davis who wanted a divinely lightweight operating system.

  • @tomd1969
    @tomd1969 4 роки тому +42

    I followed along with this. I've been "coding" as a hobby since 1983 (when you had to do a little coding to even get a PC to work). I gave up trying to keep up with the latest programming languages around the late 90s - early 2000s, although I am a C# fan (don't hate me--it's cheap). I'm a salty old man, now, but I appreciate your content. You make programming fun again.
    This one was especially fun--Marching Squares/Cubes is a concept I'd never heard of. Still, the potential applications (such as the mentioned Sebastian Lague's excellent series on cave generation) interested me.
    I tried doing some of the further challenges here and figured out for myself an algorithm for linear interpolation. It took me two days, but it was great fun. I had so much fun that I joined. Thanks, Dan.

  • @RobLang
    @RobLang 4 роки тому +22

    After a long week at the keyboard hammering out web code for hospitals, I love these videos to relax my brain. Thank you, sir.

  • @hinalkiri5915
    @hinalkiri5915 4 роки тому +5

    The happiness with which you code is a life goal

  • @ast_rsk
    @ast_rsk 4 роки тому +33

    This was crazy cool! I love that you managed to fill in all the examples as you mentioned them-- this is a really high quality video!

  • @CptCredible
    @CptCredible 3 роки тому +3

    So glad I'm not the only one constantly looking up switch statement syntax in different languages.

  • @FiveArc
    @FiveArc 4 роки тому +142

    I loved the part where you made all the spacing even

    • @TheCodingTrain
      @TheCodingTrain  4 роки тому +69

      Thank you for accepting me.

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

      I loved the part where, shortly after, it was all destroyed by the state line. I'm not a good person :)

    • @TheGreatAtario
      @TheGreatAtario 4 роки тому +3

      @@TheCodingTrain I'll go farther than that. I'll say you're right and the people who don't do this are WRONG

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

      Not only that. I guess estetics can also have an impact on readability. Especially when having long fragments or even those that break lines within expressions. Those are kind of making a mess readible. Just wonder how they would look like if you mix in random spacing. Sometimes yes sometimes not. errr pretty sure I wouldnt like it

    • @MaxMustermann-ey5sc
      @MaxMustermann-ey5sc 4 роки тому +1

      One time I had another dev almost screaming at me for doing that 🤣🤣🤣 (I am still doing it :) and blabla you folks 'its harder to maintain', sure, but it's so much easier to read!! )

  • @khalidsakka8020
    @khalidsakka8020 4 роки тому +4

    I love how everyone else in the comment section liked the video as much as i did. really brilliant how well made it is.

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

    boy that audio switch at 8:07 spooked the hell out of me. Great vid!

  • @jcasp0947
    @jcasp0947 4 роки тому +8

    this has gotta be possibly my fav vid of yours, this is so insanely cool, especially all the different variations of visualizing it

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

    I watch your videos for over 5 years, I love your videos, your didactics, you concern for explain, etc. please don't stop it.

  • @cabra500
    @cabra500 4 роки тому +3

    I kind of liked when the mic was in the table and I could hear more of the background noise. It made me feel like I was there in the Cabana too. Great video, as always!

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

    NGL, i used to always come up to your videos while doing some coding searches and brushed off cos, well, i code(at least try to LOL) in c# and tbh never ever even have taken a look at java/JS(yeah, pigheaded , i know)
    oh boy was i wrong, now i am hooked, never found someone that explains hard concepts, and make it so easy to understand like this
    thank you sir =)
    cheers from Brazil

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

    WOW WHAT A VALUABLE VIDEO AND I LEARNT MANY THINGS FROM THIS VIDEO AS WELLAS FROM THIS CHANNEL.
    I WOULD LIKE TO RECOMMEND THIS CHANNEL TO MY CODING FRIEND

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

    I wish UA-cam had a option to like a video multiple times because this video truly deserves it.

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

    Literally my favorite UA-cam personality. Thank you for being awesome!

  • @rlenclub
    @rlenclub 4 роки тому +8

    this is probably the most optimal setting for any job involving sitting in-front of a computer

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

    This is the coding video we need, where every problem is explained from basics. I love it. Thank you for sharing knowledge and making it wholesome :)

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

    Gotta be the most wholesome coding UA-camr

  • @MisterYoupinet
    @MisterYoupinet 4 роки тому +3

    First, I started with GML.
    I saw your name on a youtube channel, I looked one of your vid. Two. Three, four, five, and so on. the addiction begun.
    I was planning to make some short video game (and a little bit of teaching). I'm actually trying to do art, "paint", fractal, and music with processing, and most of all,
    you made it fun to me.
    You're god teacher, thanks you. And great kisses from Belgium !

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

    Daniel, I follow you since 2016, I found out about you at the start of my most productive phase of my life, first year of the university, you tought me so much, without you I would not be the same person whom I love. Great work as always, thank you so much.

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

    This is the best thing I have seen all year. We were taught this in our Geometry class but never really got to work with it

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

    Thank you so much for existing, your videos, your voice, your way of explaining and everything in between is so calming and wonderful. Thank you for the things you do for this community.

  • @sohamkarandikar6726
    @sohamkarandikar6726 4 роки тому +19

    Sometimes I feel Dan gets progressively wiser as his beard grows

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

    I love this series please continue it

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

    I love these coding in the cabana videos because you really get in depth into the algorithm.

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

    I have also recently started aligning my code by argument. It makes the intent so much clearer and much easier to figure out why my code is broken. It looks beautiful, thanks for another awesome video!

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

    the power of numbers binary, is very good

  • @vorpal22
    @vorpal22 Рік тому +2

    Another great video, and I'd never heard of Processing before now. It adds a lot of nice stuff to Java to make it easier.

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

    so glad I found this channel, thanks for making code feel more accessible!

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

    Thank you for making videos like these. They're always about something new and interesting to learn while not being too large in scope. They also make me really want a cabana to code in.

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

    I'm not sure of the efficiency of this, but for determining where to draw lines, if we treat the square as the bits (in the order we would read them), so topleft, topright,bottomleft, bottomright. then the lines inbetwee also as binary numbers, in the order top,left,right,down, then you can treat
    1000 (topleft corner only) as connecting the edges top and left (1100)
    0100 (topright only) connects top and right (1010)
    0010 (bottomleft only) connects bottom and left (0101), and
    0001 (bottomright only) connect bottom and right (0011)
    SO to get to the point, if we treat every sequence of corners as their individual parts, then convert those parts into the edges they connect and xor them together, you get which edges to connect
    for example 1100 would be the top two edges, and they should connect left to right (ie 0110), so we can decompose them into
    1000 as 1100 and
    0100 as 1010, then bitwise xor 1100 with 1010 to get
    0110 which is what we expect.
    Hopefull this made sense.

  • @Pedro-dn3sg
    @Pedro-dn3sg 4 роки тому

    This is so awesome! I love your videos, somehow they make me relax after spending hours coding for work. The way you make math, geometry and coding so approachable and fun is unique, congrats!

  • @DMike92.
    @DMike92. 2 роки тому

    Great great video among all marching square videos I watched!

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

    I miss coding in the cabana
    (22 February 2023- I still miss the cabana)

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

    Geometric algorithms are always great to watch and to understand. Not only to be used for a single purpose. They pop up pretty much everywhere. And many have been invented years and years ago.Almost forgotten maybe even. Nice intro :-))

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

    You're like the Bob Ross of programming. Great video on a fascinating subject, stay gold!

  • @osys7832
    @osys7832 9 місяців тому

    I've just discovered you man and your videos are just soo perfect. Guess what? Our teacher gave an assignment about this but in 3D and implement with cuda 😅

  • @romain-up3ce
    @romain-up3ce 4 роки тому +10

    the coding train 23:35 : makes the canvas full screen
    the youtube compression algorithm : *AAAAAH*

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

    Made my day better

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

    you are so great!!! it’s perfect to learn about algorythms with you!! fun, inspiring, brain-opening! i love you!! ❤️🙌🏾

  • @marcelomafra
    @marcelomafra 4 роки тому +38

    24:41 An ant is locked inside the algorithm.

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

      i just checked the comments to see who else saw the ant and i saw this comment lel

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

      It's just a bug...

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

      Aren't we all?

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

      langton's ant

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

      yes, it's a test if you pay attention

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

    The 16 configurations I think could've been sized down to four configurations based on symmetry.
    1. No line: fig. 0 & 15
    2. One corner line: fig. 1, 2, 4, 7, 8, 11, 13 & 14
    3. One straight line: fig. 3, 6, 9 & 12
    4. Two corner lines: fig: 5 & 10

  • @daboffey
    @daboffey 2 місяці тому

    One alternative to using a switch statement would be to use a 16-element array of 6-bit integers. e.g. (using C/C++ as that is what I understand)
    const unsigned lines_to_draw[] = {000, 001, 002, 020, 004, 005, 040, 010, 010, 040, 012, 004, 020, 002, 001, 000};
    unsigned l2d = lines_to_draw[cuts]; // where cuts is a number representing the edges to cut
    if (l2d & 001)
    // draw line cutting off corner D
    if (l2d & 002)
    // draw line cutting off corner C
    if (l2d & 004)
    // draw line cutting off corner B
    if (l2d & 010)
    // draw line cutting off corner A
    if (l2d & 020)
    // draw horizontal line
    if (l2d & 040)
    // draw vertical line

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

    these are my favorite videos of yours

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

    Never be afraid to google the syntax for anything. Programming isn't syntax its understanding the problem given and being able to break it down into small parts and keep track of those connections. I haven't been programming for 20 years but i have been for 10 and I switch between languages constantly throughout the day (c#, java, js, sql, html). I google how to make a switch or a foreach everyday because theres documentation for that but there isnt documentation for your app. What i mean is as long as you figure out the logic you can always google the syntax or as long as you figured out you need a switch on a enum you can always look up how to write a switch and an enum for your language.

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

    Wonderful blocking in this video, I love how the OpenSimplex noise created a lot more spacious and separate areas. It would be amazing to see how this could be utilized the the creation of video game levels.

  •  4 роки тому

    the production quality is insane, very nice video! :D

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

    LOVED THE VIDEO (of course). I stopped formatting my code when those auto formatters appeared. I personally would rather turn them OFF, but the team would use it and then auto format any CUSTOM formatting out of existence. I blocks of code it's SO much more readable to line up equal signs, commas, parenthesis, etc. Your eye is able to pull out differences in the blocks quicker and the similarities will blend together creating less noise. I swear I need to write my OWN auto formatter... One of these days...

  • @samueleb.6739
    @samueleb.6739 4 роки тому

    Dan, we really need you to start a series of video about shaders and shading languages. I keep looking around on the internet but nobody seems to even come closer to your ability to teach.

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

    I realised the moment you explore the idea of colour you could easily create a light + shadow system,
    Also the idea of a lava lamp might work from what you showed at the end. Iv been wanting to imagine how to make a lava lamp work for a long time
    some very cool stuff :D always a treat!

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

    Wow your new video very pack with information and still have a same average of video length duration. Cool. Thumbs up

  • @Caleb-zj9xi
    @Caleb-zj9xi 4 роки тому +3

    I used a similar algorithm when I was coding a “random roads” visualization. It was a square grid, North was 1, East was 2, South 4, West 8 and the binary number represented which of 16 possible tiles to place. I had never heard of marching squares, though! Took me weeks to think of that solution.

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

    Holy 5&!# I was literally looking up your videos yesterday trying to build this! You are brilliantly and cleverly convenient!

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

    That getState function would have been a great opportunity for some bitshifts and bitwise OR (i.e. return a

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

    Your videos are awesome! You're awesome! I learned to program with you like 2 years ago, loved it!
    Keep doing your thing!

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

    the algorithm for connecting the middle points for only one and zero can be reduced to 4 case:
    the 2 special cases where you have to draw 2 lines: when there are 2 1s that are on the same diagonals (cases 5 and 10).
    the case where you have to draw none(case 16)
    In every other case, find the 2 middlepoints between a 0 and a 1 and connect them.
    so the pseudo code would be:
    find the number of "alternating" midpoints:
    if 0: done
    if 2: connect the 2
    if 4: check whether it's case 5 or 10 and draw accordingly

  • @JDogA-uh6mn
    @JDogA-uh6mn 4 роки тому

    So happy to see another one of your videos :)

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

    That's beautiful, I'll try playing with this code ! Thanks a lot for your work !

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

    What a sweet little programming spot. I'm super jealous!

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

    loving the vibes from the Cabana

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

    I haven't watched any of your Coding in the Cabana videos yet, but I'm getting some serious Bob Ross vibes from this video in particular :P

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

    Oh come on!! This is too amazing to not use now AAA! I just finished using perlin noise for an island height map but this.... NOOOO back to the drawing board ty ty

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

    Very good video, i made a implementation in java directly using the Graphics2D ,turned out to work just as well.

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

    Thanks for this! You're the best. You're explanation of marching squares was a great help to me :)

  • @idrisShiningTimes
    @idrisShiningTimes 4 роки тому +3

    I have only one word to say for this video:
    *Mesmerizing*
    Awesome video as always Dan! Liked and Subscribed!

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

    You don't need a fancy function to get the binary state. It can be constructed in the same way ARGB values are:
    int binaryState = ceil(field[i][j])

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

      Sure but refactoring into a function makes the code more readable and more flexible for future changes - if you are worried about the overhead of calling the functions: its both negligible and the compiler optimizes it anyway, so you gain more than you lose (which is nothing).

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

    What would be really cool is finding a way to completely fill in all of the shapes created by marching squares, then treat the filled in areas as surfaces and use them in a video game. With something like that you could use something like OpenSimplexNoise and have it progress at a very slow rate to make a shifting changing maze.

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

      The values are already there? Make it so the player can only pass through points that have a certain magnitude :)

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

      @@callowaysutton Do you mean the grid intersections that you are using to create the marching squares, or do you mean that they can only pass through pixels that have certain values?

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

      @@scottbigbrain3944 Pixels of a certain value, the grid formed from the marching squares is formed from this as well too

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

      @@callowaysutton So if I understand correctly, you would only use the marching squares as visualizations, and use the pixel values from the noise to determine the surfaces? That would be pretty cool, though I do feel that you would need fairly high resolution of the grid in order for it to feel natural and align with the visualization of marching squares. There was this one guy who made a game with this (The Coding Train liked his comment), so I think that I might look at his code and see how he did it. The youtuber was leonlenclos.

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

    Amazing tutorial. I recreated this in python. For perlin noise I basically made the array and just add 0, -1 or 1 to the points, to either keep em at 1 or go to zero or go from zero to 1. Gonna figure out how to make a nicer version.

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

    Excellent as always

  • @akosbalint3485
    @akosbalint3485 4 місяці тому

    Thank you! Very nice explanation.

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

    The last smooth one was so satisfying! We’re using marching squares for planet generation in Space Chef but the creative ideas in the end makes me curious to refine it even more. Thanks a lot, great video!

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

    Very cool and clever algorithm! I love Coding in the Cabana, thanks for the video!

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

    This is so awesome!!
    Thanks for the great video :)

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

    Great video and great explanation. Thanks! :)

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

    A, B, D, C, etc are typically bad variable names because they are ambiguous. If you look at your code weeks later it may be a little confusing. Just food for thought!

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

    I love this guy. Thank you so much :)

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

    I love your energy

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

    The glorious return of Gloria! ❤️

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

    the interpolated one looks great

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

    Love the ProPublica shirt!

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

    Real great video and amazing how you did the coding...

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

      Just one problem that the open simplex noise code is not working ..... it is giving a static error

  • @123TeeMee
    @123TeeMee 4 роки тому

    I think the best option for shortening and performance enhancing the switch statement is to just use an array of line parameter values to look up, with index n being the 1st parameter of case n/2 and index n+1 being the 2nd parameter of that case (alternatively have all the 1st parameters in order, then all the 2nd). The fact that the cases are mirrored along the middle doesn't matter as the array can be hardcoded into one or two lines so its not shorter, and computing the reverse would be worse than having a bit more space allocated to the array. The array would act a bit like a dictionary/map of key:value pairs, except the index is the key -1. Edit: just realised that there are sometimes two lines, doesn't really matter, you can make the array twice as big and fit all the 4 parameters in there. If there's 1 line then the two other values in that section of the array hold value 0 and when drawing lines iterating through the array, just don't draw a second line if it would be inputting two zeros.

  • @Ali-RS
    @Ali-RS 4 роки тому

    Crazy cool! Thanks for this video :)

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

    to get rid of switch statement you need to make an array of a, b, c, d (points) and array of of their connections and each connection is four digits where first two digits are describing first line ans last two describing second line if it exists (we need max two lines), so state = getState(...)and p1, p2, p3, p4 = points[connections[state][0]], points[connections[state][1]] ..., then you need to validate p3 and p4 and then lines are ready(still much code but more elegant)

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

    *Cries in indexed map*
    Amazing video as always, thanks for all the content you make for us :)

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

    Nice explanation! As a suggestion: you can also make a video on dual contouring and explain the pros and cons with marching squared.

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

    You are the best teacher i have ever learned from :)

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

    Dude I just discovered your channel and you are amazing. Really great job and a video to enjoy. Thanks a lot!

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

    Nice video. I always like making the computer make stuff for me and showing it to me

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

    I love the ProPublica shirt!!

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

    Great teacher! Always with something fun for us!

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

    Love this! I may use this techinique in some indie game experiment one of these days

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

    Nice to see OpenSimplex going to good use as always!