General
Having worked all my life in industrial simulations, powerplants and hydraulic systems, and now heavily into digital twins (made several in the last years, of entire plants), flight sims have of course always interested me. In principle what I do with powerplants is exactly the same as X-Plane do with aircraft. The goals and customers are obviously very different, but the core of the matter: simulation of physical processes using digital models, is the same.
However, my experience with flightsims is a little odd perhaps. Somehow I always seems to find something I "have to fix", and end up heads down into a rabbit hole. The only sim I actually played the way it was meant to was Warbirds in the middle of the 90s. After a couple of years, the company split up into 3 different entities, and I never got back to it except tried Aces High a few times.
X-Plane and a working Onex
Then came X-Plane. The good thing about X-Plane is it's made for "fixers". I made a few apps for X-Plane many years ago. One for making airfoils in X-Plane using XFOIL and JavaFoil. XFOIL has no relation to X-Plane by the way, except similar names. This application was called FoilTrans and probably still exist somewhere out there on the internet. I made the first real-weather application for X-Plane as well as a proper joystick scaling apps. Both functions are since long been done natively in X-Plane now, but that wasn't the case before. I even made a terrain following system at some point, but it was immediately made obsolete when the new terrain graphics model came in X-Plane 8 I believe (or perhaps 7?).
I also made some airplanes there, one of them a Onex :-) The reason I made it was to see how twisted my wing have to be before noticing it in flight. I was afraid it had twisted when I made it, LOL. The conclusion was that it would considerably twisted to be noticeable, and nothing rigging wouldn't correct anyway. I later measured it with laser, and found it was hardly even measurable after all :-) I only made the plane so I could fly it. The aerodynamics etc and the engine is as good as I could get it. The skin and panel is rather miserable though.
The files can be downloaded in a zipped file here. This is updated to X-Plane 12.0.8. There are two .afl files there. These are the airfoil files and must be placed in the normal airfoil folder in X-plane, or it will not work.
The other reason was trying to figure out the pitch on the propeller for the ULPower engine. Prince at Prince Aircraft Company had a pretty good idea of what the pitch should be when I gave him the numbers of cruise speed, HP, RPM etc. However, I had to be more sure than that, and ended up with more or less the same numbers using X-Plane. When knowing what to look for, then X-Plane is a very fast and fun way to get the answers.
It's also a bit garbage in - garbage out, so isolating what you are looking for, focusing on derivatives rather than absolute values is a good idea. That means that the top speed of an aircraft is hard to predict accurately for instance, but the variation of top speed with respect to RPM, given other variables are constant, can be predicted with reasonable accuracy. The reason for this is the physical first principles approach X-Plane uses in the flight model. All engineering tools work that way. Absolute numbers may not be 100% correct (unless they are tuned to measured values, as you typically would do when recreating an aircraft and have the numbers), but the overall behavior is right, spot on I would say.
Il-2 and DCS
I like Il-2 best, because the aircraft there behave more realistic compared with DCS (the WWII planes in DCS are just laughable). Il-2 is also simpler to use. Flying those WWI and WWII fighters, and bombers, in Il-2 is a pure joy. They also have a glider there.
DCS on the other hand is several levels up in the fidelity category, all the systems and buttons are modelled, and it looks a bit nicer, rather stunning at times. DCS is way too complicated for me to have any fun with playing it as a game/sim however, so I end up mostly just trying aircraft, making short flights. My son is much more into it. I guess you have to have a young brain to learn all the weapon systems and procedures, and then remember all of it for more than 2 minutes :-)
I complained to him that all the modules in DCS are very expensive. He then told me I should purchase the modules when they are on sale, which they regularly are. This I have done, and over 3-4 years I have ended up with every single module in the sim, many of which I have never even tried :-)
Another interesting part about DCS, it's a bit like X-Plane. You can even make your own aircraft there also. However, it's essentially more of a study in Lua scripting, 3D graphics modelling and "from scratch" low level flight-sim flight modelling, than what I would describe as modelling in an engineering sense. From a practical point of view, this means you have to re-invent the wheel, which is probably why new modules for DCS takes a decade to make by the looks of it. It is indeed, more or less fully open ended however, much like X-Plane. This makes it very interesting in my book.
MSFS 2020
I have never tried MSFS 2020. I remember how poor the flight model of the old MSFS was when compared with Warbirds, and as I understand, MSFS 2020 still use the same approach. For GA, I have real aircraft anyway, and except hopping around in X-Plane with the Onex from time to time (all the time the real one is still not finished), I find no urge for any other civilian sim. I certainly have no urge to fly straight and level looking at digital landscapes, no matter how nice they are. In my book MSFS 2020 is merely an odd way to look at "Google Earth".
Joysticks
A year ago I bought a set of more expensive Joystick, throttle and pedals. I had previously only used cheap simple stuff. I thought it was good enough at the time, but for a bit more money, the quality is on a whole different level. The stick is a WinWing Orion 2 with F-16 handle, and the throttle is also from WinWing and is called Orion 2 as well. It has F-18 handles (two separate throttle levers). "The highest button count in the industry" was the PR slogan for the setup. The rudder pedals are VKB T-Rudders.
I really like the rudder pedals. The ergonomics are perfect when sitting at the usual PC desk with the normal PC chair, and it's all metal and very professional looking. I tried some Thrustmaster pedals, but couldn't use them due to poor ergonomics. The problem with the VKB rudder pedals is the lack of brakes (toe brakes). There is no way to mount toe brakes in an ergonomic functional way. The reason is perhaps not all that obvious. In an aircraft, the chair is fixed to the floor, and kicking rudder is done by moving the knees (not only, but still). This will be impossible if the chair is not fixed to the floor, and preferably the feet should be elevated more than in a ordinary office chair. The pedals have to be firmly fixed too of course, which is perhaps even a bigger problem at a normal desk. Going the route of adequate chair and desk setup, is just too much for me. It will require a separate rig that can be used for nothing but flight sim (well, maybe some day :-)
Another way of designing brakes is as a lever on the joystick. This was used in Russian WWII fighters and also in most British aircraft. The key to this was that the brakes was mixed with the rudder. Applying brakes and left rudder at the same time will apply increasingly more left brake and decreasingly less right brake with increasing brake force. Full differential brake control can be had also with this method, which is essential for taildraggers with free swiveling tail wheel for instance.
Il-2 has all this modelled as default. If you happen to have toe brakes, you can use that, but if you don't, no problem, just use the other method. In DCS, the "fidelity requirement" prohibits this. Aircraft with toe brakes have toe brakes, and aircraft with hand brake have hand brakes, period. X-Plane also don't have any way to set up hand brake - rudder mix, which is odd but a fact.
"The highest button count in the industry" works well for DCS and X-Plane, but not for Il-2. Il-2 can only handle 64 buttons, and the throttle has a whopping 111 buttons. It is possible to put both the joystick and the throttle in what is called 4*32 mode in the joystick software. What this does is to divide the controller into 4 units with 32 button each. This is the "standard" Windows configuration, 32 buttons is the max number of buttons recognized by Windows. Most software can however handle 128 buttons on one controller, but not Il-2. Why 64? no clue. For the WinWing system, going to 4*32 button mode also removes some functionality, so it is really not a good way to go.
But then there is another limit. Il-2 can handle only 8 units. 2 times 4 + rudder is 9, so this wont work either.
I was not satisfied with this. I wanted full rudder-brake control and all the buttons. This had to be fixed. I then ended up in yet another rabbit hole :-) The solution is however rather nice, as this problem is something very clever programmers have entered into long before I did. It's solved in software, and with lots of added goodies that opens up unlimited possibilities. 2 or sometimes 3 pieces of software is needed for this. When that is installed you have full control and can do lots of additional cool stuff.
vJoy
vJoy is one necessary piece of software. There are some versions of it around (google it). I use this version, and it works just fine on Windows 11. Download the "Release" on the right side of the page.
What this program does is to make one or several virtual joysticks and install them as if they were any other physical joystick. Windows and all other programs will see them as physical input devices and use them in the normal fashion.
These virtual joysticks can be configures as needed. However, these virtual joysticks will not do anything by themselves. They need some input, and that's where the other necessary piece of software comes in.
Joystick Gremlin and Joystick Gremlin Ex
Joystick Gremlin can be found here. This is rather old. It uses older libraries and an old Python, it will not work with my plugins (further down). Just download and install it though. It looks like the newer version, Joystick Gremlin Ex, needs it to be installed, but I'm not 100% sure. The Ex version is fully up to date, lots of bug fixes and much extended capabilities, and much faster as it uses new Python. This you just have to unzip into a folder on your hard drive (not in any of the Windows system folders though). Joystick Gremlin Ex can be found here. Download the Release on the right side of the page.
This software does a whole lot of stuff as explained in the help file. For the purpose here, the main function is to map axis and buttons on to a virtual device, created by vJoy. It creates a mirror of the physical device. This enables these virtual joysticks to be used in games. It does a whole lot more though, and it's the plugin functionality that is of interest further down.
The mapping alone solves one problem, the 64 button problem in Il-2. What I did was to map all the axis and the 64 first buttons to vJoy number 1, then map the rest of the buttons to vJoy number 2. This is done without losing any functionality.
However, this creates a new problem (for Il-2, not for X-Plane or DCS due to much better joystick interfaces in general). Il-2 will now see both the physical device and the virtual device(s), and becomes utterly confused when both of them gives out signal simultaneously. The solution for this is the last piece of software.
HidHide
HidHide is also out there in different version. I use this one, as it is completely up to date. HidHide will as the name suggests, hide "HIDs", Human Interface Devices from Windows and other programs. It's fully configurable, so you can filter which program shall be able to see a particular joystick, and which program is shall be hided from.
What I did was to hide the physical throttle from Il-2. Il-2 will only see the two virtual devices instead, thus it will have all the axis and all the buttons and not become confused. For Il-2 all my problems were solved.
Now, this may seems like a lot of "hacking", lots of software and stuff. But once set up, it really is completely transparent. HidHide and vJoy starts with their configurations automatically when Windows starts. The only thing that needs to be started manually (at least that's how I do it) is Joystick Gremlin Ex. Everything can be re-configured at any time.
I cannot guarantee that any of this will work on your PC, or that it will not mess up your PC or anything like that. All I can say is it works perfectly for me. They use virtually no additional resources as I can detect, and there is no detectable lag or anything like that. I have a fairly new PC though.
Then onto the brake problem and other goodies.
Plugins for Gremlin Ex
These plugins I made will NOT work in the original Joystick Gremlin. They will only work in the Ex version. Probably due to older libraries of Qt and older Python not fully compatible with Windows 11, but not sure. Could be a simple bug in the original Gremlin software also.
The plugin architecture of Gremlin is really smart, but very poorly explained. It IS explained though, but in so few words, and with no figures, it is literally impossible to understand it before you just try and see for yourself how it works. Which axis and buttons you want to use are not configured in the plugin itself, but in the Gremlin software when when configuring the plugin. The plugin only creates the functionality. This is explained further down.
The plugins I have made are general and not dependent on any particular sim. Some sims have some shortcomings, others have other shortcomings.
Brake-rudder mix
This configures a brake lever of choice with the rudder pedals so they act exactly as in the Spitfire or older Russian planes. Or essentially as the brake system in Il-2. This enables me to use (the truly excellent) VKB rudder pedals and still have full differential braking. This is essential for free wheeled taildraggers. Important/essential for some free wheeled nose wheeled planes, and more or less unimportant for nose wheeled planes with nose wheel steering.
This plugin is essential for German and US warbirds in DCS, and in general for X-Plane. Il-2 has, as mentioned, all this implemented by defaut.
Magneto-fix
In DCS some planes have the standard magneto switch with OFF, 1 (left), 2 (right) and both. Unless you have a physical 4 way switch, this is impossible to implement in any meaningful manner using other buttons. The other way this is done (physically) is by using two two-way switches (as in many GA planes). There's no 4 way switches on the Orion 2, but a whole bunch of 2 way switches. The physical logic is exactly the same though. It's just two mags/ignitions that are independently turned on or off. What the plugin does is to remap the 4-way switch to two two-way switches using simple bit logics.
This plugin is essential for all planes in DCS with a 4 way magneto switch (and you don't have one on your controller). Unimportant in X-Plane because it already has the choice of both, and irrelevant in Il-2 because there are no human operated mag switches implemented.
Encoder to axis
Many throttle setups have these encoders. These are stepped rotating switches that can be rotated indefinitely. The function is to give a button press signal for each step. The same kind of encoders can be found in many EFIS'es and other avionics and radios. They usually also have an ordinary button functionality by pushing them down. The joystick software usually have the ability to reconfigure these as an axis, but not always. On the Orion 2 there are 4 of these, but only one can be reconfigured to an axis because there's only one axis left (only 8 axis in total for any device). An axis instead of an encoder is often much more practical, and will certainly increase the possibilities for what these encoders can be used for.
I have made 3 different version. One is the basic version. It is essentially equivalent to the one in the joystick software of WinWing. Each step will move the axis one increment. The size of the increments is configurable.
The second one is equal to the first, but where the push button will reset the axis. The reset position is also configurable.
The third is equal to the first, but where the push button function is an amplifier. Pushing the button while turning will produce larger increments than not pushing it. Both pushed and un-pushed increments are configurable. I have also made it so that it mimics the degrees in a circle, for heading or course settings. Each step is by default 1/360 of the axis throw, or one degree. Pushing the button will do 20 degrees for each step. I have not tried this one for heading/course setting, so I don't know if this "mapping to degrees" really work in practice. It main functionality will work regardless though, only the scaling will then be a bit odd perhaps.
These plugins work for one encoder. If you want to use it for more than one, then simply copy the plugin file with a different name before configuring it in Gremlin EX. Then add as many of them as needed (they all need to have different names).
Loading and configuring the plugins
Simulation rant
MSFS 2020
War Thunder
X-Plane
Il-2
DCS
Aces High
Others
My personal opinion
- A straight out peaceful simulation of flight with good graphics : MSFS
- An arcade-ish online shooting game : War Thunder
No comments:
Post a Comment