bktGlitch is a glitch shader for GameMaker: Studio 2 that's gonna mess your game up in a rather visually pleasing way.

Originally released in August 2017 on the GameMaker: Marketplace, now free.
If you like this asset and can pay for it, please consider doing so.

Please give credit if used (but you don't have to if you paid for it, also it'd be cool if you let me know about your project, just curious).

HTML5 DEMO • WINDOWS DEMO • GAMEMAKER: MARKETPLACEGAMES USING THIS SHADER

Features:

  • Effects such as tearing, noise, colour dispersion, glitch blocks, RGB splitting...
  • Written in GLSL ES - not limited to desktop platforms
  • Easy-to-use setup scripts and presets, no need to set up uniforms manually!
  • A demo where you can adjust all effects manually and even generate the resulting configuration code!

Changelog:

1.3.2 (January 2021):

  • Fixed bugs, switched to new GML syntax.

1.3 (July 2020):

  • Overall improvements to compatibility (code cleanup, use of internal noise texture, etc.), minor bug fixes
  • Simplification of the API (please see the demo code for details on how you can port your existing code to this version of the shader)
  • Dropped 1.4. support because I don't want to end up in an institution.

While the shader has been pretty much entirely rewritten, it should still behave as close to the original as possible.

Developed by Jan Vorisek (blokatt).

Download

Download NowName your own price

Click download now to get access to the following files:

bktGlitch 1.3.2 3 MB
BktGlitch 1.2 (GM:S 1.4. compatible) 2 MB

Development log

Comments

Log in with itch.io to leave a comment.

May I ask if you can support Unity? I feel very sorry for that. Unity has a large number of users, and I will buy it even if it is paid

I don't use Unity, so I can't as of now. I also don't consider the product to be good enough to warrant a fresh release on a different platform.

Really like your work! I've been using it in my project. But when I switch the compiler from VM to YYC, the display effect is completely different from what I expected when compiling with VM.

I checked the code, but can't find any problem. Is this because bktglitch doesn't support YYC or because some functions have changed in GMS 2.3?
If so, could you please make a update to support YYC and GMS 2.3? I think YYC is very necessary to protect the code.

Thanks alot.

Deleted 34 days ago

Fixed.

Wow, thanks alot!

Thanks for this is really good!! When i compile with VM all is good, but when i compile with YYC the noise color is black. Any idea?

Deleted 34 days ago

Fixed.

(1 edit)

Thanks now is working perfect :D

This thing is excellent and I've been using it in a project for a while, but it looks like 2.3.1 of GM2 causes the shader to get messed up if game_restart(); is used after the shader has been activated once anywhere in the game. At that point, it's as if the settings for the shaders are corrupted and the effects don't look right until the game is re-compiled or the executable is run again.

I tried testing it in the demo and it occurs there as well. Not a huge deal, but I'm assuming something's changed within GM to make this happen and I can't seem to figure out how to fix it.

Fixed.

Awesome, thank you so much!!

Hey, Where did u get the ThickPix2 font from .?

I made it, and it's there only for the purposes of the demo.
It isn't a "usable" part of the package.

Shame, i could do with a good, small font ..   :)

(+1)

Plenty of those online!

(2 edits)

Hello there - I went ahead and bought this shader, super impressed with it.

One question - I'm getting it to apply to individual sprites but I notice that it is picking up sprites next to them on the texture sheet when it's doing anything involving shifting (channel, line, etc). Should I be creating more space between objects on the texture sheet or is there a quick way to get bound the shader to the sprite's location on the texture sheet? I have a workaround where I'm not letting gamemaker crop.

Second question - I notice my parameters are all acting a lot different when I put the shader into my existing project. My resolution is 960x540 and it's looking like the noise texture that everything is based off of is way larger, looks like small squares on the sprites instead of noise. Is there an easy way to get everything set up so it acts more like the demo?

Hi. The shader is not really meant to be used to render individual sprites (not counting the obvious texture page issue, it would also require a custom draw_sprite function that would provide a large enough rasterised area for the "offset" effects not to be cut off). It's a full-scale post-processing effect. AFAIK, people usually get around this by using a big surface instead.

As for the resolution problem, by default the size of the application surface is used. If you need a different one, pass it via the arguments of the BktGlitch_activate function.

(1 edit)

Hello! I would like to use BktGlitch, but I have a severe problem!

BktGlitch is all screwed up, when I open the project itself and modify it to be a game, the sprites are all jumbled, and when I try to import it in a non-BktGlitch project, It will become all red and I can't make anything out.


And yes I do have DirectX installed.

Hey.

If you're still interested in making the shader work, please try out the new update.

Thanks.

Hello! I really like this and I'm very interested in potentially implementing it in a future project. I am completely new to GMS2; last time I used any version of Game Maker was before GMS existed and I didn't know anything back then, either.

What I'm wondering is if it's possible to use this on select portions of the screen instead of the whole screen (or alternatively, if it's possible to apply this shader to a single background layer and build overtop of it with tiles unaffected by the glitching); what I want to do with this is something kinda similar (aesthetically) to the glitch rooms in Axiom Verge where parts of the screen appear to be corrupted. I may have use of this either way; it's awesome looking and may inspire me to do other things with it, but I'd just like to find out if this is even possible before I go ahead and get in over my head.

(+1)

The shader can be used on anything rendered by the GPU. In this case, the usual approach would be to render everything you'd like to have the effect applied to into a new surface, which you would then draw with the shader active. 

Thanks very much!

maybe a dumb question but, I can use it in my own game that I'm making?

Yes, and yes. :)

ok, when I imported the project into my game, it substitutes the previous project by your, how am I supposed to do then?

(+1)

Hi.

The new version contains a yymp file you can drag-and-drop into GMS2 to import the files.

Thanks for this! Would be nice if there was a complete tutorial on how to implement it for total noobs like me :p

Please read the comments provided in the code of the controller object, it's all explained in there!

Does this work on Gamemaker Studio 2?

Yes.

Awesome, thanks!

Holy shit man this looks so awesome!!!

Hey man! I'm using your shader for a game of mine, the problem is, the shader is not working for android; the shader does not appear or do anything for android. What could be wrong?

If the demo doesn't work, your device is probably too old.

Didn't work with a Samsung S8...

It works fine through GM:S 1.4 on a Xiaomi MI4c, which isn't really a high-end phone.

Deleted 1 year ago

Looks like you're using the shader in your object draw calls instead of only when you're rendering the application surface.

Does the demo work?

Deleted 1 year ago
(1 edit)

Dude, you are awesome releasing this for free. Always wanted a glitch shader like this.

This is the reason I'm going back to Gamemaker, now I can finally make what I always wanted to make. Thank you blokatt! <3

(And I will credit you, for sure)

You're welcome!

does this only work in gamer maker studio only...? 

cuz i am using godot and want to know if this works in it...

(1 edit) (+1)

If Godot supports GLSL ES, then sure, the fragment shader should work fine as long as you hook up all the uniform/varying variables correctly.