Changelog

v1.5.1.1 – 04/12/2019:

  • Fix bug where units stored in a APC unit can be targeted in an attack.
  • Fix initial building rotation when spawned by a NPC faction.
  • Add updating the NavMeshAgent “Speed” property when it’s enabled and the unit’s speed is updated.
  • Add ability to unlock scenarios in the campaign menu.
  • Separated idle rotation angular speed and movement angular speed values by having a field for each in the Unit Movement inspector.

v1.5.1 – 01/12/2019:

  • Fixed an issue that blocks leaving a multiplayer game to the main menu.
  • Fixed a UI and selection bug that occurs when the APC is selected among other units and all the units but the APC enter the APC.
  • Fixed syncing whether a movement command has been produced directly by the player or not in the InputManager component.
  • Fixed transparency issue of UI task images.
  • Fixed updating colors for unit creation and building placement tasks that reached their faction limits.
  • Fixed the unit death animation triggering issue when unit is using the NavMeshAgent component for movement and dies while moving.
  • Fixed toggling the ready status for a faction slot in the multiplayer lobby menu (Mirror multiplayer integration).
  • Replaced animator state machine components by one component that can perform the same task.
  • Updated “offlineScene” property for the NetworkLobbyManager in the multiplayer lobby menu (Multiplayer with Mirror).
  • Updated the UnitMovement component to disable setting the NavMeshAgent obstacle avoidance type when the movement is handled by the NavMeshAgent component.
  • Updated configuring a new map by destroying present objects in scene before the “NewMapConfiguration” prefab is cloned into the scene and added basic unit and building structures so a newly configured map is instantly playable.
  • Updated the FoW and Mirror assets integration packages.
  • Added the option to force unit rotation towards its steering target before actual movement is allowed even if the NavMeshAgent is used to control the unit’s movement.
  • Added a custom event and a Unity event trigger that are invoked when a task in a task launcher starts processing a task in the queue.
  • Added option to allow attack units/buildings to be able to target flying units or not.
  • Added the option to add/remove resources from a faction whenever a unit or building instance that belongs to it is created or destroyed.
  • Added faction type, NPC type and resource type caching so they can be easily assigned in the inspector using a popup menu so you don’t have to manually drag and drop these asset files from the project tab to the inspector fields.
  • Scan resource, npc and faction types and cache them to easily assign them from a popup in the inspector.
  • Refactored the NPC faction system to make it more scalable, modular and to improve performance by re-writing huge parts of the code and using better suited structures that suit the needs of each NPC component. Here are the main changes for the NPC components:
    • Added NPCTypeInfo scriptable objects which can be created from the project tab. Each NPCTypeInfo asset file allows to define a NPC type (or simply difficulty level) which can be directly used to assign a faction slot to a NPC type either in the Game Manager in a map scene or in the lobby menus.
    • The NPCManager component now acts simply as the main NPC component that is responsible for initializing, connecting and providing the required references for NPC components in a game.
    • A NPC type (defined by a NPCTypeInfo asset file) can be used for multiple faction types. You have the option to either define one NPC Manager prefab for all faction types or define one NPC Manager prefab for each group of faction types or individually for each faction type.
    • Added NPCUnitRegulatorData and NPCBuildingRegulatorData scriptable objects which can be created from the project tab and then assigned to units and buildings in the inspector allow for regulating the creation of unit and building types for one or multiple NPC types, one or multiple of faction types or a combination of those two. The regulator data asset files can be reused for different unit/building types as well.
    • Added the option to regulate buildings per building center or for the whole NPC faction overall.
    • Deprecated the built-in “Faction Power” counter that used to be assigned from the UnitAttack or BuildingAttack component and which was used by NPC factions ot measure how powerful a faction is.
    • The NPCAttackManager component now allows to input resource types in the inspector to be used to decide which faction to target. There are currently three options: Pick a target faction randomly, pick the faction with the most assigned resource types or pick the one with the least assigned resource types.
    • The NPCAttackManager component now allows to input resource types and specify an amount range for each one which determine both the minimum required resources to launch an attack or the resources that trigger the NPC faction to cancel an attack.
    • Updated the NPCPopulationManager is now capable of actively monitoring the NPC faction’s population.
    • When no NPC type is assigned for a NPC faction in its faction slot, the NPC faction will simply act as a dummy faction and won’t have any effect on the game.
    • Added tooltips for each exposed field of the NPC related components in the inspector.
    • Added assertions that print comprehensible errors in the console in case something is missing regarding the NPC configurations.
  • Please make sure to go through the update guide to walk you through what needs to be changed in your RTS Engine project after the update: http://soumidelrio.com/docs/unity-rts-engine/update-helper/v1-5-1/

v1.5.0 – 30/10/2019:

  • Deprecated the “Attack Duration” field from the Attack component (“General” tab) as the attack duration is now detected using the assigned attack animation.
  • Fixed a bug that triggers tooltips for inactive tasks on the task panel.
  • Fixed a bug that interrupts triggering the death animation of a unit.
  • Fixed a bug that occurs when a unit is moving to enter an APC while the APC is changing its position, the unit now detects the APC position change and recalculates its path until it reaches the APC.
  • Fixed an issue with creating units that should not affect their faction’s population but still decrease the population slots when they are destroyed.
  • Fixed sending units to their target position when they spawn.
  • Added “Force Ground Position” field to the APC component which forces the APC’s interaction position to be on a ground level always, which is useful if the APC is supposed to be an air unit and it can store ground units.
  • Added the option to enable unit movement using the Unity built-in NavAgent component instead of the RTS Engine UnitMovement component.
  • Added the “Min Corner Distance” field to the Unit Movement component: allows to define the minimum distance between two consecutive corners of the movement path. This avoids having two consecutive corners that are too close to each other which is generated quite often by the Unity built-in navigation solution.
  • Added “APC Slots” field in the Unit component which defines how many slots of the APC’s capacity a unit will occupy when it enters the APC.
  • Updated NPC regulator assets to be creatable from the project tab.
  • Updated the Attack component to consider both enemy units and buildings when automatically searching for a target.
  • Updated the unit movement by only allowing the unit to move when it’s in its movement animator state and updated the animator by smoothing transitions between animator states.

v1.4.9.1 – 22/10/2019:

  • Fixed an issue in changing the attack source of a faction entity using the MultipleAttackManager component when the source doesn’t have a weapon object assigned.
  • Fixed updating the attack weapon idle rotation.
  • Fixed placing buildings on Unity 2019.3.04b.
  • Updated Mirror asset to v4.0.7 and updated the integration package accordingly.
  • Fixed triggering the death animation for units when they have the “take damage” animation already active.
  • Fixed destroying the target position collider for units when they are converted.
  • Fixed updating the free units list when a free unit is converted.
  • Updated Attack Object component by spawning the trigger effect (if assigned) using its original rotation.
  • Fixed issue where units that can not move do not reset their attack target even when it gets out of range.
  • Fixed issue that disallows entities with an Attack component to launch their attacks when they do not require a target.
  • Fixed initializing units and buildings with multiple attack components.
  • Added “Attack Duration” field for UnitAttack and BuildingAttack components which determines the time where the unit is blocked (can not move) when it’s launching its attack.
  • Added the option to have a different animator override controller for each unit attack type.
  • Added option to use field of view of main camera when zooming in/out.
  • Added inversion option for the mouse scroll wheel main camera zooming.
  • Added the option to have a different drop off object and drop off animator override controller per resource type for resource collector units.

v1.4.9 – 07/10/2019:

  • Fixed an issue that makes a selected unit move when the player cancels placing a building.
  • Fixed stopping the unit movement audio when it is destroyed.
  • Fixed triggering error messages in the Movement Manager component.
  • Fixed an issue where selected entities get deselected when moving the camera with the Minimap.
  • Fixed an issue that occurs when updating NPC faction resources when they get a building center destroyed.
  • Fixed an issue that occurs when a player unexpectedly leaves a multiplayer game.
  • Fixed NPC Manager Editor component for not saving changes.
  • Fixed triggering the take damage animation for units.
  • Fixed hiding the source and target effect objects when a unit is dropping off their collected resources.
  • Fixed sending unit group movement input commands in a multiplayer game.
  • Fixed creating buildings with no given centers in multiplayer games.
  • Fixed an issue with forcing building placement to be in range of resource types.
  • Refactored the MinimapIconManager and MinimapIcon components and made them optional to use: Both now use the EffectObjPool component to pool minimap icon instances.
  • Refactored the AttackWarningManager and AttackWarning components and made them optional to use: Both now use the EffectObjPool component to pool attack warning instances.
  • Added the UnitDropOffStart and UnitDropOffComplete custom events.
  • Updated the attack related components to allow units to attack even if they can’t move.
  • Updated Building Placement by adding a field that determines how far the building needs to be from the ground terrain in order to be placed.
  • Deprecated the Camera Movement component and replaced it with a new Camera Controller component (for the main camera) and a Minimap Camera Controller component (for the Minimap):
    • Camera zooming doesn’t rely on changing the field of view value but rather the height of the camera.
    • Added camera rotation with keyboard keys, mouse wheel and options to keep a fixed rotation when panning the camera.
    • Added the option to the move the main camera when the player is dragging the mouse on the Minimap.
    • Added new camera entity follow system that can iterate through the list of selected entities.
  • Update the Fog of War asset integration package to make it work with the new camera controllers.
  • Make sure to follow this guide to update: http://soumidelrio.com/docs/unity-rts-engine/update-helper/v1-4-9/

