The Unity RTS Engine provides all the features required to create your own RTS game and customize it. It handles map creation, factions, AI, buildings, units, combat, tasks, resources, UI, singleplayer, multiplayer and much more!
Demo | Forum | Documentation | Discord | Changelog
Maps & Factions:
- Create and customize unique maps.
- Create factions and customize each one by having assigning a unique set of buildings, units, tasks and limitations.
- Customize NPC factions and control their behavior completely from the inspector to set up multiple difficulty levels and get a different experience each time while playing against NPC factions.
- Have control over all aspects of the NPC factions decision making process by tweak AI-related components easily from the inspector and set up various AI difficulty levels to provide a different experience within each game.
- Create and customize different types of resources for the factions to collect and use them to place buildings, launch tasks and create units.
- Make resource collectors gather resources automatically or have them drop them off at a building when reaching a certain amount.
- Add Treasure objects in a map and reward the faction that claim them with resources.
- Create buildings and make each one deliver a different task for the faction: increase the faction slots, attack enemy units, upgrade units/other buildings, generate resources, teleport units, act as a hideout for units and much more.
- Customize buildings even more by adding health states and construction states which allow the building to display its current health state by hiding/showing special effects and/or different parts of its model.
- Each faction have borders in the map which allow the faction to exploit resources and place buildings inside the territory defined by the borders.
- Enable borders in the map to either allow factions to claim territories in the game and be able to exclusively place buildings and collect resources inside their territories or disable borders to allow factions to act freely in the game's map.
- Create different types of units that deliver tasks such as constructing buildings, gathering resources, generating resources, attacking other factions, healing other units, converting enemy units, transporting other units and much more.
- Enable automatic behavior for units to allow healers and converters to locate target units in a predefined range and exercise their abilities and to allow builders/resource collectors to locate buildings that require construction or resources that can be collected instead of staying idle.
- Create different types of units the same way: If it's a simple walking unit, a catapult, a boat, a tank, a plane or even a spacecraft, use the same process to create various and unique units.
- Move different unit types/groups using different movement formations and define all movement related settings easily from the inspector.
- Create free units that don't belong to any faction and place in the map and use them as protectors for treasures and rewards in the map, animals that can be hunted by player and NPC factions or whatever suits your RTS game.
- Easy to use upgrade components allow to upgrade units and buildings.
- Any upgrade can trigger other unit/building upgrades allowing you to define upgrades which advances a faction to the next age.
- Units/buildings can attack enemy units or buildings directly or by using an attack object (bullet, arrow, rocket, etc..). Damage can be applied to a single target or to all targets an area of effect. Other attack settings include: Damage over time, cool downs, damage/attack effects, line of sight, switching between multiple attacks and much much more.
- Define and assign different attack range types (short range, long range, etc..) and movement/attack formations for attack units easily from the inspector.
- Attach the Task Launcher component to a unit or a building and create tasks for it. Task types include: unit creation, research, self-destruction, upgrade triggers and custom casks. Custom tasks are tasks that only trigger delegate/Unity events to your custom components and pass all the task information entered in the Task Launcher allowing you to further customize the asset.
- Each Task Launcher can trigger events independently when the task is launched, completed and/or cancelled.
- RTS Camera providing all the required features: zooming, movement limitations, following units, panning and more.
- RTS Minimap & Minimap Camera allowing for faster and more efficient navigation through the map and allows to alert the player when their units/buildings are under attack.
- Define different minimap icons for faction/free unit/building types and resource types allowing the player to have a complete understanding of the events throughout the whole map.
- Select single or multiple units, buildings or resources to display information about them and assign them tasks. All selection features that you expect to find in a classic RTS game (double click on unit to select same unit-type in range, select player's faction idle units and more).
- Group Selection: Assign a selected group of units to a predefined key and select the same group each time by using the same key.
- Full UI for the game that includes a task panel, single/multiple selection panels, resource panel, pause menu, win/lose game menu, tool-tip menu, hover health bar (display health when the player's mouse is over a building/unit) and more.
- Option to use different UI styles/sprites for different faction types.
Missions & Scenarios:
- Fully dynamic and customizable mission system which allows to create a singleplayer campaign.
- Built in mission types (resource collection, unit/building production/elimination, survival etc..) and forfeit conditions (time limit, defend units/buildings, faction defeat and more) and custom mission types/forfeit conditions that can be customized through your own components.
- Each scenario is a series of missions that must be completed by the player in a sequential order and which can be used in any map scene.
- An example campaign menu is provided allowing you to define a series of scenarios which the player can load, play and complete in order to unlock the next scenario.
Singleplayer & Multiplayer:
- Fully functional singleplayer menu that allows the player to select a map, see its features (max factions, initial population, etc..), pick the the speed modifier, win/lose game conditions, the amount of factions to play, faction colors, set the difficulty level of AI factions and more.
- Multiplayer mode powered by Mirror
- Fully functional multiplayer menu that that allows the player to host/join local or internet lobbies, pick their faction type, color and name. Allow a lobby's host only to pick a map to play in, the win/lose condition and the speed modifier and allow the host only to start the game when all players are marked as ready.
- Nearly everything can customized from the inspector. In any case you want to dig in the code, the comments will guide you in every line.
- Customize your RTS game furthermore using custom delegate events which allow you to access components of objects that are related to the event. For example one of the events is called when a unit is created, from this event you can access the whole Unit component of the newly created unit and get/set attributes and call methods from within the Unit component.
- Full list of custom events can be found in this doc page.
- Create units, buildings, resources and more by calling simple methods from your own components.
Third Party Support:
- Mirror (multiplayer)
- Fog Of War
This asset uses the "UI Pack: RPG Expansion", the "Castle Kit" and the "Nature Pack Extended" created by Kenney in the demo scene under the CC0 1.0 Universal license. See Third Party Assets.txt file in the package for more information.