Any interest in testing the original/new PXO?

I'm not sure if anyone really cares at this point, but most of the original PXO has been ported and updated and is currently online. The tracker side has been done for a while but is probably ready for more heavy testing than what I can do on my own. The website is something that I'm rewriting from scratch, and while it looks like complete crap, the basics are working (except SquadWar, haven't gotten to that yet).

It works with the retail releases of Descent 3, FreeSpace, and Freespace 2, as well as the current icculus.org version, for which I'll provide source and/or builds for Windows and Linux as needed. The GOG and Steam releases may work, I haven't tested them to see if PXO is still in those.

So if anyone is interested let me know and I'll get things ready to test this week.

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. <MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".(the very next day)<MageKing17> this ****ing code did it to me again<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."<MageKing17> **** ME<MageKing17> THE REASON IS PEOPLE ARE STUPID<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"(...)<MageKing17> so<MageKing17> more than two hours<MageKing17> but once again we have reached the inevitable conclusion<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

Re: Any interest in testing the original/new PXO?

Not counting SquadWar, did the original PXO have any features that fs2netd does not?

Design wise, definitely. All traffic is UDP vs TCP which FS2NetD uses, and it runs through psnet client-side just like regular game traffic. This means it doesn't require any extra ports, and is pretty firewall friendly. All a client should need to do is start the game, connect in, and start playing. Creating a game or running a standalone is the only time that port forwarding should be necessary, and then it's just a single port. There are some internal differences with regards to traffic validation and what not, but nothing big.

Basic feature wise I think that FS2NetD has the bases covered. SquadWar is the only real part that's missing, but even that is mostly html and database trickery rather than a client or tracker thing. The PXO code (client and server side) basically just records the score from a game. All of the magic is just in the website. That's why getting PXO up and running again isn't a big deal, FS2NetD works and I assume that SquadWar support there isn't too far off.

I guess that only real 'feature' of PXO over FS2NetD at this point is that it supports the original retail releases for Descent 3, Descent: FreeSpace, Freespace 2 Demo, and Freespace 2.

Re: Any interest in testing the original/new PXO?

If you got in touch with the remaining D3 server ops, they might be interested in helping you out too. I'm not sure it'd serve much practical purpose, since the community's been using their own server tracker(s) for a decade now, but might be worth a shot.

Re: Any interest in testing the original/new PXO?

If you got in touch with the remaining D3 server ops, they might be interested in helping you out too. I'm not sure it'd serve much practical purpose, since the community's been using their own server tracker(s) for a decade now, but might be worth a shot.

Yeah, that's on the todo list after things are in a more complete state. D3 is tricky anyway due to the hardcoded URLs, and I don't want to discuss anything with them unless it's 100% ready to use.

Re: Any interest in testing the original/new PXO?

The tracker is up and going already but I need a day or two in order to get the website ready to go live. I've only been working on the website since this past week so there is a lot missing, but I need to at least get some extra security measures in place before making it public.

So hopefully it will be online late tomorrow, maybe the day after. I'll post here with all the details when it's ready.

Re: Any interest in testing the original/new PXO?

The website should be up now if anyone wants to go ahead and register. It's very, very early in the development of the website though, so some stuff is missing, some stuff is broken, and it looks like ****. What should work fine is logging in, logging out, registering, and viewing & verifying your account. Rankings should also work. When you register you'll get an email with a link to validate your account. Until it's validated you won't be able to log in to the tracker or chat server. If you don't get the email, or the link doesn't work, email me at [email protected] and I'll set it manually.

I'll get some builds and source for the icculus.org version posted later today, but you should be able to try it out with the retail version in the meantime if you like.

After extracting one of the zips just copy the retail VPs into the directory. The filenames will conflict with the retail version, so don't put them in the same directory. These builds are not compatible with any FSO VPs, configs, or options.

freespace2.exe is the launcher. Using it is not required, but will be easier to copy/paste your PXO credentials in there than in game.

fs2.exe is the game binary. It is perfectly safe to run this without having used the launcher first since it will set all config defaults automatically. The debug build will default to windowed mode, the release will default to fullscreen. You can use the GUI + f key combo to toggle between fullscreen and windowed modes (Windows 10 may screw this up). Another key combo in the debug build that switched modes is ~ + F3. The graphics code will try to init with OpenGL ES 2, then fall back to OpenGL 1.x if that fails. The GLES2 renderer looks a little better, but doesn't have much of a performance difference.

fs2standalone.exe is the standalone server GUI. This is only needed if you want the normal GUI. Using the -standalone cmdline option with the fs2 binary will start standalone without a GUI, making the web interface available on whatever port the standalone is running at (default: http://127.0.0.1:7808). The web interface requires no external resources nor does it make any external connections.

Re: Any interest in testing the original/new PXO?

If you are building on Windows you will also need: https://pxo.nottheeye.com/files/test/Support.zip (112 MB)Extract the support zip at the same directory level as you extract the source tarball. It has all of the extra libs, dlls, and headers that you should need, and cmake will locate them in that location by default.

To build you need CMake 2.8+. The build directory should be freespace2_src/build/.

For Linux you will also require development packages installed for wxWidgets 3.0+, OpenAL, libwebsockets 0.6+, and SDL 2.0.5+.

Re: Any interest in testing the original/new PXO?

Still working on this, but life happens and things get delayed. Bunch of updates on the way but I don't have an ETA for when the new stuff will be available. Too many backend and build issues holding things up. SquadWar will still be disabled in the next site update, since it's taking too long to get some things situated, but it's around 75-80% complete at this point.

Mouse wheel to zoom, or double-click to zoom in and shift-double-click to zoom out. Click and drag to pan around. I know it doesn't work properly on mobile yet, but it will by the time it goes live (whenever that is). If it doesn't work on the first page load please reload it and try again. It's all hacked together to work without the dev site so it's a little extra flaky.

Re: Any interest in testing the original/new PXO?

Caching is disabled the way that the test is served. I think that the svg is forced to load from the server every time whereas the html/css/js ends up cached by the browser (in memory at least). I had to bypass some stuff to get it to work at the moment, so hopefully that's the only reason it's messing up. The real version should be cached properly.

Re: Any interest in testing the original/new PXO?

It should work in most recent browsers. Download is ~25 MB (~40 if no compression for some reason). 99% of that should be persisted, so you shouldn't have to download it each time. There is still a bit of work to do before it can be put into the main site, but the port itself is basically done.

Known issues

When trying to start the demo after the first time, existing pilot files may not show up. It waits until sync is done before ever getting to the pilot select screen but sometimes things just don't work. Reloading the browser tab will generally fix it.

Exiting the demo doesn't release memory correctly. This is supposedly due to the Emscripten port of SDL2. So play in a new brower tab, and close the tab when you're done in order to reclaim the memory used.

Touch events are still not supported. So it will load on a mobile browser allowing for play on phone/tablet, but a keyboard and mouse are still required.

Some keyboard keys are caught by the browser/OS. So depending on what your playing on, function keys may not work in-game, for instance. Fullscreen can also be tricky so it's recommended to just play in a maximized window instead.

The mission loading screen doesn't work properly. It will appear to hang, very briefly show as loaded, then you're at the briefing. It loads everything out of RAM however, so it should be pretty fast.

The FS2 demo port is also done, but wth 2.5x the download size and exactly the same bugs, I'm only testing FS1 for now.

Unrelated things:

The PXO website has been updated a bit. Basically the same on the surface, but a TON of work beneath. It should generally work better now and the groundwork is in place for future features. And emails should be far less likely to end up as spam too.

A majorly updated games section is the primary focus right now. New builds, better documentation for self-building, updated documentation in general, new design/update for the icculus.org freespace2 project site, ability to view active game servers, etc.

After that I will be adding PXO support for/to FSO. The current plan is to abstract the tracker code away so that both FS2NetD and PXO are supported.

And a long the way, more SquadWar work. About the only thing missing right now is challenges/matches, more work on the admin side (lost a lot in a drive crash) and squad forums. "Forums" (really just messaging) will be pretty basic but will allow squads to have internal discussions, discuss things with other squads, and be used to help recruit new squad members. Unlike the old PXO, email addresses will not be made visible so the forum is intended to fill this gap.

Re: Any interest in testing the original/new PXO?

Cool stuff, although I was wondering, is your SquadWar work separate from chief's port of the SquadWar server to PHP? I was working on FSO-side support for his server, specifically validating matches before they take place and automatically reporting the results of matches using a RESTful API powered by Boost Asio. I got it like 98% complete but never figured out exactly where was the right spot in the netcode to report the results and handle invalid matches.

Are you interested in work on the in-game netcode as well? I still have some interest in that and have made good strides on getting to grips with some core components of the netcode like the object update code (multi_obj.cpp) and the low-level netcode (psnet2.cpp) and have some ideas for experiments and possible improvements, but I guess we first need to understand where the poor performance is coming from. I guess all of that stuff is out of scope for this thread though.

Re: Any interest in testing the original/new PXO?

Yes, my work is separate. It's based on the same Volition code but that's about it. The client-side tracker stuff is just ported from the original code, the server-side tracker code (C/C++) is a rewrite of the original code, and the web stuff is all new (node.js/Express) but based on the basic functionality of the original ColdFusion code.

I haven't really looked at how much of that client code is currently in FSO so I'm not sure if this will apply to you. There are only two functions that are called from outside of the squadwar/tracker code: multi_sw_ok_to_commit() and multi_sw_report(). The first is called near the end of multi_create_ok_to_commit() in multiui.cpp and the second is called in multi_debrief_accept_hit() and multi_debrief_esc_hit(). At least that's what I found anyway. Feel free to email/PM me and I can send you the actual code if you need it in context.

And you are on my TODO list btw. I plan to get with you once I have my full requirements list done, but before coding actually starts. It should benefit everyone to have a standard API for that stuff.

Improving the netcode is a bit out of the scope of what I'm working on since I have to maintain retail compatibility, and I don't really have the time to devote to FSO anymore. Bug fixes are another story but I haven't found anything obvious yet. I have thought about beefing up the old demo recording code in order to run multi simulations and test for issues but I really haven't had the time to deal with that. I did the same thing many years ago to do valgrind testing: play a mission while recording it with the demo code, then repeatedly play it back under valgrind to find problems and test fixes.