v1.4.8.1 – 21/09/2019:

  • Fixed updating faction unit/building limits.
  • Fixed creating buildings with no given centers in multiplayer games.
  • Fixed an issue with forcing building placement to be in range of resource types.
  • Fixed an issue where default units didn’t properly get initialized and recognized by all factions when the game starts.
  • Fixed a bug where the single selected entities info remain on the selection panel when it’s deselected.
  • Fixed property naming issue in the Mirror’s integration package.
  • Fix resetting animation when a unit instance is upgraded.
  • Fixed missing “Events” tab on the Building Attack component’s editor.
  • Updated the entity selection clip from one single field to an array of audio clips where each time the entity is selected, a random clip is chosen and played.
  • Added a “Destination” fields to the Unit Spawner component which will be the goto position of the units that spawn using that component.
  • Updated initiating a faction by:
    • Making a capital building not required to initialize a faction if the defeat condition is set different than “Destroy Capital” and if there a transform assigned in the new “Camera Look At Position” field that represents the initial camera position when the game starts.
    • Whenever the “Camera Look At Position” field is assigned, it will always override the capital building’s position as the initial camera position.

v1.4.8 – 11/09/2019:

  • Fixed Building Drop Off component’s custom editor.
  • Fixed an issue where the target position collider of a unit is destroyed when the unit is converted.
  • Fixed an issue that allowed a building to pick itself as the rally point destination.
  • Fixed an issue that resulted in hiding the selection plane of a selected entity when an empty action is requested on the selected entity.
  • Fixed the “Take Damage” animation clip trigger.
  • Fixed displaying the list of buildings that a builder can place in the task panel when a builder that has certain restrictions is selected.
  • Refactored some of the selection related components in order to improve performance especially when a large amount of entities:
    • When the selected entities amount reaches a certain number that can be chosen from the UI Manager inspector (selection panel section), selection tasks will not be displayed for each individual entity but rather for each entity type + a text label will show the amount of the selected entities of that type.
  • Updated Game Manager to reset the time scale when the game is paused in a single player game.
  • Updated Resource Generator component to only add resources to the building’s faction when the maximum amount is reached even if auto collect is enabled.

v1.4.7 – 29/08/2019:

  • Fixed an issue that made the unit move to its creator building goto position after it is upgraded.
  • Fixed refreshing the spawnable prefabs in the Mirror multiplayer menu.
  • Fixed an issue where wandering units start wandering while in battle.
  • Fixed an issue that prevented faction entities from attacking friendly entities when it’s enabled.
  • Fixed refreshing the APC’s capacity UI indicator when the APC capacity is updated while it is selected.
  • Fixed registering buildings placement instances in a multiplayer game.
  • Fixed assigning the Game Mmanager component to the Network Lobby Manager (Mirror) when the multiplayer game starts.
  • Fixed updating the free units list when free units are created/removed/converted.
  • Fixed unit animation change when “takeDamage” state is enabled.
  • Fixed updating the attack power attribute for factions when units/buildings with an Attack component are created/destroyed.
  • Fixed stopping collectors when their target resource is empty/destroyed.
  • Fixed getting the correct healing order audio clip when a healer clicks on a friendly unit.
  • Fixed AoE attack getting the right damage amount depending on the target type.
  • Fixed triggering the destruction effect when faction entities are destroyed.
  • Updated the faction limits to use either unit/building codes, categories or a combination of both to define limtations on creating types of units/buildings for a faction type during a game.
  • Updated the InputManager component to assign unique integer keys to units, buildings and resources to identify them in a multiplayer game (identifying them can now faster than it used to be).
  • Added an option to choose whether faction limits and faction population slots get updated when a unit/building is created directly using the creation method from the Unit Manager/Building Manager.
  • Added Unit Spawner component which allows to spawn units in game in the form of waves.
  • Deprecated the SinglePlayerManager component, previously responsible for handling the single player menu and replaced it with the LobbyManager and LobbyManagerUI components which now handle adding/removing faction slots, picking a target map, picking the defeat condition and speed modifier among other things in a single player menu.
  • Refactored the Game Manager component making the game initialization process smoother and faster.
  • Refactored both the Building Manager and Building Placement component to improve performance regarding the building related tasks that they perform.
  • Added the option to have units and buildings pre-placed for each faction slot in the map scene in addition to filtering those entities when the game starts depending on the faction type assigned to the faction slot (keep them or destroy them).
  • Rewrote all of the custom editor components that had issues with keeping the applied changes when the project is re-opened.
  • Refactored most of the components to improve performance, make things more modular and keep the same convetions among all scripts in the asset.
  • Added multiple new custom events.
  • Make sure to go through the update helper before updating to 1.4.7: http://soumidelrio.com/docs/unity-rts-engine/update-helper/v1-4-7/

v1.4.6 – 15/07/2019:

  • Updated the UnitMovement component to disable syncing the unit’s position with the nav agent’s position to avoid snapping the unit’s position each time the navigation agent component is enabled.
  • Fixed an issue that allowed to start a building placement task when one is already in progress.
  • Fixed the “ready mark” sync issue the multiplayer lobby menu (Mirror integration package).
  • Fixed an error triggered when all NPC factions are defeated in a single player game.
  • Fixed a bug that disabled movement animation when the “take damage” animation is disabled an attempt to trigger it is done when the unit is moving.
  • Added option to reward the player’s faction with resources when a mission is completed or when a task (of a task launcher) is completed.
  • Added new terrain attack option:
    • Added option to no longer require attack units require to have an assigned target in order to launch an attack, instead they can now direct their attack at an area of the map’s terrain that the player assigns using the mouse while holding down a key which can be chosen from the Attack Manager’s inspector.
    • Added movement stopping distance field the attack range type which defines the stopping distance when an attack unit launches a terrain attack.
    • Update the attack related custom events to have a Vector3 targetPosition parameter in case the attack that triggered it is a terrain attack and does not require a target to be assigned.

v1.4.5 – 22/06/2019:

  • Fixed unit conversion to correctly update the new faction color for the converted unit.
  • Fixed an issue in the MovementManager component that caused a desync issue in multiplayer.
  • Fixed the selection box to not include units that are not active when selecting units.
  • Fixed the APC component by disallowing units to be added to it when it reaches maximum capacity.
  • Deprecated the UnitUpgrade and BuildingUpgrade components and replaced them by one Upgrade component which works for both units and buildings
  • Add one instance upgrade: If the upgrade launcher and the upgrade source are the same, then the option of upgrading that instance only is available.
  • Refactored the upgrade related components and re-wrote most of the logic behind the upgrade process to make it more performant and easier to customize.
  • Add the option to lock attack types by default making the player not able to switch to them.
  • Add new task type “Lock Attack”: Allows for a task to lock or unlock attack types that belong to the task launcher entity.
  • Deprecated the NPCUnitUpgradeManager and NPCBuildingUpgradeManager components and replaced them with one NPCUpgradeManager which will handle both unit and building upgrades.
  • Make sure to go through this guide before updating: http://soumidelrio.com/docs/unity-rts-engine/update-helper/v1-4-5/

