We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Unity Turn-Based Strategy Game

Intermediate C# Coding

GameDev.tv Team and Code Monkey

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?

Read more

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.

Enroll now

What's inside

Learning objectives

  • Take your skills from beginner to advanced.
  • Learn to manage and organize a complex project.
  • Advanced programming concepts, such as; c# generics, c# events, and custom structs.
  • Create a custom grid system.
  • Learn a* pathfinding.
  • Create actions while writing good high quality code.

Syllabus

Introduction
Promo

In this video (objectives)…

  1. Hugo welcomes you to the course and gives you a glimpse of what you’ll be making!

Read more

In this video (objectives)…

  1. 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)…

  1. Download Unity Hub and Visual Studio Code, including the extensions for C# and Unity Code Snippets.

In this video (objectives)…

  1. 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)…

  1. 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)…

  1. 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)…

  1. Let’s create a brand new Project with Unity 2022.1 and URP and set up the Editor Layout

In this video (objectives)…

  1. Verify that URP is correctly set up and import the Synty Prototype Pack Assets

In this video (objectives)…

  1. Set up Post Processing, Anti Aliasing and SSAO

Get your friendly units animated and moving using point-and-click mouse movement and handle unit selection.

In this video (objectives)…

  1. Introduction to Unit Movement and Selection section

In this video (objectives)…

  1. Let’s set up the basic Unit while keeping a good Game Object structure

In this video (objectives)…

  1. Make some simple code to Move a Unit to a target position

In this video (objectives)…

  1. Learn how to do a Raycast and the difference between Screen Position and World Position

In this video (objectives)…

  1. Get the Mouse World Position using a Physics Raycast and use a LayerMask to ensure it only hits the Floor

In this video (objectives)…

  1. 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)…

  1. Let’s learn the importance of writing good clean code and why you should use [SerializeField] private instead of public

In this video (objectives)…

  1. Let’s download some free Animations and set them up

In this video (objectives)…

  1. Learn all about the Animator and how to use our Animations

In this video (objectives)…

  1. Set up the Animator Parameters and learn how to trigger them through code to handle the transitions.

In this video (objectives)…

  1. Let’s make the Unit rotate to face the move direction

In this video (objectives)…

  1. Create the UnitActionSystem to handle which Unit is selected so we can click to select and order each individual unit.

In this video (objectives)…

  1. Let’s add a Visual to the Selected Unit and learn all about Events

In this video (objectives)…

  1. Let’s continue the last lecture and learn about the Singleton pattern

Grid System & Camera

In this video (objectives)…

  1. Introduction to the Grid System and Camera section

In this video (objectives)…

  1. Quick overview of the Grid System that we’re going to build

In this video (objectives)…

  1. Let’s start building the Grid System

In this video (objectives)…

  1. Create the Grid Object that is instantiated in every Grid Position

In this video (objectives)…

  1. Set up the Level Grid class to manage the entire Level Grid

In this video (objectives)…

  1. Install Cinemachine and set it up

In this video (objectives)…

  1. Let’s make a Camera Controller to Move and Rotate the Camera

In this video (objectives)…

  1. Add Zoom to the Camera Controller

Begin building the action system and create the UI for the player to select different actions.

In this video (objectives)…

  1. Intro to the Actions and UI section

In this video (objectives)…

  1. Let’s make a proper Move Action and refactor our code

In this video (objectives)…

  1. Let’s validate our Move Action grid positions

In this video (objectives)…

  1. Create a Visual Prefab to show on each Grid Position

In this video (objectives)…

  1. Let’s build our second action, a simple Spin Action, and create a Base class for all our Actions

In this video (objectives)…

  1. Add some logic to prevent multiple actions from running at the same time

In this video (objectives)…

  1. Create and set up the UI Canvas

In this video (objectives)…

  1. Build a UI to showcase buttons for all Actions on the Selected Unit

In this video (objectives)…

  1. Handle Click on the Action Buttons to swap the Selected Action

In this video (objectives)…

  1. Let’s refactor the code to use a general TakeAction(); method

In this video (objectives)…

  1. Listen to an Event and Update the Action Button UI visual to highlight the Selected Action

In this video (objectives)…

  1. Create a UI element to Show while there is an Active Action

In this video (objectives)…

  1. 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)…

  1. Let’s create a Turn System that will manage the turn and reset the Unit’s Action Points

Enemies & Combat

In this video (objectives)…

  1. Intro to the Enemies and Combat section

In this video (objectives)…

  1. Create an Enemy based on the original Unit

In this video (objectives)…

  1. Let’s add a brand new Action for Shooting the Enemy

In this video (objectives)…

  1. Create a separate Unit Animator class to handle all the Animation logic

In this video (objectives)…

  1. Use the Trail Renderer and Particle System to make a nice Bullet visual and explosion

In this video (objectives)…

  1. Let’s create a simple Health System so Units can be Damaged and Die

In this video (objectives)…

  1. Set up a Ragdoll and spawn it when a Unit dies

