ACE v1.0b
Posted: Wed Nov 16, 2016 11:54 am
AnthraX Wrote
*** DISCLAIMER ***
This is a test build. It works fine for some people, but does not work at all for others. Please test this thoroughly before using it on public servers.
*** STATUS UPDATE/BORING TECHNICAL DETAILS ***
As you may have noticed, I've had some time to work on ACE recently (after a 5 year hiatus). Lots of things have changed so I want to start with a status update first. If you're not interested in the status update, then just scroll down to download the v1.0b package but install it AT YOUR OWN RISK!
You may remember that pre-0.9 versions of ACE were plagued with connection issues. People playing over WiFi or connections with packet loss were particularly impacted by this. This was not easy to fix because ACE's communication requirements don't fit nicely into Unreal Engine. To fix the problem, I designed a new networking layer that was separate from Unreal Engine. This new layer was stable in v0.9e, but that version had some new issues, which is why it was never publicly released.
The biggest problem of all was (and is) getting ACE to work well with the Linux server binaries. The Linux server binaries were built using some very old tools (gcc 2.95) and the only way to get ACE to work on Linux servers is to build it using those same tools. GCC 2.95 has a lot of known bugs and it lacks a lot of useful features (no sanitizers, no stable C++ support, ...), which makes it very hard to create a stable version of ACE for this platform. As a (hopefully temporary) solution, I've split ACE's server side into two components: the "Player Manager" and the "Connector". The Player Manager contains the bulk of the server-side logic. It runs as a separate program, which is why I can build it using modern tools. The Connector is a small library that takes care of the communication between the game server and the player manager. This component runs inside the game server process, which is why I have to build it using the old tools. This solution is ridiculously complex, but it has the advantage that it should be relatively easy to stabilize ACE's server side. The down side is that some game server providers might explicitly prevent you from running additional processes alongside the game server.
The current server side does not seem entirely stable yet. I have not been able to pinpoint the exact problem. Some of the testers have submitted logs in which the player manager and connector stop communicating, causing ACE to be disabled for new players that join the server. This might be an issue caused by XC_Engine, but we need more testing to confirm this.
Update: This was not caused by XC_Engine. I think I have found the cause of this problem and I'm internally testing the fix.
The client side luckily has none of these problems. The new client comes with lots of bug fixes, performance improvements, compatibility fixes, and new protection features. It seems perfectly stable.
*** PLANS ***
The immediate plan is to stabilize the server side components. They seem perfectly stable when I test them internally, but some of the testers are reporting issues.
Mid-term, I really want to merge the server components back together, but this will not be possible unless we get updated server binaries. I've asked Epic for this. Last time we spoke, they said it might be possible. More news about this soon (hopefully).
Finally, the plan is to gradually open source all of the non-security critical components. Some components have already been open sourced (GitHub link available upon request). I've also given Higor (the creator of XC_Core/XC_Engine) access to the NPLoader source code.
*** CHANGES ***
A lot of things have changed since the last official release. The most notable changes are:
- New networking layer. This one works better for players with bad connections.
- ACE now stores its client-side settings in ACE.ini and remembers its settings even when the client gets updated.
- The file whitelist/blacklist is now a plain text file. This means that server admins can now allow new renderers themselves, without having to wait for me to update the official list.
- Support for Windows 10
- Support for TO 3.40 (untested! might require a filelist update)
- ACE can now check up to 255 UPackages
- Fixed a lot of false positive detections
- Added several new protection/detection routines
- ACE now supports checking of skin textures (you really have no excuse to still run AnthChecker now!)
- ... and of course, a whole slew of bug fixes and performance improvements
A full changelog will be made available at http://utgl.unrealadmin.org/ACE/changes.txt
*** INSTALLATION ***
Basic installation instructions can be found in the INSTALL.txt document which is included in the ACE package.
*** CONFIGURATION ***
An overview of configurable settings is available in the SETTINGS.txt document which is included in the ACE package.
*** KNOWN ISSUES ***
Server-side stability: Some of the testers have reported stability issues on the server side. These issues might be caused by XC_Engine.
Update: This was not caused by XC_Engine. I think I have found the cause of this problem and I'm internally testing the fix.
Installation Issues: Some other testers have reported issues installing the server files. These are caused by outdated system libraries. Please note that you will need glibc 2.15 or later on Linux. Linux distributions released before 2012 might have older versions of glibc.
Timeouts during check spawn: Some people have reported timeouts that are caused by ACE using the wrong network interface. To debug these issues, please add the following lines to your server.ini:
*** DOWNLOAD LINK ***Code: Select all
[ACEv10b_S.ACENICHelper] bDebug=1
http://ultut.in/ut_files/server_si ... CEv10b.zip