Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Complete noob to building multiplayer games, where should I start learning?

Discussion in 'Multiplayer' started by matthewjd24, Oct 24, 2019.

  1. matthewjd24

    matthewjd24

    Joined:
    Nov 18, 2013
    Posts:
    8
    For the last couple days I have been trying to figure out where to even start with building a multiplayer game. I have a solid understanding of JavaScript and C# programming but I know very little about anything to do with networking. There are a lot of types of multiplayer games out there and I'm not sure which I should start learning that might apply towards what I'm looking to build.

    I am looking to create a persistent real-time game, as in the game is running off a dedicated game server (think Clash of Clans, your buildings upgrading while you are not logged on). There are a lot of resources out there for matchmaking-style games, and I'm not sure if I should learn that or how much of that knowledge would really apply towards this type of game. I just want to learn the fundamentals of how a game like that is structured, if that makes sense.

    Ideally I could just set up a simple cloud server with a script that is running which can communicate with my client. With that I could just mess around and learn about the set up. I'd imagine that, for a game like Clash of Clans, the server is really just a large, ticking database containing data on everyone's bases that is occasionally sending data to the player about the status of their base (at least for the base-building part of the game).

    Please excuse me if I sound stupid, I don't know a lot about what I'm talking about, I'm just trying to figure out where I should start learning, or if there are any good resources you're aware of that I could learn these fundamentals.

    Some stuff I've uncovered:
    -smartfoxserver
    -GameSparks
    -DigitalOcean
    -Unity UNET
    -Master Server Kit Unity library
    -Some multiplayer development tutorials on Udemy

    Do you think I should focus on one of these or something else? Thanks for reading!
     
    Last edited: Oct 24, 2019
  2. Jimaniki

    Jimaniki

    Joined:
    Nov 9, 2017
    Posts:
    15
    matthewjd24 likes this.
  3. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    I'd try out several solutions, see what you like and what you don't, and I'm sure you'll gravitate towards one to go with. There are many solutions you could go with for what you describe, and no silver bullet obviously correct choice.
     
  4. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,018
    To build a persistent world, it may make sense to look into "traditional" web programming for the server. If you don't need quick interaction between players, it's fine to get/set world state via REST apis and run some simulation as needed. The benefit is that this is quite easy to run and scale.

    For this use case, I would avoid any package/solution that only runs in Unity (client and server). To simulate a world and to keep world state, you don't have to run a 60fps gameloop.
     
  5. matthewjd24

    matthewjd24

    Joined:
    Nov 18, 2013
    Posts:
    8
    Tobiass, I'm not sure what you mean by traditional web programming but I can definitely look into it. Do you know of a resource where I can start learning about that?

    I started looking at Nakama running on Digital Ocean since I posted this thread. I liked that Nakama has a forum and an active chat channel, I figured I will really need to use that as a newbie.
     
  6. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Just wanted to note that Digital Ocean is just a cloud virtual machine provider, like Google Cloud, AWS, etc. They are just a place you can rent a linux server from.
     
  7. dispatch_starlost

    dispatch_starlost

    Joined:
    Nov 17, 2017
    Posts:
    37
    As in a website which receives and sends data to your game clients, rather than a headless game server doing the same thing but at much higher cost and complexity.
     
    tobiass likes this.