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

uMMORPG Official Thread

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

  1. Ronith

    Ronith

    Joined:
    Feb 20, 2014
    Posts:
    69
    thx @cioa00 , this shows me the right direction
     
  2. Zhenite

    Zhenite

    Joined:
    Dec 6, 2016
    Posts:
    59
    Sorry but I did not understand how an equipment could have occupied both slots.
     
  3. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    It does that by default. If you have a 'shoe' item and equip it, then the shoe's 3D model prefab will be instantiated to each foot equipment location automatically. It doesn't just add the model to one foot.
     
  4. bartuq

    bartuq

    Joined:
    Sep 26, 2016
    Posts:
    127
    Adding item to backpack by name from PlayerChat.
    /add item name

    It would be also cool to add item amount like this: /add name, amount. Can someone help me with this?

    PlayerChat.cs
    Code (CSharp):
    1. Player player
    public class PlayerChat : NetworkBehaviour
    Code (CSharp):
    1. [SerializeField] ChannelInfo chanAdd = new ChannelInfo("/add", "", "", Color.cyan);
    public override void OnStartLocalPlayer()
    Code (CSharp):
    1. player = GetComponent<Player>();
    2.         if (!player.isLocalPlayer) Destroy(this);
    public string OnSubmit(string s)
    Code (CSharp):
    1. else if (s.StartsWith(chanAdd.command)) {
    2.                 // add
    3.                 var msg = ParseGeneral(chanAdd.command, s);
    4.  
    5.                 if (!Utils.IsNullOrWhiteSpace(msg))
    6.                 {
    7.                     if (ItemTemplate.dict.ContainsKey(msg))
    8.                     {
    9.                         lastcommand = chanAdd.command + " ";
    10.                         CmdMsgAdd(msg);
    11.                     } else print("invalid item name");
    12.                 } else print("invalid add format: /add" + msg);
    13.             }
    Code (CSharp):
    1. [Command(channel = Channels.DefaultUnreliable)] // unimportant => unreliable
    2.     void CmdMsgAdd(string message)
    3.     {
    4.         if (message.Length > maxLength) return;
    5.  
    6.         ItemTemplate _item = ItemTemplate.dict[message];
    7.         if (_item != null)
    8.         {
    9.             var freeIdx = player.inventory.FindIndex(item => !item.valid);
    10.             if (freeIdx != -1)
    11.             {
    12.                 player.InventoryAddAmount(_item, 1);
    13.                 Debug.Log(_item);
    14.             }
    15.         }
    16.         print("test");
    17.     }
     
    Last edited: Jan 26, 2017
    Ronith and mischa2k like this.
  5. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Next version was submitted for review:

    V1.55 [in development]
    • Updated to Unity 5.5.1 for important bug fixes.
    • Upgrade info: make sure to set Edit->Project Settings->Player API compatibility level to '.NET' instead of '.NET subset'
    • SQLite Database to prepare for item mall / cms / instances support
    • Database.CharacterCreate function is no longer needed. We won't have to Instantiate+Destroy a temporary gameobject anymore.
    • Database soft delete: deleted characters can be restored by setting deleted=0 in the database
    • Account system that automatically creates an account when first logging in or compares the password if the account already exists
    • Player.OnDestroy isLocalPlayer workaround removed because the UNET bug was fixed
    • Updated documentation
    • UICharacterSelection createButton.interactable isn't set inside the for loop anymore
    • UIPopup text color set to black for readability
    As mentioned before, it will use a SQL database, SQLite in particular. The whole database code is really nice and clean now, all of the weird things from before are gone. There is no more CharacterCreate function needed. We don't have to instantiate+destroy a temporary GameObject anymore. Soft delete works. The account system works. We could even support chinese character names now. A SQL database will also be useful for an addon system some day, so that addons can create their own database tables if they need any.

    I personally use the sqlite browser from http://sqlitebrowser.org/ to work with the database file. I set it to open .sqlite files automatically, which makes it a pleasure to work with.

    The new database system also allowed me to progress with my item mall research already.
     
    camta005, Sarrivin, jagatai33 and 2 others like this.
  6. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    Nice Nice, Could I see a picture of the SQLlite browser database and maybe some tables of how it's layout?

    Edit: I also don't know how to install SQLite. I did download the browser, looks nice.
     
    Last edited: Jan 26, 2017
  7. cioa00

    cioa00

    Joined:
    May 31, 2016
    Posts:
    203
    To edit database file, you just click "open database", locate that file and start modifing/viewing. On linux server (i assume you have plain non-gui server) side you probably need install sqlite package so you could get access the file throught console (basically like mysql).
     
    mischa2k likes this.
  8. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    You don't need to install anything else if you are on windows or mac. Just open the database.sqlite file with the database browser. I attached the file so that you can test it if you want.

    Here is a screenshot:
    Screenshot at Jan 26 20-59-22.png
     

    Attached Files:

    Natalynn likes this.
  9. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    Whew that is simple haha. Tried the SQL Database my self, loaded up fine and quick. I'm sure people will enjoy this. So much nicer and easy to use & everything is organized from equipment to skills and characters.
     
  10. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Of course :)
     
  11. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    Just wish the coordinates was converted into smaller numbers. This is one large y coordinate "0.420013427734375" o.o

    Also, is it possible now to like add new columns without deleting the account/characters, etc? Like automatic column update for all the accounts if a new column was added.
     
  12. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    That's 8 bytes long according to the SQLite documentation. Pretty normal.

    You can do a lot of crazy stuff with SQL, like values that automatically update other values. Depends on what exactly you want to do and if SQLite supports it. Google is your friend :)
     
    Natalynn likes this.
  13. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    You looked into WordPress? That's what I'm probably going to use for my CMS/Item Mall stuff, theirs commerce, forums plugins and thousand more. Free and Open source. This can also be ran off a SQLite Database.

     
    Last edited: Jan 26, 2017
  14. luis29vm

    luis29vm

    Joined:
    Oct 25, 2016
    Posts:
    164
    That be excellent If is in Wordpress.
     
  15. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    There are a lot of really good solutions to hosting your own commerce website, and even Wordpress would work of course.

    The problem with this is that you'll have to deal with paypal, skrill, manual bank payments, delayed checks and all that stuff. This will cost you a lot of time and nerves. Customers will constantly try to rip you off by paying with stolen cards, charging their money back or opening disputes against you out of the blue. Paypal will constantly try to rip you off with hidden fees and random account freezes, requiring all kinds of identity proof / calls and whatnot.

    Ever heard about notch's paypal story (the guy who made minecraft)? He had 750k in his account until paypal randomly decided to freeze it. Their customer support is not very good, so that's a nightmare situation. This is not an exception either, that's more like the norm with paypal as a seller.

    Now another problem is accounting. If you make serious money then you'll have to write invoices for every order, return and so on. This is very time consuming too. You'll also have to declare taxes and do all kinds of weird calculations with them. It depends on where you live of course, the bureaucracy isn't so heavy in some countries.

    This is all okay for big businesses who can just hire a person to deal with those things full time. Personally I'd rather use a commerce provider that deals with all of that for me.

    This is what I am going for with the CMS / item mall solution that I am working on right now. It should be no effort, so that we can spend all our valuable time on the game itself. But as mentioned before, this won't get into the official codebase, so everyone is free to use whatever payment provider / system they like. I will just share my solution to those who are interested.
     
    Last edited: Jan 26, 2017
  16. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    But unity doesn't give a CMS Website o,o. Wordpress can be just the CMS unless you're planning to write your own, which is okay. I just like wordpress cause the amount of plugins and free and easy to use without any coding knowledge.

    As for the commerce stuff, you can ways link other ways of payment, instead of paypal.
     
    Last edited: Jan 26, 2017
  17. MHolmstrom

    MHolmstrom

    Joined:
    Aug 16, 2012
    Posts:
    115
    Hello guys, amazing job vis2k! I have an odd question. I was thinking of going "pre-gen" with a texture atlas 1 for the human and one for the armor, that aside I'd like to change the material and not add a 3d model, got any doc link or idea how to accomplish that? Thank in advance, I've finally finished up my own modular character assets so I'm ready to get some dev going again!
     
  18. Zhenite

    Zhenite

    Joined:
    Dec 6, 2016
    Posts:
    59
    If I understand correctly we are talking about different things, I think you're talking about 3D models, and I'm talking about the equipment slots.
    For example, if I create a long two-handed sword, I want nothing more to be put into the shield slot.
    I'm not worried about 3D models (yet, hehehehe).
     
  19. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Of course, Unity was just an example, we can't actually use them for an item mall.
    Feel free to try any CMS / payment provider that you like. I sure didn't test them all. You'll have to pick what's best for you. I am just sharing my best guess here.

    Can you go more into detail? I am not sure if I understand you correctly.

    Ah yes, we were talking about different things. Well you could use the CmdEquip function to only allow equiping a weapon if there is no two handed weapon in one of the slots yet.
     
  20. MHolmstrom

    MHolmstrom

    Joined:
    Aug 16, 2012
    Posts:
    115
    @vis2k The player equipment, if I want to equip a new pair of legs in the game, i will not use a 3d model rather i'm want tp use a texture replace that either would bake into the current texture atlas or just be a transparent material in the skinned mesh render i found the part were we add the 3d model to the player but a way to change/add another material rather than a 3d object is what i'm looking for :)
     
  21. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    @vis2k I've been doing some research on SQLite for a mmorpg usage. People say SQLite is only good for very low amount of players in a online game, not suited for mmorpg.

    Found this on SQLite website:

    Client/Server Applications


    If there are many client programs sending SQL to the same database over a network, then use a client/server database engine instead of SQLite. SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, performance will not be great. Also, file locking logic is buggy in many network filesystem implementations (on both Unix and Windows). If file locking does not work correctly, two or more clients might try to modify the same part of the same database at the same time, resulting in corruption. Because this problem results from bugs in the underlying filesystem implementation, there is nothing SQLite can do to prevent it.

    A good rule of thumb is to avoid using SQLite in situations where the same database will be accessed directly (without an intervening application server) and simultaneously from many computers over a network.

    High Concurrency

    SQLite supports an unlimited number of simultaneous readers, but it will only allow one writer at any instant in time. For many situations, this is not a problem. Writer queue up. Each application does its database work quickly and moves on, and no lock lasts for more than a few dozen milliseconds. But there are some applications that require more concurrency, and those applications may need to seek a different solution.

    Source: https://sqlite.org/whentouse.html


    Whats your take on all this? @vis2k
     
    Last edited: Jan 26, 2017
  22. jagatai33

    jagatai33

    Joined:
    Feb 2, 2016
    Posts:
    165
    @tvirus06

    I think you mis-understood vis2k, SQLite is intended to fill in the gap before the next step per say, meaning if or when your project gets to the point you have that many concurrent users its an easy bridge to cross towards MySQL.

    Also, the only connections from/to SQLite will be the uMMORPG (Server and or CMS), not the clients.
     
    mischa2k likes this.
  23. jagatai33

    jagatai33

    Joined:
    Feb 2, 2016
    Posts:
    165
    Unity must really like you @vis2k, uMMORPG v1.55 is already on the asset store!!!
     
  24. jagatai33

    jagatai33

    Joined:
    Feb 2, 2016
    Posts:
    165
    fresh install of v1.55 after import i got the following errors:
    Code (CSharp):
    1. Multiple plugins with the same name 'sqlite3' (found at 'Assets/uMMORPG/Plugins/sqlite3_x64/sqlite3.dll' and 'Assets/uMMORPG/Plugins/sqlite3_x86/sqlite3.dll'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor.
    2.  
    and if i try to play the project:
    Code (CSharp):
    1. Failed to load 'Assets/uMMORPG/Plugins/sqlite3_x86/sqlite3.dll', expected x64 architecture, but was x86 architecture. You must recompile your plugin for x64 architecture.
    ** work around is to download the dll's from https://sqlite.org/download.html

    -J
     
    Last edited: Jan 27, 2017
  25. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    To fix this issue, change each sqlite3.dll with the correct CPU Setting on the editor tab. This should fix all of the issues.



    However, I've did this and then entered another issue. Where it couldn't find the accounts table for clicking server & play. The work around for this was to just download the database.sqlite what @vis2k linked and that will be fixed.

    I'm online and everything working good, though this shouldn't be needed so people should wait for 1.56 for this stuff to be fixed.
     
    Last edited: Jan 27, 2017
  26. MHolmstrom

    MHolmstrom

    Joined:
    Aug 16, 2012
    Posts:
    115
    Just delete the x86 or the x64 folder!

    Just had to show the "New" Alchemist ;)


    Minor Edit: @vis2k why don't you set the Imported Models as Humanoid rig to reduce confusion from new users?
     
    Last edited: Jan 27, 2017
    mischa2k, camta005 and jagatai33 like this.
  27. jagatai33

    jagatai33

    Joined:
    Feb 2, 2016
    Posts:
    165
    Those can be ignored, also make sure in the projects Assets --> uMMORPG --> Plugins --> sqlite3_x86 and sqlite3_x64 if you click to select them, youll see properties in the Inspector.. Make sure sqlite3_x86 has "Any Platform" checked, WebGL Checked and only X86 is checked.
    and for sqlite3_x64 that Editor and Standalone are only checked, and x86_x64 only checked.

    hope im making sense, also if you get an error that says table accounts not found, make sure to delete the Database.sqlite file above teh Assets folder for your project.

    -J
     
    MHolmstrom likes this.
  28. Natalynn

    Natalynn

    Joined:
    Apr 21, 2013
    Posts:
    197
    Hm. Weird. Not sure if this is an SQLite bug, or code bug. But I played around for awhile and I walked to the Alchemist, waiting for it to auto save; Then my unity client froze for a half a second, then continued as normal and does this every auto save.

    This is also a clean project.
     
    Last edited: Jan 27, 2017
  29. cioa00

    cioa00

    Joined:
    May 31, 2016
    Posts:
    203
    Can't confirm it. Seems for my case it seems to be working (i`ll test later with my home pc). I tested only on editor mode.
     
    Last edited: Jan 27, 2017
  30. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320
    I had the same issue as others, in that I had to download the Database.sqlite file that vis2k posted in order to get it to work. I found the problem, the first time I ran it I got the duplicate dll error, so it created the Database.sqlite file but failed to create the tables. Once I fixed the duplicate dll error, the next time I ran it the database existed but had no tables. The solution was to delete the Database.sqlite file, then try again and this time it created the Database.sqlite file and created the tables as there was no dll error.

    In testing I can confirm that whenever the database is written to the player freezes for a few seconds. When in client/host mode, the the whole game freezes, and you can't perform any actions. When using a seperate client and server, the client can't move to a new location, as the server is frozen (most noticeable using the keyboard to move). The pause is longest during auto save, and if another client exits. The pause is shorter when a new account or character is created.
     
    Last edited: Jan 27, 2017
  31. cioa00

    cioa00

    Joined:
    May 31, 2016
    Posts:
    203
    Not sure why in Database.cs there is two method with the same name (CharacterSave). Can this cause some issues?
    Seems just overloading method.
     
    Last edited: Jan 27, 2017
  32. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Good morning everyone! I am sorry for the SQLite issues, it worked flawlessly on OSX and was supposed to work flawlessly for you guys too. The Windows Editor seems to behave differently with DLL files, so I'll test it on Windows today and push out another update as soon as possible.

    V1.55 [released 2017-01-27]
    • Updated to Unity 5.5.1 for important bug fixes.
    • Upgrade info: make sure to set Edit->Project Settings->Player API compatibility level to '.NET' instead of '.NET subset'
    • SQLite Database to prepare for item mall / cms / instances support
    • Database.CharacterCreate function is no longer needed. We won't have to Instantiate+Destroy a temporary gameobject anymore.
    • Database shadow delete: deleted characters can be restored by setting deleted=0 in the database
    • Account system that automatically creates an account when first logging in or compares the password if the account already exists
    • Player.OnDestroy isLocalPlayer workaround removed because the UNET bug was fixed
    • Updated documentation
    • UICharacterSelection createButton.interactable isn't set inside the for loop anymore
    • UIPopup text color set to black for readability

    That's not implemented yet. I will get to skinned mesh / perhaps material overlays after I have new character models + equipment models.

    Yes, after UNET Phase3 when we can use multiple server instances, then we will need MYSQL or similar. The point of SQLite is that it's really simple to use for everyone without having to setup a sql server, while allowing us to upgrade to MYSQL effortlessly. It's 99% the same code, just a different connection string.

    Wow that was fast, thanks for letting me know.

    Oh that's interesting, which operating system do you use? The editor didn't mind both DLLs on OSX. I will check it in Linux and Windows and push out another update as soon as possible.

    Can you try this again in a fresh uMMORPG version and see if it still can't find the accounts table? If so, can you give me detailed steps and system info to reproduce it?

    Nice model!
    I just used the settings that my artist gave me. Does this all work fine as humanoid?
     
    Last edited: Jan 27, 2017
  33. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V1.56 was submitted for review. As mentioned before, you have to set the x86 DLL CPU to X86 and the x64 DLL to x86_64 for it to work. V1.56 will do that by default.

    The DLL collision on Windows Editor was fixed. I also tested a Windows build in a Virtual Machine and it seemed to work fine.

    If anyone still finds issues after setting the DLL CPU settings in a fresh uMMORPG version, please let me know exactly how to reproduce them.
     
  34. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320
    On the topic of the game pausing when writing to the database (see my previous post), I discovered that using a transaction in the CharacterSave method dramatically sped things up, although there is still a small pause. In the comments it was noted that it didn't use a transaction because charactersavemany already uses one. However charactersavemany is never actually called. I'm thinking it is supposed to be and that is part of the issue.

    Code (CSharp):
    1.     public static void CharacterSave(string name, string account, string className, Vector3 position, int level, int hp, int mp, int strength, int intelligence, long exp, long skillExp, long gold, List<Item> inventory, List<Item> equipment, List<Skill> skills, List<Quest> quests) {
    2.         // note: no transaction because savemany already uses one. we could pass
    3.         // a bool inTransactionAlready but it's just overly complicated.
    4.  
    5.         ExecuteNonQuery("BEGIN"); //Begin Transaction
    6.  
    7. ...    //Rest of the method
    8.  
    9.         ExecuteNonQuery("END"); //End Transaction
    To test start a host and run around contantly. The game pauses every 30 seconds or so for about 3 seconds. With this change it pauses for less than a second.
     
    Last edited: Jan 27, 2017
  35. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Oh thank you, I forgot to use CharacterSaveMany when rolling back from a commit. Fix will be in V1.56 too.
     
  36. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320
    It's happening to tvirus too. Basically if a transaction isn't used it takes about 3 seconds to process, which is in-line with your test results listed for 100 players. I am thinking the main slow down is not the number of players but how the query is handled. You have to run around for 30 seconds to a minute for the autosave to actually happen. Just run around for while and see what happens :)

    Why is CharacterSaveMany not called anywhere?
     
  37. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Yup, NetworkManagerMMO.SavePlayers was supposed to call CharacterSaveMany. I changed that when doing tests to remove the CharacterCreate function and forgot to change it again after.

    CharacterSave will also use a transaction by default in the future.

    If you don't want to wait for V1.56, modify NetworkManagerMMO.SavePlayers and instead of the foreach loop use:
    Code (CSharp):
    1. Database.CharacterSaveMany(players);
    Thanks a lot for finding this one!
    I am sure V1.56 will be accepted during the next 24 hours if Unity continues with that speed.
     
    jagatai33 likes this.
  38. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320
    So I'm not just being annoying then :p

    Cool, I'll add the change.
     
  39. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Not at all, don't hesitate to report any issues.
     
  40. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320
    Do you have an SSD hard drive by any chance, mine is HDD which could be why it's a bit slower on my end too.
     
  41. cioa00

    cioa00

    Joined:
    May 31, 2016
    Posts:
    203
    I have SSD so probably thats why i couldn't notice any spikes when player data was saved.
     
  42. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Me too. Transactions give a 10x speed improvement though, so it should run fine on HDD drives too.

    Researching password security now. The best solution would be to send passwords through an SSL channel, which we don't have. A strong hashing function + salt may have to do for now, so at least the password isn't sent and stored in plain text.
     
  43. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320
    Linking to my hash mod for reference. I would recommend SHA256, definitely not MD5 or SHA -1 as they are no longer secure.

    I had the idea of only sending half of the hash. Then comparing the half on the server side. That way only half of the puzzle is available. Just a thought anyway.
     
    mischa2k likes this.
  44. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Even SHA512 doesn't seem secure enough, NIST actually recommends PBKDF2 now.

    Here is a good article on the topic: https://www.codeproject.com/Articles/704865/Salted-Password-Hashing-Doing-it-Right

    It's also recommended to use a different salt for each password. This might overcomplicate uMMORPG, so I am not sure about that part yet. A comment above the hashing function that explains the situation might be enough, so people who really do need it can implement it.
     
  45. MHolmstrom

    MHolmstrom

    Joined:
    Aug 16, 2012
    Posts:
    115
    @vis2k for me the humanoid rig works just fine on all 3 models, I belive the issue many had with "setting up new Monsters" will be reduced. It's great news to hear about skinned mesh render is getting closer, I'll see if I might have any time to contribute with some assets but going away on a two weeks work trip this Monday.
     
    mischa2k likes this.
  46. michaelbeers

    michaelbeers

    Joined:
    Aug 19, 2015
    Posts:
    18
    @vis2k try looking at BCrypt to store passwords
     
    mischa2k likes this.
  47. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    BCrypt is good too, harder to create rainbow tables from what I've read.

    Implementation wise, BCrypt would require an external library while PBKDF2 is already part of System.Security.Cryptography.

    Security wise, NIST recommends PBKDF2. If it's good enough for governments, it's good enough for us :)
     
    MHolmstrom likes this.
  48. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320
    Options like PBKDF2 and BCrypt are better, but are more difficult to implement particularly on the client side.
    PBKDF2 is available in System.Security.Cryptography:

    https://msdn.microsoft.com/en-us/li...ryptography.rfc2898derivebytes(v=vs.110).aspx

    Using random salts is an issue on the client side, because you have to store them in the database and retrieve them when attempting to log in. That is the ideal way to do it, but a salt that doesn't have to be retrieved such as the account name or static salt, still goes a long way to preventing the password being discovered. Basically something like SHA256 with username salt is still going to be damn hard to crack and straight forward to implement.

    Good luck on your quest for password security vis2k :D
     
    Natalynn and mischa2k like this.
  49. Ronith

    Ronith

    Joined:
    Feb 20, 2014
    Posts:
    69

    After two weeks playing around with uMMORPG. Thank you @vis2k to made my dream come true
     
    Last edited: Jan 27, 2017
    GOLDY00, Sarrivin, jagatai33 and 2 others like this.
  50. luis29vm

    luis29vm

    Joined:
    Oct 25, 2016
    Posts:
    164
    wow looks very good, you can change the mesh for the proyectile arrow, just drag in the area and change the mesh, all looks nice.
     
    Ronith likes this.