In this video (objectives)…

  1. Build a World UI element on top of each Unity to display Health and Action Points

In this video (objectives)…

  1. Create a second Virtual Camera to show the Shoot Action from a different perspective

In this video (objectives)…

  1. Add the ability for the Grid Visual to have different Colors for each Action

In this video (objectives)…

  1. Let’s create a very Basic Enemy AI, just make the Enemies take Actions during their turn

In this video (objectives)…

  1. Let’s build upon the previous Enemy AI to make some more intelligent AI capable of Moving and Shooting

Learn about powerful C# generics and add A* pathfinding to your game.

In this video (objectives)…

  1. Intro to the Pathfinding section

In this video (objectives)…

  1. Learn about C# Generics and how useful they are

In this video (objectives)…

  1. Convert the Grid System to work with Generics

In this video (objectives)…

  1. Learn about how the A* Algorithm works before we start implementing it

In this video (objectives)…

  1. Create the Pathfinding script and set it up with a Grid Object just for Pathfinding

In this video (objectives)…

  1. Let’s implement the A* Pathfinding algorithm

In this video (objectives)…

  1. Add Obstacles to Pathfinding

In this video (objectives)…

  1. Let’s use Assets to build a nice Level Map

In this video (objectives)…

  1. Refactor the Move Action to work with Pathfinding

Add additional features and polish to you game and build a final level with all the features.

In this video (objectives)…

  1. Intro to the Polish Section

In this video (objectives)…

  1. Create a simple class to trigger some Screen Shake

In this video (objectives)…

  1. Let’s make a new Action to throw a Grenade that will deal damage in an Area

In this video (objectives)…

  1. With the Grenade Logic working, now let’s make it feel powerful with some great visuals

In this video (objectives)…

  1. Make some Destructible Crates that blow up with Grenades and update Pathfinding

In this video (objectives)…

  1. Learn to use ProBuilder to create some really satisfying destruction

In this video (objectives)…

  1. Create a melee Sword Action that deals massive damage but only when very close

In this video (objectives)…

  1. Let’s make an Action to Interact with a Door

In this video (objectives)…

  1. Let’s learn about C# interfaces and use them to make our Interact Action more generic

In this video (objectives)…

  1. Create a proper Input Manager script to hold all references to Input

In this video (objectives)…

  1. Refactor the Input Manager script to use the new Input System package

In this video (objectives)…

  1. Let’s take everything we built and create a really nice complete level

In this video (objectives)…

  1. Congratulations on completing this course! What’s next?

Let’s learn how to convert the entire game from a Square Grid onto a Hex Grid

In this video (objectives)…

  1. Intro to Hex Grid System Expansion

In this video (objectives)…

  1. Let’s see the Design that we’re going to implement and how Hex Grids differ from Square Grids

In this video (objectives)…

  1. Begin implementing the Hex Grid System by adding the Grid to World Position conversion and changing the visual

In this video (objectives)…

  1. Continue the Hex Grid implementation by adding the conversion from World Position onto Grid Position

In this video (objectives)…

  1. Modify the Pathfinding to work with the Hex Grid System

Bonus: Multi-Floors

In this video (objectives)…

  1. Intro to the Multi-Floors expansion

In this video (objectives)…

  1. Refactor the LevelGrid class to support multiple GridSystem’s at different Floors

In this video (objectives)…

  1. Add support for Multi-Floors on the Grid Visuals

In this video (objectives)…

  1. Refactor the Pathfinding to support Multiple Floors and find paths between them

In this video (objectives)…

  1. Define Pathfinding Links where Units can move up or down between the floors.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores techniques and skills consistent with the game industry
Builds a strong foundation for beginning learners
Develops advanced skills and knowledge to assist learners in developing professional expertise
Focuses on the specifics of turn-based strategy games, such as XCOM2 and Final Fantasy Tactics
Taught by instructors recognized for their work in game development
Students will get full lifetime access for a single one-off fee

Save this course

