
Download and install Godot 4.0, create a new 2D project with the forward+ renderer, and optimize the editor layout for streamlined 2D game development.
Build a player scene in Godot 4 using the Kenny tiny dungeon asset pack, select the knight tile, set sprite texture to nearest, and add a circle shape collision.
Create a 2D player movement system in Godot 4 by attaching a script, configuring WASD and arrow keys, normalizing input, and moving with velocity using move_and_slide.
Configure a pixel art window at 640 by 360 base with viewport stretch, then create and paint a tile map and tile set using auto tiling and bitmask terrain rules.
Create a camera that follows the player in Godot 4 by adding a Camera2D, making it current, and implementing frame-rate independent smoothing with linear interpolation to track the player's position.
Create your first enemy in a 2d survivors style game in Godot 4, while the instructor offers ongoing support through Q&A and direct messages.
Create a rat enemy in Godot 4 with a sprite, collision shape, and a script that moves toward the player using a normalized direction, max speed, and collision layers.
Implement the first sword ability with an auto-attacking melee attack that spawns a sword at intervals, using a sword ability controller, timer, signals, and runtime scene instantiation in Godot 4.
Master creating a swinging sword animation in Godot 4 with AnimationPlayer, using keyframes for rotation and scale, cubic interpolation, and auto play, plus scene cleanup with queue_free.
In Godot 4, target enemies for the sword by grouping foes, filtering within 150 pixels using distance squared, sorting to the closest, and spawning the sword at that enemy's position.
Learn to implement area 2D collision triggers in Godot 4 to defeat enemies, using hit boxes, hurt boxes, and collision layers and masks; rotate the sword hitbox for accurate swipes.
Fix camera jitter by snapping 2d transforms to pixel in rendering settings. Enable advanced settings, review console warnings, and disable unused parameter warnings for cleaner debugging.
Create an enemy spawner node to automatically spawn enemies around the player at regular intervals, outside the view using a spawn radius and the basic enemy scene.
Enhance the game feel in this Godot 4 2D survivors project by tightening camera smoothing, adding acceleration via velocity interpolation, and tuning speeds; enable floating motion and nonoverlapping enemies.
Build the game loop foundation in Godot with an arena time manager and a 10-minute timer, plus a canvas layer time UI that formats mm:ss with leading zeros.
Create blue vial experience drops from enemies that fill level-up meter and unlock upgrades, by wiring a vial scene with collision areas and a player pickup layer in Godot 4.
Implement an experience tracking system with an experience manager and a Godot 4 global game events singleton to emit experience vial collected signals, increment current experience, and prepare for upgrades.
Implement a reusable health component and a vial drop component using composition in Godot 4. Spawn vials on enemy death with a configurable drop percent and robust signal handling.
Implementing damage transfers hit box damage from the sword ability to the enemy through hurt box components, enabling upgrades and consistent health reduction during collisions.
Learn to build an experience bar in Godot 4 that powers skill upgrades, using an experience manager and a bottom-of-screen progress bar to track level progression.
Use custom resources to create and manage upgrades in a Godot 4 game, exporting upgrade data, storing upgrades in a dictionary, and applying random upgrades on level ups.
Build a responsive upgrade UI with canvas layer, containers, and an ability upgrade card showing name and description; instantiate cards from a packed scene and pause the game during upgrade.
Demonstrate enabling upgrade selection by wiring up clickable upgrade cards, signals, and bound data to the upgrade screen, then apply and free the screen while updating current upgrades.
Emit an ability upgrade added event from the game events singleton and update the sword timer using sword rate upgrades.
Restructure the scene tree by creating an entities layer and a foreground layer to separate enemies and abilities, enabling y sort for correct depth in a 2d top-down game.
Add a health component to the player and a collision area to detect enemies, then use a timer to deal periodic damage while collisions persist.
Build a player health bar in Godot 4, using a progress bar in the player scene, health changed signals, and an updated health percent display with UI styling.
Create and integrate a functional victory screen in a Godot 4 2D survivors style game by building a ui scene, wiring restart and quit actions, and spawning on timer end.
Repurpose the victory screen as an end screen, rename scenes and scripts, and implement a set defeat function to update labels and instantiate the defeat screen when the player dies.
Increase difficulty over time in Godot 4 by emitting arena difficulty signals every five seconds and adjusting enemy spawn rates through the arena time manager and enemy manager.
Polish visuals by extending the tile set, painting floor and walls with terrain bit masks, then add collision shapes and physics layers to contain players and control spawns.
Fixes enemy spawning outside walls by using a recast with direct space state ray query, rotating the direction by 90 degrees up to four times to find a spawn position.
Develop an ax ability in Godot 4 that spawns a spiraling ax at the player, damages enemies with a hitbox, and uses a timer, tween motion, and randomized start rotation.
Enable the axe ability as a level up reward by integrating it into the upgrade pool and screen, and instantiate its controller on the player via an inheritance-based ability resource.
Prevent duplicate abilities by filtering the upgrade pool in the upgrade manager and enforcing max quantity for ax and sword rate upgrades.
Animate the player walking in Godot 4 using squash and stretch with keyframed position, rotation, and scale, and flip direction via a visuals node and animation player.
Animate the enemy rat using an animation player and transform tracks for position, rotation, and scale to produce a skittering walk, and add a generic death component with gpu particles.
Animate enemy death by wiring the health component's died signal to remove and relocate the death component to the entities layer, then play the animation and sync the sprite texture.
Add a wizard enemy to diversify gameplay and escalate difficulty by updating the enemy manager to spawn it, and implement its health, hurt box, collision, and velocity component.
Learn to control enemy spawning with a weighted table in Godot 4, using an enemy manager to mix rat and wizard encounters by difficulty and weight.
Animate the wizard in Godot 4 with a walk animation using keyframes for position, rotation, and scale, fix tracks to the sprite, and implement start-stop movement via a call method.
Animate experience vials in a 2D survivors game by using tweens to fly from the vial to the moving player, with rotation and easing for a polished pickup.
Apply a custom font via a project wide theme in Godot 4 to upgrade the UI. Use a public domain NRB pixel font and adjust outline for readable time UI.
Implement floating damage text that appears at the enemy's position, spawning a damage number with a dedicated scene, tweens, and easing to animate, scale, and flash on hit.
Implement a reusable hit flash component in Godot 4 that makes enemies flash white on hit using a shader, a lookup_percent uniform, and a tween with local to scene duplication.
Implement damage upgrades for sword and axe in a Godot 4 2D survivors game by building a weighted upgrade pool, handling availability, and formatting damage display.
Improve the game UI by applying a new theme to panels using a nine-patch texture in Godot, overriding panel container properties and adjusting style box texture with margins.
Explore theme variations in Godot by creating an alternate panel container and styling with a style box texture. Adjust margins, wrapping, and mouse filter to ensure reliable upgrade card interactions.
Create and animate upgrade cards in Godot 4 using animation players, keyframes, and modulate for a bounce in, hover rotation, staggered delays, and discard transitions.
Enhance the upgrade screen by adding a translucent purple background rectangle behind all cards. Animate it with an AnimationPlayer to fade in and out via modulate alpha for a cue.
Apply the health bar style to all progress bars and reuse the theme to override backgrounds. Update the experience bar fill color and border for a cohesive, polished UI.
Animate the end screen in Godot 4 by adding a dimming overlay and a tween-based panel entrance, centered pivot, and updated text styling for victory and defeat states.
Override button styles in Godot 4 with a style box texture and margins, and set hover, focus, and pressed font colors. Organize end screen with separate box container for spacing.
Refactor movement to use a velocity component, reduce player speed, and implement a player speed upgrade that increases movement speed via an upgrade manager.
Add a vignette to enhance visuals and signal damage with a red flash. Implement via a color rectangle shader and trigger it from the player damaged signal.
Add sound effects to a Godot 4 2d survivors game by integrating public domain Kenny assets, configuring audio streams and buses, and using a random stream player for hits.
Learn to add sound effects in Godot 4 by importing impact sounds, using a random stream player, and enabling randomized pitch for pickups and damage feedback.
Add UI audio with Kenny sounds by creating a reusable sound button that plays a click via a random audio stream player, wired to end screen and upgrade card buttons.
Add hover and click audio effects to upgrade cards by wiring quiet hover sounds and louder click sounds from the UI audio assets, using hover and click random stream players.
Add victory and defeat jingles using Kenny assets, wire end screen audio stream players to the sfx bus, and implement a play jingle function for both outcomes.
Download a CC0 track and set up an auto load audio stream player on the music bus. Use a timer to insert a 15-second gap between non looping plays.
Create a full game feel by building a main menu with play, options, and quit buttons, wiring signals to change scenes and set up run settings in Godot 4.
Learn to build an options menu in Godot 4 for a 2d survivors style game, featuring fullscreen or windowed mode, music and sfx volume sliders, and integration with main menu.
Learn to style the options sliders and labels in Godot 4 using the theme panel, copying progress bar styles, and applying blue outline typography for a polished UI.
Create a pause menu by duplicating the main menu, adding a fade-in panel with tweens, and wiring resume, options, and quit to menu actions, triggered by escape.
Add a pixelated screen transition by creating a shader-driven color rectangle with a transition texture, animating a percent parameter, and wiring signals to swap scenes in Godot 4.
Create a meta progression system in Godot 4 by building a singleton to track permanent upgrades, save data to disk, and expose a user interface for spending upgrade currency.
Configure a custom user directory to save meta progression data in Godot 4, then load and save a data dictionary to disk, with auto-save on experience gain and game end.
Create a meta upgrade card user interface in Godot 4 2d survivors game by duplicating the upgrade card, adding a purchase button and experience progress bar, and refining the layout.
Create a meta upgrade user interface with a grid of upgrade cards, experience cost handling, progress bars, and a purchase flow that updates currency, progress, and save data.
Implement meta progression upgrades in a Godot 4 2D survivor game, display upgrade counts, provide menu navigation, and safeguard save data while adjusting button states and vial drop rate impact.
Add a scroll container to the meta upgrade screen in Godot 4, align margin and grid containers for smooth scrolling, and customize the vertical scroll bar and disabled button states.
Configure and export your completed Godot 4 game across platforms by installing export templates, setting icons, and adjusting window modes for Windows, Linux, Web, and Mac OS.
Fixes an enemy spawning bug by extending the spawn ray with a 20-pixel offset to guarantee a safe distance from walls in a 2d survivors game built with Godot 4.
Wrap up the course by showing how to build a survivors-style game in Godot 4, implementing in-game upgrades, permanent meta upgrades, animations, UI theming, and sound effects.
Add a flying bat enemy to a 2d survivors game in Godot 4, a fast foe with slow turning, tune its health, animation, and integrate it into the enemy manager.
Add a health regeneration meta upgrade that heals one health every 30 seconds, with up to three levels, integrated via the arena time manager signals and meta progression.
Fix ui sizing by making the description label fill vertical space to align buttons, and increase enemy density by expanding spawn count with arena difficulty in Godot 4.
Create a rain of anvils ability in a 2D survivors game using Godot 4, building anvil scenes, collision shapes, and animation-driven controller to spawn drops on enemies and deal damage.
Implement anvil count upgrade in Godot 4 by creating anvil amount resource, updating upgrade pool, and spawning equidistant anvils around the player through calculated rotations and a distance variable.
Design a two-dimensional anvil impact particle effect in Godot 4 by configuring GPU particles, applying a texture, and tuning emission, damping, lifetime, scale, and color ramp for pixel games.
This course will cover everything you need to know about creating a small 2D arena survival roguelike game from start to finish in the Godot Engine 4. This course covers many aspects of creating a survivors style game including:
Auto-attacking abilities
Hordes of enemies that increase in difficulty over time
Roguelike ability and player upgrades
Permanent progression with saving and loading
Levelling up by collecting experience dropped from enemies
This list is not exhaustive - please see the course outline for a glimpse into the topics that are covered.
The goal of this course is to show you how to take an empty project and turn it into a small, complete game. In doing so, this course will give you a robust exposure to many aspects of the Godot engine from input handling, to tilemaps, to saving and loading data, to audio, and more. By the time you complete this course, you will feel comfortable working on your own projects in Godot 4. You will walk away from this course with a solid foundational understanding of making games that are not only functional but also fun.
This course will help you greatly if:
You are ready to dive into a crash course for the newly released Godot 4
You have some game development knowledge and want to learn Godot 4
You have some programming knowledge and want to make games
You struggle to complete games and want to start and finish a project
You regularly participate in game jams and want to improve your ability to craft a fun but short experience
Please note that this course is focused purely on the start-to-finish process of making a survivors style game. With that goal in mind, there is no time spent explaining fundamental programming concepts. Familiarity with programming is strongly recommended before taking this course. Any programming experience is fine - GDScript is easy to use.
Several lessons are available to for you to preview for free. Please take a look at those videos before enrolling to determine if the pace of this course is right for you!