Are you looking to level up your game development skills and take your projects to the next level?
Do you like games like XCOM2 or Final Fantasy Tactics?
In this course, you’ll take your skills from beginner to advanced, learn to manage and organise a complex project. You’ll create a custom Grid System and learn advanced Programming concepts, such as; C# generics, C# events, and custom structs. Plus A* Pathfinding.
Even if you’re not interested in turn-based strategy games, these skills are transferable to other types of games.
Are you looking to level up your game development skills and take your projects to the next level?
Do you like games like XCOM2 or Final Fantasy Tactics?
In this course, you’ll take your skills from beginner to advanced, learn to manage and organise a complex project. You’ll create a custom Grid System and learn advanced Programming concepts, such as; C# generics, C# events, and custom structs. Plus A* Pathfinding.
Even if you’re not interested in turn-based strategy games, these skills are transferable to other types of games.
You’ll create turn-based gameplay with multiple Units, along with grid-based movement and logic. You’ll also add enemy AI and with all the actions you create, you’ll be writing good high quality code.
Writing reusable and easily extendable code
Learn to organise a complex project
Separate gameplay logic from animation and visual components
Learn to write clean code, how to keep all systems decoupled
You’ll need to be familiar with the Unity editor, and have a basic to intermediate knowledge of C#. If you’ve taken any of our Unity courses (or the equivalent) you’ll be good to go.
You’ll get full lifetime access for a single one-off fee. The creators are qualified and experienced coders, so are able to explain complex concepts clearly, as well as entertain along the way. We’re thrilled to have teamed up with Code Monkey to bring you this course.
All students have access to the Q&A forums where our Instructors, Teaching Assistants and Community are ready to help answer your questions and cheer on your success.
Ready to create your own Turn-Based Strategy game? Come join the course now.
In this video (objectives)…
Hugo welcomes you to the course and gives you a glimpse of what you’ll be making!
In this video (objectives)…
Lucy invites you to join us in our various community support forums in order to ask questions, connect with other students and share your progress.
In this video (objectives)…
Download Unity Hub and Visual Studio Code, including the extensions for C# and Unity Code Snippets.
In this video (objectives)…
If you're experiencing issues with intelliSense not working, this guide will walk you through several steps to hopefully get things working.
In this video (objectives)…
This course is intended for folks who already have the fundamentals of C# understood. This particular lecture is a quick reminder for the core concepts that we'll assume you know already in this course.
In this video (objectives)…
Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video we show you how to access that content.
In this video (objectives)…
Let’s create a brand new Project with Unity 2022.1 and URP and set up the Editor Layout
In this video (objectives)…
Verify that URP is correctly set up and import the Synty Prototype Pack Assets
In this video (objectives)…
Set up Post Processing, Anti Aliasing and SSAO
In this video (objectives)…
Introduction to Unit Movement and Selection section
In this video (objectives)…
Let’s set up the basic Unit while keeping a good Game Object structure
In this video (objectives)…
Make some simple code to Move a Unit to a target position
In this video (objectives)…
Learn how to do a Raycast and the difference between Screen Position and World Position
In this video (objectives)…
Get the Mouse World Position using a Physics Raycast and use a LayerMask to ensure it only hits the Floor
In this video (objectives)…
Now that we have the Mouse World Position and Unit Movement, let’s combine them to make the Unit go to the Mouse Position
In this video (objectives)…
Let’s learn the importance of writing good clean code and why you should use [SerializeField] private instead of public
In this video (objectives)…
Let’s download some free Animations and set them up
In this video (objectives)…
Learn all about the Animator and how to use our Animations
In this video (objectives)…
Set up the Animator Parameters and learn how to trigger them through code to handle the transitions.
In this video (objectives)…
Let’s make the Unit rotate to face the move direction
In this video (objectives)…
Create the UnitActionSystem to handle which Unit is selected so we can click to select and order each individual unit.
In this video (objectives)…
Let’s add a Visual to the Selected Unit and learn all about Events
In this video (objectives)…
Let’s continue the last lecture and learn about the Singleton pattern
In this video (objectives)…
Introduction to the Grid System and Camera section
In this video (objectives)…
Quick overview of the Grid System that we’re going to build
In this video (objectives)…
Let’s start building the Grid System
In this video (objectives)…
Create the Grid Object that is instantiated in every Grid Position
In this video (objectives)…
Set up the Level Grid class to manage the entire Level Grid
In this video (objectives)…
Install Cinemachine and set it up
In this video (objectives)…
Let’s make a Camera Controller to Move and Rotate the Camera
In this video (objectives)…
Add Zoom to the Camera Controller
In this video (objectives)…
Intro to the Actions and UI section
In this video (objectives)…
Let’s make a proper Move Action and refactor our code
In this video (objectives)…
Let’s validate our Move Action grid positions
In this video (objectives)…
Create a Visual Prefab to show on each Grid Position
In this video (objectives)…
Let’s build our second action, a simple Spin Action, and create a Base class for all our Actions
In this video (objectives)…
Add some logic to prevent multiple actions from running at the same time
In this video (objectives)…
Create and set up the UI Canvas
In this video (objectives)…
Build a UI to showcase buttons for all Actions on the Selected Unit
In this video (objectives)…
Handle Click on the Action Buttons to swap the Selected Action
In this video (objectives)…
Let’s refactor the code to use a general TakeAction(); method
In this video (objectives)…
Listen to an Event and Update the Action Button UI visual to highlight the Selected Action
In this video (objectives)…
Create a UI element to Show while there is an Active Action
In this video (objectives)…
Let’s add the concept of Action Points so we have a limited number of actions we can take per turn
In this video (objectives)…
Let’s create a Turn System that will manage the turn and reset the Unit’s Action Points
In this video (objectives)…
Intro to the Enemies and Combat section
In this video (objectives)…
Create an Enemy based on the original Unit
In this video (objectives)…
Let’s add a brand new Action for Shooting the Enemy
In this video (objectives)…
Create a separate Unit Animator class to handle all the Animation logic
In this video (objectives)…
Use the Trail Renderer and Particle System to make a nice Bullet visual and explosion
In this video (objectives)…
Let’s create a simple Health System so Units can be Damaged and Die
In this video (objectives)…
Set up a Ragdoll and spawn it when a Unit dies
In this video (objectives)…
Build a World UI element on top of each Unity to display Health and Action Points
In this video (objectives)…
Create a second Virtual Camera to show the Shoot Action from a different perspective
In this video (objectives)…
Add the ability for the Grid Visual to have different Colors for each Action
In this video (objectives)…
Let’s create a very Basic Enemy AI, just make the Enemies take Actions during their turn
In this video (objectives)…
Let’s build upon the previous Enemy AI to make some more intelligent AI capable of Moving and Shooting
In this video (objectives)…
Intro to the Pathfinding section
In this video (objectives)…
Learn about C# Generics and how useful they are
In this video (objectives)…
Convert the Grid System to work with Generics
In this video (objectives)…
Learn about how the A* Algorithm works before we start implementing it
In this video (objectives)…
Create the Pathfinding script and set it up with a Grid Object just for Pathfinding
In this video (objectives)…
Let’s implement the A* Pathfinding algorithm
In this video (objectives)…
Add Obstacles to Pathfinding
In this video (objectives)…
Let’s use Assets to build a nice Level Map
In this video (objectives)…
Refactor the Move Action to work with Pathfinding
In this video (objectives)…
Intro to the Polish Section
In this video (objectives)…
Create a simple class to trigger some Screen Shake
In this video (objectives)…
Let’s make a new Action to throw a Grenade that will deal damage in an Area
In this video (objectives)…
With the Grenade Logic working, now let’s make it feel powerful with some great visuals
In this video (objectives)…
Make some Destructible Crates that blow up with Grenades and update Pathfinding
In this video (objectives)…
Learn to use ProBuilder to create some really satisfying destruction
In this video (objectives)…
Create a melee Sword Action that deals massive damage but only when very close
In this video (objectives)…
Let’s make an Action to Interact with a Door
In this video (objectives)…
Let’s learn about C# interfaces and use them to make our Interact Action more generic
In this video (objectives)…
Create a proper Input Manager script to hold all references to Input
In this video (objectives)…
Refactor the Input Manager script to use the new Input System package
In this video (objectives)…
Let’s take everything we built and create a really nice complete level
In this video (objectives)…
Congratulations on completing this course! What’s next?
In this video (objectives)…
Intro to Hex Grid System Expansion
In this video (objectives)…
Let’s see the Design that we’re going to implement and how Hex Grids differ from Square Grids
In this video (objectives)…
Begin implementing the Hex Grid System by adding the Grid to World Position conversion and changing the visual
In this video (objectives)…
Continue the Hex Grid implementation by adding the conversion from World Position onto Grid Position
In this video (objectives)…
Modify the Pathfinding to work with the Hex Grid System
In this video (objectives)…
Intro to the Multi-Floors expansion
In this video (objectives)…
Refactor the LevelGrid class to support multiple GridSystem’s at different Floors
In this video (objectives)…
Add support for Multi-Floors on the Grid Visuals
In this video (objectives)…
Refactor the Pathfinding to support Multiple Floors and find paths between them
In this video (objectives)…
Define Pathfinding Links where Units can move up or down between the floors.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.