Difference between revisions of "Worms 2 Game Server"

From Worms Knowledge Base

Jump to: navigation, search
m ("simulates [...] as close as possible" -> "simulates [...] as closely as possible")
m (jobsOS rename)
 
(6 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
| name = Worms 2 Game Server
 
| name = Worms 2 Game Server
 
| developer = [[User:Pac-Man|Pac-Man]]
 
| developer = [[User:Pac-Man|Pac-Man]]
| version = 1.0.0 / 11 July 2020
+
| version = 1.1.1 / 16 May 2024
 
| games = [[Worms 2|W2]]
 
| games = [[Worms 2|W2]]
| language = C#
+
| language = C# (.NET 8)
| platform = Win32, Linux, Mac OS X
+
| platform = Win32, Linux, macOS
| license = Open-source
+
| license = MIT
| website = [https://gitlab.com/Syroot/Worms Syroot.Worms on GitLab]
+
| download = [https://gitlab.com/Syroot/Worms Source code]
 
}}
 
}}
  
 
[[Worms 2 Game Server]] is a small server application connecting Worms 2 players by allowing them to create rooms, chat, and list their games online, just like the original Team17 servers. It can be added to the "Address book" of Worms 2 to allow players to connect to it instead.
 
[[Worms 2 Game Server]] is a small server application connecting Worms 2 players by allowing them to create rooms, chat, and list their games online, just like the original Team17 servers. It can be added to the "Address book" of Worms 2 to allow players to connect to it instead.
  
The software was built shortly after reversing the [[Network_protocol_(Worms_2)|Worms 2 network protocol]] in reaction to the original Worms 2 no longer accepting new connections in July 2020. It simulates the original server as closely as possible with the following changes:
+
The software was built shortly after reversing the [[Network_protocol_(Worms_2)|Worms 2 network protocol]] in reaction to the original Team17 server no longer accepting new connections in July 2020. It simulates the original server as closely as possible with the following changes:
  
 
* Request validation is slightly stronger, like checking for duplicate user names on login or missing packet fields.
 
* Request validation is slightly stronger, like checking for duplicate user names on login or missing packet fields.
 
* Immediate notification of left users, closed rooms, or closed games, instead of waiting for a timeout to prevent ghosted / duplicate users and rooms.
 
* Immediate notification of left users, closed rooms, or closed games, instead of waiting for a timeout to prevent ghosted / duplicate users and rooms.
* Rejects attempts to host games with NAT IPs and informs the user about [[Worms 2 Memory Changer|memory patching their IP]].
+
* Rejects attempts to host games with NAT IPs and informs the user about [[fkNetcode]].
  
It can be compiled for most modern Windows, Linux, and Mac OS X platforms as it is targeting .NET Standard 2.0. The source code also comes with a proxy debug class to allow sniffing Worms 2 network traffic.
+
It can be compiled for most modern Windows, Linux, and macOS platforms as it targets .NET 8. The source code also comes with a proxy debug class to allow sniffing Worms 2 network traffic.
 +
 
 +
== Changelog ==
 +
 
 +
{| class="wikitable sortable"
 +
! Version !! Release Date !! Notes
 +
|-
 +
| 1.0.0 || 11 July 2020 ||
 +
* Initial release.
 +
|-
 +
| 1.1.0 || 14 July 2020 ||
 +
* Netcode was rewritten to be completely asynchronous (using System.IO.Pipelines).
 +
* Connections now time out after 3 seconds if not logged in, or 10 minutes if logged in.
 +
* Packet validation is now stronger and kills connections with invalid / unknown packet codes, invalid field sets, or Packet.Data larger than 0x1000 bytes.
 +
* A parameter can now be passed to the server to specify the local endpoint to listen under (either as a port only or adapter IP with port).
 +
* Logging now prints the time stamp for every message.
 +
* Logging is now colored on Linux and Mac OS X aswell, and no longer only on Windows 10.
 +
* Create Game failure message now recommends [[fkNetcode]] rather than the [[Worms 2 Memory Changer]].
 +
|-
 +
| 1.1.1 || 16 May 2024 ||
 +
* Fixes display issues with chat messages (due to missing but partially required data 0-termination).
 +
|}
  
 
{{OSS}}
 
{{OSS}}

Latest revision as of 19:12, 17 May 2024

(Up to Software)
icon Worms 2 Game Server
Developer: Pac-Man
Latest version: 1.1.1 / 16 May 2024
Supported games: W2
Language: C# (.NET 8)
License: MIT
Download: Source code

Worms 2 Game Server is a small server application connecting Worms 2 players by allowing them to create rooms, chat, and list their games online, just like the original Team17 servers. It can be added to the "Address book" of Worms 2 to allow players to connect to it instead.

The software was built shortly after reversing the Worms 2 network protocol in reaction to the original Team17 server no longer accepting new connections in July 2020. It simulates the original server as closely as possible with the following changes:

  • Request validation is slightly stronger, like checking for duplicate user names on login or missing packet fields.
  • Immediate notification of left users, closed rooms, or closed games, instead of waiting for a timeout to prevent ghosted / duplicate users and rooms.
  • Rejects attempts to host games with NAT IPs and informs the user about fkNetcode.

It can be compiled for most modern Windows, Linux, and macOS platforms as it targets .NET 8. The source code also comes with a proxy debug class to allow sniffing Worms 2 network traffic.

Changelog

Version Release Date Notes
1.0.0 11 July 2020
  • Initial release.
1.1.0 14 July 2020
  • Netcode was rewritten to be completely asynchronous (using System.IO.Pipelines).
  • Connections now time out after 3 seconds if not logged in, or 10 minutes if logged in.
  • Packet validation is now stronger and kills connections with invalid / unknown packet codes, invalid field sets, or Packet.Data larger than 0x1000 bytes.
  • A parameter can now be passed to the server to specify the local endpoint to listen under (either as a port only or adapter IP with port).
  • Logging now prints the time stamp for every message.
  • Logging is now colored on Linux and Mac OS X aswell, and no longer only on Windows 10.
  • Create Game failure message now recommends fkNetcode rather than the Worms 2 Memory Changer.
1.1.1 16 May 2024
  • Fixes display issues with chat messages (due to missing but partially required data 0-termination).