Although the Department of Defense continues to fund several large programs to provide simulation tools to build training games and simulations, one smaller effort continues to build momentum. The Delta3D game engine, while not funded directly, maintains a steady energy, expanding its capabilities and uses and providing both government and industry with both basic functionality and the capability to expand. It has grown from what was little more than an API tying several different libraries together to a highly mature engine. How it has done this is an example of how using open source software can provide significant capabilities with minimum funding for infrastructure.
Delta3D is an open source game engine built at the Naval Postgraduate School’s (NPS) MOVES Institute. Delta3D was created to provide a commodity solution so those building games and simulations had a low cost alternative to expensive simulation suites and game engines. It is built atop other open source libraries (see figure 1) which provide much of its functionality; our design team’s philosophy has been only to build modules itself when no existing open source solution exists. A full description of the reasons for Delta3D’s creation and design philosophy can be found in (McDowell, 2005).
However, as Delta3D begins to add more features and improves usability, it moves beyond just being a low cost engine to a low cost engine delivering superior capabilities. While companies and government users certainly appreciate lower cost software, if that software cannot meet user’s needs, it is worthless. Although Delta3D is still not on the level of the best game engines used to build AAA titles, such as Epic’s Unreal Engine 3, Valve’s Source™ engine, or Crytek’s CryENGINE 3®, professional development teams have proven Delta3D to be capable of creating top of the line simulations and games for a wide range of areas. Delta3D has matured into an engine that provides the high level capabilities users need without the high licensing costs generally associated with such capabilities.
The core development team at MOVES continues to add functionality and improve the engine as it builds applications for research projects, of which we will only cover three. Recently, we have added the capability to control avatars using inverse kinematics (IK). This gives users significantly more options and control of avatars in their applications. More information on this can be found in (Guerrero, 2008).
Additionally, we have greatly improved Delta3D’s Simulation, Training and Game Editor (STAGE) by greatly expanding its capabilities. For example, it is now possible to easily put linear objects into a level using the editor. Also, the user can use the editor to build buildings in a multitude of shapes, giving the designer the capability to quickly and easily produce visual diversity in the scene.
Similarly, we have added an object viewer, which allows developers to view objects as they would appear in the world. The appearance of an object is a combination of the object’s geometry, textures, scene lighting and any shading applied. Often, this leads to a difficult process to perfect the object’s appearance by modifying one or more of those qualities and then restarting the application to view the object. Since this is an iterative process, it normally takes many (scores, or even hundreds) of modifications until the object’s appearance is perfected. In the object viewer, any of these can be quickly modified and immediately viewed, cutting the time per iteration by a huge factor. This is the kind of feature that we are trying to add to make the engine much easier for developers to use.
One of the biggest advantages of open source products, Delta3D included, is the ability of users to modify the product. This means that if a product doesn’t meet the user’s exact requirements, the user is free to modify it to do so. Likewise, if the user requires a functionality that is not included, the user can add it. While the benefit to the user of getting software that exactly meets their needs is obvious, quite often the user will submit the changes or additions to the open source project. The project managers then fold this code back into the code base, and all users benefit from the improved code. This has been done throughout Delta3D’s life, and is expanding as the user base increases more rapidly.
As an example, Alion Science and Technology needed a robust water model for a submarine training application it was building for Northrop-Grumman; none existed in Delta3D. Engineers at Alion built one using Gerstner waves computed with per pixel shading on the GPU that they submitted back as part of the engine. We at the MOVES Institute, and other Delta3D users, were able to use the new code in a low cost application (figure 2) that required a water model, but did not have the resources to build one. This shows how open source projects continue to advance for the entire community with the contributions of each different company.
Alion has been involved in the development of Delta3D from the beginning and probably has used Delta3D more than any other company. Curtiss Murphy, Project Manager of Alion Science and Technology, said “We have been using Delta3D for years on dozens of M&S projects for nearly every branch of DoD. It is robust and mature and we have direct access to the source, allowing us to change it when and how we need to meet our customer’s requirements.” One of the major improvements that Alion has added is the Simulation Core (SimCore). SimCore has 3+ years of maturity, dozens of adopters, and 125K+ lines of libraries, utilities, unit tests and demo projects.
Although SimCore was developed and is maintained by Alion, like the base engine it is freely available under the Lesser Gnu Public License (LGPL). The SimCore project is designed to help new modeling and simulation projects get running quickly. It provides a set of actors, components, and utilities designed for a networked simulation environment using either HLA or Client/Server. SimCore was created to make it easier for developers to build an application from scratch.
SimCore has a robust infrastructure for entities, which can be human avatars, munitions, or land, sea, or air vehicles. All entities understand 3D models, damage states, publish rates, dead reckoning, and ground clamping and can be configured for HLA via an XML file. They also understand whether they are simulated locally or remotely via the network. SimCore entities understand physics, and it has direct support for features such as large terrains, ocean rendering, articulated parts, and coordinate conversion.
The most popular feature of SimCore is the Stealth Viewer. The Stealth Viewer allows users to view the entire network simulation from anywhere in the world. It leverages all the visual features of both Delta3D and SimCore. The Stealth Viewer has a built in After Action Review system that can record and playback network simulations.
Simulation Core and the Stealth Viewer have been deployed to organizations such as Naval Service Training Command (Great Lakes), Northrop Grumman (Newport News), Joint Forces Command (JFCOM - Suffolk), NAVAIR Manned Flight (Pax River), Doron Precision (Binghamton), and USMC PMTRASYS (Camp Lejeune). As with Delta3D, it is written in C++ and runs on Windows, Linux, and Mac OSX.
Although Alion is the most prolific outside developer of Delta3D, it is by no means the only one. Recently, Renaissance Sciences Corporation (RSC) has used Delta3D to provide the visualization for several of their products. RSC builds software which computes the interactions between light (both visible and non-visible) and objects such as terrain and vehicles to predict how scenes will look using various technologies, such as night vision goggles and forward looking infra-red. They have created various tools to do this, and rather than licensing a visualization tool, they used Delta3D for their visualization. This has worked out very well for the company, and the results are impressive, as shown in figures 3 and 4.
Additionally, we have long wanted to improve Delta3D’s Simulation, Training and Game Editor (STAGE) by modifying its architecture to be plug-in oriented, but were unable to because this was a large task and we did not have a project that required this. However, recently a Delta3D user unassociated with a specific company submitted code that did just this. This change allows developers to modify STAGE easily to meet their needs, either for internal development or for their customers. The MOVES Institute has used this capability to build a port protection application for the Federal Law Enforcement Training Center’s Maritime Training Division. Figure 5 shows the version of STAGE that comes with Delta3D, while figure 6 shows how it was modified to let FLETC personnel use it to build port facilities for training.
Delta3D’s future is very bright. Lockheed Martin’s Simulation, Training and Support branch is currently using Delta3D as the basis of their SAGE project. The company and NPS have recently agreed on a CRADA that will allow the MOVES Institute and LM-STS to work closely in the future development of the engine and jointly solve problems. This has worked well in the past with smaller companies, and we expect it will also work well with a company of L-M’s size.
Similarly, as Delta3D continues to expand its user base, it becomes clear that the informal method of interaction between the Delta3D team at MOVES and the users must become more formal. Although we don’t know the final form that will take, we will be conducting virtual discussions on the Delta3D web site (http://delta3d.org) and will have a meeting at I/ITSEC 2009 to finalize the arrangements. We expect that a coalition of companies and organizations using Delta3D will be the outcome of these discussions, but nothing has been finalized. Anyone interested in having a voice in this should see the website for more information.
We originally developed Delta3D to be a commodity solution, essentially an alternative to high priced software tools when the added functionality they provided wasn’t worth their cost. However, Delta3D has matured to a level where it is no longer just a commodity solution. Dr. Talib Hussain, Senior Scientist at BBN Technologies said, "The open-source Delta3D engine enabled us to achieve our goals on the ONR-sponsored VESSEL (Virtual Environments for Ship and Shore Experiential Learning) program by allowing us to quickly and efficiently add the instructional features we needed to support our game-based training product." As is common for open source projects, users first came to Delta3D for the low cost, but have become part of the community because of what it offers. As these users improve the engine, more users will discover it meets their needs, the engine will continue to improve, and the cycle will continue.
Perry L. McDowell is the Executive Director of the Delta3D game engine at the Naval Postgraduate School.
Published in MS&T Magazine Issue 5/2009