Save Unity Turn-Based Strategy Game: Intermediate C# Coding to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Unity Turn-Based Strategy Game: Intermediate C# Coding. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Unity Turn-Based Strategy Game: Intermediate C# Coding will develop knowledge and skills that may be useful to these careers:
Game Programmer
Game Programmers are responsible for writing the code that makes video games work. They work closely with game designers and artists to bring the game's vision to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game Programmers write more efficient and effective code. By learning the fundamentals of game development through this course, Game Programmers can build a strong foundation for success in this role.
Game Artist
Game Artists are responsible for creating the visual assets for video games. They work closely with game designers and programmers to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game Artists create more realistic and immersive game worlds. By learning the fundamentals of game development through this course, Game Artists can build a strong foundation for success in this role.
Game Designer
Game Designers are responsible for creating the overall vision and design for video games. They work closely with programmers and artists to bring their ideas to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game Designers create more engaging and challenging games. By learning the fundamentals of game development through this course, Game Designers can build a strong foundation for success in this role.
Technical Artist
Technical Artists are responsible for creating the technical assets for video games. They work closely with game designers and programmers to bring the game's vision to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Technical Artists create more efficient and effective technical assets. By learning the fundamentals of game development through this course, Technical Artists can build a strong foundation for success in this role.
Sound Designer
Sound Designers are responsible for creating the sound effects and music for video games. They work closely with game designers and artists to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Sound Designers create more immersive and engaging sound experiences. By learning the fundamentals of game development through this course, Sound Designers can build a strong foundation for success in this role.
Level Designer
Level Designers are responsible for creating the levels for video games. They work closely with game designers and artists to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Level Designers create more engaging and challenging levels. By learning the fundamentals of game development through this course, Level Designers can build a strong foundation for success in this role.
Game AI Programmer
Game AI Programmers are responsible for creating the AI for video games. They work closely with game designers and programmers to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game AI Programmers write more efficient and effective AI. By learning the fundamentals of game development through this course, Game AI Programmers can build a strong foundation for success in this role.
Game Designer - Level Design
Game Designers - Level Design are responsible for creating the levels for video games. They work closely with game designers and artists to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game Designers - Level Design create more engaging and challenging levels. By learning the fundamentals of game development through this course, Game Designers - Level Design can build a strong foundation for success in this role.
Game Programmer - AI
Game Programmers - AI are responsible for creating the AI for video games. They work closely with game designers and programmers to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game Programmers - AI write more efficient and effective AI. By learning the fundamentals of game development through this course, Game Programmers - AI can build a strong foundation for success in this role.
Game Tester
Game Testers are responsible for playing video games to find bugs and errors. They work closely with game developers to help ensure that the game is released in a polished and bug-free state. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game Testers write more effective bug reports and find more bugs. By learning the fundamentals of game development through this course, Game Testers can build a strong foundation for success in this role.
Game QA Tester
Game QA Testers are responsible for playing video games to find bugs and errors. They work closely with game developers to help ensure that the game is released in a polished and bug-free state. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game QA Testers write more effective bug reports and find more bugs. By learning the fundamentals of game development through this course, Game QA Testers can build a strong foundation for success in this role.
Game Producer
Game Producers serve as project managers who oversee a game's development through its entirety. This means that you will lead programming, art, and design teams while also managing budgets, deadlines, and marketing. The Unity Turn-Based Strategy Game: Intermediate C# Coding course teaches game design and coding skills that can help Game Producers communicate more clearly with development teams. Understanding the fundamentals of game development through this course may help Producers create more effective project plans and lead to greater success in this role.
Game Animator
Game Animators are responsible for creating the animations for video games. They work closely with game designers and artists to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course may be useful for Game Animators who want to learn more about the technical aspects of game development. By learning the fundamentals of game development through this course, Game Animators can build a strong foundation for success in this role.
Narrative Designer
Narrative Designers are responsible for creating the story and dialogue for video games. They work closely with game designers and artists to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course may be useful for Narrative Designers who want to learn more about the technical aspects of game development. By learning the fundamentals of game development through this course, Narrative Designers can build a strong foundation for success in this role.
Game Writer
Game Writers are responsible for writing the story and dialogue for video games. They work closely with game designers and artists to bring the game's world to life. The Unity Turn-Based Strategy Game: Intermediate C# Coding course may be useful for Game Writers who want to learn more about the technical aspects of game development. By learning the fundamentals of game development through this course, Game Writers can build a strong foundation for success in this role.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Unity Turn-Based Strategy Game: Intermediate C# Coding.
Classic guide to game programming patterns. It provides a comprehensive overview of the most important design patterns used in game development, and is an essential resource for any game developer.
Classic guide to algorithms. It provides a comprehensive overview of the most important algorithms and data structures, and is an essential resource for any programmer who wants to understand how algorithms work.
Practical guide to Unity in Action. It provides a comprehensive overview of the Unity engine and how to use it to create 2D and 3D games.
Classic guide to writing clean code. It provides a set of principles and techniques that can be used to make your code more readable, maintainable, and extensible.
Practical guide to AI for game developers. It provides a comprehensive overview of the most important AI techniques used in game development, and is an essential resource for any game developer who wants to add AI to their games.
Comprehensive reference for C# 9.0, covering all the latest features of the language. It is written by two of the leading experts on C# and is an essential resource for any serious C# developer.
Classic guide to concrete mathematics. It covers a wide range of topics, from combinatorics to graph theory, and is an essential resource for any programmer who wants to understand the mathematical foundations of computer science.
Classic guide to discrete mathematics. It covers a wide range of topics, from set theory to graph theory, and is an essential resource for any programmer who wants to understand the mathematical foundations of computer science.
Classic guide to design patterns in C#. It provides a clear and concise explanation of each pattern and shows how to use it effectively in your own code.
Fun and engaging introduction to design patterns. It uses a unique storytelling approach to help readers understand the concepts behind design patterns and how to use them in their own code.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2024 OpenCourser