During the years the flight simulator industry has been experimenting with different business models. 777 Studios went free-to-play with Rise of Flight and then used crowd funding in their recent Il-2 sequel projects (as 1C Game Studios). The older Il-2 titles are basically in the hands of (rather capable) modders as is another illustrious veteran, Falcon 4. One of the more interesting developments of the recent years happened when Microsoft basically pulled the rug from under a huge (relatively speaking) group of 3rd party content producers by basically ending the development of the hugely popular Flight Simulator series.
At about the same time Eagle Dynamics was getting started with an extremely interesting new concept called Digital Combat Simulator World. Basically the idea was to get rid of the constant upgrading process required to keep their existing DCS titles compatible with their new releases – note for example how there’s a product called Flaming Cliffs 3 and yes, it really does mean that you had to buy Flaming Cliffs three times if you wanted to keep it compatible first with the Black Shark and later the A-10C Warthog (or actually the DCS World at this point).
It’s always nice to see someone bump into a problem and come up with a beautiful solution and that’s exactly what happened at Eagle Dynamics. In addition to simply solving the legacy module upgrading issue the DCS World framework has potential to become one of the most important developments in the history of PC flight simulations. The platform is now available for third parties – like the ones abandoned by Microsoft – and we already have a host of modules from a number of developers and a lot more on the way.
The situation with DCS World (2.0) is extremely interesting due to its potential importance to the whole industry. In the following text I will take a look at the current situation as well as what the future potentially has in store for us and at least try to explain exactly why I feel DCS world has so much potential in it, map out the challenges ahead and estimate a bit on where the project is going. And why we might be headed for the mother of all forum wars that could completely dwarf previous battles such as the infamous Cockpit Bar brawl.
You promised me the World
Unfortunately at least form what I can tell, the software architecture side has never been the best part of Eagle’s products and the current codebase is quite old with a fair bit of legacy from the ancient Lock on -generation of simulators. Again the developers at Eagle seem to be perfectly aware of the issues and the work on a massive upgrade called DCS World 2.0. This work has continued for years now and although the projects has overshot release estimates with quite some margin by now, it’s likely to be eventually released and my guesstimate is that it’ll be (relatively) soon…ish.
Do note that when I evaluate the quality of the main codebase it is based purely on tidbits of information I’ve heard of it and the experiences of people who have for example worked a lot on missions uncovering a host of bugs and features on the way. I have never actually seen the code and even if I had I wouldn’t have the expertise to evaluate it. However, I do know something about software projects and I would be amazed if the current codebase that has been developed incrementally for over a decade wasn’t in need of an overhaul, so the new version is certainly an important step forwards even if not all the benefits are likely to be immediately obvious when you fire it up for the first time.
I can’t help but feel that the current situation in the flight simulator industry is basically unhealthy in many ways. As we all know there are relatively few hardcore sim pilots out there, especially compared to the production costs of modern games (or simulators). If you look at massively more popular games such as first / third person shooters / adventure games, role playing games and all sorts of massively multiplayer games, you’re bound to run into a few very popular game engines. Names such as Unreal Engine, Unity, CryEngine or FrostBite should sound familiar to most gamers. Most importantly, though, the number of game engines is far, far lower than the number of games. The reason is of course simple: creating a high quality game engine (even just the renderer) is a huge effort and it’s usually a lot more cost effective to simply licence one. Note that this is with games that usually have a far wider potential audience than hardcore simulators..
Now let’s take a look at a number of simulators:
- Flight Simulator X / Prepar3D: Own engine
- X-Plane X: Own engine
- Falcon 4 (BMS): Own engine (?)
- Il-2 1946: Own engine
- Il-2 Cliffs of Dover: Own engine (presumably based on the Il-2 engine)
- Rise of Flight: Digital Nature
- Il-2 Battle of -series: Digital Nature
- DCS World: Own engine
- DCS World 2.0: EDGE
As far as I know others such as the Wings over -series, Combat Helo and Flight Gear also have their own (graphics) engines. At least Rise of Flight and Il-2: Battle of Stalingrad both use the Digital Nature engine, but then again they were both made largely by the same people. It is actually hard to find two simulators made with the same engine, which means either a lot of extra work on top of an already demanding task.
This is one of the problems DCS World is already helping to solve.
I don’t actually know why simulators tend to use purpose-built graphics engines instead of for example Unity or Unreal Engine, perhaps they have some specific requirements or it’s a cost issue – although I’d be surprised if it’s actually cheaper to create a graphics engine from scratch. I will simply assume there is a good reason for it and do note that in the case of simulators a graphics engine is only a very small part of the whole. At least simulation physics, AI, systems modeling, weather and all such things are probably much more complex than graphics and sound. Generic commercial engines don’t help there at all so perhaps they’re not worth their price for simulators after all? This still leaves the question of why there are so many simulator-specific engines out there.
A few years back while writing a review on Rise of Flight I interviewed Jason Williams of 777 Studios and one of the topics we touched was the role of open source projects in flight simulation industry. Mr. Williams made a good point about competitive advantage being an important factor in the business, which could of course explain the number of engines as well – every team naturally has faith in its programmers and seeks to outdo the competition in whatever ways they can. Having worked for an open source virtual reality technology project I tend to see things more from a co-operative perspective and I have a hunch that it might be possible to find mutually beneficial ways to work towards common goals. Also 777 / 1C Game Studios have enough muscle to and interest in making a proprietary engine and turning it into a competitive advantage, whereas many others want to focus purely on making planes – which is quite evident from the popularity of the Microsoft Flight Simulator series and lately DCS World as a platform for flying 3rd party products.
Some time after the interview a community hero known as Pat Wilson did a wonderful third party campaign for Rise of Flight and Mr. Williams has been looking for someone in the community to port it (or something similar) to the Il-2 Battle of -series. I believe it could be interesting to continue the discussion and include others from the industry as well, but that’s another topic all together. For now the interesting bit is that I believe that campaigns are actually one of the things that should be done by 3rd parties or open source. Not only the usual linear strings of missions that have long been a thing for 3rd parties, but also complex dynamic campaigns the likes of which we haven’t really seen in commercial products for a while now. They can basically run outside the simulator software most of the time and it should be relatively “simple” to make an external campaign engine that has interfaces for all or most of the existing simulators. I admit that there’s nothing simple about such campaigns, but they already exist. Check out for example DCG, Scorched Earth Online War or Operation Blue Flag.
The relevance to DCS World comes from the fact that as a platform for 3rd party modules it is at least theoretically great for this kind of external projects to interface to. And if it isn’t, it needs to be one day to be successful in what it attempts to achieve. In addition to needing good interfaces for external modules a platform such as DCS World also includes an implicit – if not explicit – promise to not pull the rug from under the external developers’ feet by removing or changing stuff too abruptly. I don’t know how deep the rabbit hole of external modules interfacing goes in DCS World, but I would be willing to pay a few cents for for example a good air traffic controller module.
Ideally, in the best case scenario, a platform such as the DCS World makes it possible for a number of external developers to add to the whole by focusing on their own specific areas of interest. Lots and lots of planes, missions, campaigns and perhaps other modules I haven’t even thought of yet (please someone do an integrated speech recognition thing for radio commands please) that keep adding to the whole and eventually making it potentially somewhat awesome.
This is why I think DCS world is such an interesting product. But there’s always a but.
But did you deliver?
The big challenge in a project like DCS World is the creation of an incredibly flexible and robust software architecture that can act as a framework for the 3rd party products. I consider Eagle Dynamics strong contenders for the best flight & systems modeling in the history of simulation software, but as I mentioned earlier, I’m yet to be convinced that the general software engineering is on the level required for a robust simulator platform. Again I don’t mean to slander the work Eagle have done so far, the requirements are simply far higher now than ever before.
For example we all know how software projects tend to run a bit late and Eagle products are certainly no exception – and that’s perfectly fine when it’s all about the patience of fans anticipating new stuff to fly. However, even such common things cease to be ok when your partner’s product lingers in the abyss of perpetual beta almost forever because the platform simply hasn’t delivered on a feature like for example a multi-crewed multiplayer cockpit. Suddenly all the bugs in the code will also start costing time for the 3rd party developers as well as Eagle’s own.
To be honest there’s one specific thing I read about the DCS World 2 technology that bothers me quite a bit even if it’s just a technical detail. From the “DCS World 1.5 and 2.0 Discussion” thread on the official forums you can read this little fact:
“CPU multi-threading is not being pursued as it will provide little if any gain”
I won’t go deep into the technological details, because due to my own ignorance on the subject I would probably just get it wrong. However, simply put the usual dilemma with multi-threading is that if you have dependencies between different aspects of the software running on different cores the benefits of multi-threading are lost when the threads are constantly waiting for others to catch up before they can continue. For example video rendering tends to scale beautifully in multi-CPU environments since every core can basically focus on their own frames and not care that much about what the other cores are doing. Games tend to be much more problematic.
Even so, I would imagine that at least things such as AI, AI visibility calculations, radar calculations, pathfinding, flight models (for a number of actors) and such rather independent operations should be at least reasonably suitable for multi-threading. Rise of Flight and Il-2 Battle of Stalingrad can’t handle huge numbers of units, but I can at least appreciate how my entire computer seems to be in its death throes when going gets too tough for it to handle – unlike when the current version of the DCS that can have problems running smoothly while both the video card and majority of the CPU are still basically idling. Whether or not multi-threading a simulator engine is the most difficult thing in the world the fact remains that to get decent performance out of a modern CPU you have to make the most of at least four cores. I really hope this single needle in the haystack that is DCS World 2.0 (1.5) gets revisited, because simulators in general devour CPU cycles and the available power is the determining factor in what kind of scenarios can be created by mission and campaign creators.
In addition to technical details there’s another interesting and perhaps somewhat funny consideration regarding a simulator platform such as the DCS World. Microsoft Flight Simulator used to be a comparable platform and in much greater scale to boot. However, it wasn’t a combat environment. More importantly, it wasn’t a multiplayer combat environment.
Have you ever seen a forum topic on how plane X is completely overpowered or how wrong plane Y has been modeled? Ever noticed how heated those discussions can become? Yeah. Now, imagine that planes X and Y were made by different companies like they are in DCS World. Who are you going to call when you get shot down by plane X while flying the obviously underperforming plane Y? Will you demand money back if the developer doesn’t improve the performance or will you go to Eagle Dynamics and tell them to put things in order? I’m sure you as a reasonable person won’t, but I’m equally sure that someone will and the result will be either hilarious or brain melting, depending on a number of factors. Of course it’s just a funny little detail and certain people will always find ways to be who they are, but the way DCS World pits products from different manufacturers against each other adds an interesting new twist to the ages old problem. I don’t know about you, but my popcorn storage is full and ready for whatever levels of epic future has in store for forum warriors.
Hopefully at least some small parts of today’s rant have been either informative, entertaining or at least not very damaging to the brain. I guess what I really wanted to say was that when the new DCS World version finally comes out the most important thing is not how pretty it looks or how well it runs when you fire it up for the first time. The real test is how the 3rd party developers get along with the software and that’s something we’ll probably only find out after a while. Hopefully we’ll get a number of new modules, perhaps even ones that aren’t planes or simple linear campaigns. All in all I feel that DCS World has immense potential, but I also think Eagle Dynamics need to up their game a bit to realize it. It will certainly be interesting to see how things turn out in the end. Which is of course actually more of a beginning in this case.