x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Multiplayer Server/Channel/Lobby Setup

Hi all, just wanted to get some sort of verificaton of the setup I plan to use. This is for a FPS.

What I want:

  • Login Server

  • Server Selection for regional server
    • after Login the player can choose which server he wants to join

    • this selection is not permanent, whenever the player wants to switch servers he should be able to do it

  • Channel Selection for different skill-level (Beginner (below lvl10)/Advanced (between lvl10 and lvl30) /Pro (above lvl30)/All) after the player chose a server he is now able to select a difficulty from now on till the game start the player should have access to his inventory (weapon/skins/clothes), settings, shop, currency etc. player should have access to the channel selection chat a channel is limited to a maximum of 500 player * there should be 10 or 11 channel per server

  • Room/Match Selection after the player chose a channel he is now able to choose one room/match he wants to play in player should be able to create a new room/match * player should have access to the room/match selection chat

  • Game Lobby after the player chose a match he wants to play in he joins the lobby of said match player should have access to the lobby chat player should be able to change settings of the match (if he is the master of said match) player should be able to "ready up" or start the match if all other players are ready => game start player should be able to "ready up" when a match is already running, so they can join the game OR (because I am not sure if the first one is actually possible) * player who connect to the room while a match is running should be loaded directly into the game without visiting the lobby

  • During the game
    • player should have access to the match chat

    • the match should be played on a dedicated server and should not be hosted by one player

    • the server should simulate all physics and calculations (if something did hit or how fast a player moves)

    • if a player disconnects the server should release his spot and be able to accept new players

  • After the game
    • after the match finished the player should see an end screen with all scores and the characters of all players

    • after clicking a button ( or a certain time) players are moved back into the room lobby

    • now players are able to leave the match or play again in the room with the same settings

Now how I plan to do this:

Login Server:

  • one single process which can verify the players login data against a postgresql database entry

  • if the login is successful it should send the player a verification and a list of all available servers (with their ip)

Regional Server:

  • one process which makes shop, inventory, settings storage available to the player and has access to a postgresql database where it gets all the information from

  • one process which handles the chat

  • one process which handles all 10 or 11 channel with a maximum of 500 players each (~ 5500 players max)

Shop/Inventory/Settings Storage/Profile(other not-channel, not-server related stuff) Process:

  • get and process requests from a player:

  •   * e.g.: "show inventory" -> process pulls data from database and sends to player
    
  •   * e.g.: "buy item 111" -> process checks if player has enough currency to buy item 111 in the database, subtract the amount he has to pay and deliver item to inventory database table
    
  • when the player joins the server and connects to said channel to submit the saved settings to the player (and accept uploaded, changed settings if player changes them)

Channel Process:

  • able to pull population ratio of all available channels on the server

  • keeping track of all (up to 5500) player and all rooms (worst case: 5500, average case on full populated server: 1040)

  • delivering population ratio of all channels and lists of all existing rooms/matches in the players channel to the player at least every 5 sec or if the player wants to refresh

Room/Match:

  • once the player joins a room he will actually join on a dedicated server instance of the game

  • creating a new room instead of joining an existing one will cause the client to notify the channel process (or another, seperate process) to create a new dedicated server instance

  • starting a match would result in seamless travel on the same server with all connected clients into the map and the game starts

  • dedicated server instances should be able to respond to requests from the channel process about player count, participating players, map settings etc

  • on game end the dedicated server instance submits the result of the match to Shop/Inventory/Settings Storage/Profile Process which then updates the stats in the players profile (and amount of money or w/e)

Soooo. is this possible?

Questions @ Login/Regional Server/Channel Process: How do I make these services available? REST? Sockets? Suitable Languages/Frameworks? Is one process enough to care about 5500 players and 5500 rooms ? Or should I split it up into one process per one channel?

Questions @ Room/Match: What does/can the dedicated server actually calculate and keep track of ? Is the seemless travel idea from lobby to actual game ideal?

Please tell me everything I am wrong with or which could be solved better!

Thanks for reading this really, really long post and thanks in advance for helpful answers. (If this isnt really the place to post this and this would be better in the forum/somewhere else pls tell)

Product Version: UE 4.10
Tags:
more ▼

asked Jan 22 '16 at 07:03 AM in Everything Else

avatar image

networkjanitor
1 1 1 1

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Watch some tutorials, mate.... Santa can't give you everything overnight sadly ):

more ▼

answered Dec 06 '16 at 07:11 AM

avatar image

BisonBull
55 2 3 10

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question