v1.4.4 – 14/06/2019:

  • Fixed subscribing/unsubscribing to custom events in the CustomEventsExample component.
  • Fixed placing buildings even if border objects aren’t spawned.
  • Updated building goto position objects to appear only if the player selects a building that belongs to their faction.
  • Fixed building placement rotation in multiplayer games.
  • Fixed ejecting single units from APC components in multiplayer games
  • Updated the multiplayer “Snap Distance” feature to be toggable and to only take effect if the source unit wasn’t alredy moving when the input command is received by a client in the game.
  • Fixed switching a faction entity’s attack type in a multiplayer game.
  • Updated the Unit Attack component to prohibit units from updating their positions locally for each client in a multiplayer game when their attack is out of their range which has been causing some desync issues in multiplayer games.
  • Fixed launching unit/building upgrades for NPC factions in a singleplayer game and factions other than the host player faction in a multiplayer game.
  • Added public FactionEntity type “KilledBy” property in the health component of faction entities (units and buildings) which holds a reference to the source that caused the death of the faction entity.
  • Updated the Builder component to include a new “Restrictions” field where building codes/categories can be inserted to represent the building types that can’t be placed or constructed by the builder.
  • Updated the Resource Collector component to allow to restrict the resoruce types that a unit can collect: Only resource types that are assigned in the Resource Collector’s “Collection Settings” field can be collected.
  • Updated the selection component to display the given error and flash the selection texture in the assigned negative color when the player attempts to do an action regarding the source of the selection component and it fails.
  • Added a new dynamic and customizable mission system which allows to create a single player campaign:
    • Create scenario asset files and create a series of missions for each scenario which need to be completed by the player in a sequential order to complete the scenario
    • Use the same scenario on multiple different map scenes
    • 4 different types of missions: resouce collection, faction entities elimination, faction entities production and custom mission (no specific objective but allows you to control the completeion/failure conditions of a mission using your own components).
    • Enable survival time for a mission allowing the player to complete a mission if their faction doesn’t get defeated in a certain time.
    • Set forfeit conditions for each mission: time limit or losing certain faction entities (units and/or buildings).
    • Completed scenarios are saved.
    • An example campaign menu is provided which allows to define a series of scenarios which the player can load, play and complete in order to unlock the next scenario.

v1.4.3 – 2/06/2019:

  • Fixed an issue with initializing tasks in a task launcher when the task holder belongs to a faction that doesn’t have a faction type assigned to it.
  • Fixed an issue in displaying multiple selected entities that do not belong to the player’s faction.
  • Fixed an issue that made the last faction slot in a map unusable when the map is loaded from a multiplayer menu.
  • Fixed generating resources from a Resource Generator component in a multiplayer game.
  • Added new ResourceAdded custom event that is triggered each time a resource instance is initiated.
  • Double clicking on a building (owned by the player) will now trigger selecting buildings of the same type inside a range that can be defined from the Selection Manager inspector.
  • Updated the Fog Of War asset integration package to support the latest version and added a demo map scene that makes use of the fog of war asset in the integration package, please check the following page on how to configure the new integration package: http://soumidelrio.com/docs/unity-rts-engine/third-party-support/fog-of-war/

v1.4.2.1 – 29/05/2019:

  • Fixed selecting a single unit from the multiple selection panel.
  • Fixed the building upgrade field in the Task Manager custom editor.
  • Fixed adding units to a unit APC.
  • Remove all SetDirty calls on the custom inspector editor components since that triggers an autosave in prefab mode in Unity 2019.

v1.4.2 – 27/05/2019:

  • Fixed an issue in the Task Launcher Editor component that is triggerd when a task is added/removed.
  • Fixed a bug that led to removing the capital status of the capital building when it is upgraded.
  • Removed the Flat Terrain field from the Terrain Manager component. Having a flat terrain for each map is no longer required.
  • Fixed the creation of the attack object’s trigger effect.
  • Fixed an issue in the hover health bar UI that led to not displaying the source’s health correctly.
  • Fixed a bug in the Mirror integration package that caused a player’s faction to remain undestroyed if their game is interrupted (unexpected disconnection).
  • Rewrote the selection system (Selection Manager, Selection Entity, etc..) from scratch:
    • Resources, buildings and units can now be multiply selected.
    • Added selection options which allows to define whether resources, buildings and units can be multiply/exclusively selected or not.
    • Updated the selection box to be more performant without causing any performance issues when attempting to select a large amount of units.
    • Idle units can now be selected using a key that can be defined from the Selection Manager inspector.
  •  Added the ErrorMessageHandler component which is a dedicated component that is used to report errors/messages during the game and display them in UI player messages.

v1.4.1 – 11/05/2019:

  • Fixed a bug where units couldn’t start constructing a building when they’re dropping off resources.
  • Fixed playing the death animation for units.
  • Added the option to choose faction entity codes or categories when assigning the list of targets that an attack entity can engage (or not engage).
  • Added the option to choose faction entity codes or categories when assigning the list of units that an APC can add (or not add).
  • A map is now playable with one faction only.
  • NPC Factions now recognize all units and buildings as valid targets when the game defeat condition is set to eliminate all entities. They prioritize target buildings that they have assigned in the NPCAttackManager inspector as usual.
  • The task system (mainly the Task Manager and Task Launcher components) has been re-written from scratch where a lot of earlier minor issues have been fixed. It’s now more modular, more simple and user-friendly. Please check this update guide: http://soumidelrio.com/docs/unity-rts-engine/update-helper/v1-4-1/ to walk you through updating to the new task system.
  • The UI Manager has been re-written from scratch to be more performant and modular.
  • Multiple unit selection task: if player clicks on one of the multiple unit selection tasks:
    • Multiple selection key (assigned in the Selection Manager component) is held down -> deselect unit from group
    • Otherwise -> select that unit only

v1.4.0 – 01/05/2019:

  • Fixed a bug where the building’s rallypoint model is visible even if the rallypoint is set to a building/resource.
  • Fixed a bug where units can’t move to the “Goto Position” of a APC or a portal after leaving the APC or teleporting through a portal.
  • Fixed a bug where attack entities are still able to engage units in a rare occasion even if that’s disabled for them.
  • Fixed a bug where attack objects do not face their targets correctly when they’re created in delay mode.
  • Fixed an issue with the Unit Attack, Attack Entity and Attack LOS components to only allow that an attack starts in any case if the source has its target in its line of sight (if line of sight is enabled of course).
  • Fixed playing the movement order audio clip in the Movement Manager component.
  • Fixed an issue in the Movement Manager that didn’t allow units to re-calculate their movement paths if they were unsuccessful to do so in the first attempt.
  • Fixed a bug in the Faction Entity Health component which triggered the building destruction effect when a building gets upgraded
  • Fixed enabling/disabling the correct animator override controllers and drop off object in the Resource Collector components.
  • Fixed a bug where the reload time of a newly added task in the Task Launcher component is not set correctly.
  • Fixed a bug in the Mirror integration package where faction lobby slots of players who left the room before the game started didn’t get cleared.
  • Fixed a bug where the Movement Manager doesn’t take into consideration an attack unit’s range distance when moving a single unit towards its attack target.
  • Fixed a bug with the attack weapon rotation.
  • Fixed a bug that didn’t update the builder(s) task panel properly when placing a building that just reached its faction type limit while god mode is enabled.
  • Fixed the resource drop off bug that occurs when a unit is assigned to collect a resource when it’s already dropping off another resource.
  • Fixed an issue with free buildings that made them un-selectable.
  • Building Health component:
    • Updated the building states system to be simpler and easier to use.
    • Added the field “Construction Complete State” which allows to define child objects of the building that get enabled/disabled when the building’s construction is complete.
  • Selecting a free unit now triggers playing its selection audio clip.
  • All camera movement logic is now done in FixedUpdate which makes the movement smoother.
  • Added the option to toggle displaying the selected unit’s population slots count in the selection description.
  • Added the option to show a UI message when an attack warning is triggered in the minimap to inform the player that their unit(s)/building(s) are under attack.
  • Added the option to only allow a unit to move/continue its movement on its path if it faces its next destination in the path with a certain angle.
  • Updated the Game Manager faction slots randomization system and enabled that feature in both singleplayer and multiplayer modes.
  • Exposed both the unit and building regulator asset lists on the inspector so they can be edited those manually.
  • The building upgrade effect is now spawned for every building instance that gets upgraded in the game instead of the instance that initiated the upgrade.
  • Updated the Building Placer’s component collision check when placing a building.
  • Added deceleration for unit movement.
  • The Current Speed field is now accessible for other components as property (read only)
  • Switching an attack through the Multiple Attack Manager component now toggles the weapon object if it’s assigned.
  • Cancelling all unit jobs now include cancelling an on-going drop off process if there is any for units with the Resource Collector component
  • Added the option to set a secondary model and secondary selection object for resources: if assigned, they’re enabled as soon as the resource is collected for the first time.
  • Updated the Damage over Time system to enable having multiple instances of DoT running at the same time for one unit/building.
  • Added the “NPC Only” field in the Escape On Attack component which when enabled, escaping on attack can only be active if the unit belongs to a NPC faction.
  • The movement queue in the Movement Manager component now utilizes a LinkedList instead of a Queue/List.
  • Added a reference Movement Task field in the Unit Movement component so that each unit can keep track of its pending movement task in the Movement Manager and it can remove/update it in case it decides to change its movement while still in the movement queue.
  • The hover health bar is disabled for units and buildings when they’re marked as dead but not yet destroyed.
  • The Builder, Resource Collector, Healer and Converter components now include two new Effect Object fields. When assigned, one is enabled on the source unit and another on the target unit when the component is active.
  • Converters and Healers can now use their own stopping distances when moving towards a target unit
  • Effect Object:
    • The Effect Obj Pool no longer uses pre-defined effect object types but instead a dictonary that allows to store each effect object type as a single entry with the value being a queue of all inactive instances of that effect object type which allows constant time in terms of expected time of retrieval of effect objects.
    • Updated the Effect Object component to have three different states: inactive, running and disabling.
    • Added a disable time field for effect objects which allows to smooth out disabling them.
    • Effect Objects can now trigger events when they’re enabled/disbaledAdded two UnityEvent fields for the EffectObj component to allow it to invoke events when the effect object is enabled/disabled.
  • Rotating Buildings:
    • Added the option to allow the player to rotate to-be-placed buildings using two keys (one for positive rotation and another for negative rotation).
    • Added the option in the NPC Building Regulator to allow NPC Factions to rotate buildings towards the center object that they’re placing a building around.
  • Speed Modifier:
    • Added a speed modifier field in the Game Manager which allows to speed up the game in terms of: unit movement speed, unit movement acceleration, task reload timers, resource collection time, building construction time and more.
    • Added a speed modifier field in the Single Player Manager where you can pre-define speed modifier values that can be selected by the player using a drop down menu.
    • Added a speed modifier field in the Mirror’s multiplayer menu integration package where you can pre-define speed modifier values that can only be selected by the host player in the lobby.
  •  Defeat/Win Condition:
    • Added a defeat condition field in the Single Player Manager where you can pre-define sdefeat conditions to be used in the target map that can be selected by the player using a drop down menu.
    • Added a defeat condition field in the Mirror’s multiplayer menu integration package where you can pre-define a list of defeat conditions to be used in the target map that can only be chosen by the host player in the lobby.
  •  Attack Object component:
    • Added an obstacle layer mask specified which defines the object layers for which a collision means disabling the effect object.
    • Added the “Child On Damage” field which makes the attack object a child of the faction entity/obstacle that it damages/collides with.
    • Added the option to create a new attack object from the RTS Engine menu items.
    • Added an Effect Object field (Hit Effect) for the attack object component that is triggered when the attack object deals damage to a target
    • Added an Audio Clip field (Hit Audio) in the Attack Object component that is played when the attack object deals damage to a target or when it collides with an obstacle.
  •  Task Manager:
    • Added the ability to use a custom cursor in the game instead of the default OS cursor.
    • Added a field to allow to override the cursor’s hotspot when using custom cursor textures.
  •  Mirror Integration Package:
    • The host now must also mark himself as ready in order to start the game.
    • Starting the game from the lobby will trigger sending a faction slot indexes shuffled list to be used in the game scene to randomize the player faction slots (if that is enabled in the target map).
  • Demo Game:
    • Added several audio clips to be used in the demo game.
    • Added two new units for the demo: Catapult and Spacecraft which can be both created from the Barrack building.
    • Added a drop off object for the villager demo unit.
    • Added several animation clips for different demo units in different states.
    • Updated the faction type info assets for the demo to use different population buildings.
    • Added a building construction effect for demo buildings which makes use of the RTS Engine delegate events (as an example on how to use the custom delegate events).
    • Added a unit ragdoll effect which is enabled using the RTS Engine custom delegate events when units are dead.
    • Added several particle effects for the demo map.

