I am new to godot and I really want to create a 3D procedurally generated game eventually(i really like that game mechanic) after ive learned though I was contemplating using. I was contemplating unity instead because I was scared that i couldnt create that type of game in godot. So I was wondering if its possible to create 3d procedurally generated worlds with different biomes and mountains and hills and stuff.
Are procedurally generated worlds possible in godot 4?
- Edited
Absolutely. So long as you are willing to put the effort in any genre of game ought to be possible in a general purpose engine like this. Unity's main advantage would be that it's existed longer and has more plugins and addons to choose from.
- Edited
hhll35 Yes, and better than unity.
hhll35 I was contemplating unity instead because I was scared that i couldnt create that type of game in godot.
unity is dead, you shouldn't waste your time with it. you need VERY advanced skills to do it in unity, I speak from experience. spawning over 10000 cubes in unity will cause your FPS to drop, so you would need to write code that uses Command renders to generate the geometry (which is advanced shader knowledge), or make a procedurally generated mesh, which by default has a limit of like 4096 vertices, so then you have to use a different type of integer though a specific function... unity sucks.
In godot you have GridMap, which is a voxel, you put meshes in it to create a map. There's also a really good addon for Voxel terrain generation that supports SEVERAL types of voxel, from a minecraft style voxel to a space engineers style voxel.
and you can also just use nodes, since nodes in godot are simple data, with only what the node needs. for instance, an animation node doesn't store transform data, while a Node3D does. Unity objects on the other hand are just a waste of memory and very badly optimized.
Megalomaniak Thats great to know! Ive never liked unity at all and I was kinda worried that i wouldnt be able to make the games I would to make in godot.
Jesusemora Oh wow i never knew that about unity thanks for informing me!
Jesusemora In godot you have GridMap, which is a voxel
GridMaps are 2D tile based containers for MeshLibraries which contain Meshes, there's nothing here really to do with voxels. This can be great for modular levels in an ARPG or houses/segments in a survival/construction or city builder game.
For a procedural terrain generator I'd probably not use them tho. Something based off of ArrayMesh, PrimitiveMesh etc. or perhaps even developed as a plugin/extension working directly with the RenderingServer and PhysicsServer etc. might be better depending on the projects needs.
or make a procedurally generated mesh, which by default has a limit of like 4096 vertices, so then you have to use a different type of integer though a specific function
That's completely wrong. With 16-bit mesh indices you have about 65,000 vertices per mesh, with 32-bit indices you have about 4 billion vertices per mesh, but regardless you work with meshes the same either way. Spawning 10,000 individual cubes in any engine is a bad idea and the most unoptimized way possible. Working with meshes is relatively straightforward and is something any intermediate coder should be able to handle without much trouble, and it's not really any different in Godot because that's just how GPUs work. It's not "VERY advanced" by any stretch of the imagination; if you're working with 3D there are far more complicated things you could be doing, and if you want to do procedural terrain you should be familiar with things like "how GPUs work". Unity has issues but let's keep things fact-based, please. Godot has performance issues as well, and as of now in many cases you're going to get better speeds out of Unity (if you have any idea what you're doing).