How To Make A 3D Voxel Terrain In Godot Engine 3.1-3.2 Tutorial

  Рет қаралды 45,070

Tokisan Games

Tokisan Games

Күн бұрын

Пікірлер: 94
@TokisanGames
@TokisanGames 5 жыл бұрын
Pre-built binaries: tokisan.com/godot-binaries/ Join my discord for updates on my current game, Out of the Ashes: tokisan.com/discord See pics and details here: tokisan.com/out-of-the-ashes/
@Thkaal
@Thkaal 5 жыл бұрын
Was just about to start compiling when I saw this......thank you.
@GhostRiderSpiritOfVengeance
@GhostRiderSpiritOfVengeance 4 жыл бұрын
You sir are a legend. Ive hopped around several game engines for one that I am needing and its because of your tutorial and demos that led me to try Godot. If yo uhave a discord server id love to be apart of it
@TokisanGames
@TokisanGames 3 жыл бұрын
Check out my current Godot game here, discord link at the bottom, which which I just opened it up to the public. tokisan.com/out-of-the-ashes/
@MattRandall160
@MattRandall160 4 жыл бұрын
awesome video! pre-built binaries were a life saver! thank you
@omarouassif9981
@omarouassif9981 5 жыл бұрын
+1 for the pre-built binaries !
@eran3161
@eran3161 4 жыл бұрын
This is so awesome. I implemented the marching cubes algorithm in gdscript just for fun sake, but it was soooo slow.
@JustAnotherAlchemist
@JustAnotherAlchemist 5 жыл бұрын
Tumbling blocks algo + octree LOD + hydrodynamic terrain erosion and this would be king.
@ZZKJ396
@ZZKJ396 5 жыл бұрын
Stellar work guys!
@SYBIOTE
@SYBIOTE 4 жыл бұрын
I saw the ue4 voxel and was in love now I can live the dream
@robertt396
@robertt396 3 жыл бұрын
Thank you so much!!! Phenomenal.
@theemperiumofkek1362
@theemperiumofkek1362 5 жыл бұрын
YEEEEEEEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSs
@TokisanGames
@TokisanGames 5 жыл бұрын
Lol, enjoy!
@androdebian
@androdebian 5 жыл бұрын
with this will be easy to do a Worms 3D game :D
@bananaman9869
@bananaman9869 3 жыл бұрын
Cool!
@meredocu
@meredocu 5 жыл бұрын
thanks dude! really help me out
@Theaksten
@Theaksten 4 жыл бұрын
Superb video. Sub'd!
@artemiogaming22vods98
@artemiogaming22vods98 5 жыл бұрын
thank you!!!!
@me2beats313
@me2beats313 5 жыл бұрын
Cool:)
@viniguerrero
@viniguerrero 5 жыл бұрын
Awesome video! Just have to questions, 1. The only way to paint grass and water is by shaders? 2. What's the proper way to place stuff in the map if you only see it runtime? Thanks in advance!
@TokisanGames
@TokisanGames 5 жыл бұрын
In the video I show water. That is just a plane that cuts through the terrain and has a basic blue reflective shader on it. Not voxels at all. Took me 15 minutes to make. Grass, you could follow Bastiaan's grass tutorial, which should work fine. kzbin.info/www/bejne/q36lZGCdbdtkeJI Probably many other methods for grass or water available. You can place objects in the editor at run time just as I moved the camera around towards the end of the video. Add an object, run the scene, move the camera where you can see, then move the object where you want.
@viniguerrero
@viniguerrero 5 жыл бұрын
@@TokisanGames oooh I get it now, okay, that's really awesome, thanks for the tips, been watching this channel every day now👏😀
@tuckertcs
@tuckertcs Жыл бұрын
Very neat! However there doesn't seem to be an option for blocky terrain anymore. Using the non-LOD VoxelTerrain node, it is smooth by default and there's nothing in the properties for the blocky style.
@TokisanGames
@TokisanGames Жыл бұрын
You'll have to talk with Zylann. It's been years since I built it. Looking at the code, the blocky mesher has not been removed and the documentation still shows it's an option.
@Chevifier
@Chevifier 4 жыл бұрын
My Instant thought is No Mans Sky's terrain tool XD
@hippiehippiehippiehippie
@hippiehippiehippiehippie 4 жыл бұрын
This is amazing. How do you save your changes for next time you open the world?
@TokisanGames
@TokisanGames 4 жыл бұрын
I think Zylann created a function for it, but I've never used it. You'll have to explore the issues or look through the code to learn about it.
@hippiehippiehippiehippie
@hippiehippiehippiehippie 4 жыл бұрын
@@TokisanGames Thanks for the quick reply on such an old video. I haven't managed to find how to access the save function yet. So far my workaround has been to save all changes made to the map in an Array and load chunks of changes when the player reaches places he's already been
@jaws8621
@jaws8621 2 жыл бұрын
I cannot for the life of me find a way to make buomes. Anyone have some resources?
@formaffinity
@formaffinity 5 жыл бұрын
Cool stuff! Is it possible to make the terrain (height map included) tileable? That way, instead of running into draw distance issues it's just repeating the landscape?
@TokisanGames
@TokisanGames 5 жыл бұрын
The landscape already repeats the height map. As you move toward the horizon, more sections are built. You're always in the center. With VoxelLodTerrain, you can extend the view distance very far which means the heightmap is tiled within your view many times.
@formaffinity
@formaffinity 5 жыл бұрын
@@TokisanGames Is there a way to view the terrain within Godot viewport (without playing the scene)? Would like to position polygon objects/buildings visually. Or how would you go about doing that? Really fun to play with so far, the pre-built binaries are super helpful. Is there an advantage to compiling it ourselves?
@TokisanGames
@TokisanGames 5 жыл бұрын
@@formaffinity The in editor option is disabled as it's not stable yet. You can run your game, reduce window sizes, switch back to the editor window and place your objects by editing the position and rotation in the editor. Compiling yourself allows you to learn more about the engine, get more up to date versions, or add other modules to it.
@bencepozsar4858
@bencepozsar4858 4 жыл бұрын
Can I make objects (for example a wall) with this to be destructible?
@robertt396
@robertt396 3 жыл бұрын
Is there anyway to shrink the voxels further on the non-smooth setting? Like the smooth texture but... with fine cubes?
@TokisanGames
@TokisanGames 3 жыл бұрын
I haven't used it in a while, so I don't know if Zylann has added that feature. I'm not aware of it. Review the current docs in his repo or ask there to see.
@robertt396
@robertt396 3 жыл бұрын
@@TokisanGames Looks like you can as of Jan 29th from a blog post asking him. Cool
@vladimir-sama
@vladimir-sama 4 жыл бұрын
Is there a way to implement custom chunk loading? I have searched the documentation but cant find it, I also need to create custom procedural generation by applying multiple noises to the terrain (2D noise, then 3D noise removing voxels), if I am over complicating this please tell me, and thank you for your time
@TokisanGames
@TokisanGames 4 жыл бұрын
You'll need to ask Zylann on the repo, and may need to dive into customizing the module in C++ to achieve what you want.
@Galomortalbr
@Galomortalbr 5 жыл бұрын
awesome man,, you should had click baited using mine craft on the title
@developerdeveloper67
@developerdeveloper67 4 жыл бұрын
Since you seem to have used Godot quite a bit, how do you think the Gdscript performance compares with a game made in Unity? (for big games)
@TokisanGames
@TokisanGames 4 жыл бұрын
Search for benchmarks online. For things like voxel generation, C# has been shown to be up to 12x faster, C++ up to 93x faster. Godot can use all three. A better metric is how easily you can fix or work around the bugs in the engine. Having been working on a decent sized game in Godot, in the future, I would only make something big in UE. Not Unity. Not Godot. Not any of the new upcoming, untested engines. I would only use an engine that the developers use to produce games. UE alone qualifies.
@developerdeveloper67
@developerdeveloper67 4 жыл бұрын
@@TokisanGames Thanks for your response, but I have to say I don't agree UE is the only answer. Look at Unity, 7 days to die is made in Unity, so is The Forest, Empyrion, and many other open world games were made in Unity, so I think if anything, Unity is the most battle-tested engine. The beauty of Godot I think tho is the ability you have that if you are really invested in a project and there is a bug with the engine, you can take the time to dig deeper and find a way to fix it, with Unity, you will always be at the mercy of the unity developers to fix the engine bugs, it's a black box.
@Thkaal
@Thkaal 5 жыл бұрын
Can the voxelterrain node be used as an actor? Like a space ship that gets parts blown off?
@TokisanGames
@TokisanGames 5 жыл бұрын
No. Currently it builds as an infinite, paged mesh that builds around 0,0,0 and is not movable. A separate, movable node is on the wishlist.
@chaostheory8340
@chaostheory8340 3 жыл бұрын
I downloaded the bits and It says unexpected end of file.
@TokisanGames
@TokisanGames 3 жыл бұрын
Although that's not nearly enough information to help you with, make sure you're using the commit version of my demo that matches the binaries on my site.
@chaostheory8340
@chaostheory8340 3 жыл бұрын
@@TokisanGames actually i think i figured it out. It didn't accure to me i had to download a modified goddot. So i download the 2020 3.2.2 then the 64 version. afterwards i imported the comit on the modified godot. Thanks for your help
@MasterJkpatrick
@MasterJkpatrick 4 жыл бұрын
Thanks for this tutorial, I tried downloading the Linux x64 binaries (on debian) and I got: ./Godot_v3.2.2rc+cd8d43_x11.64: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./Godot_v3.2.2rc+cd8d43_x11.64) The 3.2 Alpha version does work though
@robertoaguiar6230
@robertoaguiar6230 5 жыл бұрын
Would it be possible to render smooth voxels near the camera and leave far away ones? Would it make it faster?
@TokisanGames
@TokisanGames 5 жыл бұрын
Leave far away ones blocky you mean? No. The mesher is either entirely smooth or blocky. Smooth uses levels of detail for increased performance for distant landscape, which is the right way to do it.
@wapiti3895
@wapiti3895 5 жыл бұрын
could voxel be used for as rigidbody or it only works has static ones currently ?
@TokisanGames
@TokisanGames 5 жыл бұрын
The voxel terrain is a static body. The nodes only support infinite, paged, terrain generation. On the wishlist is a node that can create an independent, movable, non-terrain voxel object. But that hasn't been implemented yet.
@ZylannMP3
@ZylannMP3 5 жыл бұрын
The voxel meshing classes are available to the scripting API so in theory, with a bit of scripting, you can voxelize an arbitrary chunk as a mesh if you like, and turn that into a regular RigidBody with a MeshInstance.
@ZylannMP3
@ZylannMP3 5 жыл бұрын
@@wapiti3895 all I said is doable with GDScript, that's what I meant by scripting :)
@SuperJrKing
@SuperJrKing 5 жыл бұрын
For the Blocky mesh, is there any way to add custom mesh voxels like for example an fence, or tree trunk. I would like to be able to make trees like RLMinecraft or just basic grass. How would I do so if possible?
@TokisanGames
@TokisanGames 5 жыл бұрын
At the moment, you can only add cubes with the terrain node. You'll have to manage the placement of your own meshes on top.
@SuperJrKing
@SuperJrKing 5 жыл бұрын
Thank you
@rodericklagunas4788
@rodericklagunas4788 4 жыл бұрын
When GDNative port?
@funnytimeoofman8855
@funnytimeoofman8855 5 жыл бұрын
Quick question. New to coding but would I be able to change the texture of the voxels and assign different properties to voxel blocks? (For example, for making biomes or different types of stone and grass, lava voxels and have different properties (lava burns you)
@TokisanGames
@TokisanGames 5 жыл бұрын
You can add different materials for different blocky voxels. For smooth voxels, you only get one material at the moment. However with shaders you can create multiple materials based on factors like angle or height.
@funnytimeoofman8855
@funnytimeoofman8855 5 жыл бұрын
@@TokisanGames Thank you. I am like the smooth voxels but not being able to make different materials. I know it's possible as Deep Rock Galactic had something like that despite it being a different engine. Thank you so much again for developing this.
@funnytimeoofman8855
@funnytimeoofman8855 5 жыл бұрын
What's the difference between smooth and block voxels? Besides one being smooth and the other being blocky
@TokisanGames
@TokisanGames 5 жыл бұрын
@@funnytimeoofman8855 Blocky voxels are used in the VoxelTerrain node. It looks different, provides multiple materials, has a few other technical differences. VoxelLodTerrain is much faster and provides a far greater view distance, but is smooth only.
@TokisanGames
@TokisanGames 5 жыл бұрын
@@funnytimeoofman8855 Deep Rock Galactic probably used shaders, which you can do here. In the first few seconds, and in my other videos you can see footage of a landscape with grass on top and rock on the sides.
@classicguy7813
@classicguy7813 4 жыл бұрын
But why is blender not enough? What is related to this in game making?
@TokisanGames
@TokisanGames 4 жыл бұрын
Using blender to create terrains gives you a mesh. You can't modify it in a a game engine without a lot of programming. A voxel system allows the user to modify the mesh in game.
@hidemat5141
@hidemat5141 5 жыл бұрын
Do you think one can implement the marching cubes algorithm with this module?
@TokisanGames
@TokisanGames 5 жыл бұрын
*Marching cubes? It is already implemented. That's how the voxels are smooth. See my smooth voxels video.
@hidemat5141
@hidemat5141 5 жыл бұрын
@@TokisanGames ohhh that's cool. Is there a way to make it not smooth while still using the marching cubes? For example to get hard edges?
@TokisanGames
@TokisanGames 5 жыл бұрын
@@hidemat5141 At the moment it's either blocky voxels, or voxels smoothed by marching cubes.
@hashtagornah
@hashtagornah 5 жыл бұрын
will VoxelLODTerrain be supporting block type in the future?
@TokisanGames
@TokisanGames 5 жыл бұрын
The discussion has been around moving VT to block type exclusively, VLT smooth exclusively and each doing their own thing well. No discussion about LOD for blocky as of yet.
@hashtagornah
@hashtagornah 5 жыл бұрын
@@TokisanGames pardon me for asking another question, but in the features not supported list it said importing voxel data is not supported, will this eventually be added? Or is there some way to import a .vox file? A file type that could be parsed and imported to retain an objects voxel data? This would be exclusive to blocky of course.
@Delouser69
@Delouser69 Жыл бұрын
Thanks for making these videos. Is there any way to contact/connect with you?
@TokisanGames
@TokisanGames Жыл бұрын
I'm available in our discord server which is linked in the youtube channel.
@whoeverofhowevermany
@whoeverofhowevermany 4 жыл бұрын
Just a normal greeting and using a real human first name instead of saying your name is your username? Sweet
@officialfoxelgames
@officialfoxelgames 4 жыл бұрын
Alright, kinda tried to use your demo but it's missing something.. Also How would you go about generating different types of voxel depending on the height or randomly chose those?
@TokisanGames
@TokisanGames 4 жыл бұрын
Missing what? Did you use my binaries or build the engine yourself. If the latter the engine is going through major changes right now and not stable. As for different types of voxels peruse the Github Issues on Zylann's repo for discussions on that topic.
@officialfoxelgames
@officialfoxelgames 4 жыл бұрын
@@TokisanGames I've downloaded your demo and it somehow doest let me open your scenes, it spit out a error about it being the wrong data-ending :confused: anyways i saw you're going to make new prebuilt binaries any info on that?
@TokisanGames
@TokisanGames 4 жыл бұрын
@@officialfoxelgames DM me on twitter or file an issue on my github repository so we can work through it. Also see my notes here: tokisan.com/godot-binaries
@TokisanGames
@TokisanGames 4 жыл бұрын
Please try my new binaries just released. You can use them with the latest branch of my demo.
@ZandrichMynhardt
@ZandrichMynhardt 4 жыл бұрын
VoxelStreamImage is not an available stream option in either vanilla or LoD; what's the workaround? I really want to slap a heightmap onto this. Edit: Smooth mesh also seems to be missing. I initially suspected I'd kicked the wrong binary, but, that's not the case. Running the March 2020 x64 binary for Windows - 3.2.2rc+cd8d43 Edit: Temporary fix = revert to binary from November 2019 Edit: Using the old binary, how would I restrict/scale the generation according to the finite HM image I've imported? It's relatively large, so it seems like Godot's voxel generation is compressing it into really steep heights. The newer binary includes an ISO option, as well as the option of setting the height range; I'd like to set similar parameters using the old (working) binary.
@TokisanGames
@TokisanGames 4 жыл бұрын
In the newer binaries the name of the class is now VoxelGeneratorHeightmap. All of my demos from my github repository work with the new binaries, so use and learn from them. See my website for which git revision works with which binary version. For detailed questions about the module, read the docs and open an issue on unanswered questions in Zylann's Godot voxel github repository.
@ZandrichMynhardt
@ZandrichMynhardt 4 жыл бұрын
@@TokisanGames I think I've tried VoxelGeneratorHeightmap and VoxelGeneratorImage, with no voxel output. I vaguely remember trying out the project examples (for the new binary, not old), which DID generate the map as shown in your video. I'll give it a go later tonight when everything's out of the way. Thanks for the feedback!
@jamian_eg0istique
@jamian_eg0istique Жыл бұрын
I don't like that for godot people just making free addons but don't explain how to make it on your own and even how to change their addons.
@TokisanGames
@TokisanGames Жыл бұрын
I'm not sure I understand what you mean. You don't like that people make free addons for you to use? Instead, you'd rather we spend our time teaching you how to make your own addons or change them? The Godot docs already show how to make addons. Search "making plugins" in the documentation. As for modifying any existing open source plugin (like our newest Terrain3D), any developer can do that. You need to know how to program, which is out of scope for my tutorials. There are plenty of classes and videos online that can teach you how to program.
@williamtemple4331
@williamtemple4331 4 жыл бұрын
well this just sucks. I am using Godot Engine v3.2.2.rc.custom_build.cd8d43714 and apparently there has been some rather dynamic changes since this video was created as I do not have a "voxelstreamimage" but I do have a "voxelstreamfile" and a "voxelgeneratorheightmap" so my project is dead in the water befor I can even get it started
@TokisanGames
@TokisanGames 4 жыл бұрын
You can build your own binaries. The process is not complicated and well documented. Hardly enough to kill your project. There are far greater challenges coming in your journey than building the engine. My binaries and demo are there to get one started trying it out, not necessarily for production ready games.
Procedural Art With Godot - Julia Set Fractal Animation
1:54
Tokisan Games
Рет қаралды 5 М.
I Made the Same Game in 8 Engines
12:34
Emeral
Рет қаралды 4,4 МЛН
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
DnD террейн. 3д или оригинал?
21:37
MiniMaxStudio
Рет қаралды 7 М.
ChatGPT makes Voxel Engine with Rust
12:20
Tantan
Рет қаралды 103 М.
Massive Infinite TERRAIN that Generates INSTANTLY: Clipmap & Collisions
9:39
I Made My First Game in Godot in 3 Weeks...
26:21
Jack Sather
Рет қаралды 514 М.
The BEST Mechanical Display You've EVER Seen!!
13:51
Tin Foil Hat
Рет қаралды 623 М.
How to make Rimworld in Godot 4: Terrain Generation
21:22
Real Robots
Рет қаралды 14 М.
Blazingly Fast Greedy Mesher - Voxel Engine Optimizations
23:35
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН