Difference between revisions of "Worms 2 Game Server"

From Worms Knowledge Base

Jump to: navigation, search
(Add exact license and target .NET core version)
(Updated to 1.1.0)
 
(One intermediate revision 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.0 / 14 July 2020
 
| games = [[Worms 2|W2]]
 
| games = [[Worms 2|W2]]
 
| language = C# (.NET Core 3)
 
| language = C# (.NET Core 3)
Line 14: Line 14:
 
[[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 targets .NET Core 3. 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 Mac OS X platforms as it targets .NET Core 3. 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]].
 +
|}
  
 
{{OSS}}
 
{{OSS}}

Latest revision as of 19:07, 14 July 2020

(Up to Software)
icon Worms 2 Game Server
Developer: Pac-Man
Latest version: 1.1.0 / 14 July 2020
Supported games: W2
Language: C# (.NET Core 3)
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 Mac OS X platforms as it targets .NET Core 3. 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.
Personal tools