
Set up a Godot C# development workflow by installing the dotnet SDK, configuring VSCode, and creating a new Godot project with a C# script.
Create a grid-based puzzle game by writing the first C# script that tracks the mouse, snaps to a 64x64 grid, and moves a cursor sprite to the hovered cell.
Instantiate a building from a packed scene in Godot 4 with C#, placing it at the hovered grid cell on left-click. Organize with a dedicated building scene for easy instantiation.
Introduce signals in Godot by wiring a place-building button to the pressed signal, explain signals as events for observers, and demonstrate two connection approaches for interactive building placement.
Adjust window and viewport settings in project settings to enlarge the game window and apply stretch modes; learn how aspect ratio, canvas items, and viewport scaling keep UI in place.
Import the Tiny Swords asset pack into Godot, ignore nonessential files with a gd ignore, then enable nearest texture filtering and center the tower on a 64 by 64 grid.
Add village buildings to a grid-based puzzle game in Godot 4 with C#, implementing resource harvesting and a village scene with a building component and place village UI.
Create and use custom resources in Godot 4 with C# to drive building data such as buildable radius and harvest radius, load resources at runtime, and avoid circular dependencies.
Highlight resource tiles in a Godot 4 grid game by using custom data layers (is_buildable, is_wood) and a generic get tiles in radius to reveal wood near villages.
Learn to streamline building placement in Godot 4 with C# by dynamically generating UI buttons from a building resources array, and emit a single signal with the chosen resource.
Learn to cancel building placement with right click or escape key by implementing a cancel action in the input map, handling unhandled input, and clearing the building ghost.
Refactor the building manager into states to support placing and destroying buildings, refunding costs on destruction, and manage inputs via a stateful, hover-aware workflow.
Implement building destruction in a grid-based Godot 4 game: refund resources, update grid state, and recalculate valid buildable tiles using signals and the grid manager.
Import and place the gold mine sprite, detect when a buildable area covers its tile, and trigger a win by switching the gold mine to active.
Rename the main scene to base level and use inherited levels to easily create new levels with shared tiles, layers, and UI, including painting tile maps with y sort.
Learn to fix shadow tiles that block building by marking them as ignored with an is_ignored custom data flag in the grid manager, enabling towers and wood harvesting on shadows.
Fix right-click deletion by allowing deletion of a building when the hovered root cell is within the building's occupied tile area in a Godot 4 C# grid game.
Explore creating and applying theme files in Godot 4 to style UI with panel containers, using global themes and a panel container alternate variation for reuse.
learn to configure pixel fonts in Godot 4 using bit fantasy and set a 16 px default size, then style grid buttons with nine-slice textures, hover, and pressed states.
Add the total resource count to the game UI and wire it to the building manager via a custom signal, updating on available resource count changes.
Create a level select screen in Godot 4 with C#, using a four-column grid to display levels managed by a level manager, with per-level cards showing name and wood resources.
Move level data into a custom level definition resource that stores the starting resource count and a level scene path, enabling dynamic level selects without heavy instantiation.
Update the level manager to use level definition resources with a get level definitions method, and have the level select screen build buttons from definitions to load the chosen level.
Integrate the level select screen with the main menu in Godot 4, toggling visibility of the main menu container and level select, and wire a back button with signals.
Center building placement around the mouse by offsetting the hover grid with the building ghost's dimensions, preserving fractional mouse position for precise centering in Godot 4 with C#.
Animate building placement with a Godot 4 tween in a reusable building animator component, preserving y sort via a dedicated animation root node and from-to transitions with ease types.
Add a mask to building destruction to improve clipping around the base using a sprite 2D mask and a mask texture, applied during the destroy animation.
Build a building destruction effect in Godot 4 using GPU particles 2D, unique materials, and a tuned spawn, velocity, gravity, and emission shape, integrated with an animation.
Modify the grid manager to exclude goblin occupied tiles from buildable areas, maintain goblin occupied tiles with danger radius, and highlight those tiles to prevent tower placement inside goblin camps.
Implement and refine a barracks attack radius highlight to show buildable tiles, exclude occupied tiles, and prevent placing on buildings, enabling destruction of goblin camps and reclaiming space.
Refactor the grid manager by replacing get tile area two tiles with get occupied cell positions and standardizing terminology to danger occupied tiles and danger building destruction.
Add smooth camera shake to the Godot 4 grid puzzle game using fast noise light to offset the camera, with independent x and y samples and a decaying shake.
Learn to add a destruction indicator for the goblin camp by swapping to a destroyed wood tower animation and a fire effect, controlled with signals in Godot 4 using C#.
Add a gold mine position to the grid manager and set it from the goldmine’s world position, so the mine tile highlights as buildable and signals a winning tower.
Complete your grid-based puzzle game in Godot 4 with C#, then enhance it with an options save system using options.json to restore volume and window mode, plus expanded tile sets.
This course will cover everything you need to know about creating a small 2D grid-based puzzle game from start to finish in the Godot Engine 4.3+ using C# scripting. This course covers many aspects of creating a grid-based puzzle game including:
Building placement on a grid with variable tile sizes
Querying grid state using LINQ with C# data structures like HashSets and Dictionaries
Creating levels using the new Godot 4.3 TileMapLayer, including multi-level maps with y-sorting, animated tiles, and custom tile data
Saving and loading level completion progress
Implementing audio including building placement and destruction effects and music
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 C# scripting, to input handling, to tile maps, 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.3+ and C#. 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 Godot 4.3+ with C#
You are comfortable in Unity and want to transfer your C# scripting skills to Godot
You have some game development knowledge and want to learn Godot
You have some programming knowledge and want to make games
You struggle to complete games and want to start and finish a project
Please note that this course is focused purely on the start-to-finish process of making a grid-based puzzle game. With that goal in mind, there is no time spent explaining fundamental programming concepts of statically typed languages. Familiarity with programming and statically typed languages is strongly recommended before taking this course.
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!