I find these endlessly entertaining for some reason, so here are few bonus reasons why rocks float in the air (according to GPT-3, by OpenAI): - In the planet's gravity, rocks are heavier than air. But since there is no gravity in the air ~because it's not a planet~ the rocks float. - Some rocks, such as pumice have an air pocket in the centre. The air pocket creates buoyancy, which makes the rock float. - Rocks float in the air because they are not affected by forces such as gravity, which pull other objects downwards. - The rocks are not floating in the air, they are floating on the ground. - The rocks are caught in the updraught, causing them to float.
these seem like perfect theories made by the local population to try and explain the phinominom. All of them could be wrong, but it is that universe's universal mistery that every civilization has a different theory on trying to explain it. I love it!
I was trying to remember the word geo-stationary recently, thanks. But now that you've reminded me what word I was trying so hard to come up with, now I can't remember why I was trying to remember it.
omg- I love the idea of someone playing a game, looking up and seeing a rock. and a little clue icon pops up for more info and it just says "Rocks don't float in the air. They are too heavy for that" with no further explanation.
To be fair, There have been times where I've made something, its not worked as intended, but actually ended up being better than what I wanted to achieve, So Sometimes happy accidents happen.
9:48 love how he just calmly explains running into that kind of problem. I know something like that would've made me feel like I've fundamentally lost my grip with reality.
You are an inspiration yourself my man! I wish outside-the-box creators like you guys would find a common language, put their strengths into action and collab on something fresh.
Thank you! I've seen a number of your game engine programming videos, and find them really fascinating. I really need to make time to watch the entire series.
@@SebastianLague thank you! Every time I watch one of your videos I always think that’s exactly the kind of stuff I’d be doing if I had just used an engine instead of building my own! I can’t wait to do this kind of stuff in Hazel when it’s ready (almost there!)
Astroneer, Modded Minecraft, No Man's Sky (not sure on this one tbh), Space Engineers, Subnautica... all apply. -All- _Most™️_ use voxel grids to define terrain and marching cubes to render it. There are more examples, I'm sure, but these are the only ones that come to my mind.
Sebastian, you don't understand how much I look up to these videos as a computer science student. I am still in secondary school but you are the motivation that makes me code day and night. I recently presented an implementation of the TSA ant colony code to my class and it filled me up with happiness teaching something so fascinating. Seriously, please keep doing what you are doing, you are making a massive difference. Outstanding work. Thanks.
@Jim Boli, I totally agree and keep in mind that tutoring/teaching is something you can get paid for doing. That might be something of a end goal you will want to check into, if you find that you enjoy tutoring or passing along knowledge. Maybe you might want to try to be a professional educator (professor/teacher) of computer science discipline. I did tutoring for binary math and basic networking in collage. I have been looking to get back to that type of job ever since. Hindsight, should have done some teaching classes and/or equivalent certification for teaching/training. Supposedly, that does make it easier to land that type of career.
Just finished up my dissertation on naive surface nets for terrain - similar to marching cubes, having been looking forward to it since his first procedural video. You got this!
i like how you show people that there is never anything perfect first try in programming, because a lot of times people get frustrated with their project, because they think they are bad at programming and never considered that they should just try out and think of new ideas to tackle a problem. keep up the good work
WOAH WOAH WOAH!!! Let me get this perfectly straight: You comment something that is completely unrelated to the fact that I have two HAZARDOUSLY HOT girlfriends? Considering that I am the unprettiest RUclipsr worldwide, it is really incredible. Yet you did not mention it at all. I am VERY disappointed, dear elh
Yeah. I'm a good programmer. I know that. I've been programming for years, I understand a great deal of it including the concepts in most of these videos. I make my own games and I have a big project in the works myself. However, this guy's programming abilities always make me feel a bit inadequate. Then again, he's probably not as skilled at other things as I am. Who knows? Maybe I'm better at making a game fun than he is? Regardless, I think it's apples and oranges. His implementation of an idea won't be the same as mine, nor will the experience, but we are both likely to make something good.
Programing homework: Make a program that writes "Hello, World!" Me: that's easy. Also me: Delivers it wrong 5 times because the phrase written was wrong.
I do that too in my projects LOL. Immediate edit: Code is sufficient if you have enough knowledge of colors and...imagination. Just know how to code some basic geometry and you are good to go! :>
Its very easy to make a program _look_ like its more impressive than it is, especially with an edited video like this. Just look at Cyberpunk 2077 for an example
Do it! I've learned how to implement the Marching Cubes algorithm using Sebastian's video and the resources he provided and am now also just taking slow baby steps towards making bigger things with it. It's hard because I haven't coded for as long as he has but you can't ever get there if you don't try.
If you ask me: THIS is the best Coding Adventure video you've ever made so far! Keep on going! Btw: YOU were the reason why I tried out Unity some day and now game development is a hobby of mine
The way all this stuff is coming together, there's going to be boid fish in the sea, slime mold, ants, and probably some kind of Spore-esque complex animals before long
As a game designer who wants to know what he's doing in all aspects of designing a game, I really appreciate that you share your code as you go on these adventures! It really helps to be able to "learn with you" and have an idea of what went wrong when you try stuff and how you solve it. The depth really helps, as then I have a bit more of an idea of what could go wrong, and, more importantly, why it is going wrong.
"This old project is very similar, this is going to be easy for you right? You did this method before, and you can copy your own code!" *me looking at my own code from last week*: "I've never seen this garbage in my life... Who wrote this utter nonsense?"
Those sticky lights are strangely satisfying every time you fire them out. Now you just need to add Tribes' skiing+jetpack mechanics, and you've got yourself a fun place to go fast in, with custom routes and ramps.
This brought a tear to my eye. You have no idea how much I look up to Sebastian as a developer. Been working on procedural generation and simulations on my own during the last year by following his lead.
@Phileon, I'm so impressed by Sebastian and how he can, in a meaningful way, convey and transfer knowledge. It touches me how good Sebastian is at that, not many can do that.
For the water calculation, I would definitely look up Gerstner waves! Nvidia has a paper on it and can make extremely beautiful and natural-looking water without being too performance intensive.
@@durnsidh6483 From what I've seen the concept of gerstner waves is super simple and generalized. You basically have a sine wave of points, like in the vid, then make each point into a circle and make your vertex that spins around that circle. The two motions combine to make a wave that comes together and apart very nicely. Thats how it works in 2d, I image you could just make the points into spheres instead, and have the direction of the sine waves be an arc across the planet
@@thomasrosebrough9062 The problem with Gerstner waves in spheres is you'll always have a point (or more?) on the surface where a standing node resides. This is similar to the Hairy Ball Problem, where there is no way to comb a hairy sphere in a way that no hair overlaps or stands up.
Sebastian: "Explain how rocks float in the air." AI: "Rocks don't float" Ah machine learning. Also, really impressed with the results here, the shaders especially. I absolutely love the way the water looks.
Oh my goodness, this was amazing. Your videos are the perfect combination of education, humor, entertainment, and just pure wholesomeness. It seems like you do something impossible, and then you go 5 steps further and further and further. This video in particular may be my favorite of any of yours. The atmosphere of the video, the music, the actual coding: everything is so perfectly done. You inspire people like me so much, and I just want to say that you're awesome. Keep on going, we all think you're awesome!
I love these coding adventures! I always click on them ASAP whenever they come out. You never fail to impress and inspire. As a somewhat new coder I can’t imagine even approaching some of these problems, but you make me hope one day I can do similar things. Thanks for sharing your talents with us!!
Would be interesting if he did a callback to Conway's Game of Life simulation. It's also fun because it's one of the more common intro programming projects in college. Seems like it could apply here in a more creative way.
The floating point format is based on the IEEE 754 standard which is based on standard form. To put it simply: In a 32 bit float the first bit is the sign bit 0 = +, 1 = - The next 8 bits are the exponent where the exponent is offset by a bias of -127 So the exponent can be expressed as 2^(n-127) The last 23 bits are the mantissa which is a number normalised between 1 and 2, since the mantissa must start with a non zero digit and binary only has 1 non zero digit, the one at the start is omitted but assumed to be there giving 23 bits of precision. So a whole float can be expressed as: Sign bit * (mantissa/(2^23)) * 2^(exponent-127) I hope your understanding of floats is better now!
the Chunk Woes calm voiceover blandly describing what's happening coupled with the nonsensical smashing at the keyboard and the increasingly tense music is the perfect way to depict the frustration of coding
If you want to visualize waves on a sphere I would definitely have a look on “spherical harmonics”. We use it all the time in geodesy to visualize spatial data on our globe :) the mathematics behind all this unfortunately is everything but trivial. It was(is) for me at least 😅 cheers and keep up the great videos! Chris
Furthermore, spherical harmonics are complete and orthonormal, thus any function on a sphere can be evaluated with a sum of them. So it would be possible to do as he is doing with noise and layer multiple of them to get less "ordered" results.
@@fangzhangmnm6049 It shouldn't require matrix multiplication so I think he is safe. It should not be much harder than evaluating a normal sin function. (I even think that is spherical harmonic to something like first order) Depending on which order he goes to ofc.
Technically, this has been done before, but Sebastian is very generous to take time to show us the whole process and explain in such detail. He is humble and honest about bugs, which would often discourage those new to programming, and the script explains everything in an understandable way without dumbing things down. All this and with a very pleasant tone of voice. This channel is a gem. The code samples are the icing on the cake, and are interesting even for people who don't use Unity.
"Understood" is taking it a bit (OK, a lot) far, but the degree to which it can combine information from different areas & sources and turn it into understandable English is truly incredible.
I had a bit of a down period today and this notification really cheers me up. I hope you realize the sort of good/happy consequences your videos can have...thank you for sharing your fun experiments :)
7:45 this is the part of your videos I enjoy the most. Seeing the crazy stuff that happens at each iteration of the process. Because it's what happens to me and so I don't feel so bad when I see it. Code is rarely perfect the first time.
Absolutely incredible, as usual. A challenge for you: when the chunk updates, check if any 'voxel' points aren't supported and make them 'fall' towards the center of gravity, essentially adding Minecraft style sand 'physics'. You might be able to modify this for use on water too, replacing the sphere with voxels. You would of course somehow have to store a material type on each point. Also you should look into 'Sparse quadtrees' and their application with voxels for better performance and chunking. Might allow you to make a much larger planet.
There's no deterministic way to know if a mesh is "connected" to the "ground" other than by walking through all the vertices until you either find the "center" to be inside the mesh, or run out of neighboring vertices. In other words this would be incredibly expensive to test every time you morph terrain. Also, having "voxels" fall down wouldn't really look like it is falling down, but rather it "blob-ly melts" downwards, because the vertices from which they are composed are static.
@@Meoiswa I think you could get pretty good performance for the testing actually, since there's a lot of optimizations you can do. For a start, you'd want to use a pathing algorithm such as A* to walk through the vertices, and you could also discount a lot of vertices based on where you've been so far - you only need to find and then run along the edges of the terrain to determine if it's connected or not.
Hi Sebastain, nice job, very impressive to see what you're able to create! When it comes to wave simulation, a very common technique is to Fourier transform the surface elevation and its first time derivative with fast Fourier transform (FFT), perform a time step in the frequency domain (this basically amounts to adding fixed value to the phase angle for each frequency component individually) using Airy wave theory, and the perform the inverse Fourier transform. It's maybe conceptually easier to use the real part of a complex-valued surface elevation instead of using the surface elevation and its first time derivative, since this makes it clear how the phase angle comes in. You may even get the waves to look choppy, more closely resembling real trochoidal waves, by adding pi/2 to the phase angle once you are in the frequency domain, and calculating a horizontal offset rather than a vertical one from what that gives you. For more details on this technique, see for example the paper "Simulating Ocean Water" by Jerry Tessendorf. Then waves are typically larger the more windy it is, and the longer distance they have had to build up, as well as aligned with the wind, and this is also different for different wavelengths (this is all collected in what is known as a "wave spectrum"). For that reason, isolated water inside a cave typically have no waves at all, unless something else has been stirring up the water. But this is starting to get quite complex. I wrote about this (along with a microfacet-based illumination model for sea surfaces) in my master thesis if you want to read about it: liu.diva-portal.org/smash/get/diva2:686612/FULLTEXT01.pdf On a sphere, however, I suppose you would need to use spherical harmonics instead of the Fourier transform, since that would be the corresponding transformation. I don't really have any experience with spherical harmonics myself, but there seem to be fast ways to calculate the spherical harmonics corresponding to FFT (e.g. "A Fast Transform for Spherical Harmonics" by Martin J. Mohlenkamp). What you also need to know is the eigenfrequency of each spherical harmonic, in order to increase the phase angle with the correct amount.
Interesting Future projects: - Biomes - Wind patterns (shown through waves, clouds, grass, trees and gust/gale lines) - Tectonic plates (first on a plane, then on a Sphere)
Whenever I watch you, all past accomplishment go away, in the dust, gone. I remember that in life there will be people that are endlessly more talented, and smarter than me.
I always love how you show off all the "bloopers" you get when working on your projects. Edit: Since you are worried that reading mesh data from the GPU to the CPU is taking too long when constructing the collision shape, Unity does have an alternative way for reading GPU buffers. There is an asynchronous readback function which is supposed to work faster, although you will have to fetch the data in a coroutine, so there is no guarantee that you'll get the data precisely when you want it to, if that's important.
Looks great, love these coding adventures! Now you just need to combine this with your bunnies and wolves adventure to create a planet with an ecosystem. You could give animals the ability to dig into the mesh and make the mesh take more energy to dig through the deeper you go, and even add burrowing as a gene etc.
This project is especially cool to me since we know that Minecraft started as just a prototype like this. Even if it doesn’t go further in the same way, it’s still so cool to watch
I really like this coding adventure! It got me thinking about something though, it would be interesting to see a coding adventure about water physics, though I am sure that you already have some plans for the next one. Regardless, I can't wait to see whatever coding adventure is next!
This is very beautiful. The landscape is like a dream. I hope you add more features to explore around. I can't describe how amazing this is. Man, this is so great. I love to be able to create my own game like this in the future. This is my motivation. Thanks, Sebastian. The process and the result are stunning. Thanks again.
These videos about creating planets and other small worlds are so wholesome I'm actually on tears. I had a few stressful days and they really brightened my mood a lot. Thank you Seb
Literally laughing out loud at this. "...and that made the squiggly red line go away, which of course is all I'm really trying to achieve when I'm programming."
Hey! It's a terraforming platformer , that looks like a lot of fun and it'd be cool to try get from A to B quickly with only a limited amount of terraforming available :)
Content to consider: - Rare minerals / materials to find buried within the planets - Seismic tools to detect where materials might be - The ability to build simple objects / bases - Solar panels to power your buildings, charge batteries for your tool - A Heat system to the planet (the deeper you go, the warmer it gets, the better materials / suits / vehicles you need to go deeper) - The goal could be to find all the materials needed to level up your buildings which can then ultimately create a spaceship which can get you off world to the next world - Each world might be easier or harder to terraform in various ways... maybe some have harder material which makes it more difficult to terraform, more expensive to terraform - Each world can have one or two unique materials which can be used to create newer modules you couldnt make on previous worlds - Each world adds an ability to the Spaceship, making it able to go further or longer, act as its own entire base so you no-longer need to create bases on each planet but can instead focus on upgrading your spaceship with the ultimate goal being to develop the spaceship enough to the point it can travel intergalactically, back to "Earth"... maybe you are lost in an alien galaxy and are trying to return home with nothing but your wits and your basic terraform tool
I find these endlessly entertaining for some reason, so here are few bonus reasons why rocks float in the air (according to GPT-3, by OpenAI):
- In the planet's gravity, rocks are heavier than air. But since there is no gravity in the air ~because it's not a planet~ the rocks float.
- Some rocks, such as pumice have an air pocket in the centre. The air pocket creates buoyancy, which makes the rock float.
- Rocks float in the air because they are not affected by forces such as gravity, which pull other objects downwards.
- The rocks are not floating in the air, they are floating on the ground.
- The rocks are caught in the updraught, causing them to float.
I never realised... All these years, I've been floating on the ground.
That last one could be
@@jaakkopontinen The rocks would still spin in the air.
There is no mention of spinning or not from what I can see.
these seem like perfect theories made by the local population to try and explain the phinominom. All of them could be wrong, but it is that universe's universal mistery that every civilization has a different theory on trying to explain it. I love it!
“That made the squiggly red line go away, which is all I’m really trying to do”
This hit way too close to home
For real hahaha
Lol true
Fact
I’ve been called out
I have never felt more attacked by something i 100% agree with
"That made the squiggly red line go away, which is of course all I'm really trying to achieve when I'm programming" -- 10/10 too true!
If only it were that simple. 😂
'Twas a brilliant joke from him anyhow.
The key word here is trying. Normally you cause more squiggly red lines to appear
@@arkanon8661 I'm convinced they're actually a propagating lifeform that sometimes reproduces when split.
@@arkanon8661 lmfao very true
"ok red lines are gone"..
*doesn't work*
confooz
6:20 “lets label that a feature” man’s halfway to becoming a Bethesda Dev.
All he needs to do is add a DLC
Coding adventures number 76: procedural horse armour
LOOOOL
Those sticky lights are so satisfying!
Huh. Even DC is interested in coding adventures!
What's the name of the song under the video?
Those rocks are actually moons that are in a geo-stationary orbit.
I was trying to remember the word geo-stationary recently, thanks. But now that you've reminded me what word I was trying so hard to come up with, now I can't remember why I was trying to remember it.
@@flabort haha sorry and your welcome
@@flabort task failed successfully
That would still mean that this "planet" is rotating a lot!
@@flabort This has happened to me way too many times
omg- I love the idea of someone playing a game, looking up and seeing a rock. and a little clue icon pops up for more info and it just says "Rocks don't float in the air. They are too heavy for that" with no further explanation.
then they look away, but the next time they look at the same rock, it's no longer there 🤣
@@horowitzhill6480 yeah, because it triggered the action of deleting the voxel.
Then the rock drops and kills the player or deals damage
Or "That's not actually a rock, it's just a hallucination."
We
So satisfying to see knowledge and lessons learned from past projects coming together to help make something new. Awesome job!
Please upload
Upload now!
1. I agree
2. I don't even need a new video, for a while I legit thought you died. Glad to know you're ok.
He is alive
Heeey I'm recreating your game.
How I know you are a real programmer:
"Lets label that a feature and move on"
To be fair, There have been times where I've made something, its not worked as intended, but actually ended up being better than what I wanted to achieve, So Sometimes happy accidents happen.
9:48 love how he just calmly explains running into that kind of problem. I know something like that would've made me feel like I've fundamentally lost my grip with reality.
Bro at this point I HAVE lost my grip with reality.
God damn this is so cool, the result is absolutely amazing! Can't wait to see more
No
dani here noice
Only 10 likes?
Oo dani
dani auto comment
Seb, my guy, you are a master craftsman, & I am reminded after every beautiful video of yours that I watch. 😢
You are an inspiration yourself my man! I wish outside-the-box creators like you guys would find a common language, put their strengths into action and collab on something fresh.
U both are my inspiration ❤️
@@hmthatsniceiguess2828 I hope to bring these guys together and hire them for making courses on a website.
Seb and Jabrils? What is this, a crossover episode?!
@@paperrocketeer hm, that's nice, I guess.
10:16 "And that made the squiggly red line go away, which of course is all I'm really trying to achieve when I'm programming"
I'll be absolutely crazy the day you decide combining all your projects in one single experimental game. I hope my machine can run it
Imagine the logic sim combined with the space exploration
@@fisch37 lol
@@fisch37 You'll have to make components for the ship or something!!!
Would be amazing!
@@TheWilyx About what I thought
Lesson to be learnt Never throw out old code. You can always repurpose it
Brilliant - always love your videos and creativity!
Hi
same bro, yours are good as well tho
Legends collide :O
Thank you! I've seen a number of your game engine programming videos, and find them really fascinating. I really need to make time to watch the entire series.
@@SebastianLague thank you! Every time I watch one of your videos I always think that’s exactly the kind of stuff I’d be doing if I had just used an engine instead of building my own! I can’t wait to do this kind of stuff in Hazel when it’s ready (almost there!)
i legitimately love that this series is "here's how your favorite games work". this is literally No Mans Sky!
I thought there more of Astroneer : )
Astroneer, Modded Minecraft, No Man's Sky (not sure on this one tbh), Space Engineers, Subnautica... all apply. -All- _Most™️_ use voxel grids to define terrain and marching cubes to render it. There are more examples, I'm sure, but these are the only ones that come to my mind.
distant wilderness
@@delofondeep rock galactic definitely
Sebastian, you don't understand how much I look up to these videos as a computer science student. I am still in secondary school but you are the motivation that makes me code day and night. I recently presented an implementation of the TSA ant colony code to my class and it filled me up with happiness teaching something so fascinating. Seriously, please keep doing what you are doing, you are making a massive difference. Outstanding work. Thanks.
@Jim Boli, I totally agree and keep in mind that tutoring/teaching is something you can get paid for doing. That might be something of a end goal you will want to check into, if you find that you enjoy tutoring or passing along knowledge. Maybe you might want to try to be a professional educator (professor/teacher) of computer science discipline.
I did tutoring for binary math and basic networking in collage. I have been looking to get back to that type of job ever since. Hindsight, should have done some teaching classes and/or equivalent certification for teaching/training. Supposedly, that does make it easier to land that type of career.
Same
I got my degree in CS two years ago and I still look up to his work.
Just finished up my dissertation on naive surface nets for terrain - similar to marching cubes, having been looking forward to it since his first procedural video. You got this!
i like how you show people that there is never anything perfect first try in programming, because a lot of times people get frustrated with their project, because they think they are bad at programming and never considered that they should just try out and think of new ideas to tackle a problem. keep up the good work
Yeah, everyone who thinks programming works first time is way wrong
WOAH WOAH WOAH!!! Let me get this perfectly straight: You comment something that is completely unrelated to the fact that I have two HAZARDOUSLY HOT girlfriends? Considering that I am the unprettiest RUclipsr worldwide, it is really incredible. Yet you did not mention it at all. I am VERY disappointed, dear elh
@Borgilian Don't let your username alarm you.
Yeah. I'm a good programmer. I know that. I've been programming for years, I understand a great deal of it including the concepts in most of these videos. I make my own games and I have a big project in the works myself. However, this guy's programming abilities always make me feel a bit inadequate. Then again, he's probably not as skilled at other things as I am. Who knows? Maybe I'm better at making a game fun than he is? Regardless, I think it's apples and oranges. His implementation of an idea won't be the same as mine, nor will the experience, but we are both likely to make something good.
Programing homework: Make a program that writes "Hello, World!"
Me: that's easy.
Also me: Delivers it wrong 5 times because the phrase written was wrong.
I come back and watch this video every so often because it never fails to inspire me.
I love how Sebastian can get away with making zero art assets and still have his game look beautiful through code alone
You should go look at Shadertoy (a website). It's art out of pure math and code :>
I do that too in my projects LOL.
Immediate edit: Code is sufficient if you have enough knowledge of colors and...imagination. Just know how to code some basic geometry and you are good to go! :>
"Programmer art"
Me: Trying to figure out why my character wont jump.
Sebastian: Casually recreates No Mans Sky on Launch Day.
Not quite lol
Not only NMS, but _Astroneer_ as well!
Seb still needs to figure out how to make the character not fall through the ground.
Don't be too hard on yourself, and learn :)
Its very easy to make a program _look_ like its more impressive than it is, especially with an edited video like this.
Just look at Cyberpunk 2077 for an example
@@aceman0000099 Either way, this guy isn't an AAA developer team so anything even close is impressive.
Astroneer in a nutshell.
Honestly, I wish I could do this stuff for myself and actually make something like this.
Do it! I've learned how to implement the Marching Cubes algorithm using Sebastian's video and the resources he provided and am now also just taking slow baby steps towards making bigger things with it. It's hard because I haven't coded for as long as he has but you can't ever get there if you don't try.
Seeing the the sun rise for the first time on a world you generated yourself is so surreal
- God, probably
@@Blackd0nuts "Looks great. Hey, who put that snake there?!"
@@puppergump4117 *humans lore*
Ah yes its starting to come together
It certainly is
If you ask me: THIS is the best Coding Adventure video you've ever made so far! Keep on going!
Btw: YOU were the reason why I tried out Unity some day and now game development is a hobby of mine
Ayy same, this guy's a god! I've gone more in the simulations direction myself but Sebastian is such an inspiration!
When your physics don't make sense, use an AI to make up an excuse for it.
Always valuable lessons learned from your videos
"it's an alternate reality, _okay_ ??" 😁
Prediction: Sebastian's going to be adding ants to his little world.
and weird slime fungus creatures too
The way all this stuff is coming together, there's going to be boid fish in the sea, slime mold, ants, and probably some kind of Spore-esque complex animals before long
And a chess ai if you get bored
and probably a computer on a bread board
Do you want ants, because that's how yo get ants!
As a game designer who wants to know what he's doing in all aspects of designing a game, I really appreciate that you share your code as you go on these adventures! It really helps to be able to "learn with you" and have an idea of what went wrong when you try stuff and how you solve it. The depth really helps, as then I have a bit more of an idea of what could go wrong, and, more importantly, why it is going wrong.
"This old project is very similar, this is going to be easy for you right? You did this method before, and you can copy your own code!"
*me looking at my own code from last week*: "I've never seen this garbage in my life... Who wrote this utter nonsense?"
Those sticky lights are strangely satisfying every time you fire them out.
Now you just need to add Tribes' skiing+jetpack mechanics, and you've got yourself a fun place to go fast in, with custom routes and ramps.
Yes Tribes Skiing would be awesome in that little planet.
7:22 - 9:46 this whole sequence of events is the most accurate visualization of what being a programmer feels like
This brought a tear to my eye. You have no idea how much I look up to Sebastian as a developer. Been working on procedural generation and simulations on my own during the last year by following his lead.
@Phileon, I'm so impressed by Sebastian and how he can, in a meaningful way, convey and transfer knowledge. It touches me how good Sebastian is at that, not many can do that.
"So I made some sticky lights"
*Sees Sticky Lights*
Starts throwing money at him
Didn't get it :)
@@Anto-xh5vn I like sticky lights.
@@ronxinator9050 same :)
Combing bit-sized demos of your projects into a large"AAA" game is a huge stepping stone of what you've learned. Keep up the coding adventure.
astroneer devs: "well fuck he just did the first two years of our whohle game"
This wasn't just done in one project. He's combining the many projects he's worked on previously.
Too true
calling out no man's land devs
@@gcxs It's No Man's Sky. 😂
@@too-many-choices The Moon is sky land
I love that you can see the parallels between the bugged worlds, and the farlands from older minecraft builds
For the water calculation, I would definitely look up Gerstner waves! Nvidia has a paper on it and can make extremely beautiful and natural-looking water without being too performance intensive.
Does the paper work for spheres?
@@durnsidh6483 From what I've seen the concept of gerstner waves is super simple and generalized. You basically have a sine wave of points, like in the vid, then make each point into a circle and make your vertex that spins around that circle. The two motions combine to make a wave that comes together and apart very nicely.
Thats how it works in 2d, I image you could just make the points into spheres instead, and have the direction of the sine waves be an arc across the planet
@@thomasrosebrough9062 The problem with Gerstner waves in spheres is you'll always have a point (or more?) on the surface where a standing node resides. This is similar to the Hairy Ball Problem, where there is no way to comb a hairy sphere in a way that no hair overlaps or stands up.
"Lets label it as a feature and move on."
I chuckled a bit.
I also really enjoyed: “Programming can be… such a joy sometimes.”
man every time i stumble upon one of these they're so good.
Sebastian: "Explain how rocks float in the air."
AI: "Rocks don't float"
Ah machine learning.
Also, really impressed with the results here, the shaders especially. I absolutely love the way the water looks.
It's already becoming "alibaba smart"
Alright folks, this isn't a drill, he's making a full game at this point.
what is the music at 4:48 ? i love it , someone please help me out
@@jacobthemuffin3804 Astroneer (Game)
Minecraft started with less than this
19:19-19:53 this whole segment was kinda beautiful, ngl
Wow the other day i thought to myself
“Its been a while since the last coding adventure i hope one comes out soon”
Oh my goodness, this was amazing. Your videos are the perfect combination of education, humor, entertainment, and just pure wholesomeness. It seems like you do something impossible, and then you go 5 steps further and further and further. This video in particular may be my favorite of any of yours. The atmosphere of the video, the music, the actual coding: everything is so perfectly done. You inspire people like me so much, and I just want to say that you're awesome. Keep on going, we all think you're awesome!
I love your choice of music for the various parts of the construction process =)
My life cycle: Build confidence as a programmer for months. Sebastian releases a video. Go back to thinking I'm a beginner. Repeat.
lol 😅
I love these coding adventures! I always click on them ASAP whenever they come out. You never fail to impress and inspire. As a somewhat new coder I can’t imagine even approaching some of these problems, but you make me hope one day I can do similar things. Thanks for sharing your talents with us!!
22:22 long video was just purely amazing. And AMAZING video for someone like me getting into coding!
My man's literally recreating the universe
I'm saying bruh bruh. How can man casually code his thoughts using C#?
Yes
I am too on roblox
He is the creator of the reality stage below us, so he's technically their god 😁
With some new features: flyoig rocks.
*Next Episode:*
Coding Adventure: Implementing Alien Ecosystems to My Planets Through Natural Selection and Evolution
Someone needs to actually make this tho
This youtuber called biblidarion isn't programming anything but is designing a realistic alien ecosystem.
Would be interesting if he did a callback to Conway's Game of Life simulation. It's also fun because it's one of the more common intro programming projects in college. Seems like it could apply here in a more creative way.
God that would be awesome, gives me primer vibes
Third episode. I am got a cease and desist letter from the team of No Man's Sky.
I love the fact that you call these "Coding Adventures" they so much feel like adventures 💛
"Terraforming" is such an understatement for the title lol
playing god low resolution would be more accurate
"Hey everyone welcome to coding adventure, today we're gonna create the whole universe"
@Ezequiel Ciamparella and also simulating every second of it
@@oddgruegd No, every infinite-th timestep, and also modify Unity/NVIDIA PhysX to do that.
10:49 actually really surprised me. I never would have thought that the binary of a float and an int could be so different
The floating point format is based on the IEEE 754 standard which is based on standard form. To put it simply:
In a 32 bit float the first bit is the sign bit 0 = +, 1 = -
The next 8 bits are the exponent where the exponent is offset by a bias of -127
So the exponent can be expressed as 2^(n-127)
The last 23 bits are the mantissa which is a number normalised between 1 and 2, since the mantissa must start with a non zero digit and binary only has 1 non zero digit, the one at the start is omitted but assumed to be there giving 23 bits of precision.
So a whole float can be expressed as:
Sign bit * (mantissa/(2^23)) * 2^(exponent-127)
I hope your understanding of floats is better now!
"So let's label that a feature and move on"
I feel that one in my soul.
“And that made the squiggly red line go away, which of course is all I’m really trying to achieve when I’m programming.”
the Chunk Woes calm voiceover blandly describing what's happening coupled with the nonsensical smashing at the keyboard and the increasingly tense music is the perfect way to depict the frustration of coding
I live for these videos. They're like professional therapy for me haha.
If you want to visualize waves on a sphere I would definitely have a look on “spherical harmonics”. We use it all the time in geodesy to visualize spatial data on our globe :) the mathematics behind all this unfortunately is everything but trivial. It was(is) for me at least 😅 cheers and keep up the great videos! Chris
Furthermore, spherical harmonics are complete and orthonormal, thus any function on a sphere can be evaluated with a sum of them. So it would be possible to do as he is doing with noise and layer multiple of them to get less "ordered" results.
I doubt if it is computationally heavy for sphs of higher frequencies.
@@fangzhangmnm6049 It shouldn't require matrix multiplication so I think he is safe. It should not be much harder than evaluating a normal sin function. (I even think that is spherical harmonic to something like first order) Depending on which order he goes to ofc.
@@sumsar01 I conquer, I conquer
genius.. congrats from Brazil.. amazing videos
I'm basically speechless. Like, I'm not the only one that can't believe this, right?
Technically, this has been done before, but Sebastian is very generous to take time to show us the whole process and explain in such detail. He is humble and honest about bugs, which would often discourage those new to programming, and the script explains everything in an understandable way without dumbing things down.
All this and with a very pleasant tone of voice. This channel is a gem. The code samples are the icing on the cake, and are interesting even for people who don't use Unity.
GTP-3 understood buoyancy, gravity, mirages, magnets, and the fact that rocks don’t float. That’s incredible. 6:15
It is coming sooner than expected!
Watching AI evolve and improve like this during our lifetime is amazing to witness
"Understood" is taking it a bit (OK, a lot) far, but the degree to which it can combine information from different areas & sources and turn it into understandable English is truly incredible.
All of these projects have to be leading up to one big game and I simply can't wait to see the end result!
I had a bit of a down period today and this notification really cheers me up. I hope you realize the sort of good/happy consequences your videos can have...thank you for sharing your fun experiments :)
Man what a great guy, I’m so glad I discovered this RUclips channel, best use of my time, thanks for the videos, keep em coming
every time im stuck on something, i think about the problem in your voice and the solution comes so easily
The only series I have my notifications on for! I really love this series and I hope we get to see more of it! 😁
7:45 this is the part of your videos I enjoy the most. Seeing the crazy stuff that happens at each iteration of the process. Because it's what happens to me and so I don't feel so bad when I see it. Code is rarely perfect the first time.
Thank you Sebastian. This is art. I especially loved the lights you shot in the tunnels. That was beautiful.
My favorite content creator on the platform. Never clicked on a notification so quick. Keep it up bro!
Absolutely incredible, as usual. A challenge for you: when the chunk updates, check if any 'voxel' points aren't supported and make them 'fall' towards the center of gravity, essentially adding Minecraft style sand 'physics'. You might be able to modify this for use on water too, replacing the sphere with voxels. You would of course somehow have to store a material type on each point. Also you should look into 'Sparse quadtrees' and their application with voxels for better performance and chunking. Might allow you to make a much larger planet.
That kind of physics would make tunnels impossible.
@@evannibbe9375 That’s like the flood fill algorithm he said would be too slow, but much slower
There's no deterministic way to know if a mesh is "connected" to the "ground" other than by walking through all the vertices until you either find the "center" to be inside the mesh, or run out of neighboring vertices. In other words this would be incredibly expensive to test every time you morph terrain.
Also, having "voxels" fall down wouldn't really look like it is falling down, but rather it "blob-ly melts" downwards, because the vertices from which they are composed are static.
@@Meoiswa I think you could get pretty good performance for the testing actually, since there's a lot of optimizations you can do. For a start, you'd want to use a pathing algorithm such as A* to walk through the vertices, and you could also discount a lot of vertices based on where you've been so far - you only need to find and then run along the edges of the terrain to determine if it's connected or not.
Imagine if Astroneer developers actually created Time Machine to watch this tutorial to develop the game
Plot twist: Sabastian created the time machine to send Astroneer into the past, along with these videos.
Plot Twist: Sebastian is actually the creator of video games, and a time machine
seb: hey ai, can you explain how rocks can float for some context for my game
ai: oh rocks don’t float, they’re too heavy for that
Oh, sorry, you must have confused me with a SIMPLETON
Hi Sebastain, nice job, very impressive to see what you're able to create! When it comes to wave simulation, a very common technique is to Fourier transform the surface elevation and its first time derivative with fast Fourier transform (FFT), perform a time step in the frequency domain (this basically amounts to adding fixed value to the phase angle for each frequency component individually) using Airy wave theory, and the perform the inverse Fourier transform. It's maybe conceptually easier to use the real part of a complex-valued surface elevation instead of using the surface elevation and its first time derivative, since this makes it clear how the phase angle comes in. You may even get the waves to look choppy, more closely resembling real trochoidal waves, by adding pi/2 to the phase angle once you are in the frequency domain, and calculating a horizontal offset rather than a vertical one from what that gives you. For more details on this technique, see for example the paper "Simulating Ocean Water" by Jerry Tessendorf.
Then waves are typically larger the more windy it is, and the longer distance they have had to build up, as well as aligned with the wind, and this is also different for different wavelengths (this is all collected in what is known as a "wave spectrum"). For that reason, isolated water inside a cave typically have no waves at all, unless something else has been stirring up the water. But this is starting to get quite complex.
I wrote about this (along with a microfacet-based illumination model for sea surfaces) in my master thesis if you want to read about it: liu.diva-portal.org/smash/get/diva2:686612/FULLTEXT01.pdf
On a sphere, however, I suppose you would need to use spherical harmonics instead of the Fourier transform, since that would be the corresponding transformation. I don't really have any experience with spherical harmonics myself, but there seem to be fast ways to calculate the spherical harmonics corresponding to FFT (e.g. "A Fast Transform for Spherical Harmonics" by Martin J. Mohlenkamp). What you also need to know is the eigenfrequency of each spherical harmonic, in order to increase the phase angle with the correct amount.
The stuff you do is incredible.
Interesting Future projects:
- Biomes
- Wind patterns (shown through waves, clouds, grass, trees and gust/gale lines)
- Tectonic plates (first on a plane, then on a Sphere)
Whenever I watch you, all past accomplishment go away, in the dust, gone. I remember that in life there will be people that are endlessly more talented, and smarter than me.
I always love how you show off all the "bloopers" you get when working on your projects.
Edit: Since you are worried that reading mesh data from the GPU to the CPU is taking too long when constructing the collision shape, Unity does have an alternative way for reading GPU buffers. There is an asynchronous readback function which is supposed to work faster, although you will have to fetch the data in a coroutine, so there is no guarantee that you'll get the data precisely when you want it to, if that's important.
There isn't a better programing artist youtuber genius smooth voice person in the entire world. You and your work is amazing and its a treat to watch!
Any programmer can tell that this man probably wants to explode right here (11:00)... Props to you for explaining everything in such a calm voice.
“Programming can be such a joy sometimes”. Yep. Yep. Both in the tone you said and generally. Yep.
Looks great, love these coding adventures! Now you just need to combine this with your bunnies and wolves adventure to create a planet with an ecosystem. You could give animals the ability to dig into the mesh and make the mesh take more energy to dig through the deeper you go, and even add burrowing as a gene etc.
This project is especially cool to me since we know that Minecraft started as just a prototype like this. Even if it doesn’t go further in the same way, it’s still so cool to watch
Day 1 of telling Sebastian that he should combine all his projects into a massive open universe simulation for people to buy and play
I really like this coding adventure! It got me thinking about something though, it would be interesting to see a coding adventure about water physics, though I am sure that you already have some plans for the next one. Regardless, I can't wait to see whatever coding adventure is next!
This is so simplistic, yet so beautiful at the same time.
This is very beautiful. The landscape is like a dream. I hope you add more features to explore around. I can't describe how amazing this is. Man, this is so great. I love to be able to create my own game like this in the future. This is my motivation. Thanks, Sebastian. The process and the result are stunning. Thanks again.
Maybe the earth is just someone like Sebastian making content for others.
These videos about creating planets and other small worlds are so wholesome I'm actually on tears. I had a few stressful days and they really brightened my mood a lot. Thank you Seb
Literally laughing out loud at this. "...and that made the squiggly red line go away, which of course is all I'm really trying to achieve when I'm programming."
Never this fast as I was in meeting, then I went to toilet just to watch this.
Odd, I watched this while in the bathroom as well... I wonder how many others did the same thing.
@@joecolvin4203 I can't watch this in the bathroom. I have to watch it while eating on my big monitor
god please continue this series
This could be a cool puzzle game where you had to explore tiny planets, finding clues and puzzles that you'd have to solve
This is so cool, you could turn this into an amazing RPG. I'm going to learn coding and try to make something like this
that reminds me so much of Astroneer. that basic mechanics are literally what makes Astroneer what it is and i never thought it would be this "easy"
Hey! It's a terraforming platformer , that looks like a lot of fun and it'd be cool to try get from A to B quickly with only a limited amount of terraforming available :)
Content to consider:
- Rare minerals / materials to find buried within the planets
- Seismic tools to detect where materials might be
- The ability to build simple objects / bases
- Solar panels to power your buildings, charge batteries for your tool
- A Heat system to the planet (the deeper you go, the warmer it gets, the better materials / suits / vehicles you need to go deeper)
- The goal could be to find all the materials needed to level up your buildings which can then ultimately create a spaceship which can get you off world to the next world
- Each world might be easier or harder to terraform in various ways... maybe some have harder material which makes it more difficult to terraform, more expensive to terraform
- Each world can have one or two unique materials which can be used to create newer modules you couldnt make on previous worlds
- Each world adds an ability to the Spaceship, making it able to go further or longer, act as its own entire base so you no-longer need to create bases on each planet but can instead focus on upgrading your spaceship with the ultimate goal being to develop the spaceship enough to the point it can travel intergalactically, back to "Earth"... maybe you are lost in an alien galaxy and are trying to return home with nothing but your wits and your basic terraform tool
Such innovative!
It has been said before but you really are the Bob Ross of coding/prototyping. Calming and Inspiring, creative and nice with a soothing voice.
7:40
*Starts hearing In The Hall Of The Mountain King*
Me: Ah. So it will end in chaos.
"this phenomenon cannot be explained" *gives like 4 explanations" 😂