download here : http://corneey.com/wJszeW

 

uMMORPG is now on the Asset Store and makes your Unity MMORPG a reality!
(Store) (WebGL) (Chat) (FAQ) (Showcase) (Documentation)​

All the architecture was designed with simplicity in mind. The code is as short and as simple as possible – this is the only way for an Indie MMORPG to succeed.

Screenshots:
newart9.png
newart11.png
newart3_ui.png
mobile2.png

Features:
* Fully Unity + UNET based, no other tools needed
* Same Scripts for Client & Server
* Uses Unity’s new UI system
* Players, Monsters, NPCs
* Warrior & Archer Classes
* Pets
* Skinned Mesh Equipment
* WSAD & Click movement via Navigation
* Animations via Mecanim
* Beautiful 3D Character and Environment Models
* Local, Whisper, Info Chat
* Minimap
* Levels
* STR & INT Attributes
* Skills, Buffs & Skillbar, AoE Skills
* Items, Gold & Trash
* Item Drops & Looting
* Crafting
* Pets & Customizable Behaviour
* Guild System & Ranks
* Party System & Exp. / Gold Sharing
* Item Mall
* Player to Player Trading
* NPC Trading & Quests
* PvP Murder System
* Tab Targeting
* Death and Respawning
* SQLite Database
* Account System
* Only 4000 lines of carefully crafted C# Code
* Secure: all Logic is simulated on the Server
* Server can run on Linux in Headless mode
* MMO Camera with Zoom, Rotation, Linecasting
* Login, Character Selection, Character Creation
* Networkmanager to start Host/Client/Dedicated
* Network Time Synchronization
* Platform Independent: works where UNET works
* Mobile Support
* Free of Deadlocks & Race Conditions
* Documentation with Tutorials & Addons

If anyone has a question or suggestions, feel free to post here or email info[at]noobtuts.com. I will try to keep this top post updated all the time.

