Search Unity

[Tutorials] Creating a MORPG base from start to finish.

Discussion in 'Community Learning & Teaching' started by Christian-Tucker, Oct 25, 2014.

  1. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    https://www.youtube.com/playlist?action_edit=1&list=PLf3HExmaARYZj8E52Ea8WcZqWwyclRK0v

    Hello everyone, it's been thrown around more and more and more that somebody is going to make the next "MMORPG" and have no idea where to start, this honestly makes me feel for them, because I remember a few years ago when I wanted to make my first MMO. I thought it'd be easy, grab a game engine, drop things in place and voila, boy was I wrong.

    This tutorial series will take you through creating your own stand-alone server and getting it to talk with Unity off of a separate thread that will be used for networking, due to Unity's lack of support for multithreaded applications, some of the things we will be doing when receiving data from the network will be "Work around code" where you set variables in the main-thread to be updated using a logical check in the update(), lateupdate(), or fixedupdate() methods.

    This tutorial series will make use of the C# and Java programming languages.

    As of right now there is well over 6 hours of video content you can follow, with more being added frequently.

    Start with this video, as it will explain everything that we're doing --




    Disclaimer:
    This tutorial series is not meant to have a full-fledged mmorpg upon completion, but instead the knowledge that can be applied to create your own networked game, we will be covering numerous aspects and features found in common cookie-cutter mmorpgs.

    Some of the programming practices used in this tutorial series are not the best, and there are more than a ton of optimization changes that could be made. I'm not trying to create the next WoW, just some ghetto little capsule moving around in a 3D world, fighting cubes to the death and chatting with other capsules. Yeah, that pretty much sums up every mmorpg in a nutshell.


    https://www.youtube.com/playlist?action_edit=1&list=PLf3HExmaARYZj8E52Ea8WcZqWwyclRK0v
     
    mgear, Paulohmm and Chambers like this.
  2. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Part 7 is now live
     
  3. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Part 8 is currently being rendered, we will go over some basics of setting up our game world and out Character(Clone) script.
     
  4. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Part 8 has rendered and is uploaded!
     
  5. __twisted

    __twisted

    Joined:
    Oct 21, 2014
    Posts:
    10
  6. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
  7. __twisted

    __twisted

    Joined:
    Oct 21, 2014
    Posts:
    10
    I got it now, thanks for response.
     
  8. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Sure thing, if anybody is waiting on the next video the reasoning it hasn't been recorded yet is because I'm dreading fixing a problem that I had created in a previous video.
     
  9. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    We're now at over 10 hours of video content!
     
  10. Nubz

    Nubz

    Joined:
    Sep 22, 2012
    Posts:
    553
    You not "we".
     
  11. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    "We" because I consider my viewers students.
     
  12. Aerothosis

    Aerothosis

    Joined:
    Oct 30, 2014
    Posts:
    3
    I must say, I like your tutorials. I was planning on making a game that was mostly single-player with a little bit of multi-player dashed into it, but after watching a couple of your videos I think I'm going to change it over to an MMO style game. Keep up the good work, and I'll make sure to show off my project as it gets further along so you can see first hand the fruits of your labor!
     
  13. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Sounds awesome! Please just keep in mind that these tutorials are not intended to create a fully functional game, however instead it's just an basic implementation of features found in mmo's with the networking behind it.
     
  14. NikoBusiness

    NikoBusiness

    Joined:
    May 6, 2013
    Posts:
    289
  15. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    The reason I use a separate thread for my networking is because it doesn't have any performance costs (Okay, I lied, but not many) to the Unity thread. Also, even whiling using a CoRoutine you can still lock the thread up while waiting for data, which if it's on the main thread will cause the game to stop functioning.
     
  16. NikoBusiness

    NikoBusiness

    Joined:
    May 6, 2013
    Posts:
    289
    @Christian.Tucker continue with these tut series they rock! and thank you very much!
     
  17. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    I'll be making another video tonight where we move our work to my server-software called OGServer and continue the series, I've been busy with school.
     
  18. Aerothosis

    Aerothosis

    Joined:
    Oct 30, 2014
    Posts:
    3
    Yes, I understand that. But with the groundwork you put in place, I can start plugging in what I need to tune it more towards what my game will need.
     
  19. NikoBusiness

    NikoBusiness

    Joined:
    May 6, 2013
    Posts:
    289
    im on tut 6 part 2 finished
    hey chris i have a problem and im stuck :(,my problem is that on create character,after the character is created the server sends the SendCharacterCreationResult and i debuged (server side) that its send
    then i added a debug log in the packetid in the inputloop on masterclient and it turns out that the packetid stays 0 after login and it calles the case 0 not the case 2 which is PacketsIn.CharacterCreate(); . on PacketDecoder where Login() is the opcode is set to 2 :/ the inputloop packet id should be set to 2 but the opcode is set to 2 and i cant fix it :/ please help!
    i even tried to get help from StackOverflow : http://stackoverflow.com/questions/...e-thread-reading-wrong-packet-data-from-netty
     
    Last edited: Nov 17, 2014
  20. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Looks like you got it figured out--

    There has been a lot of changes to the networking, and optimization that's used when working with our tutorial series, videos of this have not yet been released. The first 10 parts of the series are to just to help give people an understand of how networking works, and some basic (yet inefficient) practices.

    Part 11 is going to be uploaded here soon, and in this video we are erasing everything. Don't worry, it's not going to be a living hell like it was the first time around, I've actually had a game-server api that I've made myself over a long period of time that we're going to be using, and it's very simple to use. The same goes with our implementations inside of Unity, a great deal of the practices that have been used so far (in both C# and Java) haven't been the best, and this will be changed starting on Part 11.

    The first few parts were mainly to just give a little insight and to scare away people who aren't dedicated. If you want to make a MMO, you have to prepare to dedicate a LOT of time.

    Part 11 will feature a working product, so you don't ever have to worry about if something won't work. I'll run through a working example of my current project that will showcase all of the features promised.

    If you are doing this for purely educational purposes I would recommend finishing off the videos, just keep in mind what I said earlier about trashing the projects when Part 11 comes around. We won't be trashing a project ever again for the remainder of the series, don't worry about that.

    This has been my plan from the start.
     
  21. NikoBusiness

    NikoBusiness

    Joined:
    May 6, 2013
    Posts:
    289
    I haven't figured it out,i really need to continue checkout stack overflow i made e better explanation of the problem
     
    Last edited: Nov 19, 2014
  22. Litwin

    Litwin

    Joined:
    Aug 15, 2013
    Posts:
    70
    The server will hosted inside the Unity or have for example a console?
    example:
     
  23. NikoBusiness

    NikoBusiness

    Joined:
    May 6, 2013
    Posts:
    289