Search Unity

uMMORPG 2D Official Thread - The Unity 2D MMORPG Asset

Discussion in 'Assets and Asset Store' started by mischa2k, Jul 10, 2017.

  1. Kilonne

    Kilonne

    Joined:
    Nov 17, 2013
    Posts:
    18
    Do you use (or plan to add) a chunking system for tilemap used with ummorpg?

    Since only one scene/big tilemap seems to be usable with ummorpg and because this one might be very big (For example 8192 tiles by 8192: 67 108 864 tiles) it would be nice to have a way to load only what displayed around the player or camera with a chunking system and seamlessly loading them. It is possible or planned?

    Thanks
     
    Sykx likes this.
  2. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    You can use multiple Tilemaps if you want and enable/disable them when needed.
     
  3. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.48 [released 2019-06-12]
    • NetworkManagerMMO: disable some log messages to not spam the server logs
    • Mirror updated to latest version (OnDataReceived ArraySegment to reduce allocations, forceHidden fix, Telepathy allocations reduced)
    • Database.OnApplicationQuit closes the connection to prevent locking.
     
  4. pritsam

    pritsam

    Joined:
    Sep 4, 2018
    Posts:
    3
    as unity is developing a new multiplayer package and unet is currently deprecated How will future versions of ummorpg handle networking will it implement the new networking system and the DOTS System or will it use the modified unet as it is now using.
     
  5. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    I think I already replied to you in Discord.
    Mirror is our custom UNET fork, so we don't rely on UNET anymore.
    Mirror can use any low level transport. We didn't configure it for Unity's new low level transport yet though, because until a few days ago all it did was unreliable UDP message sending, which is not enough for most games, especially MMOs.
     
  6. xMistrox

    xMistrox

    Joined:
    Jul 6, 2019
    Posts:
    1
    Hi there, I used to work with a 2-D MMO, it went down in 2016 primarily due to issues with our engine and updating it to work with Windows 10 well (code dates back as far as 2003 when it was first designed, updating for 7 and 8 was an issue). I'm not really a programmer, but I want to give uMMORPG 2D a try.

    Is there a list anywhere of which add-ons work for uMMORPG 2D vs uMMORPG? I figured most would work if they're dealing with UI elements.

    Also, is there a visible equipment system or add-on that creates one?

    So far, I'm very optimistic about rebuilding a new game, you've built a very nice framework.
     
  7. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Most addons should work if they aren't related to 3D. That being said, I never tried any of the community addons myself so maybe ask the community member that made the addon first.

    There is visible equipment. Right now, the only example is the sword/bow weapon. Helmets etc. work the same way, I just didn't have sprites for those.
     
  8. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.49 pending review:
    • Mirror updated to latest version (forceHidden fix, reader/serialization allocations reduced, performance improved, Telepathy IPv6 support)
    • Navigation2D updated to latest version
    • Entity: avoid Linq for performance and to reduce GC
    • Monster: avoid Linq
    • NetworkMessages: avoid Linq
    • Npc: avoid Linq
    • Party: avoid Linq
    • Player.IsOffender/IsMurderer: reuse GetBuffIndexByName
    • Player.HasLearnedSkill: reuse HasLearnedSkillWithLevel
    • Player: avoid Linq in hot path
    • Utils: avoid Linq where possible
    • Utils.InvokeMany: remove unnecessary ToArray call
    • UIUtils: avoid Linq
    • NetworkManagerMMO.DoServerDisconnect: don't log if no playercontroller because that happens if a player disconnects while in lobby.
    • NetworkManagerMMO.OnServerCharacterCreate: don't log invalid class/already exists/etc. on a live server
    • Entity.GetSkill/BuffIndexByName: avoid allocations
    • Entity.AddOrRefreshBuff: reuse GetBuffIndexByName to avoid allocations
    • BuffSkillEffect: reuse GetBuffIndexByName to avoid allocations
    • PetItem: fix health being assigned before level, causing spawned pets to always spawn with level 1 max health
     
  9. jjiwa

    jjiwa

    Joined:
    Jun 28, 2014
    Posts:
    8
    can you use fairy GUI,some people say this gui is very good and ,more easier to edit gui
     
  10. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    I never tried fairy GUI. But generally changing the user interface is definitely not too hard.
     
  11. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.50 pending review:
    • Mirror updated to latest version (NetworkWriter pooling, SyncList no observers memory fix)
    • Grid2D: fix typo in 'neighbourOffsets'
    • NetworkProximityGridChecker: fix return value for if forceHidden
    • NetworkProximityGridChecker: reduce OnRebuildObservers allocations from 9.6KB to 8.1KB by reusing the HashSet
    • NetworkProximityGridChecker: reduce Grid2D Get allocations from 8.1KB to 3.5KB by reusing empty HashSet
    • Entity.RpcSkillCastStarted passes Skill to avoid situations where currentSkill wasn't synced in time
     
  12. Navasel

    Navasel

    Joined:
    Sep 10, 2019
    Posts:
    4
    I have two questions:
    1- Can I add a D-PAD por Android?

    2- Can I add Mage class?

    Thanks a lot
     
  13. Navasel

    Navasel

    Joined:
    Sep 10, 2019
    Posts:
    4
    Sorry, another question!

    Can i use RPG Map Editor for uMMORPG 2D?
     
  14. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Default controls are for pc.
    You could try Unity's mobile controls from standard assets.

    Yes you can add a mage class. Duplicate the archer, go from there :)

    I never tried RPG Map Editor. What matters is that you can bake a navmesh on it.
     
    Navasel likes this.
  15. Navasel

    Navasel

    Joined:
    Sep 10, 2019
    Posts:
    4
    Thanks a lot for ur answer. A last question...

    If i build my project in Linux, and host them to a Linux server... After I build it for Android, can I connect to it from my cell phone?
     
  16. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Of course :)
     
  17. Navasel

    Navasel

    Joined:
    Sep 10, 2019
    Posts:
    4
    I'm ashamed but i have another doubt.

    It's easy to add payments of google play store to my game ?
     
  18. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    It's possible, but you have to do that yourself
     
  19. PeaceBrigade

    PeaceBrigade

    Joined:
    Sep 27, 2019
    Posts:
    2
    I just want to ask in real talk. I have programmed in some languages before, things like PHP/VBasic/Python/Javascript etc. So some fundamentals of programming I am at least familiar with. Loops, condition checking, variables, some database work etc. I have done almost nothing in C#, and while I have uMMORPG, I had no idea a 2D version existed or I would have bought this one instead.

    My general question, with absolute minimal beginner programming ability, could you make a viable project/game with this engine? Are there tools or an editor where I could create classes, items, work on maps and zones and connect them, make quests and dialogs etc?

    Like I said, I have uMMORPG but I didn't tinker with it because 3D is probably beyond my scope of making any sorts of assets for. I'm hoping that this would be simpler and allow me to use existing sprites or tilesets I already have to try and make a game. If tools make it easier and I don't actually have to program everything that'd be great, because most of what I want to do will come down to creating maps, dialog, items, and then I assume classes and their skills.

    Is this easy enough to use for a noob like me that I could plod through and eventually come up with something workable?

    (I'm also guessing there's no way to swap my uMMORPG license for an uMMORPG 2D one huh? :p)
     
  20. PeaceBrigade

    PeaceBrigade

    Joined:
    Sep 27, 2019
    Posts:
    2
    Sorry, in an addendum to my previous post. I have worked a lot with something like let's say RPG Maker MV etc. So while I assume things would be nowhere as easy as that to use, I'm just wondering if there are any inbuilt utilities that might be familiar. Like map making, marking off passable/blocked terrain, any sort of event triggers or designating events, scripting or designating NPC movements etc. Sorry for all the questions!
     
  21. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Should be doable. If you have uMMORPG 3D then you pretty much know what 2D will be like, just with sprites instead of meshes. Using sprites is definitely easier and cheaper, especially for small indie projects.
     
  22. calidacs

    calidacs

    Joined:
    Sep 28, 2019
    Posts:
    1
    Hi, i just started my story with Unity and ummorpg 2d, i was wondering if there is any tutorial on how to create the map in it that would be very helpfull for me, if not could someone explain me how to do it so? thanks.
     
  23. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Check out one of Unity's tilemap tutorials. Then rebake the navmesh each time after changing it (window->navigation2d -> bake)
     
  24. Speszjal

    Speszjal

    Joined:
    Mar 15, 2019
    Posts:
    1
    Hello, i need two answers on my questions.
    First of them. There is any tutorial or someone can help me to change sqlite to mysql. Another question is when i draw some of tilemaps and i add them to unity it take them as unwalkable. So i can only use from ur pack. I always make this navigation 2d->bake.
     
  25. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    There is a mysql addon for uMMORPG, check out our discord.
    Make sure to disable colliders for the tilemaps.
     
  26. hublard

    hublard

    Joined:
    Aug 19, 2015
    Posts:
    79
    Hello there,

    someone know how to change that look direction when walking for diagonal is left or rigt instead of up and down?
    right now for example when Press A and W for diagonal walk, the player facing up but i want that he facing left.

    i found that line in code

    // update look direction on server and client (saves a SyncVar)
    // -> always look at move or target direction (if any), otherwise
    // use the last one when IDLE
    // -> always orthonormal like (0,1) etc. and never (0, 0.5) so the blend
    // tree doesn't actually blend between sprite animations
    // -> with default value so that default is played instead of nothing for
    // Vector2.zero cases
    if (agent.velocity != Vector2.zero)
    lookDirection = Utils.OrthonormalVector2(agent.velocity, lookDirection);

    dont know if it is the right place to change it. if someone have idea plesae let me know.


    thank you
     
  27. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    remove the orthonormal part and modify your animation controller by adding diagonal animations :)
     
  28. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    uMMORPG 2D is on SALE for $20 right now: https://assetstore.unity.com/packages/templates/systems/ummorpg-2d-93984
    Grab it while you can, there will be a significant price increase for all of my assets after the sale!

    V1.51 pending review:

    • Mirror updated to latest version
    • Grid2D/GridChecker performance updates
    • NetworkManagerMMO.OnStart/StopServer: remove unnecessary base calls
    • NetworkAuthenticatorMMO component added to NetworkManager. takes care of all the authentication, and unauthenticated connections can't send messages (or bypass authentication) anymore; OnServerLogin addon hook renamed to OnServerConnect.
    • Player.OnDamageDealtToPlayer calls QuestsOnKilled for self and for all party members if a player was killed. This allows for kill-player type quests.
    • NetworkNavMeshAgentRubberbanding: send position each syncInterval no matter what. should avoid cases where client positions get slightly out of sync.
    • NetworkmanagerMMO.OnClientDisconnect: remove redundant StopClient call because base function already does so
    • NetworkManagerMMO: character creation code moved into separate function
    • reimplemented SQLite database for 10x performance improvements. make sure to delete your old database file when upgrading manually.
    • Item cooldowns reimplemented. Cooldown buffs aren't needed anymore, instead Player.itemCooldowns sync dictionary handles the cooldown categories now. Cooldown circle added to items in UI too.
    • Fixed all build warnings
    • ScriptableRecipe updated to latest uMMORPG 3D version. And the new .Find function is used everywhere now.
    • Crafting updated to latest uMMORPG 3D version
    • NetworkManagerMMO.GetNearestStartPosition: avoid Linq
    • Utils.GetNearestTransform
    • NetworkManagerMMO.MakeCharactersAvailableMessage: avoid Linq
    • NetworkManagerMMO.GetPlayerClasses: avoid Linq
    • NetworkManagerMMO: cache player classes in Awake
    • NetworkManagerMMO.GetStartPositionFor: avoid Linq and reduce GetComponent calls
    • GUIConsole updated to latest uMMORPG 3D version (activate with F12 hotkey etc.)
    • UI Item Mall Slot prefab: unlock button disabled by default so that too expensive items don't have their unlock button enabled for a short moment when switching categories.
    • Player.FindPlayerFromTradeInvitation: TryGetValue instead of looking it up twice
    • Fixed UI Chat activating during WASD movement again, this time for good. Chat InputField and Button Navigation settings were set from Automatic to None to not activate anymore.
     
  29. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.52 pending review:
    • Apathy, FallbackTransport with Apathy, Telepathy
    • Chat.SendGlobalMessage function for those who need it
    • UIChat.AddMessage: combined object creation with set parent
    • CmdPartyInviteAccept: use TryGetValue
    • CmdPartyInvite: use TryGetValue
    • Entity.InventorySlotsOccupied
    • Monster.HasLoot uses InventorySlotsOccupied
    • BuffSkill.SpawnEffect: only call GetComponent once
    • SelectionHandling: set nextDest if casting OR STUNNED
    • AreaBuffSkill: Physics.OverlapCircle uses NonAlloc version
    • AreaHealSkill: Physics.OverlapCircle uses NonAlloc version
    • Player.SelectionHandling: clear indicator if no parent code moved into separate function
    • Buff remainAfterDeath option for murderer and offender buffs
    • Player: cache Camera.main for performance to avoid FindObjectWithTag
    • Player.OnValidate sets equipmentInfo/defaultItems amount to 1 if valid
    • UICharacterInfo: speed via F1 mode to avoid situations where a really long floating point might be printed
    • UIShowToolTip: set text immediately to avoid a small empty tooltip being shown for one frame. can be reproduced with a low framerate and hovering over the inventory button.
    • BonusSkill variables renamed for consistency with EquipmentItem variable names
    • Player.UpdateServer_CASTING: remove redundant currentSkill clearing
    • Guild, GuildSystem: avoid FindIndex for performance/gc
    • Summonable.GetOwnerItemIndex to avoid FindIndex allocations
    • Equipment<->Inventory Merge added too, so arrows can be merged onto the arrow stack in the Inventory
    • Player Equipment: SwapInventoryEquip: add missing InventoryOperationsAllowed check
    • UIPetStatus: onClick targets the pet
    • Player Quests: use CompareTag to avoid allocations
    • Utils.ParseLastNoun: cache RegEx
    • NetworkBehaviourNonAlloc to avoid .name allocations
    • ScriptableObjectNonAlloc to avoid .name allocations
    • UI: only build tooltip while tooltip is visible. reduces UI allocations by 10x and improves performance
    • Player.CmdSetGuildNotice: set wait time no matter what
    • Player.CmdGuildInviteTarget: set wait time no matter what
    • Player.CmdPartyInvite: reset wait time no matter what
    • TargetHealSkill.CheckDistance: check distance to corrected target so that CheckDistance can be used by skillbar without calling CheckTarget and setting the target first.
    • TargetBuffSkill.CheckDistance: check distance to corrected target so that CheckDistance can be used by skillbar without calling CheckTarget and setting the target first.
    • Player state machine: CASTING state EventMoveStart doesn't return CASTING anymore. fixes a bug where EventSkillFinished would never happen while moving because EventMoveStart would always fire and not allow the code further below.
    • Disabled Unity hardware analytics in player settings
    • NetworkNavMeshAgentRubberbanding2D: rename ValidateMove to IsValidDestination
    • Pet commands moved into Pet class thanks to Mirror's new authority code
    • Entity.CancelCastSkill function that is used by Player, Monster, Pet.
    • Canceling a skill cast resets cast time. Fixes a bug where if a player would cancel a cast for a 10s cast time skill after 1s, the player wouldn't be able to attempt another cast for 9 more seconds.
    • UIDragAndDropable: currentlyDragged made static so it can be checked by other components too
    • Fixed QuestsOnLocation warning on clients
    • Fixed more build warnings
     
  30. klen11

    klen11

    Joined:
    Jul 9, 2013
    Posts:
    3
    Hello, I am a bit curious about the UNET system being deprecated.
    I noticed you answered this before but I remain a bit confused mainly due to the documentation for the 2d version.
    It still references UNET a lot.

    Should I worry about this? You state in your previous reply that you no longer depend on UNET as you have Mirror.

    I am about to start a project but want to make sure that I don't use a system that won't be utilized much longer.
     
  31. klen11

    klen11

    Joined:
    Jul 9, 2013
    Posts:
    3
    Also the documentation seems to not be up to date as it does not include all the new calls and functions that show up in your change logs. Will you be updating the documentation or do I just use the change log as a guide and ask you questions in discord when they come up and I cannot find the solution?
     
  32. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Hey, make sure to use our Discord server (see my signature). It's kind of like a live documentation.
    And yes, the documentation is a bit outdated. It's been difficult to keep up with it all, since I spend most of my time making the code as good as I can. But good news is that uMMORPG 2D doesn't rely on UNET at all anymore. It uses Mirror instead: https://github.com/vis2k/Mirror/
     
  33. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.54 pending review:
    • Mirror updated to latest version (fixed all open Mirror bugs, fixed a bug where isClient would always be false in OnDestroy, which caused the Skillbar not to be saved)
     
    Thanathos likes this.
  34. adiif1

    adiif1

    Joined:
    Jun 8, 2015
    Posts:
    5
    I hope it's some kind of joke / error, why was I banned from discord?
     
  35. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.55 pending review:
    • Apathy updated to latest version. Fixes a bug where a failed connect wouldn't show a Disconnected message in GetNextMessages. Also fixes a race condition when spamming Connect/Disconnects.
    • fix possible exploit where nontradeable items could be traded. IsInventorySlotTradeable now checks if item is tradeable.
    • InventoryOperationsAllowed: don't allow while TRADING anymore. this way offer indices don't change when swapping inventory items. otherwise it's possible to swap a non-tradable item into the offers. Trade would be canceled when trying to trade it, but it's still too weird.
     
  36. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.56 pending review:
    • Apathy updated to latest version. Fixes a bug where calling server.GetNextMessages after server.Disconnect(connectionId) would log an EBADF error because GetNextMessages would try to close an already closed socket.
    • Apathy moved out of Mirror folder for easier Mirror updates
    • Mirror updated to v10.4.10
    • fix: Experience.BalanceExpReward calculation would return negative rewards for max level difference that aren't 10, like the default 20. Max difference is now an optional parameter so it can be tested easily.
     
  37. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.57 [released 2020-03-25]
    • fix: https://github.com/vis2k/uMMORPG/issues/33 NetworkProximityGridChecker.OnDestroy only removes connection from grid if the identity is the connection's main player (not a pet that is owned by the player). Fixes a bug where despawning a pet would make all surrounding npcs/monsters disappear for a while.
     
  38. idered_unity

    idered_unity

    Joined:
    Mar 25, 2020
    Posts:
    5
    Hi, a question.. this is all the files You need to start a MMORPG Game? I mean server and client files, db, scripts, everything? Thanks
     
  39. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Yes, everything included.
    After purchasing you can press Play in the editor and it immediately works!
     
  40. saltysquid

    saltysquid

    Joined:
    May 1, 2017
    Posts:
    41
    1 question - Is there any restriction on this working on Android? the database, Mirror, anything?
     
  41. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Works fine on android.
    Although you probably wouldn't want to run a server on a phone, you would use a dedicated server on the internet for that.
     
  42. saltysquid

    saltysquid

    Joined:
    May 1, 2017
    Posts:
    41
    Sounds great! Thanks for the quick response.
     
  43. idered_unity

    idered_unity

    Joined:
    Mar 25, 2020
    Posts:
    5
    How many conections Will be able to host if i have a dedicated server Xeon 16 cores, 64GB of Ram. Network i Have optical fiber 1GBPS upload and 1GBPS download?
     
    DBarlok likes this.
  44. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    For uMMORPG 3D you can handle around 1000 connections.
    uMMORPG 2D should be faster. Maybe 1500.
     
  45. idered_unity

    idered_unity

    Joined:
    Mar 25, 2020
    Posts:
    5
    Last question: it's possible to play on Android and iOS? I mean if it's possible to make the clients for Android le iOS, thanks
     
  46. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Yes, works on all unity supported platforms :)
     
  47. idered_unity

    idered_unity

    Joined:
    Mar 25, 2020
    Posts:
    5
    I did purchase the assets, what's netx? Where do i get it?
     
  48. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    You download it on the asset store, like all other assets :)
     
  49. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.58 - mount offset fixed. Now the player sprite is offset to the top, instead of the mount being offset to the bottom which caused the Y position to feel wrong at all times.
    • fix: TargetProjectileSkill works for monsters without weapons now too
    • Player prefabs: SpriteRenderer, Animator moved into ChildRoot. Make sure to reassign Player/EquipmentLocation/SortByDepth animators/renderers
    • Wild Horse: seat gizmo added
    • Mount: added seat property and assigned to the seat child object
    • Player: mountSeatOffset + spriteToOffsetWhenMounted properties. The player sprite is now offset to be on top of the mount. Previously the mount was offset to be below the player, causing the position to be the player position to seem off all the time.
     
  50. idered_unity

    idered_unity

    Joined:
    Mar 25, 2020
    Posts:
    5
    I download already, but where can i find a tutorial to start to using the editor?