
To complete this course, you'll need to dowload the project sources. You can download the file attached here or use the google drive link if you prefer.
The project uses git and has two branches: master (base game) and juice (the final game with all the juice).
Explore real examples from juice-rich games to understand how juice adapts to a game's tone in Godot 4, and learn by analyzing what's done and drawing inspiration.
Animate a juicy bounce in Godot 4 using an animation player with squash and stretch, keyframes, and easing, plus sprite rotation to collision normal.
I've added a self_freeing_particles.gd script that you can use on the particles instead of recreating the script everytime. Basically, it checks itself and all of its children, get the highest lifetime, start emitting and create a timer to queue_free automatically once it times out, based on the highest lifetime. This works with particles you instantiate and wants to be starting right away of course.
Create bump particles in Godot 4 by duplicating the bounce particle scene, making resources unique, and tweaking texture, velocity, and curve for aligned effects. Trigger on paddle collision.
Implement hit stop in Godot 4 to freeze only the collided object for a few frames, not the whole engine, and scale it by collision strength, contrasting with hit lag.
Explore implementing hit stop for bump interactions in a Godot 4 paddle mechanic, differentiating early, late, and perfect bumps to vary collision timing and paddle feedback.
Steven suggested to use await between calling reset and the next animation. Without that, the animation player doesn't have time to reset. It looks like this:
func appear () -> void:
animation_player.play("RESET")
await animation_player.animation_finished
animation_player.play("appear")
Use a hud canvas layer and a separate ui canvas layer in Godot 4 to anchor ui to the world while keeping essential screens on screen.
Learn how to implement lerp-based paddle movement in Godot 4, using acceleration and deceleration to smoothly ramp velocity, add friction, and improve movement feel with a rotation tweak.
Explore how to implement a damped harmonic oscillator in Godot 4, using spring force and damping to create natural, springy paddle rotation by integrating velocity, displacement, and delta.
Create thrust particles for a paddle in Godot 4, removing gravity, tuning direction, velocity, scale, and color ramp with local space for a cohesive levitation effect.
The deform shader was apparently missing from the base game, so I can you don't have it, you can download it separately here. I placed it under scenes > effects
Use Godot 4 tweens to lay out bricks sequentially with a for loop, employing a local tween, tween callback, and 0.1 interval for dynamic, code-driven pacing.
Tune destruction particles in Godot 4 by reducing emission. Increase explosion size, switch to a 30 by 10 box, shift colors from yellow to red to black, with brick explosions.
Explore animation player tweens and particles to create effects, sequence actions with delays, and use bezier curves, easing, and overshoot for dynamic brick spawning and highlighting key objects with wiggle.
Learn to implement a shaker node in Godot 4 to add screen shake effects, configure its target, rotation, and duration, and integrate with a quick stats animation.
Create a stage clear animation in Godot 4 with an animation player, color rect, blur, and a moving label using keyframes, then trigger stage clear and animate stats on finish.
Create retro-style sound effects inside Godot 4 using the gdfxr plugin, generate, mutate, and save SFX like explosions or pickups, and wire them into audio stream players.
Add ball sound effects in Godot 4 using audio stream players for destroyed and bumps, including a 2D bump, and wire them into paddle, brick, wall collisions and explosive bricks.
This lecture demonstrates managing brick sound effects in Godot 4, including bump, destroy, and explosive sounds, and combining two explosives for a stronger blast.
Animate the combo by scaling the label and driving the shader's feel parameter to show remaining time, using a combo timer and tweens to toggle visibility.
Animate a dynamic bomb timing using tweens that rotate, move, and scale with randomization, while gpu particles follow the label and colors change with distance.
Enhance the game in Godot 4 by animating the larva and background for liveliness, and add tunable controller vibration and screen shake with dynamic, randomized bump timings for accessibility.
A course focused on making everything juicy in a game using a breakout clone as a base game (project provided, we won't recreate the game in the course) . We’ll go over everything needed to bring the game from boring to awesome using many technique such as:
Animations (easing, bezier curves)
Lerp (linear interpolation)
Tween
Damped oscillator
Trails
Particles
Camera shake & movement
Shaders
Sound effects
The list is not exhaustive, please see the course outline for a glimpse into the topics that are covered.
Beside the techniques themselves, I also discuss how and why we want to do things a certain way. I explain the importance of using contrast in your effects, anticipation, layering and much more. Throughout the course, you'll have many occasion to use the same techniques in different occasion and for different effects. You'll also have the ability to explore things on your own.
I’ll show you tips and tricks along the way to make sure you get the most out of Godot and resources that can be useful and help you go further. You will walk away from this course knowing the techniques used to make a game juicy, how and when to use them. You'll be able to implement juice in your own games and bring them to the next level.
This course will be helpful if:
You have basic knowledge of programming and Godot
You want to take your prototypes/games to the next level
You want to make games more pleasing to play
You feel like your game is boring but don't know how to change it
Please note that we're focusing on the game juice in this course. I won't go over the fundamentals of programming or even Godot. The base game project is provided and we go over its structure quickly, but we don't create the game from scratch. The first time we're facing a new technique, I try to explain it in detail to make it as clear as possible, but you're expected to know a bit about how Godot works. Also, game juice touches on a lot of complicated topics such as animation, visual effects and sound effects. This course is not here to teach you animations or visual effects. Still, I go over some fundamentals and I try to give you as much information as possible. Just don't expect to learn animation or VFX through this course.
This course was made using Godot 4.0. It was the latest stable version of Godot at the time of creating the course. It should be compatible with all the future versions of Godot. In one chapter, I'm using Godot 3.5 to demonstrate how to tuse glow, as it was not implemented in 4.0.
Multiple lessons are available to for you to preview for free. Please take a look at those videos before enrolling to know if this course is right for you!