Jon! I also love your videos and the things you do! I'm flattered by this comment, thank you ^^ The next Rezol update will make it even better
Foxy Of Jungle
Creator of
Recent community posts
Hello Meister! It's truly an honor to have the creator of Palpus X: Annihilation as a customer :D
Is this negative effect probably happening because of the normalized blend mode? I recommend using the "multiply" mode with renderer.SetLightsBlendmode(0). You can also try using "Multiply LDR" if you're using HDR, to create a "clamp" on the pixels.
Another thing that might be happening is that the overall light intensity is too high. You can reduce it to 1 using the renderer.SetLightsCompensation(1) function. By default it is currently 3.
And you could also disable the HDR of lights by using .SetLightsHDREnable(false)
Hello!
I just fixed the Discord link, thanks for letting me know! :D
In the .yyz project there's an example specifically about Displacemaps, could you take a look? See: "objPPFX_09_Displacemaps"
Basically, you will use the "PPFX_NormalmapRenderer". This constructor aims to draw normal map objects on its internal surface, and for this, it uses the default parent object "__ppf_objNormalEffect" (localized inside PPFX's folder), which has raindrops as its child, which you can create to generate the drops on the screen.
I hope this helps :)
Hello theyakuzi!
Sorry to hear, which part exactly confused you? Did you follow this guide specifically? Could you tell me what have you tried to do so far so I can give you some direction?
The .yyz project actually has more code because I needed to demonstrate how Crystal works in different situations. I know it might seem intimidating at first, but the process is simple. Sometimes it can be something silly that caused something not to work. I also have a Discord server for a more extensive discussion.
Hello! Thanks!
You configure this in the Screen Manager configs struct, using the function .SetMSAALevel(REZ_RENDER_MSAA.X8)
Everyone knows that dealing with resolution to keep your game looking flawless on all screens is difficult. That's why I developed a library capable of solving all screen resolution problems forever.
With it, just one setup is needed and your game will look amazing on any device with a screen, including consoles and mobile devices!

Rezol, in short, handles everything related to how your game displays on your screen!
Pixel-perfect Cameras, Scaling of GUI, Split-screen, Surfaces, Drawing, Window, Mouse functions, Dynamic render resolution, Frame Skip, HDR and More!
This is the REAL definitive and most complete solution available for GameMaker. Whether you are a newbie or an advanced user, this is for you.
It is useful for ALL game genres: Platformer, RPG/Roguelike, Match 3, Isometric, Racing, TD, Puzzle, Shooter, Visual Novel, Co-op, Point and Click (Farm, Idle), Horror, etc.
There is rich documentation and a Discord server for technical assistance.
Get REZOL kindly now on Itch.io! ^^
Hello! Thanks ^^
Did you follow the Quick Start guide? Which part exactly are you having trouble getting to work? Take a look at Troubleshooting.
Edit: Oh, I'm glad it works now ^^ thanks!
Hello!
Yes, if you use .LayerApply(), this functionality only works with orthographic cameras so you can actually draw on the layer. It's worth noting that if you're drawing in full screen, this doesn't make a difference (it works with both perspective and orthographic cameras - 2D and 3D, as it only depends on the input surface).
You're right, this is a limitation compared to forward rendering, where shaders are applied to each object individually (you just need to skip the lighting calculation to get something unlit). Since Crystal uses deferred rendering, everything naturally receives lighting, so to get something "unlit", you need to light it. The other alternative is to use the Combine pass, but it can only be drawn after everything.
Hello! Thank you for the kind words ^^
Yes, this is indeed a common problem, and depending on the effect, such as smoke, it might be better to draw the particle system manually at the desired depth and use a Direct Light with litType = LIT_EQUAL and intensity 1. This way, the light will illuminate only the depth where the particle is (you need to modify the light depth all the time in your case). And in fact, the Combine pass doesn't support depth because this is drawn after the lighting system is drawn (but on the same final surface).
Hi Pycho! Don't worry.
You'll still be using texture groups. The point of Managix is to combine all the confusing and manual work of GameMaker functions into an intuitive API, giving you greater control over when to load, unload, or even keep them in memory.
Each Managix_Resource can be a texture group containing sprites. And a special thing about Managix is that you can load sprites without freezing the game, and there's even support for loading things on-demand - that is, while you are already in the level, without freezing the game.
Without Managix, it's much harder to know when texture groups have finished loading - also harder to know the loading progress, and you still have to deal with GM's async functions which are cumbersome to handle manually.
Hello!
Regarding the depth change, this is because I'm using depth = -y for depth sorting, and since the game is still 2D, the light is just a "plane," and they're organized into layers, like other things. You can simulate smooth transition by applying a shader that darkens the tree depending on the light's position (but this isn't included).
I need to make it clear that it's more difficult to deal with depth in 2D if you're trying to imitate 3D perspective, like in top-down Zelda-like games, but it's possible to get good results.
Yes, you can change litType to LIT_ALWAYS. This will make the light always stay on regardless of the depth. You could also experiment "normal maps".
What graphics card do you have? AMD or NVidia? I can try to fix that.
I understand the price issue. I sometimes offer discounts, so you can follow me to be notified. You can get a refund if Crystal does not deliver what was described.
I guarantee you won't regret getting Crystal, it's currently the most complete library for GameMaker, and you have complete freedom with it.
Hello! Of course, the manual is publicly available here:
https://kazangames.com/assets/crystal/docs
Yes, I used Post-Processing FX for the bloom effect, and Crystal's emissive materials for the stuff
Hey there! It's possible to apply post-processing to surfaces, layers, and fullscreen, so if you were to draw the player (for example) on a surface, it would be possible. But post-processing in general is meant to be used to manipulate the final image of the game. It ends up being more efficient to use shaders directly on objects, etc.
Hello! I just added it to the documentation about Sprite shadows, I hope this helps ^^













