Search Unity

uMMORPG Official Thread

Discussion in 'Assets and Asset Store' started by vis2k, Dec 29, 2015.

  1. cjoo

    cjoo

    Joined:
    Nov 16, 2016
    Posts:
    44
    Hello , i have a question :). I'm trying to make a different PVP system. I made a button and when we click on, the "Offender" buff is activate. It work but the color of my player change only in local. When an other player click on the button , the color of his name stay white whereas the "Offender" buff is active for him and for him his name color is not white (is magenta). Anyone know why ? This is the script attached to my button :

    var player = Utils.ClientLocalPlayer();

    ONPVP.onClick.SetListener(() => {
    player.StartOffender();
    // player.GetComponentInChildren<TextMesh>().color = Color.magenta;
    });

    Thanks :)
     
  2. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Use a command to tell the server that he is in pvp mode. Let the server set a syncvar.

    Please send me your order number and contact details to verify.
     
  3. powerxyz

    powerxyz

    Joined:
    Oct 1, 2016
    Posts:
    14
    It might be misunderstanding, I mean I am SURIYUN's developer who develops the SURIYUN MMORPG, I come here to proof that I didn't steal your package to sell
     
  4. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Good morning everyone! Playing around with C# today, there might still be a way to simplify a few things in uMMORPG.

    I know, can you send me your order number and contact details first?
     
  5. powerxyz

    powerxyz

    Joined:
    Oct 1, 2016
    Posts:
    14
    Okay, I will send you via Email
     
  6. powerxyz

    powerxyz

    Joined:
    Oct 1, 2016
    Posts:
    14
  7. stuepfnick

    stuepfnick

    Joined:
    Apr 19, 2017
    Posts:
    9
    Hello!

    Does anyone (@vis2k?) know a clean way to temporarily disable the Network-Syncronisation of an entities (agent.)transform.position? I just want to have a short movement on server and observing clients simultaneously, similar to the shot of an Arrow.

    So turn network-sync off, do the animation (MoveTowards in every frame) and when the final position is reached, turn network-sync back on and Warp the entity to that final position, so everything is in sync for sure.

    I need this, because animation and especially the facing direction must not change. It would be some kind of "WarpSmoothed" and ideally it would be an extension of entity.agent.

    But I do not really see a way to add it to the agent, because I need the FixedUpdate() method and change position every frame, so using Entity is the best place, I guess. ?

    It won't be long distances and will be short (maybe max. 0.5 seconds). But anyway, if that works fine, it could be used for correcting false client positions too (instead of hard warp).

    It tried it with GetComponent<NavMeshAgent>().enabled = false; but that does not seem to do anything (I guess, because it is required, but no error too). Also I tried to only execute code in OnSerialize and OnDesiralize for that entity only when smooth warping in not active, but that creates outuofrange errors, maybe the server or client is finished one or more frames earlier, and then causes problems.

    It kind of works with NetworkNavMeshAgent on, but it stutters more on client only than with server & play, also it seems to be a waste of bandwidth to me.

    Any ideas? Thanks in advance!

    PS: Although I do not see where the position should get synced all the time (only the destination, which seems to be a more advanced solution and position only when it is farther out-of-sync) the animation is also visible on client when only executed on the server (with a slow speed and distances between 0.5 - 2), but stutters even more of course.
     
    Last edited: May 22, 2017
  8. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Perhaps also send a 'bool ignore' along with the other stuff in NetworkNavMeshAgent and then set it to true/false. But always make sure to serialize and unserialize the same amount of bytes.
     
  9. powerxyz

    powerxyz

    Joined:
    Oct 1, 2016
    Posts:
    14
    Hello, are you forget me ?
     
  10. powerxyz

    powerxyz

    Joined:
    Oct 1, 2016
    Posts:
    14
    I felt weird now, just come here to prove myself that does not steal the package, why always asking me about my first name, last name, where I live. While you didn't tell me who are you where you live, doing it for what?

    After asking, disappear for a day, wasting my time.
     
  11. stuepfnick

    stuepfnick

    Joined:
    Apr 19, 2017
    Posts:
    9
    Thank you! As there are 3 possible ways, I was not sure, which one would be best. I mean: Using a Syncvar, add the bool to OnSerialize/OnDeSerialize or send ClientRPC to start animation.

    But I think, I have an even better idea now: For the animation just move the "3D Model" every frame, not the whole entity (because the model itself is not bound to the network).
    So do they movement on Server&Clients simultaneously only for the 3D model and when the destination is reached, set the pos of model back to Vector3.zero and warp the agent to that position in the final step.
     
  12. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Progress: the new warrior model is coming along well. We fixed a few pose and normal issues today:
    Screenshot at May 22 19-54-53.png

    Whatever works best for you.
     
    JBR-games likes this.
  13. cmckelvy

    cmckelvy

    Joined:
    Nov 7, 2016
    Posts:
    11
    Do we have an ETA on when the new skill effect system will be available?
     
  14. Brutalize1337

    Brutalize1337

    Joined:
    Jan 9, 2017
    Posts:
    12
    Hello.
    I bought the package a few months ago and experimented a little bit.
    Everything works fine, very nice package @vis2k, thanks for your work!
    Now I have a little problem. When i want to talk to an npc, i get the following Issue:
    UnassignedReferenceException: The variable panel of UINpcDialogue has not been assigned.
    You probably need to assign the panel variable of the UINpcDialogue script in the inspector.

    But I have assigned the NpcDialoguePanel to the related Script.
    Sometimes it works, sometimes it does not. And when it works, I have another problem with quests. All NPC buttons work but when I click on the Quests button, the questlist of the npc is empty, even if he has a quest assigned. Would appreciate every little bit of help!

    Thanks in regard and have a nice day!
     
  15. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    I am only waiting for Unity to approve the update.

    Thanks!
    Sounds like your Npc Dialogue window's UINpcDialogue script is missing an assignment in the Inspector.
     
  16. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update: uMMORPG V1.74 is now on the Asset Store with the new Skill Effects.

    Enjoy!
     
    FS_Artsy and shamsfk like this.
  17. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Good morning everyone!
    To keep you up to date, we are working on the new warrior model's death animation today. IDLE and RUN already work fine.
     
  18. johnsmith11

    johnsmith11

    Joined:
    Jan 16, 2017
    Posts:
    6
    How to edit skillslot? cant edit the interface and i want to change position
     
  19. XAfgun

    XAfgun

    Joined:
    Oct 2, 2012
    Posts:
    30
    vis2k, JBR-games and wahyuway like this.
  20. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Progress: submitted 1.75 for review, will have a few tiny animation improvements.

    I am going through the Entity/Player/Npc/Monster scripts today to make a couple of things easier in the future:
    • All entities will have 'inventory' and 'gold'. Monsters don't need extra lootGold or lootItems variables anymore. Will also make chests easier to implement.
    • Entity health/mana recovery will be calculated the same for all entities, meaning that we save code and that Monsters can have buffs that increase recovery rate
    • A couple of Entity variables like 'invincible' and 'recoveryRate' and 'recoveryHealth/Mana' don't really have to be SyncVars, so the [SyncVar] tag will be removed to have more space towards UNET's 32 SyncVar limit
    • I am trying to not use the [SyncVar_] workaround anywhere in the official code, so it's only used by addons. This makes the whole thing way more elegant and less complicated for beginners.
     
    Last edited: May 28, 2017
  21. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    I think I answered you in Discord already?

    Very nice, thanks for sharing!
     
  22. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Progress: I tried another architecture approach for uMMORPG during the last few days. I decided to split everything into tiny components that can be reused for all the entities. It ended up being way more complicated than the current approach, but the good part is that we have a real comparison now. I added a lot about the different architecture options to the documentation today. Here is a screenshot of the Player prefab with all those components:
    tinycomponents.png

    Having components is neat, but they all have to access each other constantly, which makes the syntax ultra verbose.

    In other words: the current architecture is still the best solution!
     
    Nateply, shamsfk and Tiny-Tree like this.
  23. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,295
    to be honest i was also a bit scared, by the amount of component and change i will have to port on my project, maybe it could be an idea to do an inbetween version, like have a components for stats instea of NetworkHealth/mana/Strength etc

    or a component to sync text and update somewhere when it change that would set name/guild etc
     
  24. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    277
    Hi! Thanks for sharing that. I'm currently in the process of tailoring uMMO for our specific needs, and I found out that I mostly prefer to keep a single component but to split it up into several partials like Player.cs PlayerServer.cs PlayerClient.cs, it helps to make a clear separation between client/server logics and prevents me from writing hacky code as I literally have to decide every time what goes where and why.

    EDIT: and great effort with keeping [_SyncVar]s contained. They are messy from a design standpoint. Frankly, whole plugin system is a bit of a mess. I would even try to argument a proposal to remove plugin system:

    Current plugin system by the very philosophy of its design (simplicity) is incapable of delivering a complex toolset for developers to use in all the varieties of situations, so modifications to the base code will surely be made, and even a single modification renders the whole purpose of a plugin system to be at least questionable and at most useless, while still bringing a serious chunk of complexity into the project.

    Users of uMMO will too face the dilemma we faced several times - there is the system that is designed to make additional logic, should we hack our way around it to achieve a result needed or should we just modify a base class? And even a single decision to modify makes the whole system irrelevant in a blink of an eye.

    The good example of a failing of a current plugin system (not to offend you) is the plugins themselves, it is not a plugin if one or several steps of its integration involves changing Player class or any other. It is worse than a plain modification of a code, as some new developer on a project might not know that plugin that was incorporated earlier is dependant on several code modifications and assume it is self-contained and the rest can understandably get ugly.

    In the end, we get a complication of a code that almost unavoidably will be eventually rendered irrelevant. So plugins do introduce complexity and don't provide too much tooling, they are indeed nice on paper, but are not too useful in practice. Maybe they should be removed?
     
    Last edited: May 29, 2017
  25. txzeenath

    txzeenath

    Joined:
    Sep 26, 2016
    Posts:
    6
    IMO the "best" way to do addons, would be to make many of the included systems addons in themselves. An event system at the core with modules registering for events or acting as dispatchers. You don't need tons of component references if all you do is listen and execute events from a central event handler. They just need to be present.

    Pieces can be safely removed completely, added, replaced or temporarily disabled without (many) modifications to the original code.

    I've found that assets which have event "hooks" I can tie into along with a modularized design are far easier to keep in their original form while still achieving my goals. Which makes it easier to keep them up to date while developing.
     
    Last edited: May 29, 2017
  26. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Thanks for your feedback guys.

    Progress: working on V1.76 now. Lots of improvements to the existing code, less SyncVars, removed UNET bug workarounds, etc.
     
    shamsfk likes this.
  27. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    277
    By the way - very nice additions to the docs!
    And me playing the same song over and over :) - being a template (as IMO it should be and it is great at doing it) uMMO doesn't need an add-on system to complicate it. It requires a solid step to decide and to remove all the add-ons logic from the uMMO, but it must be done as it significantly complicates the project wich a small team should not allow if it is capable of not allowing it. So IMO every developer going beyond a simple playground project would eventually remove it (or just keep it laying unused) and it is questionable wich is the worst. So once again - please consider ditching add-on system entirely, it holds no advantage inside of a "template" project.
     
  28. SkymOnkey

    SkymOnkey

    Joined:
    Apr 18, 2014
    Posts:
    5
    Hi :)
    I take a look over uMMORPG via TeamViewer by a friend. He shows me what uMMORPG is and so on...think, wonderfull...its a thing what i will have :) but i wait for a Sale day. When i tell him some things to do...i see some hints (im not a realy good programmer)

    Crafting : U can only use 2 different Items for craft. 1 Leaf + 1 Leaf not working eg. 2 ident items wont work. After crafting maybe the craft window should be clear.

    Quest : Mob should only drop a item when i have the quest for it, not everytime.

    Trade with alchemist : If i put a clear inventory field into sale window, an error comes up (cant be 0)

    Items : Maybe an Add-On?! Define Items at grade (green, blue, pink and so on) for rare items (like wow and other mmos)

    Small things that should be in at core uMMORPG : Name and level of the Enemys/Player (only name at now). When level up player got full live restored as in normal mmos.


    As i said, this is what i see and if a Sale comes, im IN in ur project.
    Sorry for my bad lang ~.~
     
  29. henmachuca

    henmachuca

    Joined:
    Oct 14, 2016
    Posts:
    95
    Hello,
    - I would like to know if it's possible to have the damage that happens to be calculated by one of my attributes, for example strength?
    - Currently characters start with 0 in all abilities. Is it possible to make them start from a random value range? Cause since I would like everything to be based from it, like damage, having it at 0 is not a good value.
    - I would like my game to have 199 levels for the character. Do I need to set each one manually?
    Thank you!
     
  30. cjoo

    cjoo

    Joined:
    Nov 16, 2016
    Posts:
    44
    Hello

    When i use a skill with a "Projectile" i have a warning message "Target did not find". But when i delete some Enemies from my scene , this message disappear. I think this message appear because my scene is too huge ? I have 300 ennemies in my scene. My question is how can i have more ennemies without this warning message ? I have to rent a better server ?

    Thanks you !
     
  31. Kobaltic1

    Kobaltic1

    Joined:
    Jan 22, 2015
    Posts:
    144
    How can I turn off the transparency on the skill bar? Not the individual slots but the image that is around all the slots. Thanks
     
  32. GOLDY00

    GOLDY00

    Joined:
    Mar 16, 2013
    Posts:
    138
    I wish I ask can someone please please make a. Video on how to set up a server from your own computer to test it online please
     
  33. GOLDY00

    GOLDY00

    Joined:
    Mar 16, 2013
    Posts:
    138
    Also I can't sign up on the website
     
  34. tequyla

    tequyla

    Joined:
    Jul 22, 2012
    Posts:
    327
    Hi Vis2k and others,

    Is possible to confirm if is it not possible to cheat the game created in multiplayer mode or single mode? I mean, players try to spawn items with cheat engine or something more (dumping object etc) ?

    +++
     
  35. gghitman69

    gghitman69

    Joined:
    Mar 4, 2016
    Posts:
    79
    cheat and hack Impossible to stop someone to motivate with skills
     
  36. tequyla

    tequyla

    Joined:
    Jul 22, 2012
    Posts:
    327
    sure but my question is: Is ummorpg works with an authoritative server ?

    +++
     
  37. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Sorry for the late replies, busy days, lots of code.

    People created lots of addons already, there is some value in that.

    Yes, modify player's .damage property to include attributes, similar to the .healthMax property.
    What do you mean with abilities? You mean attributes like strength? You'd have to modify the AttributesSpendable function then, because it's 0 based.
    Yes, need to set the player.levels array to length 199 and set things manually. Or you write code that modifies it once. E.g. from OnValidate.

    Can you show us the exact message?

    Select it in Hierarchy under the Canvas. Then modify the color in the Inspector. Check out Unity's UI manual too.

    There is UNET server setup tutorial on noobtuts.com, perhaps that helps for now.

    Why not?

    No, all client input is validated. You can't do anything with cheat engine because the server does not trust the client, ever.

    Cheating isn't possible. Unless someone hacks your server of course.

    Yes, 100% server authoritative. All the logic is calculated on the server.
     
    Last edited: May 31, 2017
  38. takapi

    takapi

    Joined:
    Jun 8, 2013
    Posts:
    79
    How many items can I register with this asset?
    My game has more than 2000 items.
     
  39. Kobaltic1

    Kobaltic1

    Joined:
    Jan 22, 2015
    Posts:
    144
    Thank you. I modified the color about 20 times until I realized the alpha channel was there also. D'oh!
     
    vis2k likes this.
  40. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,295
     
    JBR-games, vis2k and GOLDY00 like this.
  41. tequyla

    tequyla

    Joined:
    Jul 22, 2012
    Posts:
    327

    ok thanks for this great new ie 100% server authoritative.

    Last question, can i open a new scene/instance for teleporting players in dedicated server ? or the asset has only one scene at this moment ?

    +++
     
  42. GOLDY00

    GOLDY00

    Joined:
    Mar 16, 2013
    Posts:
    138
    O
    omg dude thank you so if I do this I can do it from my own laptop also is this vpsfree I'm looking at free ways for now
     
  43. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,295
    you can do it from your laptop using a virtual machine, but you wont be able to let people from outside connect to your machine if you do not configure your network correctly.

    also i added link to vps service i used which is pretty cheap like 3$ a month or 15$ a year
     
  44. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Progress: still working on the new warrior model. Death animation is finished, Normal Attack animation should be finished today.

    As many as your hard drive can handle. Items are just ScriptableObjects that you create in the project area.

    Only one scene at the moment, still waiting for UNET Phase 3 or my own solution to that.
     
  45. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update: V1.75 is now on the Asset Store!
    • Player.classIcon property moved to the top next to className
    • Enabled 'loop pose' for Warrior, Skeleton, Archer IDLE and WALK animations to make them more smooth
     
  46. XAfgun

    XAfgun

    Joined:
    Oct 2, 2012
    Posts:
    30
    If you need these addons for uMMORPG let me find :)

    Pet System
    UI Info
    Game Master
    Adv. Harvesting System
    Party System
    UI Pop Up
    Mail System
    Firend List
    Mount System
    Auction System
    Upgrade System

    https://indiegamesgroup.onfastspring.com
     
    Last edited: Jun 2, 2017
  47. takapi

    takapi

    Joined:
    Jun 8, 2013
    Posts:
    79
    What is this !?
    It's cool.
     
  48. XAfgun

    XAfgun

    Joined:
    Oct 2, 2012
    Posts:
    30
    Addons for uMMORPG :)
     
  49. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Progress: next version was submitted for review. It's mostly a maintenance release with lots of smaller improvements.

    As a reminder to the new people, feel free to join our Discord uMMORPG chat!

    V1.76
    • Upgraded to Unity 5.6.1p1
    • Inventory and gold moved from Player to Entity. Monsters don't need lootItems and lootGold anymore. Commands also require less casting now.
    • health/manaRecoveryRate is now calculated with base + buffs in Entity. Removed Player.Recover and Addon System hook
    • Entity.invincible, healthRecovery, manaRecovery made public
    • Entity.invincible, healthRecovery, manaRecovery are not syncvars anymore
    • Entity.gold is a [SyncVar] instead of [SyncVar_] again
    • Player: converted all [SyncVar_]'s to [SyncVar] for elegance
    • Removed SyncWarLimitWorkaround script and linked to my forum post instead.
    • Monster loot.Clear workaround removed since the UNET bug was fixed a while ago
    • Player.GetSkillIndexByName moved to Entity
    • Entity.OnStartServer health==0 check comment updated
    • Changed [SerializeField] to 'public' almost everywhere
    • NetworkManager id/pw renamed to loginAccount and loginPassword. Same for LoginMsg.
    • Player.tradeOfferLocked/Accepted replaced with tradeStatus enum. Frees another SyncVar and makes the code more simple.
    • Entity components are now assigned in the Inspector instead of via GetComponent caching in Awake (Keep that in mind when updating)
    • Drag and Drop / Clear messages are now sent from UIDragAndDropable directly instead of from Player. This way UIDragAndDropable doesn't need to know the Player type anymore and the Player script is shorter.
    • UIDragAndDropable top comment updated
    • LoginMsg now also includes Application.version and the server compares it to avoid cases where an outdated version tries to communicate with a newer server, possibly causing networking errors.
     
    Last edited: Jun 2, 2017
  50. gghitman69

    gghitman69

    Joined:
    Mar 4, 2016
    Posts:
    79
    Pet System
    UI Info
    Game Master
    Adv. Harvesting System
    Party System
    UI Pop Up
    Mail System
    Firend List
    Mount System
    Auction System
    Upgrade System

    @XAfgun is cool but is very expensive
    @vis2k Could be adding would not be luxury
    is the base of mmo
     
    Rockwall33 likes this.
unityunity