About the DIS project


DIS is a protocol for communicating position and other information to other entities in a simulated battlefield. DIS stands for Distributed Interactive Simulation. For example, you have multiple flight trainers and some tank trainers and they're all linked together with this DIS protocol. Each entity can see each other and interact in a virtual environment.

My project is a program which will listen to these packets on the network and display a 3D picture of what is going on. You can view the battle from any angle or track any entity. You have full control over what you see. This is currently strictly a passive system. In the future, it may allow you to record events for later playback, or even enter your own entities into the net.

The idea came when I saw a demonstration of Stealth made by Mak Technologies. Basically it is a software package which runs on a SGI workstation and listens to DIS packets on the network. From this information it can derive what the entities in the battlespace are and can display their relative positions in graphical and textual formats. It can record and playback events as well. It's used as a visulation tool as well as a debugging tool.

Well, I thought to myself, "I could make this without much work at all." The DIS protocol is well known and I could easily write something which listens on the network and does similar operations. I havn't found out how much Mak Technologies sells their products for, but I'm sure it's plenty. They say they're the leading supplier of simulation networking software, but I think they're the only supplier. So I thought if I could make a competing product at a much lower cost, it could be marketable.

My goal is to make this portable from the beginning. Any operation that will be platform specific such as reading a packet from the network device will be wrapped around a abstraction layer. This will allow the application to run on a UNIX workstation or a Windows NT machine with little change in code.

As much as I love FreeBSD, this is not the platform of choice. I've been in the corporate world for a few years and I know managers are scared of UNIX. I there is a competing product which runs under Windows NT the manager will most likely pick the WinNT product even if it's crap. I don't make up the rules, I just play along.

So, the product will be marketed with the label "Runs under Windows NT." However, I plan do to almost all my work under FreeBSD, so it will run on FreeBSD as well.

With all due respect, WinNT has come a long way since Win 3.0. With API's such as Direct3D being supported by nearly every video card manufacture, it makes sense to develop something like this for Windows. Quite possibly, in the future, the support under FreeBSD will slack.

This idea is still in the planning and dreaming stage. One slight barrier preventing me from running with this is my current employer, McDonnell Douglas Aerospace. I signed a Patent Agreement which simply states that anything I think of which MDA which want the company owns. I have to go through a process of having MDA waive their rights to this product. It's annoying, but if I don't want legal battles in the future I better do this.

If anyone wishes to comment on this or has any suggestions, please e-mail me at jha@freebsd.org. I'm welcome to anything you have to say.