Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

uMOBA - Create your own Dota/League of Legends Game

Discussion in 'Assets and Asset Store' started by mischa2k, May 15, 2016.

  1. detomato

    detomato

    Joined:
    Aug 16, 2013
    Posts:
    54
    Hi, I downloaded the second time and manage to install it.
    But unfortunately its pretty much unplayable, at lease to me. No idea on how to navigate the camera, UI too small, and its pretty random success rate on moving the character, most of the time, it doesnt works.
    Hope you can somehow get it improved? BTW, theres no character selection feature?

    Thanks.
     
  2. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Oh yes, there are no optimizations yet, I just hit the build button. It's pretty much the desktop version playing on your phone. So you'd need a phone that's pretty damn fast.

    We should probably write a tutorial on mobile optimizations for uMOBA. You would have to reduce fog of war resolution by a lot, remove lots (or all) foliage, probably disable shadows, remove some lights, remove some trees to reduce polycount, use mobile shaders, etc.
     
  3. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: it took a lot of research, but we finally figured out the perfect solution for skill effects. Submitted the next version for review:

    V1.31 [in development]
    • 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
     
    wahyuway likes this.
  4. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: working on V1.32. I developed a new Fog of War effect today, which will be way faster. Instead of cutting out holes with the CPU, it will be done with the shader on the GPU!
     
  5. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Update: 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
     
  6. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Huge Update: this version will have large performance improvements that will roughly double the FPS. uMOBA will also run smoothly on mobile devices now.

    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
     
  7. msantore22

    msantore22

    Joined:
    Nov 19, 2015
    Posts:
    24
    hey so i bought this asset a long time ago, i've been steadily working on it everyday. and now i have a pretty awesome looking game with umoba as a template. but problems, have arisen.......in a standard moba there is ussually 18 creeps on each side, six in each lane. but something is wrong? the network is severely laging with that many creeps, players keep skipping around. if i lower it to 1 per lane per side. this does not happen. why is that? i bought an mmo template from the store which uses master server barebones kit, and the template can litterally run multiple scenes, and in each scene there is like hundreds of characters. and no network lag. the only difference i see between the 2 setups, is that the mmo kit i bought uses character controller incombination with a navmesh. and umoba uses rigidbodies and navmesh. i think it might either be the rigidbodies, or the network proximity that causes this kind of network lag with many entities in the scene. what do you think?


    Skip to time: 2:33 the creeps litterally walk past each other before attacking one another thats just with 1 creep. when i have 6 it is worse. they start freezing(like delay) before actually performing their attack. and i tested this locally and with 2 remote computers. it seems that the more characters that are added in the more it lags.

    edit: just to clarify i'm running v1.30 but i applied your fixes from the above post myself. did not help

    https://www.facebook.com/mario.sant...000630606088/1539205336110472/?type=3&theater
     
    Last edited: Jul 10, 2017
  8. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    The Camera has a Set Navmesh Pathfinding iterations component. Find it and increase iterations to 1000 or 5000. What you see is not lag, it's Unity only calculating 'n' pathfinding nodes per frame.

    Ideally we would have 'n' nodes per NavMeshAgent. I should talk to a Unity developer about this.
     
  9. msantore22

    msantore22

    Joined:
    Nov 19, 2015
    Posts:
    24
    thank you that helped tremendously. i set to 5000, but if i have 18 creeps per side and 10 players on each side. is 5000 gonna be enough? what would be better for that many navmesh agents? do you think setting it to 10000 would be a safe bet? thanks again for your help. imalso currently looking into how to make the creeps not collide with its own team members. apparently with 6 creeps in a lane theres some blockage happening :p


    also figured since you helped me i would share my script for invisible grass, i'm not a very good programmer but this script i made works for me, its by no means optimized:


    to use it place a trigger sphere on a grassy location with a radius of 2 along with this script attached to the trigger. :D then watch as near by players disappear when they enter and reappear when they exit

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.Networking;
    5. [RequireComponent(typeof(NetworkIdentity))]
    6. public class triggervis : NetworkBehaviour {
    7.    [SerializeField] GameObject other2;
    8.     // Use this for initialization
    9.     void Start () {
    10.    
    11.     }
    12.  
    13.     // Update is called once per frame
    14.     void Update () {
    15.    
    16.     }
    17.  
    18.  
    19.         void OnTriggerEnter(Collider other)
    20.         {
    21.         other2 = other.gameObject;
    22.         if (isServer)
    23.         {
    24.             updatevis();
    25.  
    26.         }
    27.         else
    28.         {
    29.             other.gameObject.GetComponentInParent<NetworkProximityCheckerTeam>().visRange = 6;
    30.  
    31.         }
    32.     }
    33.      void OnTriggerExit(Collider other)
    34.     {
    35.         other2 = other.gameObject;
    36.         if (isServer)
    37.         {
    38.             updatevis2();
    39.  
    40.         }
    41.         else
    42.         {
    43.             other.gameObject.GetComponentInParent<NetworkProximityCheckerTeam>().visRange = 20;
    44.  
    45.         }
    46.     }
    47.     [Server]
    48.     void updatevis()
    49.     {
    50.         other2.gameObject.GetComponentInParent<NetworkProximityCheckerTeam>().visRange = 6;
    51.     }
    52.     [Server]
    53.     void updatevis2()
    54.     {
    55.         other2.gameObject.GetComponentInParent<NetworkProximityCheckerTeam>().visRange = 20;
    56.     }
    57. }
    58.  
     
    Last edited: Jul 11, 2017
  10. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Maybe use Update and set the number to AmountOfEntities * 100?
     
  11. BryanO

    BryanO

    Joined:
    Jan 8, 2014
    Posts:
    186
    mischa2k likes this.
  12. Darkfication

    Darkfication

    Joined:
    Jul 27, 2017
    Posts:
    1
    Will the game contain single player AI? or a training mode?
     
    Last edited by a moderator: Jul 28, 2017
  13. ArtsyChen

    ArtsyChen

    Joined:
    May 14, 2016
    Posts:
    23
    Unfortunately it's not in our plans right now.
     
  14. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: working on UNET bugfixes. Check out my HLAPI Pro project, should be useful for uMOBA too.
     
  15. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: next uMOBA version submitted for review.

    V1.33
    • Upgraded to Unity 2017.1.0p1
    • FogOfWarMask NullReferenceException on server fixed
    • Entity, SkillEffectProjectile: replaced GetComponentInChildren<Collider> 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
     
  16. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Update:
    V1.33 [released 2017-08-22]
    • Upgraded to Unity 2017.1.0p1
    • FogOfWarMask NullReferenceException on server fixed
    • Entity, SkillEffectProjectile: replaced GetComponentInChildren<Collider> 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
     
  17. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: Unity 2017.1.1 introduced two navigation bugs. I am in the process of reporting them, it's best not to upgrade yet.
     
  18. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Update: next uMOBA version was released!

    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
     
  19. WithinAmnesia

    WithinAmnesia

    Joined:
    Oct 31, 2016
    Posts:
    20
    Please create an engine that can parallel the Warcraft 3 engine's depth and performance! It can be done, aim higher and more people will be interested.
     
  20. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    I think Unity is way beyond Warcraft 3 already
     
    theANMATOR2b likes this.
  21. WithinAmnesia

    WithinAmnesia

    Joined:
    Oct 31, 2016
    Posts:
    20
    Good, then it should not have that many obstacles to create a game engine that honours that work which ultimately spawned (arguably) the greatest games of 2000's and early 2010's. World of Warcraft, Defense of the Ancients which spawned Dota 2 and more over League of Legends.

    Start with Warcraft. It is a strong base from a game design stand point and has many strengths and it even still holds up today with people still playing all the time on it (that is good game design and a lot of replay value if anything). Master the projects that are 'easy' and built off upon them. It is a recipe for success done many times over in many wide and varying business fields since practically the dawn of time.

    *Shakes the tree* C'mon open source Warcraft-esq game engine you can do it vis2k! Go go go!
     
  22. Jelly007

    Jelly007

    Joined:
    Nov 16, 2016
    Posts:
    13
    Can i enter the login and register system into this
     
  23. DrugSandwich

    DrugSandwich

    Joined:
    Dec 30, 2016
    Posts:
    13
    wen he said it unity is better that means if your smart enough you can make a better one with unity you have more free space to work around then wc3 engine im saying that because im working on rts too
     
  24. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    We use Unity's NetworkLobby asset right now, which doesn't come with login/register yet.
     
  25. WithinAmnesia

    WithinAmnesia

    Joined:
    Oct 31, 2016
    Posts:
    20

    (I am not trying to be mean but good game design transcends game engines. It is like saying good art can only be made on a good canvas; it helps but the two are not mutually exclusive to one another). Also you look really stupid if you ask for someone to become more intelligent to reach their goals by starting your request with "wen he said it unity is better that means if your smart..." get better at spelling. We live in the age of auto correct. It literally takes 2 seconds to get your crap together and not sound like a broken person who is unaware of their own faults yet acts holier than thou to proclaim to others their faults. Check yourself before you wreck yourself my friend :S.
     
  26. DrugSandwich

    DrugSandwich

    Joined:
    Dec 30, 2016
    Posts:
    13
    Im sorry for my english and what i mean is good art can be made by a good artist if your stupid or not artistic at all you wont do S*** and if your that smart just make your own engine ^^ . Sometimes you win sometimes you learn.
     
  27. unity_tASMW81xeZjerg

    unity_tASMW81xeZjerg

    Joined:
    Oct 17, 2017
    Posts:
    1
    Can you make "press b for base" like in league of legends
     
  28. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    We will think about it!
     
  29. KiraELL

    KiraELL

    Joined:
    Apr 6, 2017
    Posts:
    25
    this support mobile controller? if not please add then i buy.
     
  30. scottish02

    scottish02

    Joined:
    Nov 8, 2017
    Posts:
    5
    how to implement ummorpg camera? im done implement joystick controller camera not , i bought ummorpg and umoba, im verified in discord of ummorpg
     
  31. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Mobile movement works by tapping into the world. Skills work by tapping them too, etc.
    Playing a MOBA on mobile devices is kinda weird anyway, but I think that's still one of the best ways to do it.

    You want to use the uMMORPG camera for uMOBA? Just copy over the script and attach it to the camera.
     
  32. scottish02

    scottish02

    Joined:
    Nov 8, 2017
    Posts:
    5
    hi i try to attach but when im in game i does not work , in camera i attach camerammo component and when i play not work 'Target' is empty, any idea?
     
  33. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Check out uMMORPG's Player.cs script. It sets the camera target in Start somewhere - you need to do that in uMOBA too.
    That will be made easier in the future though.
     
  34. scottish02

    scottish02

    Joined:
    Nov 8, 2017
    Posts:
    5



    Thanks visk its working now. I have another question, is easy to add like ummorpg attack when player have default skill slot normal attack, and add targertnearest , so if player click skill slot it will find nearest moster and auto select and attack, in ummorpg i just add this feature and its work.
     
  35. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    @vis2k - I've been following this thread for a while and still have uMOBA and uMMORPG on my wishlist. I just popped back to the first post to compare features with uMMORPG to prioritize which to get first and I saw the available patcher link. Upon clicking it I get a 404 page not found and when I try to browse to the softcouch.net domain I'm getting a default page from the host. I'm assuming that maybe this patcher was provided by a third party? If so, is it still available somewhere else? Sorry I droned on. I have a bad habit of doing that. I mainly wanted to let you know the link is no longer working so you could fix or remove. Great looking assets and from what I've seen since starting to follow your threads a couple of months back (at least), great job with support! :) Keep up the awesome work!
     
  36. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Where did you find the link? I thought I removed them everywhere.
    That was my own patcher based on Git, but I found a better one: itch.io/refinery - it's like an open steam clone. I will definitely use that for my own game some day.
     
  37. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Sorry. It is in the features list on the first post in this thread. In all my rambling it is amazing that I left anything out, but... lol

    Thanks for the link. Sounds very cool. I'll take a look at it!
     
  38. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    Hey vis2k

    In your online document, what in the world are you guys talking about here? lol

    Can I just duplicate the Prefab and rename it. Then swap out the mesh an add its animation controller?

    How to add a Player Type
    Just like Monsters and Npcs, adding a different player type isn't hard because all we have to do is duplicate the existing one. We can duplicate a Unity Prefab like this: drag the Prefab into the Hierarchy, rename it, drag it back into the Project Area to create Prefab, then remove both of them from the Hierarchy again. Afterwards we can modify the parts in the new Player Prefab that we want to modify and then select the LobbyManager in the Hierarchy and drag the new player Prefab into Game Player Prefab property.
     
  39. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Yes that's what we meant. I am not sure if I understand your question?
     
  40. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    Ok cool, seemed like a lot of steps to copy a Prefab to modify. Wasn't sure if I would start breaking stuff by doing it different than describe in the document.

    And this was the other part that confused me at first but than I had already opened the Lobby scene and noticed the LobbyManager reference. Might want to rephrase this to something like "Afterwards we can OPEN THE LOBBY SCENE AND modify the parts in the new Player Prefab..." so our customers don't get more gray hair. I have a lot of gray hair dude. :p

    "Afterwards we can modify the parts in the new Player Prefab that we want to modify and then select the LobbyManager in the Hierarchy and drag the new player Prefab into Game Player Prefab property."

    Its all good, this is a great product! worth every penny I spent on it.
     
    mischa2k likes this.
  41. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    Hey vis2k

    What would be the best approach to creating new maps?

    Should I make a copy of the world scene and then strip down all the environment objects I don't want. Create a new terrain with my objects and rebake the Navmesh?
     
  42. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Duplicating the existing scene and modifying it will be far less stressful!
     
  43. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    For those wanting a login screen. You could create a new scene with a login screen and use PHP/mysql to authenticate.

    So you would need to stage this process on the client. Basically, if the login succeeds you would then load the lobby scene.

    Here is a good example for setting up the PHP / mysql stuff. Warning, this does not have encryption, you need to add it.
     
  44. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    Haha, agreed!
     
  45. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    Hi vis2k

    Bottom scrolling doesn't work. Top, left and right are fine but when I move the mouse to the bottom edge, nothing.

    I just downloaded this from the store yesterday.
     
  46. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Did you use the Unity version that it says on the store?
     
  47. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    Never mind, its working as expected. Just me over looking the screen resolution settings in window mode.
     
    mischa2k likes this.
  48. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
  49. rayman600

    rayman600

    Joined:
    Nov 12, 2017
    Posts:
    12
    Hi vis2k

    So, I've got a nice fireball projectile with particle effect working and that's cool. But, how do you add a particle explosion when the projectile hits the target? Custom script or is there some trick to stack the effects?

    Also got a zodiac symbol spinning at the players feet using particles.
     
  50. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Hi, you could try and see if transform.position == target.position (has it reached the target yet?) and then do your custom action.