
Get started building a turn-based strategy game in Unity and C#. Access the feedback area, join the Discord community, and reference the completed game project for guidance.
Create a Unity URP scene with ground and an environment, add obstacle cubes, set the camera to 45 degrees, use full hd, enable v-sync, and save as test scene.
Set up a player in Unity by creating an empty player object, adding a model base with a gun prefab, and attaching a capsule collider and rigidbody for gravity-enabled physics.
Learn to create a character controller script in Unity with C#, set move speed, and move the player along the x axis using transform.position and a three-value vector with time.deltaTime.
Move a character to a specific point using Vector3 moveTowards, updating transform.position toward moveTarget at moveSpeed times Time.deltaTime, with moveTarget shown in the inspector and later hidden as private.
A practical guide to implementing a grid-based click-to-move system in Unity, creating a move point with a collider, and wiring it to the character controller to move to transform.position.
Turn characters into prefabs to reuse them across scenes, apply overrides to keep changes consistent, and set each move target to its current position to avoid all players converging.
Learn to manage the active player in a Unity turn-based strategy game by using a game manager singleton, caching references, and moving the active player to points.
Build a movement grid in Unity using C#: generate a 10x10 grid of move points with a for loop and instantiate from a start point, enabling click-to-move.
Tidy up the movement grid by deactivating the original move point after spawning and parenting all spawned points under the movement grid to keep the editor hierarchy clean.
Extend your movement grid in Unity by checking ground below each move using a ground layer mask and a recast, so rivers and chasms block movement and edges are protected.
Assign obstacles to an obstacle layer, use an overlap sphere with a public obstacle check range to verify safe spawn points, and prevent the movement grid from overlapping with blocks.
Hide the move points for the move grid by storing them in a list and deactivating each point with a for each loop in Unity.
Set up a camera system as a parent to the main camera, enabling rotation around the point we're looking at and following the player, with a reusable camera controller instance.
Learn to move the camera manually in Unity by reading horizontal and vertical inputs, applying time-based movement, and using transform.forward and transform.right for direction, with normalization to ensure consistent speed.
Implement a tab-key snap-back system in a Unity turn-based strategy game. Press tab to snap the move target to the active player's transform for quick camera return.
Learn to rotate a unity camera with snapping between four viewpoints every 90 degrees, using target rotation, quaternions, and slerp for smooth turns.
Configure Unity's navigation system to let characters move intelligently by baking a nav mesh, marking static objects, adjusting radius, step height, and slopes, and reviewing the nav mesh data.
Add a nav mesh agent, set angular speed to 500 and acceleration to 50, assign it in the inspector, and test navigation with the character turning toward the destination.
Learn to create and configure enemy prefabs in Unity by making a variant from the player, adjusting move speed, swapping models, and applying an IsEnemy flag for future behavior.
implement a turn order system in unity with c#, separating characters into player and enemy teams and an all characters list to ensure players move first, then enemies.
Switch characters seamlessly within a Unity turn-based strategy game by signaling finished movement, cycling the active character, and snapping the camera to the new active player's position.
Randomize turn order in a Unity turn-based game with a 0.5 random threshold to decide who goes first, then shuffle characters using a temp list and a guarded while loop.
Build a turn-based system where enemies skip turns using coroutines in Unity. Use a skip co routine with yield return to wait seconds and return control to players.
Implement a two-action turn system by adding total turn points and a spend-turn-points function. Refresh points at the start of each turn to enable multiple actions per character.
Create a scalable Unity player action menu by building a UI canvas and event system, configuring text mesh pro buttons, and laying out move, shoot, defend, and skip actions.
Configure Unity turn-based move input by wiring the menu to show move points and range, and wire the move button to call show move via the UI canvas.
Add walking and running options to the turn-based strategy game UI in Unity, introducing a move menu with walk and run buttons, a run range, and show run logic.
Implement an action cost system in a turn-based Unity game, making walking cost one point and running two, with the game manager tracking and resetting current action cost each turn.
Add a dedicated cancel button to the Unity move menu, reposition it, style it, and wire it to hide the move grid while showing the input menu.
Add a skip turn option in the player input menu, wired to the game manager to end the turn, while keeping five on-screen buttons within a seven-option visibility guideline.
Set up a melee menu to handle close-range attacks, create three buttons (hit, next target, cancel), and wire show/hide functionality to open, close, and test in Unity.
Set up a melee targeting system by defining a melee range and a public targets list, then collect enemies within range and enable the melee menu when targets exist.
Extend the character controller to perform melee, deactivate the first target, update the current action cost to one, and wire the hit button to execute the melee attack.
Implement a delay after melee by starting a waist to end action co routine, wait a chosen time, then spend term points and reactivate the menu for impact.
Switch between multiple enemies in a turn-based melee system by tracking a current melee target and cycling through in-range targets in Unity using C#. Ensure stability when targets change.
Implement a dynamic attack target indicator in Unity that sits above enemy heads, activates during melee, and updates as you switch targets via the game manager.
Fix a camera bug in a Unity turn-based strategy game by ensuring the camera targets the active player during startup using awake instead of start.
Showcases creating a red on screen error message in Unity when no enemies are in melee range, with a show error text function and timed hide.
Create a dynamic health system in Unity by defining max and current health, implementing a TakeDamage method, and applying melee damage (5) to enemies to reduce their health.
Clamp current health to zero when damaged. Disable the nav agent, visually knock the enemy, and remove the character from all characters and team lists via the game manager.
Set up a world-space health UI by adding a child canvas with a non-interactive slider and a text element to display HP above the player's head.
Link a health text showing HP: current / max and a health slider in the Unity player controller, and update the health display on damage.
Use billboarding to keep the health UI facing the camera by a SimpleBillboard script that aligns rotation with the camera. Color enemy health bars orange for quick differentiation.
Learn how to create and program your very own turn-based strategy game using Unity, an industry-standard game development program used by large gaming studios and indie developers across the world.
In this course you won’t just be learning programming concepts, but tying these concepts to real game development uses. You will have access to a course forum where you can discuss the topics covered in the course as well as the next steps to take once the course is complete.
This course has been designed to be easily understandable to everyone, so whether you’re a complete beginner, an artist looking to expand their game development range or a programmer interested in understanding game design, this course will help you gain a greater understanding of development.
At the end of this course you will have developed the ability to understand such game elements as:
A Turn-Based System
Moving Characters on a Grid
Meleeing, Shooting & Defending Action Types
A Full Health System
AI Decision-making & Navigation
A Full Camera Movement & Rotation System
Spawning In Randomised Positions
Animation & Audio Systems
Battle Select System
and much more...
The course also includes a complete version of the project to use for your own reference to ensure everything in your game works as it should!
Start learning today and let me help you become a game developer!