Search Unity

UniVerse MMO Framework Tutorial - Creation of a Zone based MMO architecture

Discussion in 'Multiplayer' started by JamesPro, Nov 6, 2014.

  1. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    UniVerse is a Custom MMO Networking Framework with many added features to facilitate the creation of Networked Multiplayer games ranging from 8vs8 Lobby based games to full fledged Zone based MMOs. Behind the scenes Universe uses a Custom version of the Lidgren Gen3 Networking Library and a Custom Messaging System to pass messages between the different Game Logic Plugins.

    UniVerse Features:
    - Lidgren Gen3 Networking Library
    - Custom Messaging System
    - IronPython Scripting Engine
    - UniStream Asset Streaming Integration
    - Unity based or Console based Servers
    - Unity based Client
    - Lobby Server
    - Generic Authentication Server

    About the Tutorial:
    Over the course of the next several Months I will be walking you through step by step how to set up a Generic Zone based MMO Architecture that will be suitable for a Prototype. The Prototype we will be creating will contain 2 playable factions, Starting Zones for both Factions, and a starting Quest Hub for each faction which will contain the Faction's Major City. Each Faction's Major City will be used to house Class trainers, Shop keepers, the banker, and a small auction house as well as a Post office. Once the set of tutorials are complete you will have a fully working Prototype that you can then advance into a full MMO by adding more content and your own custom features.

    How the Tutorial will work:
    This tutorial will combine recorded tutorials with Live Streams where you will be able to ask questions during the Live Streams and get them answered in real time. You will be able to have a hand in designing and developing the key features for this Prototype as we discuss different MMO specific Topics. We will cover each feature of the UniVerse Framework as we start working with it so by the time we are finished you will be an expert in every feature UniVerse has to offer.

    The first several weeks the tutorials will be recorded as we setup the Unity Projects, prepare the needed Manager Classes, Create the Authentication Server, and create the general layout of the 4 zones that will be used. Once we are ready to start getting into Game Play Features then the Live Streams will start up so we can work together to create the many features this Prototype will include.

    I will be using assets bought from the Asset store in my Project. You will be responsible for using whatever assets you have available to you through out the tutorial. The Avatar System we will be integrating will be the Free UMA Avatar System which you can download from the asset store. The UniStream components of the UniVerse Framework uses Asset Bundles to load in assets at run time there fore this tutorial will require that you have a Unity Pro License.

    Each week I will be releasing the complete Code that was covered during that tutorial as well as an updated version of UniVerse and UniStream if changes to them were made.

    Week 1: Introduction - November 7th 2014
    Video:






    Downloads (Released on Friday)
    UniVerse: http://dev.riseofheroesmmo.com/releases/UniVerseSDK.zip
    UniStream:

    UniVerse Framework Forum:
    http://dev.riseofheroesmmo.com

    Diagram of where we are headed:
    UniVerse_Diagram.jpg
     
    Last edited: Nov 9, 2014
  2. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I have released the First Video in this series which is just a basic Introduction to the Series.
     
  3. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
  4. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    nice to see networking alternatives,
    questions:
    -where are server files and client api files?
    -whats the catch? or all free to use? or after the tut series youll be releasing plugin extensions addons for a fee?
    -does server support server side collision detection when used server in unity instance server mode, how about console mode too?
    -does server support (AOI) Area of interest/Network lod for MMO?
    -are rooms supported for private pvp matches
    -Any support for RPC?
    -UDP, reliable udp or TCP


    all for now
    thanks
     
  5. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    the UniVerse API will be released with next week's Tutorial when we create our Unity Projects and Import the UniVerse Dlls. The version of UniVerse that will be released is a Development version that comes with a max Connection limit of 25 per Server. So that means that using it you would be able to have a max of 25 zones (Each Zone will connect to a World Server) and then Each Zone would be able to have a max of 25 Clients Connected so that's a max of 625 CCU IF you took full advantage of it (had the maximum of 25 zones and had 25 players in each zone). 625 potential Players should be more then enough players for a Prototype.

    After the tutorial is over I will be selecting a few teams that show the most promise and have been the most active through out the months of the tutorial. They will receive a Free full License for UniVerse and will get to help test future releases and further the UniVerse Framework. I will be working with them to decide what other features UniVerse still requires and we will do some larger scale testing to see exactly what the framework is capable of. After that UniVerse will be submitted for the Asset Store and Licenses will go on sale.

    there will be Indie and Non-Indie Licenses and the pricing will follow closely to existing Network Middleware for Unity.

    UniVerse is just a Framework for Networked Games. You are responsible for creating the Servers. If you want Server Side Collision and Physics and you use Unity for your Server software then yes it's very much possible to do. The details on how you do it is up to you to implement though. In this tutorial we will be setting up a Authoritative Server though with Server side Collision. If you decide not to use Unity for your Server Software then yes it's still possible just requires more work and development time as you would need to integrate PhysX, Bullet, or other Physics/Collision detection Library and have some way to export your world Geometry out to a Readable format that the Physics Library could use.

    In one of the tutorials we will be discussing different methods of AOI and we will be implementing it. Lidgren Supports Network Channels so we may take advantage of that in implementing AOI.

    Again with UniVerse being just a Framework for creating Games it doesn't force to much on you. Just provides helpful features to help assist you in development of MultiPlayer games. There fore no Rooms aren't implemented out of the Box. It's certainly something you could implement on your own though and might be something we look into for Dungeons and Battle Grounds.

    No there is no support for RPCs. It's message based. However the way it's setup a huge amount of the process of creating message is automated for you. You have no long switch statements for handling messages.

    Lidgren supports both Reliable and Unreliable UDP. You are able to select which one for each Message you send so your important messages that the server or Client must get you would send reliable and then your less important messages you would send unreliable.
     
  6. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    thanks for the clarification, sounds great,


    any chance for an early server and API files release today?

    will love to test drive it now,
    maybe i can be useful for testing?
     
  7. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I did another Video quickly showing the differences between RPCs (used uLink as an example) and how you send data with UniVerse.

     
  8. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    No release today. I'm just about out of time for today. I'm spending the afternoon with a couple Friends and won't be able to prepare a release for today. On our forum however there is a release from a month or so ago but things have changed alot since then so I'm not sure it's worth downloading.
     
  9. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    Always nice to se alternatives! Good job.
     
  10. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yay! I have a couple of guys who want to follow along. :)
     
  11. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Here is the next video in the series. In this Video we Create our Client Project and our Authentication Console Application. We import UniVerse into both Projects, We Write a basic Authentication Server and corresponding Plugin, We start the Client, And at the end we are able to connect to the Server and Login.



    Next Video's Agenda:
    In the next Episode we will pick up where we left off with the Authentication Server. We will Create a MySQL Database, Accounts Table, Then we will Add in the ability to Register from with in the Client, and then Login with the created Account. We will also create the Required UIs to make this all possible.

    Link to UniVerse SDK: http://dev.riseofheroesmmo.com/releases/UniVerseSDK.zip
     
    Last edited: Nov 9, 2014
  12. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    UniVerse now has a new Website. It's just a Front page right now but I'll be adding to it. Once we get further along in the tutorial I would like to start showcasing some of the worlds you guys create on the site.

    http://dev.riseofheroesmmo.com
     
  13. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    Awesome,
    thanks bro,

    keep'em coming.

    quick question:
    how often are you going to be releasing the new video tuts?
    twice a week? or every other day?

    and any idea how many of them will there be? aprox?

    thanks again
     
  14. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I'm not really sure how often I'll be posting. I can promise at least 1 Video per week. I may take small 1 week breaks for Thanksgiving and Christmas but other then that I'll be posting once a week. As for how many videos in all I have no idea. We will be going step by step through the entire process of creating a complete MMO Prototype so I'm expecting there will be alot of them.

    I'm thinking how I'll have it set up is that during the Live Streams we will discuss my goals for the following week, You guys will have a chance to ask questions and discuss things. Maybe if I end up with a good core group of you guys maybe have a live discussion on Google+ or skype during the Live Stream where we can actually discuss things you guys can actually talk and share what's on your mind concerning UniVerse and MMO Development. Then over the course of the Week I'll record and release however many videos are needed to accomplish the goals that we discussed.

    Once we get into Game Play development I'm going to be aiming to develop 1 core feature per week. But some features may take longer then that.
     
    GraphXCreations likes this.
  15. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    Hi James,


    I followed carefully the first tutorial to create the basic authentication server but for some reason i cant connect.
    maybe due of this new unity 4.6 compatibility?
    i am getting some compiling error when i import the client .dlls to unity
    BTW am using unity 4.6 RC1 altho not related to the actual .dlls persay but only happens when i import those three.dlls and it does not happen with other .dlls plugins

    this happens when i import the .dlls and when i select the GameManager game object from hierarchy in the login scene.

    the error goes away if i clear the console log, but when i hit play to connect to the server i get them errors again and not being able to connect to server.

    weird stuff



    and




     
  16. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Make sure you set the player's .net compatibility to 2.0 instead of the default...
     
  17. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    even with that set on .net 2.0 on the player settings, still throwing errors the .dlls


    so that wont fix it.

    any other advice?

    are you running your setup on unity 4.5? or you too using the new RC1 of unity 4.6?


    let me know.
     
  18. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    What kind of project are you attempting to build? It may ONLY work with Stand alone Applications. Web Applications I don't think are supported and I have no idea about mobile Applications.
     
  19. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    default windows .exe project, i followed the tutorial carefully and i built the authentication server ok compiled and all, and the issue is with the unity client, i cant not connect using default setup with unity editor.

    it throws the compilation errors on the console log when i select the GameManager game object, like i said i can clear the erros away from console log window, but when i click on play on the editor to connect to the authentication server, it throws the errors again and wont even connect.


    i am using unity 4.6 release candidate 1, have you tried it on this new version.

    maybe your .dlls are not compatible with the new unity 4.6.

    please advice.
     
  20. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
  21. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    no i did not, should I? anyways I just did and still throws the error, i guess this new version of unity 4.6 will not be compatible with your server. :-(
     
  22. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Yes it should be... Like I said it's a known bug with Unity 4.6 they should get it fixed and release a patch for it.
     
  23. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    ohh well, i guess i have to wait until they get it fixed :-(

    hopefully by then youll be with more advanced and more tutorial releases.

    since the only reason to use unity 4.6 is because the new GUI feature and i dont want to go back to 4.5 OnGui crap or using a gui plugin which i hate.


    very well, i guess ill check back in a few months and hopefully there will be a patch for fixing the issue by then.

    good luck and keep up the good work.

    cheers.
     
  24. letitbe

    letitbe

    Joined:
    Nov 12, 2014
    Posts:
    1
    I have been following u all the tutorials and enjoy it. hope to see the following series and try it out for my own project.
    thank you for the great work!
     
  25. aanimation

    aanimation

    Joined:
    Oct 23, 2012
    Posts:
    49
    is possible apply it to MOBA style (like LoL performances)?

    can anyone explain that LoL networking use type, may about details too?
     
  26. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    It's certainly possible. The full package comes with it's own basic Master/Lobby Server. However that's not the focus of this tutorial. Maybe in a future tutorial I can show how to do it or when I get back in town I can quickly do a tutorial on working with the Lobby Server and then you can see if you can figure it out from there.
     
  27. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I am currently out of town and Don't have access to fast enough internet to be able to get any videos uploaded. I'll post the next tutorial Sunday afternoon or Monday.
     
    letitbe likes this.
  28. Slikker

    Slikker

    Joined:
    Mar 21, 2013
    Posts:
    5
    Hi Jamespro, i send you a private message, could you please have a look at it.. kind regards
     
  29. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Haven't forgotten about this... Just been extremely busy.

    Slikker I've sent you a Private Message.
     
  30. Muber Gaming

    Muber Gaming

    Joined:
    Jan 24, 2014
    Posts:
    48


    Seems like another abandoned tutorial series project, or the author's excitement for tutorial making has faded away very quickly or a vey loooooong 10 day weekend up until today lol

    who knows, people just looses interest all the sudden


    ohh well, good luck
     
    Last edited: Nov 25, 2014
  31. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    No I will be resuming this. Just working on some stuff with UniVerse. Converting the MMO my Company is working on over to UniVerse and doing some other work on it before I continue.
     
  32. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    So the First MMO using UniVerse has gone into Closed Pre-Alpha Testing. We have a Max CCU limit of 50 players and we have 700 potential Players with access to the Client.

    www.greedmonger.com

    Through the testing I have found some bugs with the Authentication Server but have hopefully already fixed it.
     
  33. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Congrats, James! :)
     
  34. LuckyNelson

    LuckyNelson

    Joined:
    Jan 6, 2015
    Posts:
    24
    Is this framework able to let me create game like Clash of Clan or reduce the difficulty to making that kind of game?
     
  35. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    It hasn't been tested on Mobile Devices so I have no idea if it will work on them. If it does work on them though then yes it should help speed up development.