Dynamic terrain?? It's possible?

Hi everyone! I recently joined the forum, but I’ve been using Gdevelop for a while. Is it possible to create something like this on gdevelop? If it can be done, do you have any advice or ways to achieve it? I thank you all! P.S. Sorry for my bad English :slight_smile:


It is called AutoTile
And because how gdevelop detects adjacent objects of same type
There is NO easy way to do it
On top of that AutoTile extension alone is very laggy
I am trying to optimize it but well FPS lag hits hard because how updating works

And on top of that just by updating giving this behavior to your objects you cut down how many of said objects you can have on scene

Do not pay attention at destroying stones
But you can see what i am talking about
In upper left you have counter that tells you how much stones you have

See how many stones you can create before you will start getting FPS drop

I am able to modify this extension and share knowledge on how to allow you to have around 5k tiles on scene/map (not viewport)
BUT that will lag FPS when you create or destroy tiles
While just walking by them it will be smooth
But more tiles you have more FREEZE you will get when you create or destroy tile
My words of wisdom as a person who try to solve this problem for over half year
It is not worth it
I already am considering splitting my game into smaller scenes where amount of tiles (well amount of actual grid cells on which tiles can be created) will be something like idk 1k max or even less

Just be aware if you care to take it from me knowledge and autotile extension
1 - you won’t avoid FPS lag
2 - you will need to learn not a lot but fair share of how to deal with it
3 - you will need to limit your game scene/map for it to be even playable
4 - you will need to choose between updating tiles only when player moves (noticeable freezes each few steps) or updating ALL tiles only on creating/destroying tiles (noticeable freezes when you well destroy or create tile)

1 Like

ZeroX4 thank you for the reply. I apologize but I’m only replying now because I’ve been quite busy this last month. I found a version of your Autotile on github (GitHub - ZeroAlvein/GDCraft) and was able to set it up to my needs. it’s a fantastic extension, I congratulate you on the work you’re doing, really well done. I also decided to divide my game into multiple scenes so as not to have too many tiles on the screen and it works great for now. Do you by any chance have a more updated version of the extension???

Yes and no

I was able to find a way to update only 2 tiles away from created one
Yet it totally do not work for updating tiles on destroy
Do not ask me i also think if it work for one it should for other one also
BUT for some reason it does not
Well if does if i use mouse to create and destroy tiles
But not when i destroy them by attacking with my player
I do not have any events to create tiles without mouse yet
And i am not even willing to test that out

Because it still lags more tiles you have on scene
Recently on forums i was told my problem partially comes from the fact not how many objects i have
But what i do them and what the do
So checking all of them and then updating all is the issue here

And what you found on github is just earlier version
It can work better for some scenarios
But then worse in others

Same as with updating only ones that are on screen
Perfectly fine solution
But then you will have like lag spikes just be walking the more tiles you will have

So there is no perfect solution so fur


Yesterday i seen some user on discord say that something good is coming to gdevelop and it was regarding lazy update off screen stuff
So MAYBE there will be some improvement
And auto tile will work more or less

For now there is nothing more i can do to autotile with my current knowledge and how engine works

But each day i am gaining knowledge and each update gdevelop is getting new features so who knows when auto tile with no lag will be a thing

I saved link to this post
If i will have any improvement with auto tile extension i will reply to you here