Roadmap:

  • V1.0 [released 2015-12-23]
    • First release with a whole lot of features already.
  • V1.1 [released 2016-01-05]
    • Fixed: entering an invalid name causes Disconnect
    • Entity Damage Popups are now optional
    • Updated Documentation
  • V1.2 [released 2016-01-08]
    • NetworkManager SavePlayerForConnection function added
    • Fixed a bug where Chat input couldn’t be submitted on Mac
    • Added an IsValidAccount function as template so that people can easier find the place where account validation can be modified
    • Used Application.loadedLevelName instead of SceneManager again for downwards compatibility to Unity 5.2
    • Fixed a bug where the Player Database wasn’t saved after closing the Editor in Windows 8.1 and Windows 10
    • Fixed a bug where a Client couldn’t connect again without restarting the game after disconnecting once
    • Changed Player Settings so that WebGL Builds work without the crashes that were caused by UNET
    • Automatically start Dedicated Server if in Headless Mode
    • Renamed DatabaseItem/Skill/Quest to Item/Skill/QuestTemplate because it makes more sense
    • Fixed a bug where the target indicator wasn’t destroyed after disconnecting
  • V1.3 [released 2016-01-13]
    • Added STR & INT Attributes
    • Renamed folder “Database” to “ScriptableObjects”
    • Renamed “Prefabs/Items” folder to “Prefabs/ItemModels”
    • Character Info Window (and removed character stats from Equipment Window)
    • Slot Types are now shown in the Equipment Window next to the slots
    • Loot Window won’t be shown anymore if the Monster didn’t drop anything
    • Changed Character Database from ScriptableObject to XML in order to make it work in Builds too
    • Fixed a bug where right clicking an equipment item in the inventory would cause “Command called on Server” error when trying to equip it
    • Added IsValidAccount MYSQL example in comments
    • Added IsValidAccount HTTP-GET+PHP Script example in comments
  • V1.4 [released 2016-01-21]
    • Headless server can now handle 1000 monsters instead of only 50:
      • added LayerMasks to ignore Monster<->Monster collisions, Npc<->Npc collisions, Player<->Player collisions etc.
      • Dedicated Servers also don’t show Entity Animations anymore.
      • [Tested on Intel i5-4430 CPU and Linux Mint; the headless server uses 100% of one CPU core and only 209MB of RAM. 1000 Monsters are starting to cause minor delays in the Client.]
    • Renamed PlayerSkill to Skill and PlayerQuest to Quest because the UNET bug that appeared after renaming them seems to be gone in 5.3.1f1.
    • UNET Server Hosting Tutorial
    • Database now saves and loads Quests too
      • Note: delete current Database folder before using new version
    • Fixed NetworkNavMeshAgent agent.destination==pos comparison bug where the agent’s baseOffset was missing in the calculation
    • Refactored Character Selection method: it now uses ClientScene.AddPlayer + NetworkManager.OnServerAddPlayer instead of a custom message handler, as suggested in the UNET forums. This also avoids the “playerController higher than expected: 0: warning.
  • V1.5 [released 2016-01-30]
    • Note: make sure to delete the old Database folder because CharacterData has changed
    • Used UI instead of OnGUI and removed 500 Lines of OnGUI Code
    • Added [TextArea] attribute to Items, Skills and Quests for easier editing in the Inspector
    • Renamed PlayerSkill.cs file to Skill.cs
    • Moved IsHeadless detection from LoginMask to NetworkManager
    • Fixed a bug where Skillbar Hotkeys were checked for all players and not just for the local Player
    • Added string.ToInt() extension method
    • Player Skills are now all in one list instead of using a Learned and Learnable list
    • Workaround for a UNET bug where skills/quests wouldn’t be synchronized to clients if we loaded them before the AddPlayerForConnection call
    • Moved all Player logic into the Player class and all Player UI updates into another class for simplicity
    • Simplified NPC Quest/Trade window logic by using two NPCs and getting rid of the initial NPC dialog
    • Removed NetworkManager prefab because it’s in the Hierarchy at all times anyway
    • String IsNullOrWhitespace is now a static method instead of an extension, because it wouldn’t be able to detect ‘null’ on a string that is ‘null’ if it’s an extension
    • Removed 2 unnecessary client variables in NetworkManager message sending
    • Added Player quest limit to avoid database size exploits etc.
    • Set ‘Trees’ Layer to ‘default’
    • CmdNavigateTo now checks if the Player is alive before navigating somewhere (dead players now can’t walk anymore if they were to send a navigation package to the server)
    • Loading a Player with 0 HP now also sets the initial state to “DEAD”
    • Fixed “Command function CmdCancelAction called on server.” by creating a CancelAction function that can be called on the server without any errors.
    • Simplified Skill logic by replacing the ‘lastCasted’ variable with ‘cooldownEnd’ and ‘casttimeEnd’. This makes cooldown/casttime remaining calculations and database saving/loading much easier and allows for skills to be canceled without starting the cooldown.
    • Simplified Monster skill cast logic by replacing the ‘lastCasted’ variable with ‘castTimeEnd’.
    • CancelAction improved: it now stops movement or cast first and only clears the target when pressed again
    • NetworkManager save interval decreased from 5 minutes to 1 minute
    • NetworkManager OnDestroy now doesn’t try to save the host character anymore because it only worked sometimes anyway; it also fixes a skill saving bug where Time.time was ‘0’ already it in OnDestroy, causing skills to be saved with high cooldowns.
    • Increased WebGL memory size to 512MB
  • V1.6 [released 2016-02-03]
    • Chat shows Debug Log again in Development Builds
    • Added some NetworkManager ‘not in game world yet?’ checks for Character Selection & Deletion
    • Renamed NetworkManagerCustom to NetworkManagerMMO
    • NetworkManager.OnClientDisconnect now shows a Popup so that the user knows what happened
    • NetworkManager.IsConnecting() function added
    • LoginMask buttons are not interactable while connecting
    • ClientRpc UNET documentation was misleading, which caused some Chat messages to be sent to the wrong people. Fixed it and reported it here: http://forum.unity3d.com/threads/suggestion-globalrpc-observerrpc-targetrpc.382486/
    • Character Creation now checks if the name already exists in any account’s characters, not just the creator’s account’s characters
    • Converted all Texture Compression to “Truecolor” in order to avoid the WebGL Black Texture bug
    • Slightly adjusted the ground color to make it more blue
    • Added NetworkProximity component to Damage Popups, now they are only shown to observers that are very close (instead of being shown to everyone)
    • Player.TryCastSkill now checks if the skill is ready before casting it. This fixes a bug ‘autorepeat’ skills would skip cooldowns.
    • Monsters don’t try to move to a killed target after it respawns anymore.
    • Changed “skillCur != -1” checks to “0 <= skillCur < skills.Count” check for additional safety
  • V1.7 [released 2016-02-13]
    • Npc Dialogue reimplemented and NpcMerchant/NpcQuestgiver logic merged into Npc class again
    • Player to Player trading
      • Note: the trade button can be found under the target panel and it’s clickable if the players are standing close enough together
    • Renamed Camera Script to “CameraMMO” for consistency
    • Added ‘state’ validation to all Commands
    • Renamed Skill.cs file to BuggySkill.cs as a workaround to the following bug: http://forum.unity3d.com/threads/bug-syncliststruct-only-works-with-some-file-names.384582/
  • V1.8 [released 2016-02-18]
    • Note: make sure to delete the old Database folder because the XML structure has changed a bit.
    • Rewrote XML database code from scratch. Everything is much simpler now and there is no more need for an extra CharacterData class. This also improves the NetworkManager’s database handling code a lot. The Database code is now short, elegant and a really good solution.
    • Simplified Entity, Monster, Npc, Player: all property functions like GetHp(), IncreaseHp(), DecreaseHp() were replaced with public properties (C#’s get{ } set{ } construct)
      • This saves lots of code and makes development much easier, because something like player.IncreaseHp(1); is now as simple as ++player.hp;
    • Simplified Player experience increasing algorithm
    • NetworkManager now checks account name max length and valid characters
    • NetworkManager OnServerAddPlayer: removed unnecessary go.SetActive(true) call
    • Renamed item/skill/quest ExistsInDB function to TemplateExists
    • Loot window doesn’t show up and close immediately anymore when trying to loot a dead monster that has no loot.
    • Removed unused trashIcon property in Player Script.
    • Upgrade to Unity 5.3.2f1
(Visited 475 times, 1 visits today)