Turn Based Strategy Framework

Discover the Turn Based Strategy Framework, a versatile tool for creating diverse turn-based games. Tested in projects ranging from personal hobbies to Steam releases, it's designed for easy use by both beginners and professionals. Join the community and start prototyping now!


Key Features Of The TBS Framework


✅ Covers all aspects of turn based strategy games, including map generation, pathfinding, combat, and special abilities

✅ Supports hexagonal and square tiles

✅ Handles both 2D and 3D maps

✅ Playable with human and AI players

✅ Online multiplayer implementation included

✅ Active Discord community for support, tips, and inspiration

✅ Proven in professional game development


Awesome Games Made With The TBS Framework


Dust and Salt Fabled Lands Conflux Tavern Table Tactics Mortalaxy KuroTactics DR4X Mage Arena


Explore More


📖Documentation | ❓FAQ | 💬Discord | 🎮Demo 1 | 🎮Demo 2 | 🎮Demo 3 | Add ⌨️/🎮 support with the Flexible Grid Controller

Release Notes

### [v3.0.5] - 2024.11.07


## Changed

- Added support for Unity 6

- Replaced custom hash calculation with a built-in hash function in the `Cell` script for improved performance and maintainability.


## Fixed

- Fixed an issue in the `Tile Painter` tool where tile painting was not working.


### [v3.0.4]


## Changed

- Further pathfinding performance improvements


## Fixed

- Fixed unit movement animation by using local position instead of world position

- Fixed taking into account the virtual Unit.IsCellMoveableTo method when calculating unit available destinations


### [v3.0.3]


## Changed

- [performance] Make cell colliders triggers in Example1

- [performance] Disable shadow casting for hexagons in Example1

- [performance] Add initial capacity to data structures used by pathfinding

- [performance] Make PriorityQueueNode a readonly struct instead of a class

- [performance] Used strongly typed comparison to avoid type casting in PriorityQueueNode


## Fixed

- Fixed incorrectly assigned panel in NetworkGUI prefab

- Fixed offset coords to cube coords conversion method for odd-r and even-r grid layouts


### [v3.0.2]


## Added

- Added assembly definitions to samples


## Changed

- Made MyHexagon class public

- Made SampleSquare class public

- Made HealingBuff class public

- Made DefenceBuff class public

- Made CellGridStateWaitingForInput class public

- Made mouse event handler methods in Unit and Cell public

- Used MaterialPropertyBlock in RendererHighlighter and GlowHighlighter for better performance

- Replaced 'yield return 0' with 'yield return null' throughout the project for better performance


## Fixed

- Fixed a bug where movement path could be displayed incorrectly


### [v3.0.1]


## Added

- Extended the documentation with instructions for upgrading from v2.2 to v3


### [v3.0.0]


## Added

- Online multiplayer implementation

- Improved pathfinding performance

- Improved rendering performance in Example 1


## Changed

- Changed minimal supported Unity version to 2020.3.41f1


## Fixed

- Cell occupancy status not updating when deleting units in editor


Version 2.2

-Improved pathfinding performance

-Improved AI performance


-Added InitializeAction method to AIAction

-Added ReadGeneratorParams method to ICellGridGenerator

-Added GetGridInfo helper method to ICellGridGenerator

-Added KeepMainCamera flag to GridHelper to indicate if main camera should be re-generated

-Added ShouldStartGameImmediately flag to CellGrid to indicate if the game should start immediately on scene launch

-Added InitializeAndStart method to CellGrid to start the game manually

-Added execution time measurement to MoveToPositionAIAction and AttackAIAction

-Added AttackRangeHighlightAbility


-Modified TurnResolver to allow updating playable units mid-turn


-Fixed IsCellMovableTo usage in GetGraphEdges

-Fixed CellGrid.AddUnit method to properly add unit spawned on runtime to the game

-Fixed a bug where AI froze when there were no units on the map

-Fixed a bug where units were not highlighted when selected

-Fixed switching between actions in AI debug mode

-Fixed cell dimensions in Example1 and Example 5

-Fixed comments in SampleUnit



Version 2.1

-Added the Ability system

-Added the Turn Resolver system

-Added the Game Over Resolver system

-Added a new AI system


-Added CellGridStateAbilitySelected script

-Added a new demo scene


-[experimental] Added reusable cell highlighters

