PDA

View Full Version : Multi MasterServers Dedicated Server (C++)



[Rocketers] Alex
26-09-2016, 10:05
After the publication of the source code of version 1.10 I redid a dedicated server in C++ instead of assembler.
The version of C++ for games Serious Sam Classic The First Encounter 1.05 and Serious Sam Classic The Second Encounter 1.05 and 1.07 Here:

MultiMS_DedicatedServer_v1.1.zip (https://yadi.sk/d/7_DQeIyLvRZWG)

Master servers declared in code:

http://i.imgur.com/eYIrHQJ.png

http://i.imgur.com/1epapgo.png

And also they declared as shell variables, so they can also be specified in Dedicated_startup.ini. Example:

http://i.imgur.com/ybaOG77.png

To compile the required VC6 "with service pack 5 and processor pack" (To compile assembler routines).

http://i.imgur.com/1pcIfRd.png

how it works is very simple:
The routine in assembler reads an open socket from the address space engine:

http://i.imgur.com/fvAp0Ep.png

The subroutine must be declared in the text of a C++:

http://i.imgur.com/Ep0RE80.png

After starting the server, we create a thread which will receive an open socket and send the heartbeat for a few master servers. The socket is nonblocking, so it can be used to send heartbeat on any of the master servers without any risk.
Just need to change the structure of socketaddr for other masters.

http://i.imgur.com/cRueU9t.png

http://i.imgur.com/oqmfAQm.png

Created thread in a loop every millisecond 70707 gets an open socket, and sends a heartbeat to the master servers specified in the structure socketaddr.

http://i.imgur.com/qJXagq6.png

At the moment, these versions of the servers are running on 42amsterdam around the clock. Everything is stable.

[Rocketers] Alex
02-10-2016, 16:47
Yes, with assembler I overreacted :) In this case, it is not required.
Best option:

http://i.imgur.com/poRol8R.png

...BTW - Result:

http://master.333networks.com/g/serioussam
http://master.333networks.com/g/serioussamse

http://www.qtracker.com/server_list_details.php?game=serioussam
http://www.qtracker.com/server_list_details.php?game=serioussamse

http://dev.333networks.com/s/serioussam
http://dev.333networks.com/s/serioussamse

OpenSpy doesn't have a web statistics, but also works fine