v1.3.9.2 – 22/04/2019:

  • The movement queue in the Movement Manager component now utilizes a LinkedList instead of a Queue/List: Since random access is not required (no need for List) and we need to remove elements inside the list (which Queue disallows and LinkedList allows with constant time).
  • Each unit can keep track of its pending movement task in the Movement Manager and it can remove/update it in case it decides to change its movement while still in the movement queue.
  • The Unit Movement component now separates between the current speed and the max allowed speed.
  • Added methods to get and set the max speed of each unit during runtime.
  • Updated the GetRandomMovablePosition method of the Movement Manager component to sample the correct height when picking a random direction.

v1.3.9.1 – 19/04/2019:

  • Before calculating a path for a moving unit, the movement manager now checks first if it’s not valid or dead before continuing.
  • When a NPC Faction is defeated (when having the defeat condition set to “Destroy Capital”), all of its units/buildings (including pending buildings that are getting placed by the NPC faction) get destroyed and that might cause problems in the NPC Building Placer component (it keeps checking for pending buildings that just got destroyed) before it gets destroyed itself. Therefore, I’ve added some “security” checks to make sure that the NPC Building Placer component does not act if the pending building is invalid (instead it simply discards it).
  • When moving one unit using the Movement Manager, only consider the actual target destination if the offset radius is not null. This fixes the issue where builders do not move directly to construct the building that the player place when they’re selected.
  • The converter and healer units can now use their own stopping distances when moving towards a target.
  • The Movement Manager does not move units into idle mode anymore in the following cases:
    • A unit is asked to launch an attack towards while it can’t change its current target or it no target can be assigned to it and therefore no movement will be initiated.
    • A unit is asked to move towards a target destination while it can’t be moved.
  • Fixed moving units through the minimap camera.
  • Removed the unnecessary Building Drop Off component from some demo scene building prefabs.

v1.3.9 – 14/04/2019:

  • Fixed the error triggered by the Input Manager when a single player game starts.
  • An air terrain is now required to create flying units. Please refer to this doc page for more information about the air terrain: http://soumidelrio.com/docs/unity-rts-engine/maps-terrain/
  • Fixed the Unity Event “Attack Performed Event” of the Attack Entity component so that it is invoked when the attacker performs the attack (when the attack object is launched for example) and not when damage is dealt.
  • Added a new Unity Event “Attack Damage Dealt Event” for the Attack Entity component that is invoked when the attacker deals damage to its target.
  • Added the Unit Selection Group component which allows the player to select units, assign them as group by pressing a combination of keys that you pick from the inspector and then use the same key to instantly select that assigned group, UI messages and audio clips can be also assigned for different situations to keep the player informed.
  • The Movement Manager component has been re-written from scratch.
  • Soft unit avoidance can be now enabled from the Movement Manager. This makes units that are not moving act like obstacles so that they’re avoided by other moving units.
  • Added Movement Formations that define how a group of units pick their target positions. There are currently two types of formations when moving a group of units: Circular and Rectangular. You can assign a different formation for the movement of non-attack units and the movement of attack units (one for when they’re idle and one for each range type when they move towards an attack target).
  • The Unit Movement component is now incharge of actually moving the units instead of the Nav Mesh Agent component (which now only serves to calculate the path and feed it to the Unit Movement component).
  • Added an Acceleration field in the Unit Movement component which defines how fast does the unit reach its top speed when it starts moving.
  • NPC Factions can now place their buildings on top of hills and different heights of the terrain since they can now sample the height of the terrain when placing a building.

v1.3.8 – 02/04/2019:

  • Updated minimum Unity version to run RTS Engine to 2018.3.8
  • Fixed a bug that prevented the Area Damage attack from triggering correctly
  • Fixed a bug in generating resources from a building.
  • Fixed a bug that stopped a unit from attacking its target when the follow distance was lower than the attack range.
  • Fixed a bug in placing buildings by default when god mode is enabled
  • Fixed a bug in dropping off resources.
  • Fixed a bug in fetching inactive effect objects.
  • The damage value of an attack entity can be now extracted using the GetDamage method from the AttackDamage class
  • Deprecated UNET support for the multiplayer mode and removed all UNET related networking components.
  • Added support for Mirror (a community networking high level API and a replacement for UNET, using the Telepathy low level transport library).

v1.3.7 – 09/03/2019;

  • Fixed a bug when a NPC faction decides to stop placing a pending building.
  • Fixed a bug in building states when a building gets reconstructed.
  • Deprecated the Attack component and re-wrote the whole attack system from scratch to be more modular, provide better performance and easier to customize.
  • The Effect Obj and Effect Obj Pool components have been refactored.
  • Added parabolic movement for attack objects.
  • Added an accuracy modifier when launching attack objects towards a target position (single player only).
  • Added event triggers for major attack events that can be assigned for each attack type.
  • Make sure to go through the Update Helper guide before importing the update!

