Around this time last year, we ran our first public test. Much was different in those days; personally, I was just a normal player who happened to hear about the test on Twitter - back then, JC2-MP was a much different beast compared to today. Things you might consider necessities in a multiplayer sandbox, including, but not limited to, on-foot sync were limited with no weapon sync; most of the team's efforts were concentrated on vehicle sync.
However, we really have achieved something spectacular over the past year. Through the efforts of the team, and everyone
who tested, and indeed played JC2-MP, we've managed to bring amazing gameplay experiences and push the frontiers of multiplayer games today. It is with this spirit in mind that I invite you to join me on a retrospective of our past tests, and perhaps some hints as to the future.
0.0.11st July 2012
With any great project, there's always a notable beginning. 0.0.1, our first public test, was one of those things; while it was meagre by today's standards, it validated the concept of JC2-MP and proved that something as insane as a multiplayer action sandbox could work.
The test was fairly limited in scope; it was a late night (for Australians) event, and was an impromptu test of the original JC2-MP functionality. There were extensive crashes and issues; but that didn't stop us from getting 91 players for a short, mostly unplanned test.
0.0.24th July 2012
Our second public test took on an exploratory tone. In the three days from the first test, we managed to quickly fix and test many of the issues that had been discovered, giving us the opportunity to rapidly introduce new features and vehicles.
In this test, several new features were introduced, including proper vehicle theft and a passenger system that allowed for multiple people within a vehicle. The combination of these new systems and many new spawns unveiled new bugs and sync issues, including some curious issues (multiple people could be driving the same car).
Despite these issues, many people came through for the test, with a peak of 251 players. People were quite pleased with how the test was going, which encouraged us to keep going. Ironically, the test also demonstrated the catastrophic effects of having other JC2 mods installed, with entire swathes of the server crashing due to a single client running unsupported mods.
0.0.37th July 2012
This test was where our practice of running multi-day tests began; when looking back at it, our reasons for continuing with running lengthy tests are quite obvious. With this test, we chose to announce the test early so that we could get more players, and it paid off - in thirty seconds, we had 300 players, and it peaked with 650 players at once.
This huge success led to us running it for 72 hours straight, with a steady player count of 200 or above at all times (with the exception of client/server updates). This showed us there was a real demand for JC2-MP, and with that in mind, we continued to work on it.
0.0.415th July 2012
Ah yes, this test. Quite possibly one of the most notable we've ever had; it's also a test with personal significance to me, as it was when I joined the beta team. Twenty minutes into this test, we had reached a soft player cap of 1,000 players - something that nobody
had anticipated. Our server showed amazing stability characteristics, handling the player count admirably.
With this test, we introduced a gameplay constraint that has been in place to this day; the disabling of stunt-position hijacking. We felt this was a necessary step to take in order to shape JC2-MP into something worth playing; while it had its drawbacks, it was generally a positive move. In the process, however, it exposed the strength of weaponized vehicles, especially helicopters, which led us to focus on on-foot weapon sync.
0.0.529th July 2012
0.0.5 continued the success of the last test and brought in new changes to the technical backend to JC2-MP. Agents (other players in your game) were refined to act more like Rico, paving the road for further synchronization. Within 30 minutes, we reached our previous record of 1,000 players on the same server, and then proceeded to reach a peak of 1,320 players, setting a brand new record.
Over the 24-hour period, we averaged 800 players online at a time, with a total usage of 526GB of bandwidth and 10,505 unique players.
0.0.611th August 2012
This particular test has the honour of being our most successful test of all time; in twenty minutes, we crushed our 1,300 player record, and peaked at 1,800 players soon after. However, this player count brought light to a limitation within the server and client that required updates, preventing us from getting a player count above 1,600 again.
This test brought in some very exciting features, including on-foot weapon sync, animation sync, vehicle mounted gun sync, standardized weapon damage, improved player sync, and new spawns. With this in mind, it's easy to see why the test was as successful as it was - 22,420 unique players died 383,875 times, resulting in ~2.2 deaths per second.
0.0.77th September 2012
As JC2-MP is a labour of love, real-life intervened and rendered the team incapable of working on JC2-MP for an extended period of time. With a month between the last test and this test, the changes made were quite numerous; weapon accuracy and sync was improved, more vehicles had passenger seats added, the health-bars were tweaked, many bug fixes were made, and most notably, a basic server-side Lua scripting system was added.
Unfortunately, these changes resulted in a catastrophic effect on server performance. Over the first half of the 48-hour test, Trix spent an extensive amount of time trying to investigate the cause of the poor performance of the server, and managed to isolate and resolve it. This showcased potential improvements within the server, giving us something to target.
Statistics-wise, 0.0.7 gave us some interesting facts; the server peaked at 1,600 users, with a total count of 21,322 unique users joining the server over 48 hours. There were 223,704 deaths, with an average of ~1.29 deaths per second (looks like people learnt how to play the game!
). With fixes in place, we decided to run a test soon after.
0.0.815th September 2012
This test, as planned, was supposed to run for 48 hours. Featuring crash fixes and greatly improved server performance, it was a refined approach to the features we had begun to implement in the last version.
Unfortunately, the server was hit by a large DDoS attack that resulted in the test being cancelled. After the DDoS subsided, we brought the server back up and completed the test, giving us enough data to improve JC2-MP.
0.0.912th October 2012
With this test, we welcomed in much improved player and vehicle sync through a complete rewrite of player sync code. A more intelligent system, designed specifically for JC2-MP, was brought into play, allowing us to synchronize vehicle stunt position and set the groundwork for future development. Additional sync was also brought in, including weather, time of day, and vehicle steering sync.
The test worked quite well, and we managed to get important data crucial to improving JC2-MP out of it.
0.0.1024th November 2012
This test heralded in a few major changes; the most major of which was the entity streaming system, which controls who sees who. With the rewrite, many bugs were fixed, resolving many of the desync issues that were present in the previous tests.
Several new features were added, including checkpoints and instanced worlds. The latter feature was tested with the Derby script, added near the end of the test; players in the derby were isolated from the rest of the server, allowing them to escape the wrath of the G9 Eclipses
There were 10,687 unique players throughout the server, and 133744 deaths resulting in an average ~0.76 deaths per second.
0.0.112nd February 2013
This version of JC2-MP marked the beginning of a considerably longer development cycle with a focus on preparing JC2-MP for release. In late November, I was brought on as a developer to work on both the client and server. As a result, a considerable number of features were added and implemented, including, but not limited to, clientside Lua, a GUI system, a multitude of scripts, many, many bug fixes, and much, much more.
This test brought in many new scripts, including dreadmullet's Racing, Trix's Derby, and my freeroam, local chat, nametags, speedometer, killfeed, and factions scripts. As a result of the long development and many new features, this test had a fair share of issues; but with concentrated work, we were able to fix many of the short-term issues and resolve many of the larger issues later on.
0.0.1220th April 2013
0.0.12 marked a shift in our development methodology; while we had previously been allowing people who had not legally purchased the game to play, we utilized a brand new Steam authentication system to ensure that anyone who plays JC2-MP owns a copy of JC2. Many new bugfixes and features were added, including fixed time/weather sync, nick autocompletion, a loading screen, a new launcher, a serverside database, and many more bugfixes.
Our Steam authentication system worked quite admirably; while there were issues with authentication at first (as it was the first large-scale test we had conducted), we managed to quickly resolve them and move past the obstacles at hand. With the majority of the issues resolved, we decided to extend the test by a week to allow more people to play; by the end of the nine day period, we had over 700,000 player deaths.
0.0.1329th June 2013
Our latest test involved some large changes to gameplay to get JC2-MP much closer to release. We brought in the single-player aiming system that greatly improved hitsync, removed infinite ammo, and re-implemented name changes with our authentication system. There were many other back-end changes made, including the removal of CEGUI (our previous GUI system) to be replaced with GWEN (our new GUI system). However, in order to do this, we had to replace our internal renderer with one based off Direct2D, a Microsoft rendering API.
The test didn't go quite to plan; our 48-hour test was fraught with FPS issues from the new renderer, and about 16 hours in, we were rudely interrupted by a DDoS that ensured that we couldn't host a server. After cancelling the test, we went back to the drawing board and investigated possible solutions; soon after, we found a new server with basic DDoS mitigation, allowing us to continue the test until the end.
Many of the issues experienced during the test were easy to track down, the most evident of which being the renderer. With all the data we gathered, we should be able to resolve the issues at hand.
So now that you've read through our history, what about the future? Well, I can tell you this: it's going to be awesome. We plan to resolve as many of the issues from 0.0.13 as soon as possible, and run a test at our convenience. Some of you may have noticed that our latest test made some very important gameplay changes - there is a very good reason for this.
We are hoping to release JC2-MP within the next few months, client and server included, so that anyone can host a server and play. It's been a long time coming, but we want to make this the best possible mod it can be. We'll bring you more information as we get closer to release.
I'd like to end this with a grateful thank you
to everyone involved in this mod. That includes the rest of the dev team, the beta team, and of course, every single one of you - without you, this mod wouldn't be possible. Thanks for taking us this far - with your continued help, we'll go even further.