SimonDev | I made an EVEN BETTER Minecraft @simondev758 | Uploaded 3 years ago | Updated 3 hours ago
I tried to make Minecraft even better than I did before.
π Recommended books (on Amazon): https://www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid
β€οΈ Support me on Patreon: https://www.patreon.com/simondevyt
π My Gamedev Courses: https://simondev.teachable.com/
Disclaimer: Commission is earned from qualifying purchases on Amazon links.
Follow me on:
Twitter: https://twitter.com/iced_coffee_dev
Instagram: https://www.instagram.com/beer_and_code/
Github: https://github.com/simondevyoutube/
Here I tried to code Minecraft using JavaScript and Three.js, completely from scratch, to try to fix the problems from the previous implementation.
The goal was to try to improve on the previous version, was was mostly a start project to learn JavaScript and three.js.
In the previous implementation, I used instancing to get around draw call limits and complexity around merging geometry, but this time I just bit the bullet and did the actual work. I move from there by integrating chunking in the world, followed by multithreading using Chrome's module workers extension, which dramatically improved performance. I investigated various ways to texture, wrote custom shaders to atlas all the textures together in a simple way using texture arrays. From there I moved on to using perlin noise for a full, infinite procedural world. Standard perlin noise works great for basic rolling hills, but you need to do operations on it like looping for fractal brownian motion in order to get that detail and different environments.
That gives us a procedural world, from there we covered how to procedurally create foliage using signed distance functions and l-systems, which was covered in a previous tutorial. Finally, we went ahead and used layers of perlin noise to create biomes and different areas in the world, as you see in the video.
Source will is available on github, or will be when I clean it up. If it's not there by the time this is posted, look for an announcement from me either on my community posts or twitter for when the source is available.
Various resources:
Music: www.bensound.com
Inigo Quilez's site is THE reference for stuff like SDF's:
https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm
Demo was a horribly modified version of:
https://www.shadertoy.com/view/lt3BW2
Model from:
https://sketchfab.com/3d-models/minecraft-diamond-pickaxe-b1bc7d6a3db246d5b47449ae2b2706fd
AO:
https://0fps.net/2013/07/03/ambient-occlusion-for-minecraft-like-worlds/
I tried to make Minecraft even better than I did before.
π Recommended books (on Amazon): https://www.amazon.com/hz/wishlist/ls/1IMV0IR3QIZMQ?type=wishlist&tag=simondev01-20&sort=priority&viewType=grid
β€οΈ Support me on Patreon: https://www.patreon.com/simondevyt
π My Gamedev Courses: https://simondev.teachable.com/
Disclaimer: Commission is earned from qualifying purchases on Amazon links.
Follow me on:
Twitter: https://twitter.com/iced_coffee_dev
Instagram: https://www.instagram.com/beer_and_code/
Github: https://github.com/simondevyoutube/
Here I tried to code Minecraft using JavaScript and Three.js, completely from scratch, to try to fix the problems from the previous implementation.
The goal was to try to improve on the previous version, was was mostly a start project to learn JavaScript and three.js.
In the previous implementation, I used instancing to get around draw call limits and complexity around merging geometry, but this time I just bit the bullet and did the actual work. I move from there by integrating chunking in the world, followed by multithreading using Chrome's module workers extension, which dramatically improved performance. I investigated various ways to texture, wrote custom shaders to atlas all the textures together in a simple way using texture arrays. From there I moved on to using perlin noise for a full, infinite procedural world. Standard perlin noise works great for basic rolling hills, but you need to do operations on it like looping for fractal brownian motion in order to get that detail and different environments.
That gives us a procedural world, from there we covered how to procedurally create foliage using signed distance functions and l-systems, which was covered in a previous tutorial. Finally, we went ahead and used layers of perlin noise to create biomes and different areas in the world, as you see in the video.
Source will is available on github, or will be when I clean it up. If it's not there by the time this is posted, look for an announcement from me either on my community posts or twitter for when the source is available.
Various resources:
Music: www.bensound.com
Inigo Quilez's site is THE reference for stuff like SDF's:
https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm
Demo was a horribly modified version of:
https://www.shadertoy.com/view/lt3BW2
Model from:
https://sketchfab.com/3d-models/minecraft-diamond-pickaxe-b1bc7d6a3db246d5b47449ae2b2706fd
AO:
https://0fps.net/2013/07/03/ambient-occlusion-for-minecraft-like-worlds/