What is Gandi Quake？
Gandi Quake is an extension designed to add visual effects to games. Within the extension, there are several cool visual effects that can be applied to the entire stage area.
Why do you need Gandi Quake?
Visual effects are crucial to games. Gandi Quake can help you design a more immersive experience or a visually impactful performance in your game.
With Gandi Quake, you only need a few blocks to add effects to your work.
Here's an showcase game made using Gandi Quake. The shadow and noise effects in Gandi Quake intensifies the game's cyberpunk visual style.
Dizziness by @Jamin /Scratch project hosted on Cocrea.
Welcome to play My Project Hosted on Cocrea.world, powered by Gandi IDE.
This video introduces the usage and effects of various blocks in Gandi Quake. (The newly added Gaussian blur, bloom, and color noise effects are not included yet. We will update them as soon as possible).
The lates version of Gandi Quake contains 10 Modules:
Control the state transitions of effect among enabled, disabled, and removed.
Subtle flickering that lasts for a period of time, horizontal and vertical bar flickering, as well as slight screen shaking.
Continuous snowflake effect, scanline effect, and grayscale mode.
Continuous motion blur effect that leaves a trail of afterimages for everything in motion.
Continuous shaking effect that gradually comes to a stop.
Continuous ripple effect that expands, varying in intensity, with only one effect active at the same time.
Continuously randomize nearby colors to create a blur effect, with flickering noise dots appearing intermittently.
Regular blur effect without dynamic noise dots.
Make the scene brighter with a subtle bloom effect.
Separate the red and cyan components, allowing for horizontal blurring.
Functions and definition
The effects in Gandi Quake have three states: Enabled, Disabled, and Removed.
The relationship between these three states is depicted in the following diagram:
Enable or disable a specific effect.
In the first dropdown box of the block, you can select "enable" or "disable."
In the second dropdown box, you can choose a specific effect.
You can select a specific effect from the dropdown box.
The effects are initially set to the "Removed" state by default. If an effect is in the "Removed" state, modifying its parameters will switch the effect state to "Disabled" but will not automatically enable the effect. The effects have a stacking order that affects their appearance. The last effect that is turned on will be stacked on top. When an effect is disabled and then enabled again, it will retain its stacking order. If an effect transitions from the "Removed" state to “Enabled," it will be placed at the bottom of the stacking order.
The effect of the Glitch effect is as follows:
The parameters in the block can be used to adjust the effect of Glitch.
Control the duration of the glitch effect, where a higher value results in a longer duration. It can be interrupted by disabling it, or removing it.
The intensity of the stage brightness offset, with values ranging from 0 to 100. A higher value indicates a stronger intensity.
The maximum offset position of the two stripes from the left or top side (e.g., 0 represents a fixed position on the left and top, 50 represents randomly moving within 50% of the left and top sides, 100 represents random movement across the entire stage).
The effect of the Film effect is as follows:
Set the noise amount of the effect, which determines the intensity of the noise dots in the image. The value ranges from 0 to 100, with higher values indicating a stronger presence of noise dots.
The intensity of horizontal scanline effect on the screen, with values ranging from 0 to 100. A higher value indicates more pronounced scanlines. (Affected by the noise level; if noise is not enabled, the scanline effect will not take effect.)
Colors can be set in two modes: Color and Grayscale. When set to Grayscale, the screen will appear in a black and white movie-like effect.
The effect of the Shadow effect is as follows:
Set the amount of fade-out for each frame of the shadow effect. 0% will make the shadow not fade out, while 100% will make the shadow disappear immediately upon appearing.
The shadow effect is additive in terms of brightness, so black objects will not overlay white shadows. When red shadows overlap with green objects, they will combine to form yellow. On a white background, the shadow left by a colored object will be covered by the white background. Conversely, the background will leave an shadow on the colored object.
The effect of the Shake effect is as follows:
The parameters in the block can be used to adjust the effect of Shake.
x & y
The maximum magnitude of the shake, which can be set as a negative value (absolute value is taken).
The rate at which the shake magnitude decreases, with values ranging from 0 to 100. A value of 0 means the shake magnitude will never decrease. Values greater than 0 indicate that the shake magnitude will gradually decrease, with higher values resulting in shorter durations of shake.
Skip frames per round
The number of frames skipped between each shake, where 0 represents continuous shake. Values greater than 0 indicate that for every few frames, one frame will experience shake while the stage remains unchanged during those frames.
The effect of the Shockwave effect is as follows:
The parameters in the block can be used to adjust the effect of Shockwave.
x & y
The position where the shockwave is generated.
The intensity of the shockwave, with values ranging from 0 to 100. A higher value indicates a stronger shockwave.
The width of the shockwave ripples, with values ranging from 0 to 100. A higher value indicates wider ripples.
🚿 Noise Blur
The effect of the Noise Blur effect is as follows:
The blur intensity can be adjusted, with values ranging from 0 to 100. A higher value will result in a stronger blur effect.
😵💫 Gaussian Blur
The effect of the Gaussian Blur effect is as follows, the effect is static:
You can adjust the degree of blur, with values ranging from 0 to 100. A higher value will result in a greater blurring effect.
The effect of the Bloom effect is as follows. the effect is more pronounced on a black background:
You can adjust the brightness intensity, with values ranging from 0 to 100. A higher value will result in a brighter effect.
The effect of the Color Blur effect is as follows:
The parameters in the block can be used to adjust the effect of Color Noise.
Separating the red and cyan components of the stage, the degree of horizontal wave-like motion for the two separated afterimages can be adjusted. The value ranges from 0 to 100, with 0 indicating no motion.
The distance between the two separated afterimages can be adjusted, with values ranging from 0 to 100. A higher value will result in a greater distance between the two afterimages.
- The Gandi Quake extension implements these effects by not directly calculating the final color of each pixel one by one. Instead, it modifies the drawing part of Scratch and applies the effects directly during the display on the stage using WebGL fragment shaders. This offloads the task of computing the color of numerous pixels to the GPU, which is better suited for handling such problems and results in faster processing speed.
- When the effects are disabled, the relevant fragment shaders are still stored in memory, allowing for faster response when they are next enabled. When the effects are removed, the associated shaders are released from memory, which may result in a slightly slower response when they are re-enabled.
- Currently, the effects do not automatically move out when disabled. It is recommended to manually remove the effects when they are not needed to save performance.。
"Quake" refers to a shaking or vibrating movement.
In the gaming industry, the term "Quake" refers to a popular first-person shooter game series developed by id Software. Quake was one of the first fully 3D First-person shooter games. This game brought immense visual impact to players at that time. We hope that Gandi Quake can help Scratchers create even more stunning visual effects.