I first started out games programming for Crysis Wars (a standalone multiplayer-only expansion to Crysis), creating server-side modifications (SSMs), in 2011. SSMs introduced new gameplay features and functionality, such as allowing access to vehicle types usually only available in the single-player version of the game (Crysis).
My first mod was SSM Thunderbolt. Based on another SSM (SSM Aegis 2), Thunderbolt introduced a robust anticheat that detected fly-hack (decreasing your gravity to enable you to “fly”), speed-hack (running faster than intended), and profile ID spoofing (pretending to be using another account). These three cheats were made possible by poor programming on the development studio’s (Crytek) part, being enabled by easily accessible values in the BasicActor Lua script within game files that were excluded from the tamper-proof system, net-protect, provided by Crytek.
It wasn’t until late 2012 I started experimenting on the C++ side. Crysis Wars had a mod SDK that enabled modification (that I host here on GitHub, as Crytek has long since stopped hosting it) of the gameplay features, this was my first exposure to C++ and enabled me to create my Infinity SSMs.
Infinity was a series of three C++-based SSMs that significantly enhanced functionality and the unique features provided by it were so enjoyable that for the remainder of the game’s lifecycle, pushed my servers to the top #1 place in popularity.
Most popular was InfiniCloak, a change to the base game’s cloaking mechannic (usually the player would stay translucent until they fired a shot or their suit energy ran out) that changed it so that firing a weapon would drain only a certain amount of suit energy rather than completely deplete it. This introduced a fresh change in the game and made players stay alert, especially for cloaked players using sniper rifles! Another popular addition was Airboxing, zero-gravity boxing made possible by exploiting the allowable entity types for multiplayer within the game code (usually it was not possible to spawn a GravitySphere within multiplayer).
Three major iterations (and some minor) were created, with a fourth in development when disaster struck. At that time I still hadn’t discovered the joy of version control systems, and accidentally deleted much of the project via a mistyped delete command- the Infinity system created its own log files for various events and so the main server log was redundant, it was intended to write a method that would automatically clear out the main server log location regularly (LogBackups) however this didn’t go to plan.
Three months of development work was lost and I lost the energy to restart work on the project, it was early 2014 at this point and the game was reaching the end of its life with only around 100 dedicated players still playing.
The GameSpy Closure
Electronic Arts entered the ring, announcing the ceasation of online multiplayer support for over 50 of their games (with a later 150 announced being slated), including Crysis, Crysis Wars, and Crysis 2. The game services provider, GameSpy, had gone bankrupt (likely due to a changing climate and not adapting to this change, such as not being able to compete with services provided by Steam).
This destroyed the already dwindling community of Crysis multiplayer and Crysis Wars, leaving only around 30-40 active players in the aftermath.
A more recent development I’m known for is Wildfire, and Wildfire was created as a response to this shut down but is not the “OG” solution I created for this.
Initially I had created Crysis Wars Connector, a client-side modification (CSM) that bypassed the GameSpy log-in screen within the game- this was because on June 30th all GameSpy did was to turn on an “online support is no longer available” mode to deny access to the login server. Through investigation via Wireshark I learned that although clients were being denied access, server applications were still being allowed to talk to GameSpy’s services and were receiving the normal responses.
This worked until around September 2014, when GameSpy’s services went offline.
Wildfire was my first experience of writing a multiplayer networking system, initially I used Project Reality’s master server replacement for emulating most of GameSpy’s services (which at the time was open source) but this soon branched off into its own system (though even today some remnants of the original Project Reality code still exists, primarily for the GameSpy protocol’s encryption- if it’s not broken, no need to change or fix it).
In December 2014 the first version of Project Wildfire went online and was an instant hit as it didn’t require the download of an additional launcher or modification to the game’s files, and allowed the use of any client and server mods. This was accomplished via three simple additions to the system’s hosts file.
Enhancements to the Wildfire system were added such as changing over to MySQL for the database backend (then to SQL Server, and then back to MySQL), adding a website, and switching to a modified networking library to avoid touching the system hosts file. Other additions were made such as Wildfence (a firewall that interfaced directly with Windows Firewall, and stopped unauthorised access by detecting profile spoofing when entering the server list) and Tesseract (a banlist REST API made available to server owners and developers).
As of 2018, Wildfire had processed 2.1 billion queries, consumed an estimated 5.2 terabytes of bandwidth, and had 2.4k registered members.
Wildfire was discontinued and closed in February of 2021 due to Crysis Wars finally drawing its last breath. Another system (CryServ) is still online but is rarely used.