v1.3.6.2 – 06/02/2019:

  • Fixed updating the population UI for the local player’s faction.
  • Fixed a bug that prevented units from dropping off the collected resources.
  • The Resource Manager now initializes the map’s resources at the beginning of the game, there’s no need to set them manually from the inspector anymore.
  • Fixed a bug in the Update Helper’s Attributes Converter package that prevented updating the unit and building prefabs description fields properly.
  • Fixed a bug that prevented units from responding to movement orders when they are engaging enemy units.
  • Updated the Fog Of War asset integration package to support the newest versions of both the RTS Engine and the Fog Of War assets.
  • Fixed a bug that prevented the last under construction state objects be hidden after construction is complete.
  • The RTS Engine now supports only Unity 2018.2.3 and newer versions.

v1.3.6 – 28/01/2019:

  • Added the feature to detect idle units/workers using which can be triggered using a UI button.
  • Added population slots for units so that units can occupy more than 1 population slots.
  • Added the option to pick a faction defeat condition: either by destroying the faction’s capital or by eliminating all units and buildings of that faction.
  • Added the option to have multiple upgrade targets for units and buildings.
  • Deprecated the unit, building and resource related components and replaced them with new more modular components with better performance.

v1.3.5.1 – 30/11/2018:

  • Tweaked movement settings for the demo scene’s unit prefabs and re-baked the navigation mesh of the demo map with different settings to get better paths from units and avoid units getting stuck.
  • Added the option to make tasks available or not available to use by default.
  • Added the option to enable tasks when another task is completed.
  • Fixed the issue where units from non-player faction can be moved using the minimap.
  • Fixed an issue caused when NPC factions attempt to place buildings when the Fog Of War asset integration is enabled.

v1.3.5 – 16/11/2018:

  • Deprecated the old unit/building upgrade system.
  • Added a new unit/building upgrade system:
    • Added the Unit Upgrade component: must be attached to every unit that can be upgraded, it includes different upgrade settings such as the target unit to upgrade to and the new task info (description, icon, etc…) for the unit creation task.
    • Added the Building Upgrade component: must be attached to every building that can be upgraded, it includes different upgrade settings such as the target building to upgrade to and a field an upgrade effect object that appears when the upgrade is done.
    • Unit and building upgrades are now handled like regular tasks: they can launched from task launchers and they’re no longer treated as special types of tasks.
    • Added the Upgrade Manager component: handles all upgrade requests and syncs upgrades between different task launchers.
    • Added two new delegate events: one triggered when a unit is upgraded and the other is triggered when a building is upgraded. Both events provide references to the upgrade source and target.
    • Unit and building upgrades can be triggered by other unit and building upgrades and don’t have to be launched individually.
    • Unit/Building upgrades are now handled by separate NPC components which offer a couple of settings to define the behavior of a NPC faction in regards to upgrades.
  • Task Launcher now has a new toggle field called: “Use Once For All Instances” which is only visible when the toggle field Use Once is enabled. When both are enabled and the corresponding task is launched, the same task won’t be available to launch on other instances of the same task launcher.
  • Removed the “Faction Manager” field from the Game Manager component’s custom editor: You no longer have to pre-create the Faction Manager components for each faction in a map, they will be automatically created by the Game Manager.
  • Attackers that have “Attack In Range” enabled will now attack the closest unit in range instead of the first unit they find in range.
  • Added the Fire Archer unit in the demo scene that serves as an upgrade for the Archer unit.
  • Added the Tall Tower building for the demo scene which serves as an upgrade for the Small Tower building.
  • Added NPC Regulator components for the new units/buildings for the NPC factions in the demo scene.

v1.3.4.1 – 29/10/2018:

  • Fixed created new units and buildings in a multiplayer game.
  • Fixed an issue that appears when a faction is defeated in a multiplayer game.
  • The main camera will now have its view initially at the faction’s capital when the game starts from a multiplayer/singleplayer game.
  • Fixed issues in the single player and multiplayer menu settings.
  • Moved the RangeDrawer component (property drawer for the Range class) into an Editor folder to avoid build errors.

v1.3.4 – 19/10/2018:

  • Fixed the creation of air units: No need to define an air terrain anymore, you simply enable the “Air Unit” field on the Unit main component and set the “Unit Height” in the same component and that’s it.
  • The Faction Manager component will now be automatically created by the Game Manager when the game starts, so need to worry about creating that component anymore.
  • Added new “Attack Power” field in the Attack component that holds a value that describes how strong the attack is. This value is used by NPC factions to build an army.
  • Added a field in the Attack component that enables/disables rotating the weapon’s object back into an idle rotation when the attacker is not attacking any unit/building.
  • The NPC Army, NPC Building Placment, NPC Resource & NPC Unit Spawner components have been all deprecated.
  • New NPC system composed of NPC Regulators and NPC components (see documentation on how the new NPC system works):
    • NPC Regulators: a NPC Regulator is responsible for regulating the creation and maintenance of a certain unit/building type. It includes settings such as: the ratio of that unit/building type in relation to the max population slots, minimum/maximum allowed amounts, placement options (for buildings only) and a couple more. NPC Regulators can be automatically generated from the available building/unit prefabs in the resource folders .
    • New NPC components:
      • NPC Unit Creator: responsible for the creation of units.
      • NPC Building Creator: responsible for the creation of buildings.
      • NPC Building Placer: responsible fort the placement of buildings.
      • NPC Building Constructor: responsible for the construction of buildings.
      • NPC Resource Manager: manages resources inside the territory of the NPC faction.
      • NPC Resource Collector: responsible for the collection of resources.
      • NPC Territory Manager: responsible for expanding the NPC faction’s territory.
      • NPC Attack Manager: targets another faction & decides when to attack it.
      • NPC Army Creator: responsible for the creation of army units.
      • NPC Defense Manager: activated when the faction is attacked, responsible to defend the NPC faction’s territory.
      • NPC Population Manager: manages the NPC faction’s population.
      • NPC Task Manager: manages urgent tasks that need to be executed by the NPC faction.
  • New custom delegate events have been added.
  • Fixed initializing the settings of free buildings that don’t belong to any faction.

v1.3.3.2 – 05/09/2018:

  • Fixed destruction audio triggering for both units and buildings.
  • Attack behavior:
    • Added the toggle field “Reload Attack Anim” in the Attack Source array. When enabled, the attack’s animation will be reloaded for the attack object launch.
    • Fixed transitioning between different attack object launches under the “In Order” attack type.
  • Audio clip for task completion is now played from the Task Launcher’s object and it is now played for player faction only.
  • Movement Manager now handles the escape on attack behavior for units.
  • MFactionLobby_UNET component code refactoring: Less data transfers in the multiplayer lobby menu and improved response time.
  • Fixed a bug where maps and faction types couldn’t be synced between players in the multiplayer lobby menu.
  • Selection Audio for buildings, unit and resources is now triggered by the Selection Obj component instead of the Selection Manager component.
  • Selection audio for dead/destroyed units/destroyed buildings is no longer played on mouse click.
  • Dead units and destroyed buildings which still have their models visible can not be interacted with.
  • Stopped attack order audio clip and flash selection from getting triggered even if the attack is not assigned.

v1.3.3.1 – 29/08/2018:

  • For each element of the required buildings list under the Building component, you can assign a list of possible buildings where you only need to have one of them placed and built in order to fulfill the requirement.
  • Building construction model is now disabled on start when the building is placed by default.
  • Fixed refreshing the panel task button colors.
  • Attack Order Audio is now triggered through the movement manager component and not the Selection Manager component.
  • Fixed updating the faction unit/building type limits.
  • The Drop Off model (Gather Resource component) is now disabled on start if it’s assigned.
  • Fixed enabling/disabling rotation on idle for units.

v1.3.3 – 21/08/2018:

  • New Features:
    • Added a “Rotate While Idle” toggle field in the Unit component inspector that enables/disables the unit’s rotation when it’s idle.
    • The Attack component for buildings now has the following fields in the inspector: Search In Range (toggle field that enables/disables attacking units in range), Search Range (defines the range where the building searches for enemy units to attack) and Search Reload (attack in range search reload time).
    • The audio clip that’s played when a unit is sent to collect resources can now be chosen from each unit’s Gather Resource component.
    • You can now create the Faction Type Info asset in the project to create/define a new faction type and then use that same asset files in maps and menus.
    • You can now create the Resource Type Info asset in the project to create/define a new resource type and then use that same asset in different maps.
    • Custom edtiors for both Resource Type Info and Faction Type Info assets.
    • You can now assign a target unit to an attack building (tower for example) by selecting the building and right clicking on the target.
    • Moved Task Components settings from the Unit Manager to the Task Manager component.
    • Added the Attack component task to buildings that have an Attack component: select a building that has the Attack component and an icon will appear on the task panel which allows the player to select a target.
    • You can now choose for each building whether they can be placed outside the faction’s borders or not.
    • Added a “Required Buildings” field to the Building component: define a list of buildings that must be spawned & built in order to place a building.
    • The conversion effect is now an Effect Obj and is now handled by the Effect Obj Pool component.
  • Bug Fixes:
    • Fixed the warnings appearing whenever an invalid animator override controller is assigned to a unit.
    • Fixed assigning a target to a converter.
    • Updated and fixed missing fields in the demo and menu scenes.
    • Fixed a bug that triggers the multiple selection box when placing buildings.
    • Fixed hover health bar positioning.
    • Fixed a bug that causes an exception error whenever a building cancels in progress task.
    • The building’s selection texture now gets auto-enabled when the building is getting placed.