-[experimental] Added reusable unit highlighters


-Removed CellGridStateUnitSelected script

-Removed demo scenes 2 and 3 temporarily


-Modified grid generation - 2D maps will be generated along XY axis

-Modified grid generation - 3D maps will be generated along XZ axis with Y axis considered UP

-Modified the buff system - buffs are scriptable objects now


-Made NaiveAiPlayer script obsolete


Version 2.0.1

-Added Game state management chapter to project documentation

-Added compatibility with Unity 2020


-Merged CellGridStateAiTurn, CellGridStateGameOver and CellGridStateTurnChanging scripts into CellGridStateBlockInput script


-Removed package manager dependencies from the project


Version 2.0

-Added Tile Painter custom editor

-Added Unit Painter custom editor

-Added Prefab Helper custom editor

-Added CameraController script

-Added default value to MovementCost in Unit script

-Added default value to ActionPoints in Unit script

-Added default value to nHumanPlayers in GridHelper script

-Added OnMoveFinished method to Unit script

-Added CurrentUnit field to Cell script

-Added new example scene

-Added readme to example scenes

-Added namespaces to code


-Removed BreadthFirstSearch script

-Removed GreedyBestFirstSearch script

-Removed ListPriorityQueue script

-Removed CustomObstacleGenerator script


-Modified folder structure of the project for easier navigation

-Changed MovementCost type to float

-Changed ActionPoints type to float

-Changed MovementSpeed to MovementAnimationSpeed

-Changed MovementPoints to be accessible with getter

-Changed ActionPoints to be accessible with getter


-Maintaining cell prefab link when generating map

-Centering camera on generated grid

-Cell prefab is in XY plane now


-Split DealDamage into AttackHandler, DealDamage and AttackActionPerformed methods

-Split Defend into DefenceHandler, Defend and DefenceActionPerformed methods


Version 1.1.2

-Added FAQ

-Added forum thread at https://forum.unity.com/threads/turn-based-strategy-framework.704129/


-Removed obsolete code for loading scenes


-Fixed a bug in AddUnit method where unit was not added to Unit list

-Fixed a bug in GUIController where pressing 'n' multiple times could interrupt AI turn

-Fixed layers in ExampleScene4

-Fixed GUI elements in ExampleScene5


Version 1.1.1

-Added information about names of missing parameters in Grid Helper.


-Fixed a bug where Grid Helper faultily displayed information about missing parameters.

-Fixed a bug where unreachable cells might have been highlighted as reachable.


Version 1.1

-Improved pathfinding performance.

-Improved CellGridStateUnitSelected performance.


-Added Grid Helper inspector that facilitates the process of generating basic scene structure.

-Added Initialize method to CellGrid.

-Added UnitAdded event to CellGrid.


-Modified grid generation - generating grids across XZ plane.

-Modified the Hexagon prefab that can be found in Prefabs/Example1 folder. The new prefab consists of a single hexagon mesh instead of six cubes.


-Revised and upgraded comments on the code.

-Updated the documentation to reflect changes made in this release.


Version 1.0.1

-Added a GridGeneratorHelper script that extends the inspector and allows to generate and clear grids by pressing a button.

-Added a CustomUnitGenerator script that extends the inspector and allows to snap manually placed units to grid by pressing a button.

-Added a CustomObstacleGenerator script that extends the inspector and allows to snap manually placed obstacles to grid by pressing a button.

-Added a IsUnitAttackable method to the Unit class.


-Removed the CustomCellGridGenerator script. It is no longer necessary.


-Modified the CellGridStateUnitSelected to make use of IsUnitAttackable method.

-Modified the NaiveAiPlayer to make use of IsUnitAttackable method.

-Modified the Hexagon prefab that can be found in Prefabs/Example1 folder. The previous version was broken.

-Modified (just a little) the folder structure of the project. The previous structure was confusing to navigate.


-Updated the documentation to reflect changes made in this release.


Version 1.0

Initial release

Basic Information
Latest Version
3.0.5 (08 Nov 2024)
Publisher
Crooked Head
Category
Templates/Systems
Size
17.4 MB
Price
€41.4
Asset Rating
(231)
Extended Information
Unity Versions
2020.3.41, 2021.3.11, 2022.3.16, 6000.0.25
Render Pipelines
BIRP URP HDRP
State
published