You need Graphics Utilities to be able to compile this asset. Graphics Utilities enables lots of features for graphics programming via a DLL. You can read more about it by following the link.

Download executable:

Forum thread:

This demo contains a set of different types of fireworks which uses vertex texture fetching and point sprites to efficiently render more than 100,000 particles at once. The logic of the particles is updated with the use of 32-bit color channel surfaces.

This was made for GMC member xygthop3's 3D effects challenge (#1): It has had a bit of further development, and now it's available here on the marketplace. The sound used in the challenge is not included.

End User Licence Agreement (EULA).

Version 1.0.1. Published November 5, 2015

Created with GameMaker: Studio v1.4.1657

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


Anonymous 17 May 2017


Gilles P 03 August 2016

Worth it for the vetex buffer learning experience

This is simply an amazing demonstration on how to implement vertex buffer data storage via surface to be able to implement a varying particle system out of a static vertex buffer.

The system requires a second asset, which frankly, is deserving of attention.

Admittedly it's probably possible to achieve this effect without the other asset BUT the knowledge I gained from getting both this and the companion asset is well deserving for my $$.

The con part is a little lack of documentation in the fireworks code itself. I did not find an explanation on the concept itself and if you went at it with little understanding on how this is possible, you will be scratching your head looking at the code. But it's brilliant once you get it.


Mytino (Publisher) 03 August 2016

Thank you! Glad you've learned from it! I could probably have documented it better. It was originally an entry to a forum challenge, and after that I adjusted some things and made it more suitable for the marketplace so I could upload the code there. I have been thinking about ways of doing it without a DLL. The main problem is the vertex texture fetching; seems like there's no way to access textures from a vertex shader in GM without extensions. Another issue is the point sprites, you might need 6 vertices instead of 1 because of the lack of support for point sprites. I did find a way though which I believe can get you to 100k particles with a steady framerate: If you update your particle states as in this asset (to a surface using shaders), then you can use buffer_get_surface and convert the buffer to a vertex buffer. But you have to carefully organize the data in the 4 color channels so the bits line up correctly to what the vertex buffer expects.


Pawel D 19 November 2015

Demo looks promising but scripts are missing


for now only 1 star


Mytino (Publisher) 20 November 2015

Hi, the description and readme file specify that you need the Graphics Utilities marketplace asset for this asset to work. I've updated the description of this asset for it to be a bit more clear.


davide m 06 November 2015

Lovely effect

And it shows what you can do with the Graphics Utilities asset. Thank you for giving it away for free! :)

What is the issue?

Back to Top