Hello me again, I've gotten the system to work for master server however I am trying to build a Linux dedicated server as well and experiencing compiling errors. Does this support Linux?
Announcement
Collapse
No announcement yet.
Master Server with Unreal Engine 4 Plugin
Collapse
X
-
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!
-
So I have the plugin working with my dedicated servers Cept for ping.
It registers and will use the get game mode players to update num of players but the ping update is still giving a -1 default.
Also I noted it's always returning it didn't receive data and just adds it to the list since I'm using both return success and no data to complete the add to my list.
Curious if I'm missing something master server side that's causing the no data response.
I am using Python 3.5 and not 3.4. Don't think that's why however.
Is it that the up address node isn't being filled out with the actual server ip on the register node when it makes the struct?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
-
Hey Inph1del, you will need to make sure you have port 8082 open on the IP you are retrieving the ping from (changeable in MasterServerFunctions.cpp line 108) and then the ping should return OKNat punch through may be useful here, but easier to just make it a requirement to have a couple ports open if you want to host a server
Comment
-
Originally posted by RyroNZ View PostHey Inph1del, you will need to make sure you have port 8082 open on the IP you are retrieving the ping from (changeable in MasterServerFunctions.cpp line 108) and then the ping should return OKNat punch through may be useful here, but easier to just make it a requirement to have a couple ports open if you want to host a server
8082 open on?
1. Dedicated server host
2. Ue4 master server host
3. Client side firewall?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
-
Ahh nevermind figured it out. Google compute i forgot requires a while separate configure of firewall rulesInphidel / 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
-
Now if only I can find a way to communicate to the server using something Linux compatible so I can build out both windows and Linux dedicated servers.
Linux being the cheaper route to run a server this is super ideal.
I imagine the type of communication needed for the server to posts it's active this should be really doable. It's just a http communication no?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
-
----------------------------------------
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'd really like to use this plugin, but I can't get the serverlist :/
Please help me!
Comment
-
Working on using this in my current project, which requires multiple servers (the usual login/channel/world type of system but theres going to be multiple worlds).
Using 4.20.3, had to forcibly type out the port in SetURL for EHttpResponse::HRT_PingServer as sanitize float would literally return a float as a string (with trailing decimal). For now I guess it is better than attempting to trim the .0 from the port but will end up having to store the main port at some point.
Wondering how most of this connects together, I assume its just that the game mode is representative of that webserver slot and then when someone connects to it they are actually on that server instance instead of the master server? I have tried to direct connect (ClientTravel("127.0.0.1:2000") as an example) but it either did nothing or just brought me back to the same map.
I am a little concerned that this needs to be in a game instance, since that exists per client instance and server instance but theres no way to determine who is who making the security of making the server non-existent.
How viable is it to keep it like that? if registering the same port and IP simply "refreshes" the server then that should be alright.Last edited by Tyndareus; 11-20-2018, 06:40 AM.
Comment
-
I have finally made this into a Online Subsystem that works with the Create/Join/Find session nodes.I will release on the market place in the coming months.
It now also has support for custom key/value pairs to pass data to around as needed (map name, game mode etc) and can verify that the server is accessible from the Internet so no unjoinable servers will show up in the server list.
https://puu.sh/EkmSl/d85c851ec2.mp4Last edited by RyroNZ; 12-17-2019, 12:35 AM.
Comment
Comment