v1.3.2 – 19/07/2018:

  • Bug Fixes:
    • Rally points have been fixed and can now be used by NPC factions.
    • Fixed a bug that didn’t allow buildings that have an attack component to attack enemy units (Fixed the Tower building in the demo scene).
    • Fixed resource generation in the demo scene.
    • Fixed a camera movement bug that appears when the map has a large size.
    • Fixed Flying Units.
    • You can now choose whether to automatically switch back to the basic attack type after launching another attack type or not from the Multiple Attacks component.
    • Improved the attack object delay: You can now create the attack object and only start its movement after the delay. When created and still in delay, you can also choose whether the attack object will be able to do damage when it’s still in delay or not.
  • New Features:
    • New Task System:
      • Creating tasks for buildings from the Building component has been deprecated.
      • Added a new independent component called “Task Launcher” which will handle creating and managing tasks for both units and buildings.
      • Task Types include: Unit Creation, Research, Self-Destruction and Custom Tasks. Custom tasks are tasks that only trigger events and pass all the task information entered in the Task Launcher.
      • In addition to the delegate events, each Task Launcher can now trigger events independently when the task is launched, completed and/or cancelled.
      • Improved the Task Panel UI management in the UI Manager for better performance.
      • User-Friendly custom editor for the Task Launcher component.
    •  NPC factions can now place buildings that required to be placed next to certain resources.
    • Buildings can now be placed in their original rotation (the one set in the prefab Transform component).
    • Added a custom event that’s called whenever an object collides with an object that holds the Selection Obj component.
    • The Unit Animator Controller has been improved in order to have smoother transitions between different states.
    • Added audio clip triggers when a building upgrade is launched and when it’s completed.
    • Added Line of Sight (LOS):
      • When LOS is enabled, the attacker will only be able to attack if the target is in its line of sight.
      • As a reference, you can choose whether the main attacker object or the weapon object (if assigned) will be used to see if the attacker is in LOS of the target or not.
      • You can define how strict the LOS is from the Attack component inspector.
      • You can also choose to ignore one or more rotation axis when calculating the LOS.
      • You can now assign a destruction object + an audio clip that goes with it for units that will appear on the unit death.

v1.3.1 – 27/05/2018:

  • Bug Fixes:
    • Fixed a bug when double clicking on units.
    • Fixed a bug that registers a pre-placed building in the map twice.
    • Fixed a bug that deselects selected units after placing a building.
    • Fixed a bug in the Input Manager that makes the Input Manager fail to recongize dead units/buildings.
    • Fixed a bug that stops the unit from triggering the attack animation when the unit has more than one Attack component attached to it.
    • Fixed a bug in area range attacks in multiplayer.
    • Fixed a bug that blocks builders from moving towards the buildings to construct them.
    • Fixed units’ rotation on movement.
    • Fixed creating new maps from the RTS Engine menu editor.
  • New Features:
    • Added Destroy Time for buildings.
    • Free Buildings in the map now must have Placed By Default enabled in order to spawn fully built, otherwise they will only spawn in construction mode.
    • Added an option in the Builder component to allow builders to construct free buildings.
    • Minimap cursor now changes its position after double click on a teleport to highlight the camera position change.
    • Added a field in the Selection Obj component for units and buildings only that, when enabled, allows only the unit/building owner to select that unit/building.
    • APC:
      • Instead of a listing the units that aren’t allowed to enter an APC, it’s now possible list unit codes and choose either to accept those units only or to accept units except the listed ones.
      • Added the options to allow the APC to eject all units with one task, eject one unit only each or have both options enabled at the same time.
    • Instead of a listing the units and buildings that can’t attacked by a unit/building, it’s now possible to list unit/building codes and choose either to allow the attacker to attack those units/buildings only or to attack all units /buildings except the listed ones.
    • Added a field in the Unit component that, when enabled, makes the unit invincible and allows it to avoid damage.
    • Added an audio clip trigger that is played when the unit is moving.
    • Added the ability to set the a building rally flag over a resource/building (thus making the workers automatically go and collect the resource/construct the building).

v1.3.0 – 12/05/2018:

  • Unit Movement:
    • Added OnMovementAttempt custom event.
    • Added Unit Target Collider: a child collider of each unit object that marks the unit’s target position in order to avoid units colliding with each other.
    • All unit movement is now managed by a new component: Movement Manager.
    • Unit groups now move in circle formations (more formations will be added in future updates).
    • Added a “Radius” field in both the Building and the Resource components: the radius of a defines the interaction positions that units will take when interacting with buildings/resources.
  • Unit/Building Faction Limits:
    • Added building/unit limits: You can now limit the amount of a builing or a unit type that a faction has spawned at the same time.
    • When attempting to create a unit/building that has reached its spawn limit, it will appear covered in red in the task panel.
  • Faction Border component:
    • You can assign the border’s object color transparency from the inspector.
    • You can assign the border’s object height from the inspector.
    • Required amount and maximum amount are now separated in the buildings list in the inspector:
      • Maximum Amount: it’s the maximum amount that the faction can have from the building type inside a border.
      • Required Amount: it’s the amount that a NPC faction must build from the building type inside each building center (a building with the Border component is considerd a building center).
  • Attack Warning Manager:
    • Show flashing attack warning icons in the minimap when player units/buildings are getting attacked.
    • Use custom art as the attack warning icon.
    • Pick how long these icons will stay in the minimap and the minimum distance from already existing warning icons required to draw a new icon.
    • Object pooling for attack warning icons.
  • Minimap Icons:
    • Icons for units, buildings and resources to be displayed on the minimap.
    • Faction units/buildings use the faction color and free units/building use a color for free factions only.
    • Each resource type can use a different color.
    • Object pooling for minimap icons.
  • Hover health bar:
    • Added hover health bars for units and buildings.
    • Enable/disable hover health bars from the UI manager.
    • Option to enable for all factions or for the player’s faction only.
    • The height of the health bar can be chosen individually for each unit/building type.
  • Treasures:
    • Treasures can be collected by units even if the treasure is outside the faction’s territory.
    • Treasures in the demo scene are now guarded by orcs (free units).
  • NPC Army Manager:
    • Added a field in the inspector to define the maximum amount of non attack units (civilians) ratio in relation to the population slots of a NPC faction.
    • Added a field in the inspector to define the maximum amount of non attack units amount that can’t be exceeded even if the above ratio has not been reached.
  • Camera:
    • Added panning.
    • Added UI Camera: A camera with a higher depth than the main camera that displays UI objects (hover health bars, unit target position markers, etc..).
  • Terrain Manager:
    • Added the Terrain Manager component.
    • You can now have multiple terrain tiles with different heights (hills & mountains) or simply use Unity’s terrain for the map.
    • Placing buildings on different heights of the map has been improved.
  • God Mode:
    • God mode allows to launch and finish tasks instantly and place buildings instantly without having to construct them + not lose resources, very useful for quick testing.
  • Multiplayer:
    • Added Input Manager: this component receives player input, collects them and send them to the host/server then collects all receiving commands from the server and executes them on each client’s game.
    • Improved custom input commands and seperated the pre-defined ones.
    • Added an Input Manager component which handles collecting input commands from the local player, receiving commands from the server/host and executing them. This component is separated from the UNET-related components which makes it extremely easy to add your own networking service without digging into the other components.
    • The Input Manager handles spawning factions, units, buildings and destroying them. Everything is now created locally and the Input Manager keeps track of each synced object and manages it.
    • Resources do not get destroyed and re-spawned at the start of a multiplayer game as the Input Manager now handles identifying and syncing them for all clients without having to re-create them.
    • Main components such as the Unit & Building components are no longer derived from the NetworkBehavior but rather the MonoBehavior, all RPC and Command calls in all components than the UNET-related components have been removed in order to separate completely the networking components and other components making it even easier to implement your own networking service for multiplayer.
    • Free units and free buildings can now be used in multiplayer games (as the server/host takes responsibility in administrating them and syncing them for all other clients).
    • The UNET multiplayer components (from the components that handle the multiplayer menu and the components that manage the game) have been refactored (some completely re-written) in order to improve performance.
    • Improved the UNET lockstep model that is being used for multiplayer.
    • A Sync Test feature has been added to the lockstep model: this allows the server/host to check if clients are now on the same lockstep turn to avoid any sync issues. As soon as a client syncs out, the game freezes and that client is given a specific time (can be chosen from the inspector) to catch up before getting kicked for timing out.
    • Clients will receive different messages when they disconnect, get kicked or time out from a multiplayer game.
    • Added a Game Version attribute for the UNET Network Manager component: In order to play together, two players must have the same game version in order to avoid two players getting into sync issues when playing with different versions of the game.
  •  Resources will no longer be re-spawned at the beginning of a game in order to register them, a button in the Resource Manager component’s inspector has been added to register them.
  • Added a new field in the Unit component to make units non-convertable by other factions.
  • Escape on Attack:
    • Added Escape on Attack behavior for units:
    • When enabled, units will escape when getting attacked.
    • You can define both the escape range and speed from the inspector.
    • You can set an Animator Override Controller to have a different movement animation when escaping.
  • Wandering:
    • Added wandering behavior for units.
    • Toggle wandering behavior for units (using tasks in the task panel).
    • You can define the wandering settings from the Unit inspector: range, reload time, wandering center (and whether it’s fixed or not).
  • Attack component:
    • All attack behavior code has been refactorated for better performance.
    • Both units and buildings now use the same Attack component.
    • Added option to not deal damage directly from the attack component but rather trigger the custom delegate event only with reference to the victim that should receive the damage.
    • Added Basic Attack toggle filed in the Attack Component: When having more than one Attack component this represents the basic attack that the unit will use by default.
    • Updated the Multiple Attacks component and refactorated it for better performance.
    • Added attack cooldown: make the unit wait a certain amount of time before launching the attack one more time.
    • Added a field to enable/disable the player from switching a unit’s attack type.
    • Removed Attack Categories from the Attack component and replaced them with Attack Exceptions: You now have to fill the exceptions list with unit codes that the unit can’t attack if attacking all types is disabled.
    • Added new custom delgeate event that is triggered as soon as the attack target is inside the attacker’s range.
  • UI Manager:
    • Tooltip Manager: Easily added tooltips for any UI element so that when you hover on them a tooltip menu appear with the text that you want.
    • Added new game menus: Winning, Losing, Freeze and Pause menus.
  • Worker Manager:
    • Buildings/resources are now required to have the Worker Manager component so that units are able to construct/collect them.
    • Worker Manager allows to define static positions for construction/collection that the units will occupy when interacting with buildings/resources.
    • Assigning static interaction positions is not required. When not assigned, units will simply pick the closest position to the building/resource.
    • Buildings can now have a pre-defined resource drop off position. When not assigned, units will simply pick the closest position to the building for resource drop off.
  • APC:
    • Added Interaction Pos field in the APC inspector: a position that units need to reach in order to get in the APC.
    • APC component code has been refactorated and APC inspector has been improved.
  • New demo scene with new level design, UI, units and buildings.

