This is a package of surface-based glass, laser beam, and shock wave effects. Example objects for each effect are included, and can be tweaked to your preferences. Coded entirely in GML.

Choose your sides! The effects can easily form shapes like triangles, squares, pentagons, hexagons, etc. This also gives you control over how much CPU is used.

It is a good idea to load this asset into a blank project file and play around with the objects to try out all the different ways Shock Glass Lasers can be manipulated!

Here is a link to everything by this author:

Get the demo! Click "More Info" to download.

More info

End User Licence Agreement (EULA).

Changes in 28.14.16

More comments have been added to help understand this complex asset!

Version 28.14.16. Published April 15, 2016

Created with GameMaker: Studio v1.4.1749

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


Juha S 27 January 2018


great stuff!!


Anonymous 23 February 2016

Great asset!


this asset is awesome, very easy to use and effects look amazing! I use shockwave in my game and it runs smoothly even on Android (Nexus 7) with a bit of tweeking. All in all, great job!
I do have few questions:
1. Could I somehow use draw_magnify_ext() in regular Draw event or I need to put objects which I want above the shockwave in Draw GUI??
2. How can I set some objects not to be drawn on that shockwave effect, do I need to set mine surface (and not the application surface) and somehow exclude those objects?

Sorry for longer post.. :)

Best regards!

This review was left for a previous version of this asset.


Ground Effect Games (Publisher) 15 April 2016

I am glad you are enjoying this effects package, I spent years developing it!

Your questions have a long answer. The short answer is that yes, you can do it, but it's hard.

Shockwaves work by copying the application surface after it has been rendered and using it as a texture for a primitive. Therefore, if an object is drawn after the shockwave has been rendered but before the next refresh of the surface, it will not be distorted. The only event I have made to work in the way you are talking about is the draw_GUI event.

If you are working with in-game objects and do not want to use your draw_gui event, the other option is to render the shockwave effects using a view surface instead of the application surface directly (all views have a unique surface id - check the GMC forums for more about this). Draw only the objects you want for the particular view.

Package contents

Loading, please wait

What is the issue?

Back to Top