Working in a Minigames Network

Discussion in 'BungeeCord Discussion' started by matgsan, May 25, 2017.

  1. Hey guys,
    I am here to start a discussion about the best way to handle certain things in a minigame network, i would like to see what you guys do and share experience.

    First thing is about the Solo and Team modes of a game, i was thinking how the big servers do and I think the best option is creating a plugin that will handle all the events of the game and them de other 2 one for the Solo Mode that will handle the Solo mode things and the team one that will handle the team things. Other way i thought is doing everything in a plugin and the in the configuration a put if it is solo or team mode and then when i am working with the teams i do
    Code (Text):
    if(soloMode){
    //Do Something
    }else{
    //Is Team Mode
    }
    What you guys think? Any other options?


    Also i am doing for double coins every time a player connect to a game server i send with him in plugin message if double coins is on or not because i need to tell spigot if i am using double coins or not. I dont think this is the best option, anyone with other way to do it?

    Third: Server deployment how do you guys do that? A java app that runs and then create a server folder? How to costumize the config? Like setup the plugins, the server port and etc

    Thanks in advance
     
    #1 matgsan, May 25, 2017
    Last edited: May 25, 2017
  2. @Edit added some new topics
     
  3. So guys? I want know you guys experience
     
  4. Anyone? I still waiting
     
  5. what kind of minigames would u run on this ?
     
  6. TomTheDeveloper

    Supporter

    Going for 1 file that supports both modes is in my opinion the best. Having the mode configurable in a configuration file or in the database. This way you don't have to change the file on the server if you want to switch one server from solo to team mode. And if you know what you're doing, performance won't differ much from having one file or two seperate ones.
     
  7. What's the point of this? Obviously depending on your mode you'd need to check for it, but what even are you asking?
     
  8. There are 3 questions. And answering what you said, no, i can just deploy a new server instance with a plugin for that mode.
     
  9. Good, i will look into this, what about the other 2 topics?
     
  10. First things first: Backend management

    I can guarantee you that if you don't give this enough attention early on, it is going to be the thing that will keep you from scaling and improving once you launch. Use kubernetes and microservices like we do (see Exorath's github), and you're going to have a competitive advantage to all other networks.
    KUBERNETES/DOCKER is essential for a good backend, don't code your own shit from the ground up, it will cause more trouble than good. Kubernetes solves deployment/scheduling, updating, networking...
     
  11. Second: If the thing you are worrying about is how to handle gamemodes, you probably have your focus wrong

    There are a lot of problems like this when you write minigames, and the solutions almost always have downsides, anyway, get used to solving them yourself, quickly!
    Anyway the solution we decided to implement for handling gamemodes may not work for your network, just think of three solutions for every problem and pick the one that fits the best.
    Worrying to long on shit like this will keep you from launching.
     
  12. KuberNetes handle things like Redis pub and sub? Cross proxy chat for example
     
  13. All though you can totally schedule redis instances on it (and applications that handle cross proxy chat), kubernetes will only do the scheduling, networking and updating of those applications. Anyways, it's damn good at it and used by a lot of huge companies (samsung...).