Announcement

Collapse
No announcement yet.

Master Server with Unreal Engine 4 Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #31
    Just subscribed to this thread. Awesome work man! I'd be really interested to see the implementation for the subsystem approach. I am about to start working on some multiplayer dedicated server stuff and having a master server is going to be a must.

    Comment


      #32
      Merging the plugin code.

      Originally posted by Neur0t1c View Post
      Why? It doesn't need databases. It does its job already. I've already merged it into my code rather than a plugin. Works a wonder since I set it up to ping and keep its own data updated.
      Hie,

      I am working on a networking module for my UE4 project and found this master server plugin.
      Can you please tell me how to merge this code into the project directly, so that I don't have to install it as a plugin?

      Thanks & Regards,
      Srinivas

      Comment


        #33
        Partially Solved

        Awesome work RyroNZ, Much appreciated. Im a little difficulty getting my headless dedicated server build to register with the master server. I was wondering if you had much luck using this with a dedicated server build, Launching the game From PIE, with simulated dedicated server works fine, master server shows my test server registering, and deregistering no problem, But when i go to package it. And run the dedicated server standalone i get nadda. Nothing im servers log is tipping me off either. I noticed the bit about adding the "MasterServer" to my build.cs, But alas no improvement. Anyways, Thanks again for the plugin, and if i find a solution ill make sure to post it in an edit to this post incase anyone else runs into this issue in the future.

        *edit* I spoke too soon, I believe my problem is i actually need to implement it in the C++ manner, For the dedicated server build to function correctly, Ill re-edit if im incorrrect, And still need help. Sorry

        *2nd edit* Ok after attempting to integrate it in C++, Im not sure the plugin is even being compiled in and running in dedicated server mode. Im still pretty weak on the C++ front, so its hard to be certain what im looking at. If you, or anyone have any advice, suggestions, Or more questions feel free to query, or enlighten me =). Thanks

        *3rd edit* The reason it was not functioning correctly is not because it was'nt built in C++, The blueprint version is sufficient. It was because it was using a IsDedicatedServer bool, Replacing that with a IsServer bool works fine. This comes as somewhat of a quandary to me, Trying trying to figure out why this might call incorrectly. Not sure if its a feature or a bug.. Any input is appreciated.
        Last edited by Metathias; 03-08-2016, 12:56 AM. Reason: Partially Solved

        Comment


          #34
          I'm trying to incorporate this plugin to my project which is based on the UE4 Multiplayer Shootout tutorial, I already have a show server list event https://docs.unrealengine.com/latest.../#joiningagame
          To use your plug in am I right in thinking that I need to rewrite this code to pull the server list from the struct? Can anyone share a completed screenshot of their solution (sorry I know that's really lazy).

          Comment


            #35
            This is great, thanks [MENTION=49655]RyroNZ[/MENTION]!
            Storyteller - An immersive VR audiobook player

            Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

            Comment


              #36
              [MENTION=49655]RyroNZ[/MENTION] I see you changed the license thanks you man.
              Really appreciated for help all.
              Hevedy - Instance Tools: https://hevedy.itch.io/hevedyinstances
              Hevedy - Image Tools: https://hevedy.itch.io/imagetools

              Comment


                #37
                any idea why this error happening :
                https://github.com/RyroNZ/UE4MasterServer/issues/6
                UpWork Portfolio
                UE4 Portfolio

                Skype:
                muzahred57

                Comment


                  #38
                  Thank you so much!

                  Comment


                    #39
                    Thank you for your plugin RyroNZ,

                    I've been trying to set it up, with my limited skill, but I ran into some issues unfortunately.
                    I was able to install the plugin for Unreal, install and run the Master Server, and even initialize and register a server thanks to your blueprint example. However, I have some trouble to request a server list.

                    I'm using Unreal Engine 4.14, but experienced the same issue on 4.12.

                    For testing purpose, the blueprint set up is really simple. In my GameInstance, I bind the ServerListReceivedEvent :
                    Click image for larger version

Name:	temp01.JPG
Views:	1
Size:	62.3 KB
ID:	1118967

                    From the player controller, I'm calling the Request Server List function when I press the T key :
                    Click image for larger version

Name:	temp02.JPG
Views:	1
Size:	53.4 KB
ID:	1118971

                    For the MasterServer address, I tried both on a local machine, and on an Amazon EC2 Server.
                    As for the Client adress, I used my public IP address, and I used 7777 for the port.

                    When I launch the game in the editor, and press the T key after a server has been registered, nothing happens until the end of the timeout, and then I got printed response "No Data Received"
                    When I'm looking at the MasterServer console command, the following messages are displayed after the timeout :

                    ----------------------------------------
                    Exception happened during processing of request from ('127.0.0.1', 56349)
                    Traceback (most recent call last):
                    File "C:\Users\psych\AppData\Local\Programs\Python\Python35-32\lib\socketserver.py", line 313, in _handle_request_noblock
                    self.process_request(request, client_address)
                    File "C:\Users\psych\AppData\Local\Programs\Python\Python35-32\lib\socketserver.py", line 341, in process_request
                    self.finish_request(request, client_address)
                    File "C:\Users\psych\AppData\Local\Programs\Python\Python35-32\lib\socketserver.py", line 354, in finish_request
                    self.RequestHandlerClass(request, client_address, self)
                    File "MasterServer.py", line 116, in __init__
                    super().__init__(request, client_address, server)
                    File "C:\Users\psych\AppData\Local\Programs\Python\Python35-32\lib\socketserver.py", line 681, in __init__
                    self.handle()
                    File "C:\Users\psych\AppData\Local\Programs\Python\Python35-32\lib\http\server.py", line 422, in handle
                    self.handle_one_request()
                    File "C:\Users\psych\AppData\Local\Programs\Python\Python35-32\lib\http\server.py", line 410, in handle_one_request
                    method()
                    File "MasterServer.py", line 136, in do_GET
                    self.handle_send_serverlist()
                    File "MasterServer.py", line 145, in handle_send_serverlist
                    self.wfile.write(main_thread.latest_serverlist)
                    File "C:\Users\psych\AppData\Local\Programs\Python\Python35-32\lib\socket.py", line 593, in write
                    return self._sock.send(b)
                    ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
                    ----------------------------------------
                    ('127.0.0.1', 56349) Sending serverlist to 127.0.0.1:56349
                    And in the Unreal Output Log, I can read :
                    LogHttp:Warning: 000001D858E07B80: request failed, libcurl error: 0 (No error)
                    LogHttp:Warning: 000001D858E07B80: libcurl info message cache 0 (Hostname 127.0.0.1 was found in DNS cache)
                    LogHttp:Warning: 000001D858E07B80: libcurl info message cache 1 ( Trying 127.0.0.1...)
                    LogHttp:Warning: 000001D858E07B80: libcurl info message cache 2 (Connected to 127.0.0.1 (127.0.0.1) port 8081 (#29))
                    LogHttp:Warning: 000001D858E07B80: libcurl info message cache 3 (Closing connection 29)
                    I would be really glad if someone could give me some advice

                    Comment


                      #40
                      Originally posted by RyroNZ View Post
                      This is a plugin for Unreal Engine 4 that adds super simple server registration, deregistration, etc with a master server.

                      This is not mean't as a complete Online Subsystem, just as a way for people with a need of getting an up to date serverlist they can serve up to clients and adapt it to their own needs (I am open to suggestions of functionality you want included by default!).

                      Once the plugin has been installed you will be able to use this to receive server lists of all active servers with their IP, Port, Name, Game Mode, Map, Current Players, Max Players, and anything else you wish to add as it is free to use and modify in your projects. .

                      This is quite basic at this stage, but I will be updating this in the coming weeks to include more features such as pinging servers received on the serverlist, and some functions to get the public IP from the adapter, and possibly expanding it to Unity

                      Please go to the GitHub page for instructions on running the server, and installing/using the plugin.


                      GitHub: UE4MasterServer

                      Version
                      16.7.02

                      Changelog
                      16.7.02
                      Divided time by two to get one way trip time as opposed to round trip, and further improved accuracy (is now very good on accuracy, with 6-15ms added for processing the request)
                      Modified time-out for ping request to 1 seconds, and 10 seconds for a standard request.
                      Removed some debug code that was left in 16.7.01
                      16.7.01
                      Modified HttpProcess so it is now being called on Tick, instead of by a Timer. Improves latency accuracy and consistency.
                      RyroNZ,
                      I was wondering if you could help me with an issue with the plugin. Registering and retrieving are working fine. My problem is in trying to update the registered server with info like Max Players or changing the server name. I am doing that by Registering the server again but it appears when getting the server list it alternates returning both the new and old info. Am I updating it incorrectly?

                      Unregistering doesn't seem to have any effect.

                      Thanks a bunch!

                      Comment


                        #41
                        Originally posted by NickNasti View Post
                        RyroNZ,
                        I was wondering if you could help me with an issue with the plugin. Registering and retrieving are working fine. My problem is in trying to update the registered server with info like Max Players or changing the server name. I am doing that by Registering the server again but it appears when getting the server list it alternates returning both the new and old info. Am I updating it incorrectly?

                        Unregistering doesn't seem to have any effect.

                        Thanks a bunch!
                        Hey Nick,

                        No that is certainly the right way to update it, when you re-register a server it will update it. So when you are retrieving the server list, you press once and get old, press again and get new or is it sporadic?

                        Ryan

                        Comment


                          #42
                          I was able to figure it out. It was a client vs server thing. They both sent a register and it was doing something odd. All is well now.
                          BTW, I want to thank you personally for this plugin. It gave me the freedom from using Steam and was able to do exactly what I wanted.

                          Thanks again,

                          Nick

                          Comment


                            #43
                            I'm not quite sure I know where to put these files.. 4.14 github build engine. I got the python server running on a server but cannot get plugin to show up in my game.

                            I figured the extracted files would go into GitHub engine/plugins folder?
                            Inphidel / Brian - Developer of Ultraball
                            http://www.ultraballgame.com

                            Don't shy away from bugs in your game. Don't play it as intended. Break your game so you can fix it!

                            Comment


                              #44
                              Figured it out dur
                              Inphidel / Brian - Developer of Ultraball
                              http://www.ultraballgame.com

                              Don't shy away from bugs in your game. Don't play it as intended. Break your game so you can fix it!

                              Comment


                                #45
                                I would like to see a Peer to Peer server adress retrieval system. This could be useful if you want to get all the server adresses from inside a network, so you could connect to any of them. If some servers are hosted by players, and the Master server verifies them against cheating, this could lower the hosting traffic cost a lot for the developpers.

                                Comment

                                Working...
                                X