#TerrainGeneration
Voronoi diagrams: circumcenters vs. centroids.

1: Using tri circumcenters. Classic/pure, angles are more abrupt.

2: Using tri centroids instead. Smoother, bubble-like regions.

#proceduralgeneration #gamedev #computergraphics #voronoi #terraingeneration #indiedev
September 6, 2025 at 5:39 AM
Been diving deep into the fascinating world of terrain generation lately! @redblobgames and his incredible blog have been an absolute goldmine of insights and techniques.

#terraingeneration #procedural #computergraphics #gamedev
August 29, 2025 at 12:37 AM
continent labelling

this might be a "fix it in post" kind of solution, but im trying to remove/differentiate the inland water bodies, which are currently treated no differently than the sea
#procgen #terraingeneration #gamedev
January 11, 2026 at 5:41 PM
Okay, okay, I finally got some time to work on this, and I've fixed the issue.
Was interpolating already interpolated values when deforming the same terrain piece multiple times. (So it was the "old" terrain chunk looking weird, not the new one)

#indiegame #solodev #gamedev #terraingeneration
March 31, 2025 at 9:51 PM
🌎Patreon #Gaea 2 deep-dive series Preview! Covering nodes, import/export, & everything you need—perfect for new users or those coming from Gaea 1. Thanks for the support on YouTube + Patreon!
#Quadspinner #TerrainGeneration #WorldBuilding #3DArt
December 10, 2025 at 9:03 PM
Son of a bitch! The madlad did it! Not only that, he gave it away for free. That's the power of sharing.
#twominutepapers #minecraft #terraingeneration #realisticterrain #terraingen #mapgen
www.youtube.com/watch?v=Ae9q...
Minecraft Was Missing One Brilliant Idea
YouTube video by Two Minute Papers
www.youtube.com
July 13, 2026 at 12:30 AM
#TerrainGeneration using #element3d. #3dscene development takes time and that's why many CGI artists use Element 3D for quick render for a submission to their clients.
Generate #B2Bleads with #IndustrialFilms, #CorporateBranding and #SocialMediaMarketing within your budget. info@creativesnext.com
September 23, 2025 at 3:00 AM
TerrainGeneration Node not Replicating to Client
### Godot Version Godot 4.3-Stable ### Question I’m having trouble replicating a map/level/terrain over to the client. I’m using a MultiplayerSpawner node called `MapSpawner` that has the root `Game` Node3D as it’s path, `terrain.tscn` scene in the Auto Spawn List, and 0 for the Spawn Limit. My idea with the MapSpawner is that the client starts first, loads the `terrain.tscn` and has it set under the MapSpawnPoint Node3D, as shown in the remote debug: I thought the MapSpawner node would be able to replicate the TerrainGeneration node over to the client with no issue? Notice how the map ground mesh or anything isn’t loaded in for the client. Yet the client can recognize and collide into terrain. Terrain loads in just fine with only host spun up: No terrain passed in from the MultiplayerSpawner: Here is how I generate terrain only if it is multiplayer authority: extends Node class_name TerrainGeneration func _ready(): if is_multiplayer_authority(): generate() func generate(): ... generation code form noisemap... Here is what calls the above TerrainGeneration code, only if multiplayer authority again: extends Node3D @onready var world_scene = preload("res://scenes/levels/terrain.tscn") var current_world: Node = null # Variable to keep track of the current world @onready var map_spawn_point: Node3D = $World/MapSpawnPoint # Called when the node enters the scene tree for the first time. func _ready() -> void: if is_multiplayer_authority(): # Instantiate the world for the multiplayer authority instantiate_world() # Function to instantiate the world and replace the old one func instantiate_world() -> void: # Remove the previous world if it exists if current_world: current_world.queue_free() current_world = world_scene.instantiate() map_spawn_point.add_child(current_world) And here is my multiplayer_manager, adding people to the game: extends Node @export var _player_spawn_point: Node3D var _multiplayer_scene = preload("res://scenes/characters/humans/base_human.tscn") var _boat_scene = preload("res://scenes/objects/boats/jon_boat/Jon_Boat.tscn") var _players_in_game: Dictionary = {} func _ready(): # need this to allow time for the callbacks to be established await get_tree().process_frame if NetworkManager.is_hosting_game: print("Network lifecicle setup") multiplayer.peer_connected.connect(_client_connected) multiplayer.peer_disconnected.connect(_client_disconnected) # NOTE: can comment this out if you want to test locally as a dedicated server (no client) if not OS.has_feature("dedicated_server"): _add_player_to_game(1) func _add_player_to_game(network_id: int): print("Adding player to game: %s" % network_id) var player_to_add = _multiplayer_scene.instantiate() player_to_add.name = str(network_id) _players_in_game[network_id] = player_to_add _player_spawn_point.add_child(player_to_add) func _remove_player_from_game(network_id: int): print("Removing player from game: %s" % network_id) if _players_in_game.has(network_id): var player_to_remove = _players_in_game[network_id] if player_to_remove: player_to_remove.queue_free() _players_in_game.erase(network_id) func _ready_player(player: HumanNode): var boat_to_add = _boat_scene.instantiate() player.position = Vector3(50.5, 4, -2) boat_to_add.position = Vector3(50.5, 3, -2) # Connection lifecycle func _client_connected(network_id: int): print("Client connected %s" % network_id) _add_player_to_game(network_id) func _client_disconnected(network_id: int): print("Client disconnected %s" % network_id) _remove_player_from_game(network_id) Any idea where to go from here? Thanks in advance
forum.godotengine.org
December 31, 2024 at 11:18 AM
I'm trying geonodes as well as seamless noise textures that I then give a driver. My next plan is to redo the Terraingeneration and tweak it somewhat to look somewhat cloud shaped
February 9, 2026 at 3:47 PM
I got a seamless loop no problem for a Terraingeneration but I whatever it is with clouds, the way they are scattered ,their shape.. can just not get it working convincingly. I'm actually so desperate by now I'm considering doing it in 2d because no matter what I try in 3d, it just won't work..
February 9, 2026 at 3:33 PM