We get in game

Written by SNBeast on February 6th, 2025.

I have to confess to two small errors of premise right out of the gate:

  1. In the title I am guilty of using the royal plural: I am currently working alone.
  2. I have reached in-game status about six months ago.

Regarding the latter, the delay to this point has been primarily due to schoolwork and other more pressing matters, but also due to the jankiness of the former setup.

Said former setup involved:

This is not a sane way to go about it: getting all the server software running in a needed manner involved hacky configurations, the HTTP server would not scale past needing to feed static responses to dynamic endpoints (like login and progress information!), and the socket policy software might not run on a Linux server in a lightweight manner. So I had to take a break and look at what others were doing.

Project Exonaut is far from the only multiplayer MMO-like game made by Cartoon Network. I had already been vaguely been familiar with OpenFusion for FusionFall from its rather unique inclusion in Flashpoint: the game cannot be played without the server software, but the server can be run in effectively a singleplayer mode due to being a proper asynchronous MMO. The OpenFusion software is not helpful for my purposes, since it handles custom protocols instead of SmartFoxServer 2X and HTTP, but I took a look at what some of its contributors were up to and came upon CakeLancelot's work. CakeLancelot has also worked on software for FusionFall Heroes (HeroesExtension) and Adventure Time Battle Party (OpenATBP). Both contained SmartFoxServer 2X extension code, so they seemed like good leads.

The latter was especially promising, looking like it was recently rather active. I therefore joined the OpenATBP Discord, read through the news channel, and found that only a month prior, they had entered open beta with a dedicated server instance.

As such, I started poring over the server source project, and saw that it would be a good base. Instead of the above mess, the repository consisted of:

So I created a new repository, whose first commit was a checkout of the present state of OpenATBP. Lest you think that this task would be some trivial derivation, it bears pointing out a few differences between Adventure Time Battle Party (ATBP) and Project Exonaut (PE):

As the project currently stands, the HTTP server fulfills basic functionality and it is the SmartFoxServer 2X extensions which is in desperate need of work. I am currently exploring routes to make collision work.