As noted in our last blog, work is progressing on IVAC2, adding some additional small features and improvements. However, we recognise that many of the “big” features we want to add are impracticable or impossible to add without changes to the underlying server infrastructure. So that is what we are now working on!
Current servers run using the FSD (Flight Simulation Daemon) at their heart, which is a protocol and server software that was first designed around 20 years ago. It has stood the test of time really well, and whilst it could be extended and adapted, we feel that the time has come to move to a more modern server architecture that allows far more flexibility in the clients which are connecting to it.
One of the things we are particularly mindful of, is that with a complex server environment any little change to the software can have potential unexpected consequences with a very large number of simultaneous connections. Bottlenecks, or even “Deadlocks” can occur which are not immediately apparent under the typical testing scenario of a handful of clients connecting to the network. Naturally we are unable/unwilling to expose the operational network to any risk of instability due to testing server changes, so we have our own test network environment now operational which we can trial server software changes.
But how do we test with thousands of connections to make sure that no unexpected consequences occur when things get busy?
This is where we can use our Artificial Intelligence capability to generate realistic traffic on the test network. Unlike the previous HAL which was used on the IVAO training server, our new AI allows realistic flight schedules, flightplans, routes including SIDs and STARs, and various other enhancements. We are using multiple IVAC2 connections to test interaction with ATC; the AI has the capability to understand the CPDLC messages generated by IVAC2. In the near future the test environment will be extended to also include AI ATC so that we can better test the interaction between large volumes of pilot and controller clients.
We have already had the server running with in excess of 1000 AI pilot connections, and can use this as a benchmark to test the performance of the servers before and after any changes.
Here is a screen-shot from a recent test session with the AI traffic, arranged with the generous assistance of controllers from the United Kingdom data-preparation team:
In the near future we will be opening-up access to the test server to members of our DP teams, so that they can better test their FIR definitions, particularly the behaviour of labels, with realistic traffic.
The other reason we need to change the server infrastructure is to enable the many new features that we want to add in to the new pilot client, which we are now working on.
Our aim is to produce a pilot client that is cross-platform (Windows/Mac/Linux), cross-simulator (FSX/P3D/X-Plane), and should use dynamic models which can be download on-the-fly rather than needing a huge library downloading/installing at the start. We are aiming that it should “just work” rather than requiring any complicated or time-consuming configuration, in much the same way that IVAC2 works by downloading data prepared by local expert users so that everything is automatic in normal use.
This is by no means a simple or quick task, and will inevitably involve significant changes to the MTL as well. As some may have noticed, the current MTL models do not work properly in P3Dv4 as that sim no longer includes support for the old-format models that were included in Microsoft FS9. There is no simple conversion process, even if permission was given by all the individual copyright holder of the original MTL FS9 models. Part of our work will be in creating the various infrastructure and tools needed for a community portal used to maintain the models and re-paints (in much the same way that the Data Preparation portal allows FIR teams to contribute radar data).
We have a busy time ahead of us over the next few months. We’ll try to bring you occasional updates, progress-reports, and screen-shots when possible!