• Santiago Cuberos

Interview: DCS A-4E EFM Developer Insight with JNelson

Updated: Jan 14

As a follow-up to our review of this spectacular community creation, we got in contact with JNelson to ask him a series of questions about some of the experiences he had while developing the External Flight Model (EFM) for the Skyhawk alongside Farlander.


We hope this interview brings some insight into what goes into making an EFM for DCS, the discoveries that were made along the way that enabled some of the best additions for v2.0 of the Scooter. We'd like to thank JNelson and the entire A-4E dev team for allowing us to have this interview and for their work on this mod.


Q: Hello! We really appreciate that you are taking your time to have this interview with us. Could you please start by introducing yourself?


A: Hello I’m JNelson, one of the A-4E Community Developers. I wrote the EFM for the A-4E with Farlander. I also have programmed many requested features, a few being the CP-741/A bombing computer, radio, new Tacan and ICLS.


Q: How did you get into DCS? Have you done/been a part of any other projects prior to the Skyhawk?


A: I’ve been playing DCS since late 2012. I picked up the A-10C on steam for £7 back then and since then I’ve been hooked and now have several thousands of hours flying in DCS. The A-4E was my first DCS related project.


Q: What brought you and Farlander to the A-4E project? Did you have any previous experience with coding an EFM or was this your first time?


A: Farlander had worked with the team before to produce some 3d assets in the past, so I knew about the project. We both love the A-4E however we both absolutely hate simple flight models and thought the A-4E being SFM was a tremendous waste of potential. So rather than complaining about it we both looked into it. This was the first time for both of us creating an EFM, however I have a degree in Physics and Farlander is studying to be an Engineer, that combined with our experience in DCS and general interest in aerodynamics certainly gave us a foundation to learn the principles we needed for a detailed and realistic EFM.


Q: Which was the first step you took to create the EFM? Data gathering or did you start by researching how things work inside of the DCS framework?


A: The DCS framework is really quite straightforward. It’s essentially an interface into the DCS physics engine. The first issue was we did not have a good collection of equations to implement a basic flight model. We tried to make a basic example back in October 2019 this worked but was pretty garbage. In May 2020 Farlander found a book called Principles of Flight Simulation by David Allerton.


This had everything we needed to get going. The first step after gaining this information was to get a minimal working example which we could expand on. The night Farlander found this book I told him by tomorrow I’ll have a working EFM. All night later I had a very garbage but functioning EFM. There were all kinds of problems with this initial model but it was a base from which to improve. From here we gathered as much NASA data as possible. To replace the placeholder values I had used for the first version.


Q: Which parts of the EFM were the hardest to code? (stall characteristics, engine simulation, system simulation, etc).


A: Not necessarily the hardest thing to code but the thing we ran into the most problems with were conversions between the wind axis and the body axis. This was compounded when we went to an element based model as alpha and beta had to be calculated for each element. A good set of tests would have prevented a lot of this pain but we were doing this in our spare time and who wants to write tests. Other than that I don’t think anything was particularly difficult to implement, the primary difficulty for most things is getting the first working example to be improved.


Q: How hard was it to code the EFM while not having access to the SDK? Are there still things that cannot be added due to not having access to it?



A: This is generally a common misconception out in the community. There are very few things (if any) that stop a fully realistic implementation of an EFM. There of course limitations for systems and interactions with the DCS world however something like the A-4E can almost all be accurately simulated with the current interface we have available to us. One thing I would love ED to add would be the ability to write our own hook physics similar to the Tomcat and F/A-18.


Q: When it comes to systems the way they interact with the SFM, which ones had to be rewritten in order to make them work with the EFM?

Probably the most time consuming thing from my perspective for the early part of the project was integrating the EFM to the existing lua. A lot of the sensors and data no longer existed and had to be replaced with values from the EFM. There are other things which were completely broken and needed complete replacement, a couple of examples would be the AFCS and radio.


When these were re-written we took the opportunity to make sure these systems were as close to real life as possible. There were other systems which had to be ripped out for the system to be functional. An example of this was all the carrier work-around script. The work-around had interesting things like an invisible afterburner to get the A-4E to launch off the deck, but this had unforeseen things like the throttle being routed through the carrier script so the player couldn’t engage this afterburner. This all had to be removed and replaced with the official DCS interface for the carrier.


Q: One of the most impressive additions to the A-4E that came with the EFM was the addition of functional radios and TACAN/ILS/ICLS navigation. What was the process of developing these like? Any hurdles that you had to get through along the way?


A: These changes fall into two categories. The radio and the radio navigation.


Radio