v1.2.3.5 – 26/04/2018:

  • Fixed attack reload bug.
  • Updated map configuration prefab.
  • Fixed box selection for Unity 2017.4.
  • Fixed Game Manager inspector editor.

v1.2.3 – 01/03/2018:

  • Merged the “AttackBuilding.cs” (for buildings) and the “Attack.cs” component (for units) into one “Attack.cs” component (for both buildings and units).
  • Refactorted the code in the “Attack.cs” component for better performance.
  • Fixed a bug in NPC behavior when creating drop off buildings.
  • Fixed the smooth rotation of the attack weapons (turrets).
  • Added an idle rotation for the attack weapon that the unit/building reverts to when not having a target to attack.
  • Added two new attack-related delegate events: one is called when the attacker locks a target and the other is called when the attacker performs an attack (either applies direct damage or send the attack object).
  • Added Attack Delay: it can either be a timer or a trigger that you toggle by code from another component.
  • Added Damage over Time attacks: attacks can now cause damage over time, options for this attack type include the lifetime, cycles and the option to make infinite (with access via code to stop it).
  • Added the option to disable/enable the take damage animation for units.
  • Added the option to force stop the movement of a unit when it takes damage for some time that can defined in the inspector.
  • Added the option to disable attackings either all units or all buildings for units/buildings that have the Attack component.
  • Merged effect objects pooling and attack objects pooling into one component.
  • Added the Attack Manager component which handles everything attack related instead of the Unit Manager.
  • Added an option to ignore/consider the UI when moving the camera on the screen edges.
  • Slight NPC behavior improvements.
  • Fixed the end game conditions.

v1.2.2 – 29/01/2018:

  • Bug fixes:
    • Fixed a bug that affected NPC Factions when a resource is destroyed.
  •  New features:
    • Place buildings only within a certain range from a resource type.
    • Resource drop off buildings can now accept either all resources or a list of resource types.
    • Resources can now force collectors to drop off at a certain range from the resource position (meaning that a drop off building must be placed in that range in order to gather that resource).
    • If a resource requires a drop off building within a certain range from it, then the NPC Faction will provide this building in order to start gathering that resource.
    • Each time a faction attempts to collect a resource type, it first makes sure that there’s a suitable drop off building for the resource gatherers.
    • NPC Factions can now send units that can construct buildings and who are collecting a resource in case there’s saturation in the population or no resources to create new builders, to construct buildings. Then the same units will resume their resource collection jobs after the building is built.
    • NPC Factions can now send some units that are already collecting resources in order to collect another resource that the faction urgently need to create other units/place buildings.
    • A new resource list called “Destroy Award” has been added to both Units/Buildings: This represents the resource that the faction who destroyed a unit/building will receive as a reward.
    • Turrets in buildings and units can now be smoothly rotated to face the target instead of instantly facing them.
    • Units can now have custom damage points against certain types of Units and Buildings (enabling a unit to perform better against some units and worst against some others).

v1.2.1 – 31/12/2017:

  • Fixed a bug in building placement.
  • Added namespaces for all RTS Engine components.
  • Updated animators to include states for both healers and converters
  • Updated the Unit Attack component so that units can have different damage points depending on the target unit/building.
  • Added group selections: Assign group selections by pressing one of the num keys while selecting a group of units and use the same num keys to directly select that unit group each time.
  • Fixed a bug in playing resource collection audio clips.
  • Improved how sounds are played in general by limiting the components that can play audio clips.

v1.2.0 – 21/11/2017:

  • Multiplayer:
    • Improved creating/joining LAN games using the UNET Discovery Component.
    • The multiplayer room now syncs correctly for players who join while already joined player have modified the room settings.
    • Object destruction (unit death, building destruction, etc..) is now handled differently in multiplayer.
    • Switching the unit’s attack type, toggling invisibility, interacting with APC units and converting units now successfully syncs in a multiplayer game.
    • Improved the current lockstep model of the multiplayer.
    • Improved the NPC building’s upgrade behavior.
    • Improved research tasks in order to sync all unit upgrades on spawn.
    • Improved spawning units, buildings and resources.
    • Added a transition menu from the main multiplayer menu to the LAN room.
    • Added the Network Prefab Manager component which makes easier to to update the spawnable prefabs in a multiplayer.
  • Resources:
    • Added the option to show/hide resource amount and/or resource collector’s amount in the UI.
    • Added the “Code” field for the Resource component: used to identify resources (two resource objects can share the same “Name” and have a different “Code” when they allow the player to collect the same resource type but have a different model or different settings like max amount, max collectors amount, etc..)
    • Added a new button in the Resource Manager component that creates a list of resources to spawn on the map: All resources in the scene must be children of one empty object, this object is assigned to the “Resource Parent” in the Resource Manager component. When the “Generate Resources” button is clicked, it will create an organised list of all resources that are present in the map and will spawn them correctly in single player and multiplayer games.
  • Treasures:
    • Treasures are now considered as resources.
    • Creating a treasure is exactly like creating a resource, expect that the main resource component has a “Treasure.cs” component.
    • Treasures must have their own resource type defined in the Resource Manager.
  • More new features:
    • Added multiple attacks for a single unit.
    • You can now switch between the unit’s multiple attacks using the task panel.
    • Added component tasks: Units can be ordered to build, gather resources, attack, heal or convert from the task panel.
    • Mouse texture can be changed to the pending component task.
    • Added an option to make units attack automatically when they are attacked (means they only defend themselves and don’t engage first in combat).
    • Improved the unit attack component to make it suitable for melee attacks.
    • Removed interaction size and max building/gather distance for buildings/resources. It is now set automatically.
    • Added automatic behavior for builders, they can now search for buildings that need construction within a certain range and go automatically build them.
    • Added automatic behavior for resource collectors, they can now search for resources within a certain range and go automatically gather them.
    • All buildings, units and resources prefabs must now be inside a folder called: “Resources/Prefabs”.
    • Clicking on the minimap camera does not deselect selected units and allows for quick navigation on the map.
    • Improved units rotation when moving.
    • You can now have different UI when playing with different faction types.
    • Added an effect when a unit is converted.
    • Added goto position for portals.
    • Added a couple of new custom events.
  • Main bug fixes:
    • Fixed a bug in the attack reload timer for direct attacks.
    • Fixed showing unit’s tasks while placing a building.
    • Fixed the bug where healers can heal themselves.
    • Fixed the animator from getting messed up when the invisibility ability is toggeled.
    • Fixed upgrading all buildings when having more than one town center.
    • Fixed following units with the main camera.
    • And a lot more bug fixes…

