[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.
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.