(NEW) Turn Based Game
Let's create a turn based game, this time we're going to utilize tools and a lot of tricks to make our life easier on creating this game.
We're also going to cover topics such as Action Points & Xcom style, pathfinding (with 3d movement), multiplayer and later on AI.
This series is entirely from scratch, so you don't need to have follow any of my other turn based series prior to this.
Course contains 72 lessons.
Let's see how we can effortlessly create a grid on top of an already existing level
Let's detect where obstacles sit on our level
Let's add floors in our level
Let's make our nodes have different world positions while not violating the grid
Let's build the template for managing turns and phases
Data containers for players, both human and not
Let's create a new simplistic finite state machine for this game
Let's create variables that can be used withour relying onto references
Let's create our A* Pathfinder for our game
Quick fix for where we left off our pathfinder on the last video
Let's create a few interfaces for interacting with objects in our scene.
Let's move our units on to our path
Let's make a few tweaks into our grid that will fit our level better
Let's see some examples of more advanced pathfinding
Let's add locomotion animations to our units
Let's integrate the inventory framework and SO library to make our lifes easier down the line
Let's create the setup for our characters and their action points.
Let's limit our path based on our action points
Let's visualize the nodes we can actually walk to
Let's create the setup for high level action management (for players)
Let's see the Template Design Pattern and how it can help us in this type of game
Following with our actions template, let's see the example for the attack action
Let's create a framework for context heavy node abilities, for example jumping down, climbing up and knocking out an opponent
Let's create a manager to visualize the node abilities and an interface for our player to actually do them.
For the UI buttons to actually follow the world position, DO THIS:
//rect is the rectangleTransform, not the normal transform!
Vector2 pos = RectTransformUtility.WorldToScreenPoint(camera, targetPosition);
rect.position = pos;
Let's start building our UI
Let's do a bit of a clean up and fix a few sticking interface bugs
Let's add costs to our abilities and some general fixes
Let's start building our item handling mechanics, we'll start with the weapons
Let's make our characters forced to look at only 8 directions
Let's fix some bugs and create on enter/ on exit actions for more control over our states. Plus a manager script to have all our action points calculations in one place.
Let's finish our algorithm for node based rotational movement
Let's complicate things by adding layered actions
Let's fix our rotation detection logic to be based off of triangles rather than distance
Let's see why we are doing everything we are doing here and where the upcoming changes will be based off
Let's tweak our action points system to be closer towards JA 2
Let's dynamically update our UI slots
Let's give more responsibilities to the actions rather than having them switching from a manager script
Let's create dynamic bullets
Let's update our bullet logic
Let's polish our aim a bit
Let's level up our bullet logic by adding a penetration algorithm...
( ͡° ͜ʖ ͡°)
Let's change the models we are using and do some maintenance
Let's make an aim assist and do some general fixes
Let's take our inventory to the extreme
Let's see the logic for saving our items and loading them back to the inventory
Let's create the mouse operations for us to be able to move items from slot to slot
Let's see how we can store where each item is placed where, all that dynamically
Let's change the way we instance our items to be more memory efficient
Let's see how to make character specific slots for our items
Let's turn our data into 3d models
"I'm sorry, you're just not my cloth type" -Slot
Let's fix our bug that duplicated items
Let's make a tool that allows us to create icons for all of our items at runtime
Let's expand the icon maker to take into account skinned meshes
Let's move multiple characters at the same time!
Let's fix our path issues concerning multiple agents and recalculating the path
Let's add enemy spotting logic and the switch from realtime to turn based for combat. In true JA2 fashion
Let's start initializing our combat and clear some deprecated code
Let's fancy up our weapon handling
Let's make turn based game levels great again!
Feel free to NOT write anything from this video because it's a failed attempt to create data per grid object automatically. On the next one we will to do an easier way
Let's now do the proper level reading
Let's make a pathfinder that prefer stairs to change floors