v1.1.6 – 08/10/2017:

  • Fixed portal buildings selection.
  • Healer and Converter new behavior: healers and converters can now search for units on their own within a certain range and heal/convert them.
  • Added a new custom event for the Converter component.
  • NPC armies can now take healers and converters with them to attack buildings.
  • Added a new NPC component: NPC Unit Spawner. It allows to spawn custom units like healers, converters and APC units depending on certain settings in the inspector.
  • You can now require to have buildings placed in order to launch another building upgrade: useful for age upgrade.

v1.1.5 – 12/09/2017: 

  • Improved registering input actions for units in multiplayer.
  • Added invisibility component: new ability that allows units to go invisible for a period of time (making enemy units not see them and avoid getting damage).
  • Added the feature to allow (or not) units to attack, heal, convert, collect or build while invisible.
  • Right clicking on a point in the minimap while selecting unit(s) will now move units to that point.
  • Added the ages feature: all buildings get upgraded starting from one upgrade
  • Improved NPC Building Placement performance (code improvement).

v1.1.4 – 04/09/2017: 

  • Added the feature to choose whether to spawn or to hide the border object.
  • Added ability to build outside the borders.
  • Most of the multiplayer code has been re-written in order to make it smoother and keep everything synced between all players.
  • Added area damage for units: damage units and buildings inside a defined range depending on their distance.
  • Added the feature to continue placing buildings while holding a specific key.

v1.1.3 – 20/08/2017:

  • Added Free Buildings: these are buildings that do not belong to any faction.
  • Added the feature to make a building non attackable.
  • Added portals: allow units to travel from one place to another.
  • Added the feature to make APC call for units to get in.
  • Added the feature to allow or cancel ejecting one unit at a time from an APC.
  • Added new custom events for converter units, APC units and portals.

v1.1.2 – 05/08/2017:

  • Fixed unit spawning in multiplayer.
  • Fixed units/buildings health syncing in multiplayer.
  • Fixed auto-search for attack units in multiplayer.
  • Added custom events for APC units/buildings.
  • Added the Converter component which allows units to convert enemy units to their faction.
  • Added new unit in demo scene: Converter, can be produced from the city center and allows to convert enemy units.
  • Improved the NPC attack manager.

v1.1.1 – 27/07/2017:

  • Added selection components for units (just like buildings and resources).
  • Improved navigation mesh movement.
  • Improved getting damage for units.
  • Buildings can now act as APC: Units can hide in buildings.
  • Added the Healer component for units which allows the healer to add health points to wounded units that belong to the same faction.
  • Added custom events for the Healer component.

v1.1.0 – 14/07/2017: 

  • Added new custom events for building upgrades.
  • Navigation mesh agent movement improvement (more to come).
  • Added override controllers for unit animators.
  • Added the option to have different animation for different resource collection (using override controllers).
  • Task Panel separation: Added the feature to have multiple task panel categories and have different tasks on each panel. Task panel categories can be chosen for each single task from the inspector.
  • Improved the NPC manager scripts performance.
  • Fixed a bug in the multiplayer game.

v1.0.9 – 27/06/2017:

  • Added construction states for buildings.
  • Added building upgrades.
  • Added the ability of decision making regarding building upgrades for NPC factions.
  • NPC Army units’ selection has been improved: Each NPC faction decides based on different priorities which unit to create.

v1.0.8 – 12/06/2017:

  • Fixed canceling pending building tasks.
  • Added unit and building categories.
  • Units and attack buildings can now either attack all types of enemies or only specific categories.
  • Added the ability to have multiple attack sources: Units can either attack from multiple sources in order (with the ability to add delay time in between) or randomly pick a source in each attack.
  • Added a custom inspector editor for the “Attack” component.
  • Helicopter unit in the demo now has two attack sources.
  • Added the “Tank” unit in the demo: slow vehicle but effective against buildings.
  • Updated NPC factions manager components.
  • Added the APC component: Component added to units that allow them to contain other units, transport and release them.
  • Releasing units from the APC can be done using tasks in the Task Panel. Releasing all units once or unit by unit are both possible.

v1.0.7 – 02/06/2017:

  • Bug fixes.
  • Added the ability to destroy the unit’s object on death after a certain amount of time and not directly.
  • Added the option for free movement of the unit’s attack weapon (rotates and looks at the target).
  • Added “Take Damage” animation state, called whenever a unit gets damage.
  • Added the option to select target types for attack units and attack buildings (attack only walking units, flying units or both).
  • Added a building component that generates resources.
  • Two types of building resource generation: either directly add resources to the faction or collect resources till reaching a specific maximum amount and collecting it manually using a task from the building.
  • Added a new building for the demo scene: University. It’s a resource generation building that produces “Knowledge” required for research related tasks.

v1.0.6 – 14/05/2017:

  • Fixed shuffling factions when the map loads.
  • Fixed loosing the selection after clicking on the minimap.
  • The Unit’s radius must now be set from the “Unit.cs” inspector and not anymore from the “Nav Mesh Agent” component.
  • Fixed the unit’s movement when the target object is moving.
  • Added two new custom events: OnFactionEliminated, OnFactionWin
  • Added camera panning.
  • General camera movement improvements.
  • Added the option to put Units that do not belong to any faction in the map.
  • Added the feature to create “Flying Units”
  • Added the “Helicopter” unit as an example for a flying unit.

v1.0.5 – 27/04/2017:

  • Fixed the destroy building task.
  • Fixed the camera movement on screen edge.
  • You can assign a custom Capital Building to each faction type.
  • Child unit objects can now be enabled/disabling while collecting resources, dropping them off or constructing building.
  • Custom Task Panel added: Making use of the new custom delegate events, a custom task panel that can launch Unit Creation tasks in any building without having to select the building.
  • Added Treasures: Objects that can be collected by units (just by entering in collision with them) and that reward the unit’s faction with resources.

v1.0.4 – 15/04/2017:

  • Code refactoring in order to improve the performance of the asset overall.
  • Custom Events introduced: 19 delegate events added (example: OnUnitCreated, OnBuildingDestroyed, OnTaskLaunched, etc..). These events allow for even more customization in the code.
  • Upgrade Tasks are introduced: Buildings can now have tasks that improve the units’ abilities (speed, damage against units and damage against buildings).
  • Audio clip can now be played when a task is completed.
  • Doubling clicking a unit selects all the units of the same type inside a certain range (the range can be defined from the inspector).Clicking the selected unit’s icon in the selection panel pans the camera to the position of that unit.

v1.0.3 – 01/04/2017:

  • Small bug fixes.
  • Task Upgrades have been added: Unit Creation tasks can have an unlimited amount of upgrades. Each upgrade allows to the same task to produce another unit.
  • When a task upgrade is applied on one building, it will be applied to the all buildings, belonging to the same faction, of the same type.
  • Introduced a new Unit in the demo scene: The Robot unit which will serve as an upgrade for the Soldier unit.
  • Updated the NPC components in order to handle task upgrades.

v1.0.2 – 16/03/2017:

  • Added the “AttackBuilding” component which allows buildings to launch attacks at enemy units (allowing a building to behave like a “tower”).
  • Added a new building prefab in the demo scene: The Tower.
  • Fixed playing audio on building selection.
  • Fixed playing audio on multiple units selection and multiple units attack order.
  • Added many audio clips as sound effects for the demo scene.
  • Fixed the flashing enemy building texture when the player orders units to attack it.

v1.0.1 – 05/03/2017: 

  • Fixed the selection collider for some buildings in the demo scene.
  • Added “faction type definition” in the Game Manager component: Each faction type is defined by a name, code and buildings that can only be placed by that faction.
  • Each map can have a list of possible faction types that can play in it.
  • Added the ability to pick a faction type in the single player and multiplayer menus.
  • Each building can have faction type specific tasks.
  • The faction name and type are now both displayed on the selection menu when a unit/building is selected.