Replies: 1 comment
-
Thanks for the proposal! Consolidating in #3518. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The 2D Tilemap in Godot has received a lot of love over the last few versions, and thanks to some outstanding work from contributors is now up there as probably the most well rounded solution in any of the common game engines.
The GridMap on the other hand has not received much attention for a while - I imagine due to it's usage being a bit more niche, firstly due to the fact that there are relatively few games that use a 3D GridMap, and secondly because far more of the games developed with Godot are 2D than 3D. As it stands the GridMap is effectively a separate, much more basic implementation of the TileMap that draws 3D objects rather than 2D tiles, albeit with some 3D specific optimisations.
Given all of the work that has gone into the TileMap, my suggestion is that the ability to place 3D objects be implemented into the existing Tilemap functionality. This would give us really useful benefits for 3D / GridMaps such as terrains, per tile type / per tile custom properties and all of the other features that make 2D tilemaps so great without needing to completely reimplement those systems in the GridMap class.
Practically the workflow would be something like:
From a technical viewpoint (i don't do c++) my thoughts would be that a 3D Tilemap actually uses (or is somehow "connected" to) a GridMap in the background - each tile in the tileset is just a proxy for an item in a MeshLibrary (which itself could be stored transparently as an included resource in the tilemap and updated when new tiles are added). Custom properties would be read from the proxy tile using the standard TileMap functions. This way would seem (at least to me) to be the least work, and would allow all GridMap optimisations to remain without reimplementing them.
I'm sure there is stuff i've missed, but wanted to see if I was the only one thinking about something like this.
Beta Was this translation helpful? Give feedback.
All reactions