Introducing the biggest update SoF2 has ever seen...

Janno

why let your life be controlled by fairytales
Staff member
Hello,

This has been in the works for the past couple of weeks.

First of - a big thank you to the Staff of 3D for supporting with some tests, especially bringing out @Islam, @Power, @Legacy and quite possibly the moron who was there almost every time, @Dracula`
Biggest thank you to @BoeMan as his project, sof2plus, has made it possible.
Another thank you of course to 1fx, Boe and @Henkie as the project, 1fxplus, is largely based on 1fxmod.
(And also of course all sorts of contributions everywhere, which I won't name out).

The day is here, what some of us have been thinking about for ages (I remember having these discussions with BoeMan back in around late 2009-early 2010 when we were fooling around in gold, that we need to somehow bridge the gap between SoF2 Silver and SoF2 Gold. And now, after a couple of weeks of heavy work, it is here.

Hereby introducing you to SoF2 Multiprotocol servers.

What does it mean?
  • Clients of Silver and Gold will both connect to the same server, play the same game (the ports will be different between gold and silver, but story is the same).
  • Some additions will be disabled from Gold (MP5, Silver Talon, SIG) as they do not translate to any meaningful weapon in Silver
  • Both clients will be server their respective clientmod (Silvers will play on RPM, golds will play on rocmod or 1fx.rocmod (i.e. the 1fx version of rocmod)).
Current state / changes
  • Game should be fully playable, if not, please report it here.
  • There are some commands for sure missing and I'm working on readding these commands, but they will take time.
  • There will be another admin level above S-Admin, called H-Admin (so you'll have 4 admin levels).
The server runs on sof2plus engine modified enough to serve multiprotocol (in the background, a gold sof2 actually runs, but there's a mapping done on every packet which translates gold transactions to silver transactions). If you encounter any issues which are reproducible, please detail them here and I'll try to get them fixed.

Running on sof2plus did mean that due to ABI changes, the game module had to be built up from scratch as well, as no clientmod was out of box compatible to it. So as the assumption currently is that the engine is ready, heavy work has gone into creating game module.

Currently, savages # scrim runs the new engine. Soon, 1fx inf will follow. Savages Italy will follow after successful playtests.

After the mod has been tested enough, the intention is to also move 3D H&S to multiprotocol. That will enforce gold players to use client additions due to missing nades.

Above and beyond mates!
BR;
Janno
 
Last edited:
also, I forgot to add, it's all open source.

You're able to track progress, change it how you see fit, however you like.

Original sof2plus engine:
Original sof2plus game:

My multiprotocol version of the engine:
1fxplus and multiprotocol modifications:

Do note that my repos have more branches - e.g. there's a pure 1.00 SDK branch there as well - if you have a mod which you would like to run on sof2plus but only on 1.00, you can use that.

The game module has very little changes compared to the pure SDK - there's a couple of more syscalls added (e.g. translating weapons, getting legacyprotocol data, rcon logging) and availableweapons info to be displayed (as SoF2 1.00 relies on it). Add those and you can build any mod which you want on the SDK.

1fxplus and sof2plus' multiprotocol versions base themselves off 1.03 and from the game side, apart from minor gimmicks, it should be treated as such - the engine does the heavy lifting on providing playability on both games.

Engine main changes are in qcommon/net_ip.c and qcommon/msg.c files
net_ip controls the part of opening another socket for another protocol (namely, SoF2 1.00), while msg.c controls the on-the-fly message translation for silver.

We have not stress-tested the code but given the fact that the arithmetics are are actually just +- activites mostly (or mapping to direct array access), the overhead should be minuscule and your gameplay should not be affected. If the masterservers kick up again and when we get h&s working, I think we can see whether it worked fine or not.

So, what happens in a nutshell is this:
The server starts with more than 1 socket to broadcast the game to another protocol (2002 / ie silver)
The server still keeps the same internal memory, so whilst the player sees that one client connects to e.g. port 20000 and another to e.g. 20010, that's the only difference they should perceive. Players will be in the same shared memory space.
On connecting to the specified port, you're tagged as either a legacy (2002 / silver) protocol or normal protocol.

And that's where things get interesting:
On 1.03 clients, lets assume nothing special except fs_game spoofing happens.
On 1.00 clients, as the messages we got are specific to 1.03, we:
* Omit sending one value in the gamestate
* Map the configstrings to corresponding values (e.g. spoof fs_game between both games, spoof availableweapons)
* Map the entitystate fields
* Translate certain fields in entity states to silver variants
* Map the playerstate fields
* Translate certain playerstate fields to silver variants (e.g. ammo, weapons).
* Push the packets out
* Undo the changes to not have any impact on the game.


On client->server communication, the only thing we translate is weapon to gold weapon and on /drop command (game module), we translate the silver weapon back to gold weapon.

The entire msg.c logic outlined above is what makes multiprotocol possible - and that's what we need to test. Because translations are done on the fly over the fields we know, there still can be some which we have not yet found. Finding these out would make the gameplay better, hence why we have a public beta (whilst I'd hardly call it a beta yet) running now.
 
Amazing bro !!
sof might come back to life and some players might decide to join the game again thanks to you 😁 well done





PS: I FEEL DISCRIMINATED FOR NOT BEING IN THE CREDITS ALONGSIDE OUR EGY DRACULA! I FOUND TWO BUGS, TWO!!!
Next time I'll just stab someone from market to blue base or strip dracula again, crash the server and end this once and for all. kekw jk
 
Maybe dumb question but, what was the purpose of doing this. Couldn't the people that play gold just download silver? And vice-versa
 
Maybe dumb question but, what was the purpose of doing this. Couldn't the people that play gold just download silver? And vice-versa
yes why did I not think of that? brb deleting repos

That has not happened almost ever tho. There are very few players who play both games.

Gold people didn't care almost at all about the gametypes silver had, they had their own playerbase and their own mods. Silver people never upgraded to gold (only shooter-lovers played both games).
So there's a distinct playerbase between the 2.

I hosted 3D H&S on Gold for about 3 years before this, almost 0 players the entire time. This will attract players on our servers and would unify the 2 games.
You have the best of both worlds, config a server and have a very gold-like 1stperson shooter, config a server and have a very silver like 3rd person game. But both clients can join at the same time.
 
I can see a huge potential in this, I think GOLD is more alive and active than Silver so i can see gold players joining the 3D server or italy.

Sadly this came a couple years too late to experience the “full” potential of the multiprotocol when the player base was a lot bigger.


good jop esko.
 
We have 3 servers now running Multiprotocol SoF2

1fx. # inf - 51.83.68.227:20105 / 51.83.68.227:40105
savages # scrim - 51.83.68.227:20102 / 51.83.68.227:40102
savages # kam2 [RD] - 51.83.68.227:20103 / 51.83.68.227:40103

1734260958189.png
 
yes why did I not think of that? brb deleting repos

That has not happened almost ever tho. There are very few players who play both games.

Gold people didn't care almost at all about the gametypes silver had, they had their own playerbase and their own mods. Silver people never upgraded to gold (only shooter-lovers played both games).
So there's a distinct playerbase between the 2.

I hosted 3D H&S on Gold for about 3 years before this, almost 0 players the entire time. This will attract players on our servers and would unify the 2 games.
You have the best of both worlds, config a server and have a very gold-like 1stperson shooter, config a server and have a very silver like 3rd person game. But both clients can join at the same time.
Ahh
 
Back
Top