
Build a full featured indie turn-based game in Unity by creating the main player, game board, animation and movement, and enemy behavior while mastering C# and the Unity engine API.
Adopt consistent naming conventions in Unity C# scripts to improve readability and collaboration. Learn pascal case, camel case, private m_ prefixes, and basic formatting for class, method, and variable names.
Set up a new Unity project, import iTween from the asset store, and animate a cube using iTween hash for rotate, move, and timing with ease types.
Apply tween to build a basic board game mechanic in Unity, moving a character one space along connected nodes toward the goal with movement scripts and a core game loop.
Replace public fields in the player input script with properties, implementing get and set accessors for input enabled and other variables, illustrating encapsulation, data protection, and inline formatting in C#.
Create a player manager to glue the player mover and player input, populate references with get component in awake, and process input to move in four directions in two-unit steps.
Create and visualize nodes in Unity by importing a dot model, adjusting materials, and applying a silhouette shader. Explore forward and deferred rendering, MSAA options, and post-processing for cleaner edges.
Instructions on updating to version 2 of the Postprocessing Stack for Unity 2019.
Create a master list called all nodes with public getter, populate it in Awake using Get node list, and add a utility class for vector3 and vector2 rounding for neighbors.
Discover how each node identifies neighbors on a square grid by using rounded coordinates, a board reference, and a find neighbors method to return adjacent nodes two units away.
Connect the player's movement to the board by caching a board reference and validating destinations with the final node at method, replacing hardcoded spacing with board spacing.
Create a Unity board with a player node that moves only along linked nodes. Update and visualize the node using the board and player mover scripts and an obstacle prefab.
Learn to use Unity events in the game manager to broadcast start, play, and end level signals, and link listeners like the screen fader and start button to respond.
Mark a single node as the end of the maze, spin a goal marker at that node, and animate its prefab drawing after the fade to test in play mode.
This lecture uses version 2 of the Post-Processing Stack to create the End Screen Blur effect. Completed Unity 2019 project link in the Resources.
Create an end screen UI in Unity by importing Oswald font and sprites, wiring a restart button to game manager, and styling with anchored, scalable elements and a level label.
Refactor the mover to track a generic current node for any character, updating it from the board and validating connectivity before moves.
Organize turn based gameplay by building a turn manager base class for players and enemies, enabling finished turns and notifying the game manager to update.
Define player and enemy turns in the game manager, expose a current turn property, and implement update turn logic to switch between players and enemies.
Create a turn-based system by wiring turn manager with player and enemy managers using finished movement Unity events. Add wraparound enemy moves and stand routines, updating the board before turns.
Configure the player base animator controller as a state machine, with a default state and a transition to the death animation via the is dead trigger.
Trigger enemy attacks to cause player death using public animator controller, player death, and enemy attack scripts; coordinate with the player manager and game manager for timing and transitions.
Create a C# enemy death component in Unity that moves the enemy off screen with a Vector3 offset and drops it into a board capture position via a death event.
Update the enemy sensor to respect node linkages and only detect the player when the current node is connected to linked nodes, via the enemy mover and manager.
Check out these other great courses from GameAcademy.school!
Are you ready to level up your game dev skills? There's no better way than immersing yourself in a capstone project!
In this course, we will:
start with a blank Unity project and flesh out a fully working game level
learn fundamental techniques for creating your own turn-based game with 3d assets
create C# scripts line-by-line and learn how to architect game components cleanly and logically
Level up your Unity skills!
Design game board components in C#
Use the iTween plugin to script animation
Setup a player character to respond to keyboard input
Script enemy behavior to challenge your players
Design user interface components
Use UnityEvents to manage complex gameplay behavior
Explore Unity's Lighting system to render a game level
When you complete the class, you should have a full set of source code and a prototype for your own turn-based indie game!
Learn from 60+ videos broken into small 10-15 minute lessons. Power through 11 hours of lectures and save weeks of coding to jumpstart your own Unity project!
Join the ever growing ranks of our class and see what you can build today!
Note: the course project files have been updated and you should be able to complete the course using Unity 2019.
Though the UI in the recordings is may show a slightly older version of the Editor, the completed game project runs on Unity 2019.
We recommend that you use Unity 2019.2 or higher.