Board index FlightGear Development New features

DIS (Distributed Interactive Simulation)

Discussion and requests for new features. Please note that FlightGear developers are volunteers and may or may not be able to consider these requests.

DIS (Distributed Interactive Simulation)

Postby Chet » Wed May 09, 2007 8:00 pm

Has there been any recent discussion of adding a DIS interface? Initially FlightGear would only need to send and receive Entity State PDUs.

A DIS interface would do a lot more for FlightGear than just allow it to talk to another FlightGear. It would be an instant connection with a ton of simulations out there.
Chet
 
Posts: 8
Joined: Wed May 09, 2007 7:54 pm

Re: DIS (Distributed Interactive Simulation)

Postby AndersG » Wed May 09, 2007 8:18 pm

Chet wrote:Has there been any recent discussion of adding a DIS interface? Initially FlightGear would only need to send and receive Entity State PDUs.


Not any I'm aware of at least. If somebody wants to add such a capability with minimum effort I would recommend extending the FlightGear
Multiplayer server program to also function as a gatway/protocol translator to DIS. (I know next to nothing about DIS, though.)

/Anders
AndersG
 
Posts: 2454
Joined: Wed Nov 29, 2006 9:20 am
Location: Göteborg, Sweden
Callsign: SE-AG
OS: Debian GNU Linux

Postby Chet » Wed May 09, 2007 8:30 pm

There is quite a bit of the definition in the following web page.
http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/dis-dd.html
specifically the Entity State PDU:
http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/29.htm

Of course DIS is IEEE standard 1278 for anyone that has access to IEEE. Unfortunately I believe the document has distribution restrictions on it.
Chet
 
Posts: 8
Joined: Wed May 09, 2007 7:54 pm

Re: DIS (Distributed Interactive Simulation)

Postby Harald » Thu May 10, 2007 7:32 am

Chet wrote:Has there been any recent discussion of adding a DIS interface? Initially FlightGear would only need to send and receive Entity State PDUs.

No recent discussion, but that was allready 'discussed'.
A DIS interface would do a lot more for FlightGear than just allow it to talk to another FlightGear. It would be an instant connection with a ton of simulations out there.

Really ? I had the impression that this protocol is only for a serious usage. What other free game or simulator uses this protocol and allows connections ?


There is quite a bit of the definition in the following web page.
http://web.nps.navy.mil/~brutzman/vrtp/ ... is-dd.html
specifically the Entity State PDU:
http://web.nps.navy.mil/~brutzman/vrtp/ ... pdu/29.htm
Of course DIS is IEEE standard 1278 for anyone that has access to IEEE. Unfortunately I believe the document has distribution restrictions on it.


You can find gpl applications that implement Dis on the web, so the details should be easy to discover.

Harald.
Harald
 
Posts: 188
Joined: Fri Mar 02, 2007 4:30 pm
Location: Strasbourg, France
Version: nightly
OS: Windows 10

Postby Chet » Thu May 10, 2007 1:21 pm

Really ? I had the impression that this protocol is only for a serious usage. What other free game or simulator uses this protocol and allows connections ?


Well, I work on the "serious" side of things. I am a developer for a medium fidelity many on many military simulation. It is actually a "free" product, but you have to have a government sponsor say you can have it. We model aircraft as well as many other weapon systems. If flightgear had a DIS interface, I could manually fly an aircraft in the world created by the other simulation.

Chet
Chet
 
Posts: 8
Joined: Wed May 09, 2007 7:54 pm

Re: DIS (Distributed Interactive Simulation)

Postby Ampere » Wed May 23, 2007 4:43 am

Harald wrote:I had the impression that this protocol is only for a serious usage. What other free game or simulator uses this protocol and allows connections ?


hmm... FlightGear is/was supposed to be serious... at least that's what I was told when I first joined.
Ampere
 
Posts: 271
Joined: Sun Jan 14, 2007 9:09 pm
Location: Toronto

Postby Chet » Thu May 24, 2007 4:19 pm

I would be glad to help one of the current developers with any details if they are willing to code up a DIS interface. Unfortunately, I don't have the time to take it completely right now.
Chet
 
Posts: 8
Joined: Wed May 09, 2007 7:54 pm

Re: DIS (Distributed Interactive Simulation)

Postby Flying toaster » Thu Feb 12, 2009 5:01 pm

Funny,

There actually is (was) a part open source simulator that implemented DIS, and that was ACM.
http://www.websimulations.com/download.htm#ACMforUNIX

It actually implemented DIS as a separate C library DIS/x which is open source as far as I remember

I wonder how much it would take to replace FG network code by this, but an un-educated guess tells me "a lot !", let alone the features we would loose in the process (say animations, liveries ...)
Last edited by Flying toaster on Thu Feb 12, 2009 7:26 pm, edited 1 time in total.
Flying toaster
 
Posts: 353
Joined: Wed Nov 29, 2006 6:25 am
Location: Toulouse France

Re: DIS (Distributed Interactive Simulation)

Postby Flying toaster » Thu Feb 12, 2009 7:31 pm

No harm meant really ...
As I have not dived very deep into FG codebase I was just making the hypothesis that changing the network protocol towards DIS (which is as far as I remember a protocol for distributed i.e. networked simulations) could mean some rebuilding work. If the assumption is rather to have it as an extra option I guess it is mainly about digging into the property tree to feed the DIS/x library, and it may seem a little bit more practical.

The code is there ... The question is, who is glueing it together ?
Flying toaster
 
Posts: 353
Joined: Wed Nov 29, 2006 6:25 am
Location: Toulouse France

Re: DIS (Distributed Interactive Simulation)

Postby Chet » Wed Feb 25, 2009 3:09 pm

adamlube wrote:Is someone smart enough, with enough time to work in one of these?

http://sourceforge.net/projects/open-dis (BSD License)
http://sourceforge.net/projects/kdis (LGPL License)


I did a quick look at the two. I would start with open-dis. As I said before, initially Flightgear would only need a single message - Entity State.
Chet
 
Posts: 8
Joined: Wed May 09, 2007 7:54 pm

Re: DIS (Distributed Interactive Simulation)

Postby Chet » Wed Feb 25, 2009 4:12 pm

adamlube wrote:you "would" start or you "will" start :D


"Would". DIS is something I do at work, not in my spare time :). I have not taken the time to look at the Flightgear code, but if I could assist someone in understanding the DIS side, I would be glad to help. I have a small interest in getting this going, but could not justify to my manager (or my wife if working at home) the time it would take to make the flightgear mods. I may however take some time to work with open-dis for other purposes.
Chet
 
Posts: 8
Joined: Wed May 09, 2007 7:54 pm

Re: DIS (Distributed Interactive Simulation)

Postby Hooray » Wed Feb 25, 2009 4:51 pm

Searching the wiki for "DIS" brings up a related entry: http://wiki.flightgear.org/index.php/Di ... Simulation

Based on the wiki history, this was set up by someone who discussed the idea of implementing DIS support for FlightGear on the mailing list, and subsequently decided to summarize related feature requests on this page (first version).

You might want to search the mailing list archives for "DIS" and "Distributed interactive simulation", but also for possibly related discussions using this user's name).

It seems however that the sourceforge archives are incredibly buggy, slow and basically hardly available at all - so I would suggest to use a different archive, http://www.mail-archive.com seems to be most commonly referenced one for FlightGear, which brought up this for me: http://www.mail-archive.com/flightgear- ... 16023.html

Also, you might be able to get in touch with that user by using his "user" page on the wiki: http://wiki.flightgear.org/index.php/User:Gotthardp

According to this page on the wiki, but also according to earlier discussions, I would assume that there is some interest in implementing DIS support for FlightGear, but currently there appear to be many more suggestions related to improving the current server architecture in general, rather than implementing DIS support in particular.

While many of the features listed on this "DIS wiki page" could probably be implemented as part of an DIS-related effort, this doesn't necessarily have to be the case, most of them would also make for good candidates on a standalone, non-DIS related, basis - in fact tying their implementation to the DIS side of things might actually hinder the overall development progress of fgms as a whole, which already seems to have stagnated.

Hope this helps


PS: These forums are really not the most ideal place to discuss or post development-related questions, in general you might be better off using the developer's mailing list.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11493
Joined: Tue Mar 25, 2008 8:40 am

Re: DIS (Distributed Interactive Simulation)

Postby AndersG » Wed Feb 25, 2009 5:56 pm

Hooray wrote:Also, you might be able to get in touch with that user by using his "user" page on the wiki: http://wiki.flightgear.org/index.php/User:Gotthardp


I think he has moved on to try to implement HLA (High-Level Architecture) support for FlightGear:
http://sourceforge.net/projects/virtualair

I some others looked at the plugin some time ago but at that time it wasn't working that well - but part of the problems were due to the RTI we used (CERTI). It would be great if we could find a "middleware" solution that can efficiently meet the communication needs of FlightGear.
Our current MP protocol isn't very clever, but at least it is simple :)

Cheers,
Anders
Callsign: SE-AG
Aircraft (uhm...): Submarine Scout, Zeppelin NT, ZF Navy free balloon, Nordstern, Hindenburg, Short Empire flying-boat, ZNP-K, North Sea class, MTB T21 class, U.S.S. Monitor, MFI-9B, Type UB I submarine, Gokstad ship, Renault FT.
AndersG
 
Posts: 2454
Joined: Wed Nov 29, 2006 9:20 am
Location: Göteborg, Sweden
Callsign: SE-AG
OS: Debian GNU Linux

Re: DIS (Distributed Interactive Simulation)

Postby Hooray » Wed Feb 25, 2009 8:09 pm

Thanks for the pointer to the virtualair project, I didn't even read the discussion that I posted, so I ended up missing that one.
It seems, we can now summarize the state of affairs as being "DIS superseded by HLA"?

Anyway, it seems now quite possible to get involved in this effort, be it by becoming part of this project, or at least by helping discuss and refine the various proposals made so far. This could probably also be done on the wiki page. On the other hand, it would probably be a good idea to reflect the change in scope with regard to the DIS/HLA situation?

AndersG wrote:Our current MP protocol isn't very clever, but at least it is simple :)


As previously mentioned here on the forums, I was actually thinking about rewriting the current fgms code using a scripting language such as Python or Ruby, this would make it much more convenient to easily and rapidly modify the code and test new high level features, so that one could easily implement and design new ideas and features that were suggested - the resulting code could also be easily deployed on non-*nix platforms because of the multi-platform nature of python/ruby scripting.

So, rewriting fgms using such a scripting language would have just been meant as a test to determine how beneficial this would be in the long run, and to see if new features could be more easily developed. I also figured, a corresponding port should be easy and quick to do, due to the protocol's (fgms) very simplicity that you are mentioning.

Eventually, I did however end up hesitating because it occured to me that any non-trivial additions/modifications to the server code would inevitably also have to be ported to the client/FlightGear side of things, where the use of Python/Ruby -at least in the long run- would simply not be a viable option (think integration/updates to the protocol).

That's where we would inevitably need to use either C++ code or preferably Nasal scripting, the latter of which doesn't yet support the use of UDP sockets (i.e. doesn't yet have module bindings to do multi-platform sockets). However, this should be fairly straight forward to do, and someone actually mentioned having a unix module with socket bindings that works at least on Unix/Linux.

So, I realized that the use of Ruby/Python on the server-side would necessarily imply lots of duplicate code, in a different language on the other, FlightGear, side. On other words: maintenance hell.

That's why I ended up concluding that the most effective way to do this would really be using Nasal, where code/modules could be easily re-used on both sides (client & server). Also, Nasal is likely to be supported by FlightGear/SimGear for quite a while.

From that point of view, it seemed promising to re-implement fgms in Nasal, so that it could be easily enhanced and deployed on all platforms supported by FlightGear.

However, in the meantime there was another interesting proposal mentioned on the fgms tracker in one of the comments (nov/2008), one where the property tree itself would be provided with RPC mechanisms, so that it could directly be used as the underlying data structure for multiplayer properties, in a fashion where local properties could be externally/remotely managed using some sort of "remote property tree", that concept seemed pretty powerful to me and -frankly spoken- also much more mature than most of my ideas so far:

well, given that all transmissions would be centered around
sending/receiving property tree data/values, a far better approach to
implementing the various feature requests here would be to extend the
current property tree code so that it exposes its major methods (i.e.
getters/setters) via an RPC interface, so that -at least optionally- each
property tree instance could expose an RPC interface to the property tree.

(see: http://sourceforge.net/tracker/index.ph ... tid=821811)


And frankly spoken, this seems to me like it's possible to do with much less code and work.
If this idea is taken further, it could be as simple as having another type of property (e.g. specified via an additional attribute) whose writes/updates are automatically propagated to a configurable server/address/port via UDP.

In turn, transmissions from the server to the client would automatically result in updating such a "network property".

The latter could be implemented as a listener that is automatically registered for properties with a specific property such as "network=true" or "multiplayer=true".
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11493
Joined: Tue Mar 25, 2008 8:40 am

Re: DIS (Distributed Interactive Simulation)

Postby karljj1 » Sat Mar 21, 2009 4:57 pm

adamlube wrote:Is someone smart enough, with enough time to work in one of these?

http://sourceforge.net/projects/open-dis (BSD License)
http://sourceforge.net/projects/kdis (LGPL License)



Hello,

I wrote KDIS(http://sourceforge.net/projects/kdis), if you guys are still looking for a DIS interface for flightgear i would be happy to take a look at doing it.

Karl
karljj1
 
Posts: 13
Joined: Sat Mar 21, 2009 4:50 pm
Location: UK

Next

Return to New features

Who is online

Users browsing this forum: No registered users and 4 guests