GameMaker (2.3)

Dynamic Destructible Terrain

Nocturne Assets

You must be logged in to obtain assets



This asset provides a complete and dynamic resource for creating destructible terrain. Unlike most other destructible terrain assets, this one does NOT use surfaces or shaders and relies instead on a textured polygon approach, meaning that you can create and destroy the terrain in real--time. This also means that it is incredibly fast, especially when compiled using the YYC. The asset also has simple save and load scripts, permitting you to create levels and save them out as files which can then be loaded at any time... give your game a level editor!


  • Complete set of debugging tools
  • Game editor Demo where you can create and destroy terrain and see how it all works
  • Multiple "quality of life" scripts to make using the asset a breeze
  • Scaleable resources that will adapt to any size graphic used
  • Highly optimised code that culls to the view and (when compiled using the YYC) is blindingly fast
  • Heavily commented scripts and a complete demo to show how it can be used
  • One script saving and loading, so you can create in-game editors, or create your levels and save them to be loaded later

NOTE! This asset can be used with pixel art games and gives beautiful crisp pixels on all destructible terrain by simply disabling AA and linear interpolation (or using the handy script supplied "terrain_set_smooth(false)". :)​

You can find a live demo here:

More info

End User Licence Agreement (EULA).

Age Rating: 4+


GMS2 - Version 1.0.1. Published April 24, 2019

Change Log: - Minor update to include some "smoothing" scripts. This is primarily for pixel-art, so that you can easily turn off AA and interpolation and so get crisp pixels along the edges of the terrain as it is destroyed.

GMS2.3 - Version 2.0.2. Published March 9, 2021

New upload with improved scripts for GameMaker Studio 2.3+

Privacy Policy
Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait