uMOBA - Create your own Dota/League of Legends Game

2636000--188605--2016-06-10.jpeg
uMOBA - the first multiplayer MOBA project on the Asset Store!
(Asset Store) (WebGL Demo) (Chat) (Documentation)

About:
The previous uMMORPG asset solved a lot of difficult networking issues. Many developers wanted to learn how to create a Dota/League of Legends style MOBA game with Unity, so we created one!

uMOBA is developed by @mischa2k and @ArtsyChen . Please post your questions and feature requests in this thread. We will keep you up to date about any changes here!

Screenshots:




Features:

  • Fully Unity + UNET based
  • Same Scripts for Client & Server
  • Beautiful, customizable UI
  • Huge MOBA sized map
  • Uses Unity’s new UI system
  • Players, Monsters, NPCs
  • Jungle Creeps
  • Towers, Barracks, Bases
  • Fog of War & Team Proximity Checker
  • Movement via Navigation
  • Animations via Mecanim
  • Beautiful 3D Models
  • 3 Lanes
  • Team based Health Bars
  • Team, All, Whisper, Info Chat
  • Minimap
  • Levels
  • Skills & Buffs, AoE Skills, Skill Levels
  • Items & Gold
  • Hero Selection
  • NPC Trading
  • PvP
  • Death and Respawning
  • Only 2500 lines of carefully crafted C# Code
  • Secure: all Logic is simulated on the Server
  • Server can run on Linux in Headless mode
  • MOBA Camera with Zoom
  • Lobby & Matchmaking
  • Network Time Synchronization
  • Platform Independent: works where UNET works
  • Mobile Support
  • Free of Deadlocks & Race Conditions
  • Death and Respawning

Mantra:
All the architecture was designed with simplicity in mind. The code will be kept as short and as simple as possible - this is the only way for a indie MOBA to succeed.

Roadmap:

  • V1.0 [released 2016-06-08]

  • First release with a whole lot of features already.

  • V1.1 [released 2016-06-14]

  • Note: please Upgrade to Unity 5.3.5!

  • Upgraded to Unity 5.3.5

  • Adjusted the rocks

  • Players can’t attack themselves anymore

  • Added NetworkProximityCheckerCustom to entities

  • Inventory Hotkeys

  • Improved tower positions

  • Slightly increased monster aggro radius

  • Updated documentation

  • AoE skills

  • V1.2 [released 2016-06-16]

  • Updated Documentation

  • Heroes now have 5 Skills (1 default attack and 4 QWER skills)

  • Players can now assign one skillpoint in level 1 already

  • Projectiles rotation is now set in Start already

  • V1.3 [released 2016-06-22]

  • Note: when upgrading your custom projects, make sure to also redo all properties for you skills.

  • Skill upgrades

  • Utils.PrettyTime doesn’t return an empty string for ‘0’ anymore

  • Added a missing target null check in UpdateCasting

  • Monsters don’t nervously switch between two close entities anymore. Only if one of them is 20% closer than the current target

  • Removed unused Monster.rewardSkillExp property

  • Players now gain gold and experience rewards from towers

  • V1.4 [released 2016-06-27]

  • Skills and Items are now loaded via Resources.LoadAll and were moved into the resources folder

  • Adjusted NavMesh settings so that the indicator circle isn’t below the surface anymore

  • Removed unused properties: Player.account, Player.className

  • Skill.autorepeat is now skill.followupDefaultAttack. Casting an attack skill on a target won’t stop the combat afterwards anymore and the hero will keep attacking with the default attack instead.

  • Renamed ‘TowerEvilx’ prefab to ‘TowerEvil’

  • Deleted unused tower_heroic prefab

  • Adjusted health bar colors to green and brown

  • Disabled damage popups like in most MOBA games

  • Casting a skill is now canceled if the target disappeared or died

  • Simplified player skill animations. Only using ‘skillCur’ variable for everything now.

  • Player OnDestroy syntax improved

  • Player.LateUpdate now uses the ClientCallback attribute instead of the ‘isClient’ check

  • All animations now have the correct exit time, because Unity expects it to be normalized, which it wasn’t before.

  • Simplified Player.CancelAction function

  • V1.5 [released 2016-07-03]

  • New Scarab minions

  • Skill system moved to Entity.cs so that Players, Monsters and Towers can all use it

  • Monsters and Players now use the ‘speed’ parameter for animations again. Also added a comment about why this is so important.

  • Slightly reduced the area light intensity.

  • V1.6 [released 2016-07-18]

  • Disabled fog to improve performance

  • Removed two of the four lights to improve performance

  • New deterministic finite state machine

  • Each state reacts to each event now

  • The state can now only be set via return value of the state update function

  • Fixes a few state related issues

  • Everything is much simpler and cleaner now

  • New BaseEvil and BaseGood models

  • Note: they will be used for the barracks later, but they look really cool as bases too

  • Adjusted a foliage Y position near the evil base

  • V1.7 [released 2016-07-22]

  • Tooltips for Quests, Items and Skills reimplemented.

  • The code is much simpler and the tooltip text can be set in the Inspector. The code simply replaces the variables like {DAMAGE} in the tooltip text.

  • Not all items have to have the same tooltip now. Health potions can simply contain the amount healed, they don’t need to show that they do 0 damage etc.

  • All tooltip code was moved out of SkillTemplate/ItemTemplate and into Skill/Item for consistency.

  • Player automatically respawns after a certain time now.

  • Removed target window.

  • Removed duplicate EntityTargetSync component from Orc.

  • Added missing NetworkNavMeshAgent component to Orc.

  • Added CannonBalls and Scarabs to LobbyManager registered spawnable prefabs list to avoid UNET bugs in clients.

  • Skill constructor time code syntax improved.

  • Extensions import syntax improved.

  • ConsoleGUI syntax improved by moving the #if #endif macro around Awake.

  • Entity doesn’t require an animator component anymore. Players and monsters do now. This is for cases where Entities don’t have animations (towers, dummies, etc.).

  • Entity doesn’t cache transform component as ‘tr’ anymore for easier readability and shorter code.

  • Entity.IsMoving syntax improved.

  • Entity.OnAggro syntax improved.

  • Entity.CastCheckTarget syntax improved.

  • V1.8 [released 2016-07-26]

  • Barracks now have a death animation

  • Renamed Foliage5 to Foliage for consistency

  • Players now lose gold on death too

  • Entities can now be invincible as long as all entities in a certain list are still alive. For example, the base is now invincible while all towers are alive.

  • Moved Editor folder into Standard Assets folder.

  • Implemented NetworkProximityCheckerTeam. Players now get updates in visRange of themselves AND in visRange of every team member.

  • All entities use the same visRange now.

  • Renamed skill file to 123Skill.cs to work around a UNET bug.

  • Tower.UpdateServer_CASTING doesn’t use agent.ResetPath anymore.

  • V1.9 [released 2016-08-01]

  • Fog of War

  • NetworkProximityCheckerTeam improvements

  • Trees now use the Cutout shader

  • Bases and Towers now have a Proximity Checker

  • V1.10 [released 2016-08-08]

  • Upgraded to Unity 5.3.6

  • Camera scrolling

  • Right click is now for movement and normal attack; left click for selections

  • Skill casting mechanic redesigned. Players can now click on a skill and then select the target to cast it on.

  • CmdUseSkill is only sent when the skill is ready

  • Orc hero now has 6 levels of experience, mana, health so that he can actually learn the ultimate ability

  • V1.11 [released 2016-08-09]

  • Unlearned skills tooltip now includes ‘required level’

  • NPC Trading window can now be opened properly again with the new skill system

  • Improved NPCGood position for easier targeting

  • Mouseover Outline effect for all entities

  • V1.12 [released 2016-08-15]

  • MouseoverOutline has a material parameter check now to avoid access errors

  • Simplified MouseoverOutline visibility by using the outline color’s alpha channel

  • V1.13 [released 2016-08-24]

  • Removed unused imports in MouseoverOutline

  • Downgrade to Unity 5.3.5 to avoid destroy canvas crash bug

  • Monster.EventRespawn only fires if respawn is also true

  • UI split from UIRefresh into several smaller components that are all attached to their corresponding canvas elements now

  • UI Shortcuts, Skills, NPC Trading windows automatically adjust to the amount of slots

  • Changed more texture types to Truecolor to avoid WebGL black textures bug

  • Removed unused Player GetIndexByName functions because they weren’t used anymore

  • Updated documentation

  • V1.14 [released 2016-09-07]

  • Upgrade to Unity 5.4. Please make sure to use it as well.

  • Fixed <= usage for skillIndex <= skills.Count instead of < skills.Count

  • Only update Npc Trading while the panel is active

  • CastCheckTarget now sets target to self first if needed for a heal, buff, etc.

  • Updated NetworkLobby asset to latest version. Works with Unity 5.4 now.

  • Note: don’t rename the lobby scene to anything with a capital letter, because there is a bug that prevents us from dragging it into the scene slot in the LobbyManager.

  • Fixed respawn time on clients. It uses the NetworkTime.offset now.

  • Removed damage popup prefab since it’s not being used at the moment

  • UI Quit button has a tooltip now

  • Utils.IsCursorOverUserInterface function that checks UI and OnGUI now

  • Entity .hp and .mp never return anything bigger than hpMax/mpMax now to avoid cases where HpPercentage would be bigger than one.

  • Fixed PlayerDndHandling split and merge comments which were the wrong way around

  • PlayerDndHandling is not a NetworkBehaviour anymore

  • Moved all UI scripts into a UI folder

  • Moved all OnGUI scripts into a OnGUI folder

  • Moved BalancePrefabs to UIUtils

  • Renamed ConsoleGUI to GUIConsole for consistency

  • V1.15 [released 2016-09-14]

  • New Map with more towers on each lane

  • Barracks

  • Removed unecessary NetworkStartPosition component from monster spawners

  • Damage Popups via TextMesh to avoid UI crash bug and memory leaks

  • RPCShowDamagePopup sets TextMesh instead of Text now

  • Properly deselect chat to avoid reactivating/scrolling when doing WSAD movement afterward using the chat

  • Increase NetworkProximityChecker visRange to be able to see more on the new map

  • Added ‘Ignored by Minimap’ layer; Foliage, Trees, River aren’t drawn on the minimap to save a lot of computations

  • Monster goal logic improved. They walk to one tower after another now instead of walking to the first enemy tower directly

  • Tower aggro area increased to 13

  • Using NetworkProximity Team checker again to see all team member’s proximity too

  • Proper workaround for critical UNET readstring/readbytes out of range bug to avoid it once and for all

  • Items and Skills can now be created via right click → Create menu directly

  • Adjusted camera angle to 55 degree

  • Monsters, Towers, Barracks return a fixed amount of reward gold now

  • Entity UI health bars replaced with TextMesh healthbars to avoid Unity’s Canvas Destroy crash bug

  • Win/Lose UI performance improved greatly

  • Entity.teams HashSet to cache evil and good team members instead of using Player.FindEnemies/FindTeam with FindObjectsOfType. This is a huge performance boost.

  • Camera scrolling speed is FPS independent via Time.deltaTime now

  • Android and WebGL default quality set to Fast with shadow distance of 40 now

  • Player name ingame is now set to the player name that was entered in the lobby

  • Moba like small, orange experience bar

  • Barracks are now destroyed when they die

  • V1.16 [released 2016-09-19]

  • Gold Popups

  • Gold and damage RPCs are now sent to the attack to avoid cases where the target dies and the RPC doesn’t reach it in time

  • Tooltips background color changed to a transparent navy blue for better readability

  • Renamed entity backdoor protection variable to invincibleWhileAllAlife for clarity

  • Fixed base tower backdoor protection

  • Towers and barracks use NavMeshObstacles with Carving now instead of being static, so that the paths are freed after they die

  • Updated documentation quick start guide

  • Updated documentation required Unity version

  • Updated documentation logo

  • Skills and Item hotkeys only work while not typing in any input now

  • MouseoverOutline script now sets parameters for all materials, not just for the first one

  • New OutlineOnly shader that can be used with a second material, so that the main one can use Unity’s standard shader (for self shadows, standing in water, etc.)

  • Bases are not static anymore and use NavMeshObstacles as well

  • NavMesh Areas for bottom, middle and top lane. Monsters now prefer them instead of walking directly to their goal. This greatly improves the monster AI.

  • NetworkNavMeshAgent synchronizes the NavMesh Area costs to the client

  • V1.17 [released 2016-09-28]

  • Upgraded to Unity 5.4.1p2 for important bug fixes.

  • Camera scrolling now only works while the window is focused

  • Player Mesh is now shown again after respawning

  • Adjusted some environment stone positions

  • Implemented forest monsters (skeleton)

  • Added ‘Neutral’ team to team enum

  • Fixed health bar visibility interfering with NetworkProximityChecker’s visibility code

  • Greatly reduced NavMesh size from 2.5mb to 700kb. This reduces build size and speeds up monster pathfinding greatly.

  • Minimap only renders every half second instead of every frame. This greatly increases the FPS.

  • V1.18 [released 2016-10-06]

  • Completely new UI with a new transparent (and fading) Chat

  • Camera focuses on the player after respawning

  • Left click on Minimap to focus camera on that point

  • Right click on Minimap to move the player to that point

  • Space bar to refocus the camera on the player

  • CameraScrolling.FocusOn decreasing height issue fixed

  • Player.SetIndicatorViaParent, SetIndicatorViaPosition, CmdNavigateTo made public

  • Removed Animator components from all foliage

  • Adjusted Tower emission maps and colors

  • Player base damage and base defense are now publicly accessible

  • V1.19 [released 2016-10-13]

  • Entity.DealDamageAt now calls OnAggro by default instead of only doing it in Player.DealDamageAt

  • Scarab aggro range increased so that they attack the middle tower properly

  • Player: level based stats that are all stored in one array instead of all over the place. Damage and Defense are now level based too.

  • Fixed experience gaining bug where exp was set to gained amount instead of increased by gained amount.

  • Fixed UI Buffs position so that it can be seen again

  • SkillTemplate uses [Header] now for easier usage

  • ItemTemplate uses [Header] now for easier usage

  • V1.20 [released 2016-10-25]

  • PlayerChat.CmdWhisper syntax: added missing space in foreach loop

  • NavMeshAgent SendInterval changed from 0 to 9999 for clarity

  • Removed unnecessary [Server] tag from Entity.OnStartServer

  • Removed unnecessary [Server] tag from Monster.OnStartServer

  • Removed unnecessary [Server] tag from Npc.OnStartServer

  • Removed unnecessary [Server] tag from Barrack.OnStartServer

  • Removed unnecessary [Server] tag from Base.OnStartServer

  • Removed unnecessary [Server] tag from Tower.OnStartServer

  • UIUtils is just a default class now and doesn’t inherit from MonoBehaviour anymore

  • V1.21 [released 2016-11-16]

  • Upgraded to Unity 5.4.2p3 for the UNET OnDisconnectError bug fix

  • Hero Selection

  • UIUtils.AnyInputActive performance improved. Doesn’t use FindObjectOfType anymore.

  • Entity.OnNetworkDestroy removes entity from Entity.teams too. Fixes a NullReferenceException bug after a client disconnects.

  • V1.22 [released 2016-11-28]

  • DestroyAfter.cs comment typo fixed

  • TargetRpc attribute is now used for all chat messages

  • Removed NetworkMessages script because it’s not needed anymore

  • Each hero can have a different portrait now: just drag it into the Player script’s Portrait slot

  • Added a video to the Asset Store page

  • V1.23 [released 2016-12-07]

  • Upgraded to Unity 5.4.3p1 for a UNET WebGL fix. Also make sure to drag each monster and tower into their child AggroArea object’s owner slot once. Also make sure to drag the DamagePopup and GoldPopup prefab’s main TextMesh into the child Shadow TextMeshCopyText source slot.

  • Block rate implemented

  • Critical rate implemented

  • Player.OnDestroy isLocalPlayer UNET bug workaround

  • Items and Skills now have a .template property in case we need it

  • Monster syntax improved

  • Player.CmdNpcBuyItem simplified

  • AggroArea uses serialized owner now

  • SkillTemplate lambda: item renamed to skill

  • ItemTemplate and SkillTemplate use ?? for easier cache initialization now

  • NetworkTime.time added for easier server time access

  • Skill syntax improved

  • EntityTargetSync simplified via ternary operator

  • Extensions.FindRecursively simplified via Array.Find

  • NetworkNavMeshAgent indentation improved

  • PlayerChat syntax simplified

  • Projectile syntax simplified

  • TextMeshCopyText target renamed to source for consistency

  • Utils.AnyKeyUp and Utils.AnyKeyDown use Linq.Any extension now

  • Utils.ClosestDistance simplified

  • Utils.GetAxisRawScrollUniversal syntax improved

  • GUIConsole if #UNITY_EDITOR contains the whole class now, not just the Awake function

  • Player lootRange removed

  • Player cmdEvents is now properly initialized as string instead of String

  • UIDragAndDropable syntax improved

  • DamagePopup and GoldPopup shadow Z coordinate changed to 0.02 to fix a rare issue where the shadow would be in front of the main text

  • Entity caches animator component now so that Player and Monster don’t have to call GetComponent anymore

  • V1.24 [released 2016-12-20]

  • Make sure to adjust all the animation controllers to the latest version and import all attack animations with ‘loop time’ enabled.

  • States are now passed directly to the Animator to fix several animation glitches.

  • UIChat.AutoScroll is much faster now

  • UIChat.keepHistory to only keep a maximum amount of messages

  • ‘var’ is not used for simple types like int, string, float anymore to prepare for bandwidth improvements

  • Improved Monster and Tower OnAggro distance comparison

  • UIChat.AddMessage GameObject ‘g’ renamed to ‘go’ for consistency

  • Skill.buffsHp/MpPerSecond is now consistently a value like 0.1 = 10% instead of 10 = 10%

  • Removed Utils.Clamp because it’s not needed anymore

  • System.Math.Min/Max is now used instead of Utils.MinLong/MaxLong

  • Entity.Update clears hidden targets

  • Entity now uses a SyncVar for the target. EntityTargetSync script removed.

  • Entity.state, target, hp, mp are not explicitly ‘private’ anymore since the default accessibility is fine

  • V1.25 [released 2016-12-29]

  • Upgraded to Unity 5.5.0p1 for important bug fixes.

  • Color.ToHexString replaced with ColorUtility.ToHtmlStringRGBA

  • 123Skill script renamed to Skill because SyncList name bug was finally fixed by Unity

  • UIDragAndDropable small syntax improvement

  • NetworkName, NetworkNavmeshAgents use Channels.DefaultUnreliable instead of ‘1’ now

  • Network configuration improved for MOBAs

  • UINpcTrading sell slot tooltip is now hidden by default

  • Player Drag And Drop OnDragAndClear for NpcSellSlot added

  • V1.26 [released 2017-01-03]

  • Player.SkillPointsSpendable now includes the skill level in the calculation

  • Base death animation is played now

  • RpcShowGoldPopup moved from Entity to Player because it’s only ever needed by Players

  • ShowGoldPopup is now a TargetRPC and only shown for the player that gained the gold

  • All commands (except CmdSetTarget) now use the unreliable channel for better networking performance

  • PlayerChat TargetRPCs use the unreliable channel now

  • Entity and Player RPCs use the unreliable channel now

  • Lobby Network Manager OnValidate channel check added

  • Removed some UI Chat comments

  • ‘#ifdef 5.5 or newer’ used for ‘using UnityEngine.AI’ for downwards compatibility

  • All textures use normal compression instead of uncompressed mode now. Reduces WebGL size from 48 to 30MB and OSX build size from 223 to 141 MB.

  • Player moving state casting cancel return “IDLE” changed to “MOVING” to fix a bug where the player would slide to a dead monster

  • V1.27 [released 2017-02-22]

  • Upgrade info: make sure to adjust your animation controllers for all entities like they are in the new version.

  • New Base model

  • Player.SelectionHandling uses CanAttackType now

  • Replaced .tga textures with .png

  • Player.SelectionHandling click movement uses a new NavMeshAgent.NearestValidDestination now to avoid glitches when trying to walk into unreachable areas

  • Entity Animation controllers and scripts don’t have an IDLE state anymore. Instead they go to IDLE if all others are false

  • Player and Monster only play the MOVING animation if agent.velocity != Vector3.zero now

  • NavMeshAgent warp detection improved

  • Utils.IsNullOrWhitespace typo fixed

  • Utils.RandVec3XYZ removed

  • Player.OnDestroy isLocalPlayer workaround removed because the bug was fixed by Unity

  • Utils.PrettyTime uses milliseconds now if needed

  • Terrain metallic settings adjusted

  • V1.28 [released 2017-02-27]

  • Player.SelectionHandling: Npc talk fixed

  • V1.29 [released 2017-03-16]

  • Upgrade Info: a lot of variable names have been change to something more literal, like ‘health’ instead of ‘hp’. Make sure to rename them in your custom projects too. It may take a few minutes, but it’s worth it.

  • Added outline shader to new base model

  • NetworkNavMeshAgent synchronizes the area costs again

  • NetworkNavMeshAgent OnDeserialize try-catch block to avoid packet corruption

  • Extensions syntax improved

  • PlayerChat, Skills, Items, Entities: many variables renamed to something more literal

  • V1.30 [released 2017-04-26]

  • Removed all FormerlySerializedAs attributes again

  • PlayerChat OnStartLocalPlayer: removed unnecessary [Client] tag

  • Player.talkRange renamed to interactionRange to prepare for addon system

  • PlayerChat renamed to Chat to prepare for addon system

  • Player.experience property recursion removed

  • PlayerDndHandling moved into Player script to prepare for addon system

  • Player.OnDragAndClear uses SendMessage to prepare for addon system

  • Skill.ToolTip and Item.ToolTip use StringBuilders for performance and to prepare for addon system

  • V1.31 [released 2017-06-15]

  • Upgraded to Unity 5.6.1p1! Make sure to use exactly that version, it works great.

  • New Skill Effect System (cast Blessing or Hard Shell to see it)

  • Orc Animation Controller: renamed states to skill names

  • Orc Animation Controller: added states for blessing, hard shell to avoid situations where the orc would keep playing the run animation when casting a skill while running

  • Orc, Skeleton, Scarab: enabled ‘loop pose’ for idle and run animations to fix a small twitching

  • health/manaRecoveryRate are now calculated with base + buffs in Entity. Removed Player.Recover function.

  • Entity healthRecovery, manaRecovery made public

  • Entity health/mana recovery + rates are not SycnVars anymore. Saves bandwidth and keeps more space for UNET’s 32 SyncVar limit

  • Entity OnStartServer health==0 check: updated outdated comment

  • Changed [SerializeField] to public (almost) everywhere for easier usage

  • Entity are now all public and assigned in the Inspector. Keep that in mind when upgrading.

  • Drag and Drop / Clear messages are now sent from UIDragAndDropable instead of Player. This way UIDragAndDropable doesn’t need to know the Player class at all.

  • Adjusted lights to Unity 5.6.1p1

  • V1.32 [released 2017-06-20]

  • UNET GlobalConfig: ThreadPoolSize increased from 1 to 3

  • UNET ConnectionConfig optimized for MOBAs

  • New Fog of War. Cutout calculations are now done on the GPU instead of the CPU, which gives a huge performance boost.

  • Camera max zoom increased by one because it feels better

  • Removed the blue reflective light for additional FPS

  • Player.SelectionHandling improved for touch (mobile) controls

  • Camera automatically follows the player on mobile now

  • Android uses fastest graphics setting by default

  • Utils.IsCursorOverUserInterface touch check added so that the UI blocks touches on mobile devices too

  • Removed SSAO effect from Camera to avoid huge performance issues on mobile devices

  • V1.33 [released 2017-08-22]

  • Upgraded to Unity 2017.1.0p1

  • FogOfWarMask NullReferenceException on server fixed

  • Entity, SkillEffectProjectile: replaced GetComponentInChildren with .collider

  • NetworknavMeshAgent is now assigned in the Inspector to improve performance. Make sure to reassign it for all entities when updating.

  • NetworkNavMeshAgent pos renamed to position

  • Extensions: XML extensions removed because they aren’t used anymore

  • Chat: ParseGeneral simplified

  • Player: InventorySlotsFree .Where.Count changed to .Count

  • Player: CanAttackType syntax simplified

  • Utils: IsNullOrWhitespace simplified

  • FaceCamera: only enabled while visible for performance improvements

  • NetworkProximityCheckerCustom: only checks player layernow. Make sure to reassign it to the Player layer for the Skeleton prefab when updating.

  • Physics Collision Matrix: IgnoreRayCast layer only colliders with player layer now to speed up AggroArea computations

  • UIShowTooltip: always updates tooltip text now to make sure that swapped out items are being refreshed immediately

  • V1.34 [released 2017-09-30]

  • Upgraded to Unity 2017.1.1p3

  • Updated documentation

  • SetNavMeshPathfindingIterationsPerFrame script renamed to NavMeshPathfindignIterationsPerFrame

  • Player: chat component is now assigned in the Inspector

  • Chat: player component is now assigned in the Inspector

  • MonsterSpawner: workaround for NavMeshAgent spawn bug added

  • Monster.OnDeath resets agent.path now to avoid sliding after death

  • V1.35 [released 2018-01-31]

  • Upgraded to Unity 2017.1.2p3

  • UIChat AddMessage keepHistory check deletes half the history each time to avoid lags

  • Entity.CanAttackType is now CanAttack

  • Entity.RpcShowDamagePopup improved: sends GameObject instead of Position (4 instead of 12 bytes) and uses the prefab of the object that was attacked

  • Player.TargetShowGoldPopup improved: sends GameObject instead of Position

  • NetworkTime: fixed a bug where a client’s Network Time would get out of sync if the server lags

  • Quit button now stops the editor too

  • UnityVersionCheck component added so that people know which uMOBA version is the recommended one

  • Monsters cycle through the skill list now (if they have more than one)

  • Indicator via Projector instead of Plane. Now aligns perfectly to the underground.

  • Player.localPlayerClickThrough option

  • Player.OnDragAndDrop_InventorySlot_InventorySlot uses configurable keys now; Utils.AnyKeyPressed added

  • Monster.onAggro distance comparison doesn’t happen for the same target anymore to save a lot of computations

  • Player.nextTarget is cleared after UpdateServer_CASTING in any case now

  • Entity has .effectMount now to avoid transform.FindRecursively call when spawning projectiles. Make sure to assign it to the entity’s transform or to the right hand when updating.

  • Animation controllers: currentSkill index replaced with skill name boolean paramters for simplicity. Make sure to use the new controllers when updating.

  • Entity.DealDamageAt: AoE functionality removed to prepare for new skill system

  • V1.36 [released 2018-02-06]

  • Important: this update will overwrite all old skills. Make backups before updating and then create your skills again.

  • Scriptable Skills

  • Entity uses LevelBasedValues for health, mana, damage etc.

  • V1.37 [released 2018-03-09]

  • Fog of War plane Y coordinate increased from 1 to 2 so that evil players don’t see good base

  • Added empty Animator component to Tower Prefabs to fix NullReferenceException on dedicated server mode

  • Replaced Unity’s Network Lobby asset with a custom lobby to fix all the bugs

  • V1.38 [released 2018-10-19]

  • Shiori Hero added

  • V1.39 [released 2019-05-20]

  • Upgraded to Unity 2018.4.0 LTS

  • Pixel perfect Canvas

  • Switched UNET to Mirror. When upgrading manually, make sure to apply all the code changes and replace every prefab’s NetworkIdentity component with the Mirror NetworkIdentity component from the uMOBA/Plugins/Mirror folder.

FAQ:

  • Who are you? I am the guy who made https://noobtuts.com, which has many Unity tutorials that some of you may already know.
1 Like

We’ll be around for any questions/ comments!

sounds great. Any demo video available?

Yes, but it looks weird because we are still missing the animations. Will have a decent demo out soon!

Subscribing to this.

2 Likes

bookmarked !!!

2 Likes

Here is another screenshot of our hero:

The Fog of War and wards system should be necessary…

Added it to the roadmap. The effect where players don’t see other players that are too far away is rather easy, all we have to do is use UNET’s NetworkProximityChecker. The actual ‘fog’ effect is another story.

Any handling for player reconnection?

It’s on the roadmap now! Just letting them reconnect is easy. The challenge is to save their hero, gold, items etc. and then assign them to the correct person. If multiple people reconnect at once, that could be difficult. Will see what we can do.

Subscribed! Very interesting!!!

2 Likes

Can this Spawn pets/minions at player position or somewhere in the map? And skills for pets/minions?

Well I don’t think the pet system is major in a moba style game…It’s a little bit…strange…lol.

You can spawn anything via UNET’s NetworkServer.Spawn easily. Minions will have a default attack in V1.0.

How is it going? please update some screenshots! Can’t wait for this!

1 Like

It’s going great! I am currently testing the code to find any remaining issues. Found one yesterday that I will work on today, will be an easy fix though.

The animation issues that we talked about are mostly solved too. We will put the art and the code together soon, then we will have a playable WebGL demo for everyone.

We will submit V1.0 to the store very soon. Probably in less than 2 weeks!

Sound great! Is there any way to preorder then being beta tester during your development? or hand on it once you submit to AssetStore? Waiting for approval on it is really painful :smile:

There is no way to preorder, we want to do it all over the Asset Store. Setting up a preorder page would consume time, which is better spent working on the project.

But we will make the WebGL demo available when submitting to the store, so that everyone can test it already while it’s still under review!

Here is another screenshot of our hero ingame, with his weapon and in the idle position:
2644729--186260--Screenshot at May 22 13-45-38.png

And the Lobby, which is based on Unity’s Network Lobby asset from the Asset Store:

1 Like

Will the game contain singleplayer AI? or a trainings mode?