Jump to content

SGI Dogfight: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Added all known information on the unofficial version with sci-fi and WW1 aircraft
Anidion (talk | contribs)
Cited source for not being playable over the internet.
 
(19 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{more footnotes|date=December 2021}}
{{Short description|1985 video game}}
{{Short description|1985 video game}}
{{for|other use of term|Dogfight (disambiguation)}}
{{for|other use of term|Dogfight (disambiguation)}}

{{Infobox video game
{{Infobox video game
|title = Dogfight
|title = Dogfight
Line 13: Line 13:
|platforms = [[Silicon Graphics|SGI Workstations]]
|platforms = [[Silicon Graphics|SGI Workstations]]
}}
}}

'''''Dogfight''''' is a demonstration program initially written by [[Gary Tarolli]] (later founder of [[3dfx]]) at [[Silicon Graphics|Silicon Graphics, Inc]] in the summer of 1983.<ref name=NVE_book>{{cite book | title=Networked Virtual Environments: Design and Implementation | date=1999 | last1=Singhal | first1=Sandeep | last2=Zyda | first2=Michael | publisher=Addison Wesley | ISBN=0201325578 | url=https://www.google.co.uk/books/edition/Networked_Virtual_Environments/Oq5QAAAAMAAJ}}</ref><ref name=NVE_slides>{{cite web | last1=Zyda | first1=Michael | title=Networked Virtual Environments in 75 Minutes! | date=2000 | url=https://core.ac.uk/download/pdf/36733821.pdf | url-status=live | archive-url=https://web.archive.org/web/20190417084504/https://core.ac.uk/download/pdf/36733821.pdf | archive-date=17 April 2019}} {{webarchive | format=addlarchive | url1=https://archive.ph/gU636 | date1=17 August 2022}}</ref> It represents landmarks in two key areas of [[Internet]] development: [[Computer game|games]] and [[multicast]]ing, and notable advancement in creating rendered [[virtual environment]]s.{{fact|date=December 2021}}
'''''Dogfight''''' is a demonstration program initially written by [[Gary Tarolli]] (later founder of [[3dfx]]) at [[Silicon Graphics|Silicon Graphics, Inc]] in the summer of 1983.<ref name=NVE_book>{{cite book | title=Networked Virtual Environments: Design and Implementation | date=1999 | last1=Singhal | first1=Sandeep | last2=Zyda | first2=Michael | publisher=Addison Wesley | isbn=0201325578 | url=https://books.google.com/books?id=Oq5QAAAAMAAJ}}</ref><ref name=NVE_slides>{{cite web | last1=Zyda | first1=Michael | title=Networked Virtual Environments in 75 Minutes! | date=2000 | url=https://core.ac.uk/download/pdf/36733821.pdf | url-status=live | archive-url=https://web.archive.org/web/20190417084504/https://core.ac.uk/download/pdf/36733821.pdf | archive-date=17 April 2019}} {{webarchive | format=addlarchive | url1=https://archive.today/20220817213242/https://core.ac.uk/download/pdf/36733821.pdf | date1=17 August 2022}}</ref> It represents landmarks in two key areas of [[Internet]] development: [[Computer game|games]] and [[multicast]]ing, and notable advancement in creating rendered [[virtual environment]]s.{{citation needed|date=December 2021}}


==Overview==
==Overview==
''Dogfight'' might more properly be referred to as three programs, ''flight'', ''dog'', and ''shadow''. ''Flight'' is a [[flight simulator]], ''dog'' is an air combat game in which multiple people use the ''flight'' interface to control their aircraft, and ''shadow'' is an observation program that allows a user to see what a user of either ''dog'' or ''flight'' sees.<ref name=manpage_techpubs_sgi>{{cite web | url=http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/u_man/cat6/shadow.z | archive-url=https://web.archive.org/web/20160119204212/http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/u_man/cat6/shadow.z | archive-date=19 January 2016 | title=IRIX 6.5 Man Pages: FLIGHT(6D)}}</ref><ref name=manpage_other>{{cite web | archive-url=https://web.archive.org/web/20160303234100/http://tclab.kaist.ac.kr/~cs580/FTP/OPENGL/flightdoc.html | url=http://tclab.kaist.ac.kr/~cs580/FTP/OPENGL/flightdoc.html | archive-date=3 March 2016 | title=Silicon Graphics Flight Simulator}}</ref>
''Dogfight'' might more properly be referred to as three programs, ''flight'', ''dog'', and ''shadow''. ''Flight'' is a [[flight simulator]], ''dog'' is an air combat game in which multiple people use the ''flight'' interface to control their aircraft, and ''Shadow'' is an observation program that allows a user to see what a user of either ''dog'' or ''flight'' sees.<ref name=manpage_techpubs_sgi>{{cite web | url=http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/u_man/cat6/shadow.z | archive-url=https://web.archive.org/web/20160119204212/http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/u_man/cat6/shadow.z | archive-date=19 January 2016 | title=IRIX 6.5 Man Pages: FLIGHT(6D)}}</ref><ref name=manpage_other>{{cite web | archive-url=https://web.archive.org/web/20160303234100/http://tclab.kaist.ac.kr/~cs580/FTP/OPENGL/flightdoc.html | url=http://tclab.kaist.ac.kr/~cs580/FTP/OPENGL/flightdoc.html | archive-date=3 March 2016 | title=Silicon Graphics Flight Simulator}}</ref>


''dog'' and ''shadow'' could also be run in "airshow mode", using the -i and -o command-line switches. With -o, the path taken by the plane would be saved to a file instead of being broadcast to the network. With -i, the user could specify a file containg a saved flightpath of this sort, and it would be displayed. Missiles fired by a plane in this mode would not affect planes in non-airshow mode. The intention was for the user to be able to record the paths of several aircraft, and then, by replaying them simultaneously, to be able to display complex aerial formations with multiple planes.<ref name=manpage_techpubs_sgi/>
''dog'' and ''shadow'' could also be run in "airshow mode", using the -i and -o command-line switches. With -o, the path taken by the plane would be saved to a file instead of being broadcast to the network. With -i, the user could specify a file containing a saved flight path of this sort, and it would be displayed. Missiles fired by a plane in this mode would not affect planes in non-airshow mode. The intention was for the user to be able to record the paths of several aircraft, and then, by replaying them simultaneously, to be able to display complex aerial formations with multiple planes.<ref name=manpage_techpubs_sgi/>


At some point, the -h command-line switch was also added. This would replace the standard instrument panel with a [[Head-up_display | heads-up display]] (HUD). Such a display was commonly used in military aircraft, and would allow for a larger view, but at the cost of a slower update rate.<ref name=manpage_techpubs_sgi/><ref name=manpage_other/> This was added because [[Williams Air Force Base]] were interested in using ''flight'' for F-16 training, debriefing and ''"human-interaction studies"'', but wanted it to have an HUD similar to the HUD on a real F-16.<ref name=williams_afb>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-December/008251.html | last1=Tarolli | first1=Gary | title=test missile cones in dog/flight? | date=28 December 1989 | url-status=live | archive-url=https://archive.ph/FeBkM | archive-date=20 August 2022}}</ref>
At some point, the -h command-line switch was also added. This would replace the standard instrument panel with a [[head-up display]] (HUD). Such a display was commonly used in military aircraft and would allow for a larger view, but at the cost of a slower update rate.<ref name=manpage_techpubs_sgi/><ref name=manpage_other/> This was added because [[Williams Air Force Base]] was interested in using ''flight'' for F-16 training, debriefing and ''"human-interaction studies"'', but wanted it to have a HUD similar to the HUD on a real F-16.<ref name=williams_afb>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-December/008251.html | last1=Tarolli | first1=Gary | title=test missile cones in dog/flight? | date=28 December 1989 | url-status=live | archive-url=https://archive.today/20220820222618/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-December/008251.html | archive-date=20 August 2022}}</ref>


The following planes were available:{{fact|date=December 2021}}
The following planes were available:{{citation needed|date=December 2021}}


* [[Cessna 150]]
* [[Cessna 150]]
Line 28: Line 29:
* [[Boeing 747]]
* [[Boeing 747]]
* [[F-16 Fighting Falcon|F-16]]
* [[F-16 Fighting Falcon|F-16]]
* [[F-15 Eagle|F-15]] (In the GT/GTX/VGX version, this was described as looking like an [[F-14 Tomcat|F-14]] model with the wings swept back.<ref name=manpage_techpubs_sgi/> The F-15 is neither a delta-wing nor a swing-wing plane, so this would have been inaccurate if the wings were fully swept back.)
* [[F-15 Eagle|F-15]] ([[F-14 Tomcat|F-14]] model; wings spread)
* [[F-14D]] (wings laid on)
* [[F-14D]] (wings laid on)


Later versions added:{{fact|date=December 2021}}
Later versions added:{{citation needed|date=December 2021}}


* different F-16 geometry
* different F-16 geometry
Line 38: Line 39:


==History==
==History==
''Flight'' was written in the summer of 1983 by Gary Tarolli, as a demo for SGI workstations.<ref name=NVE_book/><ref name=NVE_slides/> It was inspired by the [[Blue Angels]] airshows at [[Moffett Field]], across the street from SGI's original headquarters.<ref name=NVE_book/><ref name=modelbenders>{{cite web | url=http://www.simulationfirst.com/ein5255/08_NetVR_Evolution.pdf | last1=Smith | first1=Roger | date=2003 | title=Evolution of Networked Virtual Environments (relevant text is concealed by the second image on the first page. To read it, highlight the whole of that page, then copy-paste into a text editor.) | url-status=live | archive-url=https://archive.ph/98DIF | archive-date=17 August 2022}}</ref>
''Flight'' was written in the summer of 1983 by Gary Tarolli, as a demo for SGI workstations.<ref name=NVE_book/><ref name=NVE_slides/> It was inspired by the [[Blue Angels]] airshows at [[Moffett Field]], across the street from SGI's original headquarters.<ref name=NVE_book/><ref name=modelbenders>{{cite web | url=http://www.simulationfirst.com/ein5255/08_NetVR_Evolution.pdf | last1=Smith | first1=Roger | date=2003 | title=Evolution of Networked Virtual Environments (relevant text is concealed by the second image on the first page. To read it, highlight the whole of that page, then copy-paste into a text editor.) | url-status=live | archive-url=https://archive.today/20220817215732/http://www.simulationfirst.com/ein5255/08_NetVR_Evolution.pdf | archive-date=17 August 2022}}</ref>


In 1984, networking capabilities began to be added. Initially, two workstations were connected by a [[serial cable]]. This allowed about 7 [[frames per second]] and 500 polygons per second on a machine with a [[Motorola 68000]] CPU capable of approximately 1 [[Instructions per second|MIPS]]. By [[SIGGRAPH]] 1984, [[Xerox Network Systems|XNS]] multicast support was added, allowing play over an [[Ethernet]] network.<ref name=NVE_book/><ref name=NVE_slides/> After the event, the networked version of ''Flight'' was distributed on all SGI workstations.<ref name=NVE_slides/> In this networked version, users could see each others' planes, but could not interact with them.<ref name=NVE_book/>
In 1984, networking capabilities began to be added. Initially, two workstations were connected by a [[serial cable]]. This allowed about 7 [[frames per second]] and 500 polygons per second on a machine with a [[Motorola 68000]] CPU capable of approximately 1 [[Instructions per second|MIPS]]. By [[SIGGRAPH]] 1984, [[Xerox Network Systems|XNS]] multicast support was added, allowing play over an [[Ethernet]] network.<ref name=NVE_book/><ref name=NVE_slides/> After the event, the networked version of ''Flight'' was distributed on all SGI workstations.<ref name=NVE_slides/> In this networked version, users could see each others' planes, but could not interact with them.<ref name=NVE_book/>


Probably in early 1985, ''dog'' was created,<ref name=NVE_book/><ref name=NVE_slides/> and ''dog'' and ''flight'' were shipped as demonstration software included with SGI workstations. Message packets were transmitted at frame rate, and the number of players was capped due to bandwidth limitations, although sources differ as to whether this cap was 10 players<ref name=modelbenders/> or a value in the tens of players.<ref name=NVE_book/> Due to the network congestion resulting from so many packets being transmitted at frame rate, many system administrators removed ''dogfight'' from newly installed systems in order to prevent abuse of resources.<ref name=NVE_book/> Other sysadmins limited play to restricted off-peak hours.{{fact|date=December 2021}}
Probably in early 1985, ''dog'' was created,<ref name=NVE_book/><ref name=NVE_slides/> and ''dog'' and ''flight'' were shipped as demonstration software included with SGI workstations. Message packets were transmitted at frame rate, and the number of players was capped due to bandwidth limitations, although sources differ as to whether this cap was 10 players<ref name=modelbenders/> or a value in the tens of players.<ref name=NVE_book/> Due to the network congestion resulting from so many packets being transmitted at frame rate, many system administrators removed ''dogfight'' from newly installed systems in order to prevent abuse of resources.<ref name=NVE_book/> Other sysadmins limited play to restricted off-peak hours.{{citation needed|date=December 2021}}


[[Dead reckoning]] was later added, to reduce the amount of data that needed to be transmitted.<ref name=modelbenders/>
[[Dead reckoning]] was later added, to reduce the amount of data that needed to be transmitted.<ref name=modelbenders/>


In 1986, [[User Datagram Protocol|UDP]] broadcast protocol capability was added (using port 5130).<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/002520.html | url-status=live | title=dog, radar, shadow, etc. & tcp/ip | last1=Millman | first1=Miq | date=22 November 1988 | archive-url=https://archive.ph/M6avT | archive-date=20 August 2022}}</ref><ref>{{cite web| url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/009861.html | last1=Mace | first1=Rob | url-status=live | title=Dogfight and others. | date=8 December 1988 | archive-url=https://archive.ph/YoSyL | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/002996.html | last1=Moore | first1=Matthew | date=23 November 1988 | title=dog, radar, etc | url-status=live | archive-url=https://archive.ph/S4RaL | archive-date=20 August 2022}}</ref> Information was transmitted via [[Broadcasting (computing)|broadcast packets]] and at frame rate, meaning that the program made intensive use of network resources and even a small number of players was capable of saturating an Ethernet. So while it was probably the first game to use the Internet Protocol Suite, the game could not pass through a [[router (computing)|router]], and thus could not be played across the Internet itself.{{fact|date=December 2021}}
In 1986, [[User Datagram Protocol|UDP]] broadcast protocol capability was added (using port 5130).<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/002520.html | url-status=live | title=dog, radar, shadow, etc. & tcp/ip | last1=Millman | first1=Miq | date=22 November 1988 | archive-url=https://archive.today/20220820153819/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/002520.html | archive-date=20 August 2022}}</ref><ref name=maceusenet>{{cite web| url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/009861.html | last1=Mace | first1=Rob | url-status=live | title=Dogfight and others. | date=8 December 1988 | archive-url=https://archive.today/20220820205057/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/009861.html | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/002996.html | last1=Moore | first1=Matthew | date=23 November 1988 | title=dog, radar, etc | url-status=live | archive-url=https://archive.today/20220820203321/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/002996.html | archive-date=20 August 2022}}</ref> Information was transmitted via [[broadcast packet]]s and at frame rate, meaning that the program made intensive use of network resources and even a small number of players was capable of saturating an Ethernet. So while it was probably the first game to use the Internet Protocol Suite, [[gateway (telecommunications)|gateway]]s would refuse to transmit UDP broadcast packets, and thus could not be played across the Internet itself.<ref name=maceusenet></ref>


By 1988, with the introduction of SGI's 4D series of machines, ''Dogfight'' had forked, with one version running on most SGI machines of the time (3000 series, 4DxxG's, Personal IRIS, GT, GTX) and another for use only on the higher-end GT, GTX and VGX machines.<ref name=manpage_techpubs_sgi/> These could interoperate, with both versions playing in the same game. The 4D/20 was observed to run ''dog'' at around 12 frames per second, while the faster 4D/70 would be capable of 20-25 fps. The other version was observed to run on a GT at around 15 frames/second.<ref name=mailing_list/> In the Irix 6.5 documentation, it was noted that the Boeing 727 and F-14 were not available to choose as planes in the normal version of the software, but were present in the GT/GTX/VGX version.<ref name=manpage_techpubs_sgi/>
By 1988, with the introduction of SGI's 4D series of machines, ''Dogfight'' had forked, with one version running on most SGI machines of the time (3000 series, 4DxxG's, Personal IRIS, GT, GTX) and another for use only on the higher-end GT, GTX and VGX machines.<ref name=manpage_techpubs_sgi/> These could interoperate, with both versions playing in the same game. The 4D/20 was observed to run ''dog'' at around 12 frames per second, while the faster 4D/70 would be capable of 20-25 fps. The other version was observed to run on a GT at around 15 frames/second.<ref name=mailing_list/> In the Irix 6.5 documentation, it was noted that the Boeing 727 and F-14 were not available to choose as planes in the normal version of the software, but were present in the GT/GTX/VGX version.<ref name=manpage_techpubs_sgi/>


SGI would supply the source code to IRIS owners upon request if a [[non-disclosure agreement]] was signed.<ref name=mailing_list>{{cite web | archive-url=https://web.archive.org/web/20070717025813/http://ftp.arl.army.mil/ftp/info-iris/info-iris.txt.05 | url=http://ftp.arl.army.mil/ftp/info-iris/info-iris.txt.05 | title=IRIS users discussion list archive, 1988 | archive-date=17 July 2007}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/006514.html | date=6 December 1988 | last1=Mace | first1=Rob | url-status=live | archive-url=https://archive.ph/Lw1XK | archive-date=20 August 2022 | title=dog and arena}}</ref> Some Usenet posts claimed that the code was not supplied standalone, but as part of a "Software Exchange Release Tape". A fee of $100 was charged for this, and the user had to specifically request that the ''dog'' source code be included on the tape.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-July/004964.html | title=dog on IRIS 3130 | url-status=live | archive-url=https://archive.ph/TgRUA | archive-date=20 August 2022 | date=14 July 1989}}</ref> Others stated that this was for the physical media and shipping/handling, not the source code itself,<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1990-October/005801.html | last1=Seto | first1=Keith | url-status=live | date=11 October 1990 | title=sources for GL demo programs | archive-url=https://archive.ph/Zd6Uo | archive-date=20 August 2022}}</ref> and that no charge was made if the IRIS owner supplied SGI with a blank tape of their own to put the code on.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/003657.html | title=Dogfight and Arena | archive-url=https://archive.ph/KM51p | archive-date=20 August 2022 | date= 6 December 1988 | last1=Moore | first1=Matthew | url-status=live}}</ref> Based on the dates of the various postings, it is possible that SGI initially supplied the code for free, but began charging for it at a later date.
SGI would supply the source code to IRIS owners upon request if a [[non-disclosure agreement]] was signed.<ref name=mailing_list>{{cite web | archive-url=https://web.archive.org/web/20070717025813/http://ftp.arl.army.mil/ftp/info-iris/info-iris.txt.05 | url=http://ftp.arl.army.mil/ftp/info-iris/info-iris.txt.05 | title=IRIS users discussion list archive, 1988 | archive-date=17 July 2007}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/006514.html | date=6 December 1988 | last1=Mace | first1=Rob | url-status=live | archive-url=https://archive.today/20220820201058/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/006514.html | archive-date=20 August 2022 | title=dog and arena}}</ref> Some Usenet posts claimed that the code was not supplied standalone, but as part of a "Software Exchange Release Tape". A fee of $100 was charged for this, and the user had to specifically request that the ''dog'' source code be included on the tape.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-July/004964.html | title=dog on IRIS 3130 | url-status=live | archive-url=https://archive.today/20220820201500/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-July/004964.html | archive-date=20 August 2022 | date=14 July 1989}}</ref> Others stated that this was for the physical media and shipping/handling, not the source code itself,<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1990-October/005801.html | last1=Seto | first1=Keith | url-status=live | date=11 October 1990 | title=sources for GL demo programs | archive-url=https://archive.today/20220820201742/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1990-October/005801.html | archive-date=20 August 2022}}</ref> and that no charge was made if the IRIS owner supplied SGI with a blank tape of their own to put the code on.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/003657.html | title=Dogfight and Arena | archive-url=https://archive.today/20220820200910/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/003657.html | archive-date=20 August 2022 | date= 6 December 1988 | last1=Moore | first1=Matthew | url-status=live}}</ref> Based on the dates of the various postings, it is possible that SGI initially supplied the code for free, but began charging for it at a later date.


Several programmers used this code as an example, to teach themselves UDP and how to use it in their own code.<ref name=NVE_book/><ref name=NVE_slides/>
Several programmers used this code as an example, to teach themselves UDP and how to use it in their own code.<ref name=NVE_book/><ref name=NVE_slides/>


For the [[IRIX]] 3.3 version, circa 1989, [[IP multicast]] capability was added,<ref name=manpage_techpubs_sgi/> and the game became playable between any compatible hosts on the Internet, assuming that they had multicast access (which was quite uncommon). The multicast address was 224.0.1.2 (SGI-DOG.MCAST.NET),<ref name=verycomputer_objectserver>{{cite web | url=http://www.verycomputer.com/16_722528b77f2d8b8d_1.htm | title=Why is my SGI multicasting to SGI-DOG.MCAST.NET? | date=August 1994 | archive-url=https://archive.ph/ztcMr | archive-date=7 May 2022 | url-status=live}} {{webarchive | url=https://web.archive.org/web/20220507221213/http://www.verycomputer.com/16_722528b77f2d8b8d_1.htm | date=7 May 2022}}</ref> making this only the third multicast application to receive an address assignment, with only the [[Versatile Message Transaction Protocol]] (VMTP) protocol (224.0.1.0) and the [[Network Time Protocol]] (224.0.1.1) having arrived first.{{fact|date=December 2021}} SGI would later use the same address for their ''objectserver'' daemon, which handled GUI icons.<ref name=verycomputer_objectserver/><ref>{{cite web | url=https://rainbow.ldeo.columbia.edu/documentation/sgi-faq/admin/78.html | archive-url=https://web.archive.org/web/20210610131104/https://rainbow.ldeo.columbia.edu/documentation/sgi-faq/admin/78.html | archive-date=10 June 2021 | url-status=live | title=What is sending packets to the sgi-dog.mcast.net multicast address?}}</ref><ref>{{cite web | url=http://sgidepot.co.uk/admin/day2c.html | title=UNIX Administration Course: Detailed Notes for Day 2 | last1=Mapleson | first1=Ian | url-status=live | archive-url=https://web.archive.org/web/20210310050220/http://sgidepot.co.uk/admin/day2c.html | archive-date=10 March 2021}}</ref><ref name=verycomputer_776cae08ff55a842>{{cite web | url=http://www.verycomputer.com/16_776cae08ff55a842_1.htm | title=Multicasting from workstations to SGI-DOG | date=February 1995 | archive-url=https://web.archive.org/web/20220507221200/http://www.verycomputer.com/16_776cae08ff55a842_1.htm | archive-date=7 May 2022 | url-status=live}} {{webarchive | url=https://archive.ph/qduKG | date=20 August 2022}}</ref> This caused confusion for some system administrators.
For the [[IRIX]] 3.3 version, circa 1989, [[IP multicast]] capability was added,<ref name=manpage_techpubs_sgi/> and the game became playable between any compatible hosts on the Internet, assuming that they had multicast access (which was quite uncommon). The multicast address was 224.0.1.2 (SGI-DOG.MCAST.NET),<ref name=verycomputer_objectserver>{{cite web | url=http://www.verycomputer.com/16_722528b77f2d8b8d_1.htm | title=Why is my SGI multicasting to SGI-DOG.MCAST.NET? | date=August 1994 | archive-url=https://archive.today/20220507220901/http://www.verycomputer.com/16_722528b77f2d8b8d_1.htm | archive-date=7 May 2022 | url-status=live}} {{webarchive | url=https://web.archive.org/web/20220507221213/http://www.verycomputer.com/16_722528b77f2d8b8d_1.htm | date=7 May 2022}}</ref> making this only the third multicast application to receive an address assignment, with only the [[Versatile Message Transaction Protocol]] (VMTP) protocol (224.0.1.0) and the [[Network Time Protocol]] (224.0.1.1) having arrived first.{{citation needed|date=December 2021}} SGI would later use the same address for their ''objectserver'' daemon, which handled GUI icons.<ref name=verycomputer_objectserver/><ref>{{cite web | url=https://rainbow.ldeo.columbia.edu/documentation/sgi-faq/admin/78.html | archive-url=https://web.archive.org/web/20210610131104/https://rainbow.ldeo.columbia.edu/documentation/sgi-faq/admin/78.html | archive-date=10 June 2021 | url-status=live | title=What is sending packets to the sgi-dog.mcast.net multicast address?}}</ref><ref>{{cite web | url=http://sgidepot.co.uk/admin/day2c.html | title=UNIX Administration Course: Detailed Notes for Day 2 | last1=Mapleson | first1=Ian | url-status=live | archive-url=https://web.archive.org/web/20210310050220/http://sgidepot.co.uk/admin/day2c.html | archive-date=10 March 2021}}</ref><ref name=verycomputer_776cae08ff55a842>{{cite web | url=http://www.verycomputer.com/16_776cae08ff55a842_1.htm | title=Multicasting from workstations to SGI-DOG | date=February 1995 | archive-url=https://web.archive.org/web/20220507221200/http://www.verycomputer.com/16_776cae08ff55a842_1.htm | archive-date=7 May 2022 | url-status=live}} {{webarchive | url=https://archive.today/20220820143114/http://www.verycomputer.com/16_776cae08ff55a842_1.htm | date=20 August 2022}}</ref> This caused confusion for some system administrators.


===Unofficial forked versions===
===Unofficial forked versions===
Line 60: Line 61:


====The point-to-point communication fork====
====The point-to-point communication fork====
A version replacing the UDP broadcast with point-to-point communication between two hosts was created at the [[Lund Institute of Technology]] in Sweden. The source code patch for this was posted on ''comp.sys.sgi'' in September 1989. The reason given for this fork was to allow machines on different subnets to play against each other.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-September/009189.html | title=DOG: diff for point-to-point communication | date=20 September 1989 | url-status=live | archive-url=https://archive.ph/rLZGL | archive-date=20 August 2022}}</ref> It may also have been intended to reduce network congestion compared to the broadcast version, and probably pre-dated the addition of multicast to the official version.
A version replacing the UDP broadcast with point-to-point communication between two hosts was created at the [[Lund Institute of Technology]] in Sweden. The source code patch for this was posted on ''comp.sys.sgi'' in September 1989. The reason given for this fork was to allow machines on different subnets to play against each other.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-September/009189.html | title=DOG: diff for point-to-point communication | date=20 September 1989 | url-status=live | archive-url=https://archive.today/20220820194843/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-September/009189.html | archive-date=20 August 2022}}</ref> It may also have been intended to reduce network congestion compared to the broadcast version, and probably pre-dated the addition of multicast to the official version.


====The air traffic control server, and a different TCP/IP implementation====
====The air traffic control server, and a different TCP/IP implementation====
Prior to 1988, the US Army's [[Ballistic Research Laboratory]] (BRL) had a copy of the XNS version of the software, but XNS did not work on their network. An engineer by the name of Ron Natalie had access to the source code and was able to create a TCP/IP version.<ref>{{cite web | url=https://inbox.vuxu.org/tuhs/22df01d5ac50$eca8e330$c5faa990$@ronnatalie.com/ | last1=Natalie | first1=Ron | title=Re: [TUHS] Gaming on early Unix | website=The Unix Heritage Society mailing list | url-status=live | archive-url=https://archive.ph/6KRJ1 | archive-date=20 January 2022}}</ref><ref>{{cite web | url=https://www.linkedin.com/in/ronald-natalie-3a701812 | website=LinkedIn | title=Ronald Natalie | url-status=live}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/008979.html | url-status=live | last1=Hobson | first1=Kevin | date=7 December 1988 | archive-url=https://archive.ph/CyROf | archive-date=20 August 2022 | title=Dogfight and others.}}</ref> This version communicated with a central server with its own "air traffic control" display.
Prior to 1988, the US Army's [[Ballistic Research Laboratory]] (BRL) had a copy of the XNS version of the software, but XNS did not work on their network. An engineer by the name of Ron Natalie had access to the source code and was able to create a TCP/IP version.<ref>{{cite web | url=https://inbox.vuxu.org/tuhs/22df01d5ac50$eca8e330$c5faa990$@ronnatalie.com/ | last1=Natalie | first1=Ron | title=Re: [TUHS] Gaming on early Unix | website=[[The Unix Heritage Society]] mailing list | url-status=live | archive-url=https://archive.today/20220820190158/https://inbox.vuxu.org/tuhs/22df01d5ac50$eca8e330$c5faa990$@ronnatalie.com/ | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://www.linkedin.com/in/ronald-natalie-3a701812 | website=LinkedIn | title=Ronald Natalie }}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/008979.html | url-status=live | last1=Hobson | first1=Kevin | date=7 December 1988 | archive-url=https://archive.today/20220820192711/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-December/008979.html | archive-date=20 August 2022 | title=Dogfight and others.}}</ref> This version communicated with a central server with its own "air traffic control" display.


There is no record of code from this version being used in the "official" version, or of its own networking implementation influencing the official one in any way. This means that the BRL version is probably an independent fork with different TCP/IP networking, which may not have been compatible with SGI's own. It may not even have used port 5130.
There is no record of code from this version being used in the "official" version, or of its own networking implementation influencing the official one in any way. This means that the BRL version is probably an independent fork with different TCP/IP networking, which may not have been compatible with SGI's own. It may not even have used port 5130.


A server program called ''atc'' (Air Traffic Control) for ''dog'' was mentioned on ''comp.sys.sgi'' in November 1988.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/006867.html | title=DOG | last1=Dombroski | first1=Robert M. | url-status=live | date=28 November 1988 | archive-url=https://archive.ph/rjk9I | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/000228.html | date=29 November 1988 | title=dog, radar, shadow, etc. & tcp/ip | url-status=live | archive-url=https://archive.ph/KBo5C | archive-date=20 August 2022}}</ref> This was probably Ron Natalie's air traffic control server, running on the BRL's forked version of ''dog''. There is no evidence of such a feature ever being added to the "official" version.
A server program called ''atc'' (Air Traffic Control) for ''dog'' was mentioned on ''comp.sys.sgi'' in November 1988.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/006867.html | title=DOG | last1=Dombroski | first1=Robert M. | url-status=live | date=28 November 1988 | archive-url=https://archive.today/20220820150454/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/006867.html | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/000228.html | date=29 November 1988 | title=dog, radar, shadow, etc. & tcp/ip | url-status=live | archive-url=https://archive.today/20220820152647/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1988-November/000228.html | archive-date=20 August 2022}}</ref> This was probably Ron Natalie's air traffic control server, running on the BRL's forked version of ''dog''. There is no evidence of such a feature ever being added to the "official" version.


====Porting for Sun Microsystems compatibility====
====Porting for Sun Microsystems compatibility====
In a 1992 thread on the ''rec.aviation.simulators'' Usenet group<ref>{{cite web | url=https://groups.google.com/g/rec.aviation.simulators/c/Jo0stigQIiM/m/xPjvoopwKrQJ | title=Summary: Flight simulators under X | date=16 November 1992 | url-status=live | archive-url=https://archive.ph/PAGmx | archive-date=24 September 2022}}</ref>, a list of available flight simulators included a port of dog/flight to ''pixrect'' - a ''"low-level raster operations library for writing device-independent applications for Sun products."''<ref>{{cite web | url=http://www.bitsavers.org/pdf/sun/sunos/4.1/800-4835-10A_4.1_Pixrect_Reference_Manual_199001.pdf | url-status=live | title=4.1 Pixrect Reference Manual (Part Number: 800-4835-10. Revision A of 5 January, 1990) | archive-url=https://web.archive.org/web/20200803125328/http://bitsavers.org/pdf/sun/sunos/4.1/800-4835-10A_4.1_Pixrect_Reference_Manual_199001.pdf | archive-date=3 August 2020}} {{webarchive|format=addlarchive|url1=https://archive.ph/pA5WD|date1=24 September 2022}}</ref>
In a 1992 thread on the ''rec.aviation.simulators'' Usenet group,<ref>{{cite web | url=https://groups.google.com/g/rec.aviation.simulators/c/Jo0stigQIiM/m/xPjvoopwKrQJ | title=Summary: Flight simulators under X | date=16 November 1992 | url-status=live | archive-url=https://archive.today/20220924170147/https://groups.google.com/g/rec.aviation.simulators/c/Jo0stigQIiM/m/xPjvoopwKrQJ | archive-date=24 September 2022}}</ref> a list of available flight simulators included a port of dog/flight to ''pixrect'' - a ''"low-level raster operations library for writing device-independent applications for Sun products."''<ref>{{cite web | url=http://www.bitsavers.org/pdf/sun/sunos/4.1/800-4835-10A_4.1_Pixrect_Reference_Manual_199001.pdf | url-status=live | title=4.1 Pixrect Reference Manual (Part Number: 800-4835-10. Revision A of 5 January, 1990) | archive-url=https://web.archive.org/web/20200803125328/http://bitsavers.org/pdf/sun/sunos/4.1/800-4835-10A_4.1_Pixrect_Reference_Manual_199001.pdf | archive-date=3 August 2020}} {{webarchive|format=addlarchive|url1=https://archive.today/20220924171811/http://www.bitsavers.org/pdf/sun/sunos/4.1/800-4835-10A_4.1_Pixrect_Reference_Manual_199001.pdf|date1=24 September 2022}}</ref>


This port was described as ''"(an) unauthorized copy of SGI flight/dog programs ported to run with pixrect. Very difficult to find one of these, and probably not legal. Nice fast network dogfighting. Tends to bog down the whole LAN with packets."''
This port was described as ''"(an) unauthorized copy of SGI flight/dog programs ported to run with pixrect. Very difficult to find one of these, and probably not legal. Nice fast network dogfighting. Tends to bog down the whole LAN with packets."''
Line 76: Line 77:
Another Sun port - specifically compiled for Sun's [[SPARCstation]] hardware - was also mentioned.
Another Sun port - specifically compiled for Sun's [[SPARCstation]] hardware - was also mentioned.


In a 1990 post to ''comp.sys.sgi'',<ref name=CSS_Sparcstation>{{cite web | url=https://groups.google.com/g/comp.sys.sgi/c/vZFaB9oPBIA/m/OMroUwYYgjkJ | url-status=live | title=Status of 'flight' source | last1=Hayman | first1=Steve | date=15 February 1990 | archive-url=https://archive.ph/jhAWh | archive-date=24 September 2022}}</ref> a Sun port was mentioned which ''"runs reasonably well on a colour GX Sparcstation although it doesn't fill the polygons so a lot of the realism is lost"''. It is not clear whether this was a third Sun port, or whether it was one of the ports listed in the ''rec.aviation.simulators'' thread.
In a 1990 post to ''comp.sys.sgi'',<ref name=CSS_Sparcstation>{{cite web | url=https://groups.google.com/g/comp.sys.sgi/c/vZFaB9oPBIA/m/OMroUwYYgjkJ | url-status=live | title=Status of 'flight' source | last1=Hayman | first1=Steve | date=15 February 1990 | archive-url=https://archive.today/20220924173239/https://groups.google.com/g/comp.sys.sgi/c/vZFaB9oPBIA/m/OMroUwYYgjkJ | archive-date=24 September 2022}}</ref> a Sun port was mentioned which ''"runs reasonably well on a colour GX Sparcstation although it doesn't fill the polygons so a lot of the realism is lost"''. It is not clear whether this was a third Sun port, or whether it was one of the ports listed in the ''rec.aviation.simulators'' thread.


The author of the thread stated that he had received this version in source code form, as a combination of the original SGI source code and a library to emulate SGI's graphics. In a later post,<ref name=CSS_Sparcstation/> he stated that he had been informed by SGI that the source code should not have been made publically available, and was distributed in violation of an NDA. He also mentioned that he had originally downloaded it from an FTP server.
The author of the thread stated that he had received this version in source code form, as a combination of the original SGI source code and a library to emulate SGI's graphics. In a later post,<ref name=CSS_Sparcstation/> he stated that he had been informed by SGI that the source code should not have been made publicly available, and was distributed in violation of an NDA. He also mentioned that he had originally downloaded it from an FTP server.


====Sci-fi craft, World War 1 planes, and the X-29====
====Sci-fi craft, World War 1 planes, and the X-29====
In a 1993 Usenet posting, one user mentioned having seen a version of ''flight'' with [[X-Wing]] and [[TIE_fighter|TIE Fighter]] models in the autumn 1987 issue of SGI's house magazine "IRIS Universe".<ref>{{cite web | url=https://groups.google.com/g/comp.sys.sgi.misc/c/m3mdKtouN1E/m/nnRM6jzWgWoJ | date=15 October 1993 | title=X-wing model for Dog | archive-url=https://archive.ph/ZxhuP | archive-date=24 September 2022 | url-status=live}}</ref> In a reply, a user from NASA's [[Langley_Research_Center|Langley Research Center]] said that they had had such a version running on an SGI 3130, and that as well as new vehicles there were also new weapons for some craft. The full list was as follows:
In a 1993 Usenet posting, one user mentioned having seen a version of ''flight'' with [[X-wing]] and [[TIE fighter]] models in the autumn 1987 issue of SGI's house magazine "IRIS Universe".<ref>{{cite web | url=https://groups.google.com/g/comp.sys.sgi.misc/c/m3mdKtouN1E/m/nnRM6jzWgWoJ | date=15 October 1993 | title=X-wing model for Dog | archive-url=https://archive.today/20220924195907/https://groups.google.com/g/comp.sys.sgi.misc/c/m3mdKtouN1E/m/nnRM6jzWgWoJ | archive-date=24 September 2022 | url-status=live}}</ref> In a reply, a user from NASA's [[Langley Research Center]] said that they had had such a version running on an SGI 3130, and that as well as new vehicles there were also new weapons for some craft. The full list was as follows:


* X-Wing, with lasers as weapons.
* X-wing, with lasers as weapons.
* TIE Fighter, also with laser weapons, and with [[Snoopy]] as the pilot.
* TIE fighter, also with laser weapons, and with [[Snoopy]] as the pilot.
* [[Grumman X-29]], with only the conventional set of weapons.
* [[Grumman X-29]], with only the conventional set of weapons.
* [[Sopwith Camel]], again with Snoopy as its pilot.
* [[Sopwith Camel]], again with Snoopy as its pilot.
* [[Fokker_Dr.I|Fokker Tri-Plane]], again with Snoopy as the pilot.
* [[Fokker Dr.I|Fokker Tri-Plane]], again with Snoopy as the pilot.
* [[Klingon_starships#The_Original_Series_era|Klingon battlecruiser]] from [[Star_Trek:_The_Original_Series|Star Trek: The Original Series]], with phasers and photon torpedoes as weapons.
* [[Klingon starships#The Original Series era|Klingon battlecruiser]] from [[Star Trek: The Original Series]], with phasers and photon torpedoes as weapons.


However, they only had a compiled binary of this version, and not the source code.
However, they only had a compiled binary of this version, and not the source code.


In a 1994 Usenet post, another user claimed authorship of the modified version, and offered to supply source code ''"for a price"''. The same user also stated that ''"It might need some changes for some of the newer machines."''<ref>{{cite web | url=https://groups.google.com/g/comp.sys.sgi.misc/c/LadYR1qr_p8/m/K-6Nr5BgCBAJ | url-status=live | date=21 February 1994 | last1=Cole | first1=Ron | title=dogfight / flight | archive-url=https://archive.ph/1HynE | archive-date=24 September 2022}}</ref> Whether this user was indeed the author is not confirmed.
In a 1994 Usenet post, another user claimed authorship of the modified version, and offered to supply source code ''"for a price"''. The same user also stated that ''"It might need some changes for some of the newer machines."''<ref>{{cite web | url=https://groups.google.com/g/comp.sys.sgi.misc/c/LadYR1qr_p8/m/K-6Nr5BgCBAJ | url-status=live | date=21 February 1994 | last1=Cole | first1=Ron | title=dogfight / flight | archive-url=https://archive.today/20220924202918/https://groups.google.com/g/comp.sys.sgi.misc/c/LadYR1qr_p8/m/K-6Nr5BgCBAJ | archive-date=24 September 2022}}</ref> Whether this user was indeed the author is not confirmed.


In an earlier Usenet posting, another user had claimed that the Klingon craft could cause lasting terrain damage with its weapons, leaving ''"craters in the Earth"''.<ref>{{cite web | date=16 August 1989 | last1=Hall | first1=Timothy | title=Overlay planes | url=https://groups.google.com/g/comp.sys.sgi/c/918KyFAs6Jk/m/omOpRckB8xUJ | url-status=live | archive-url=https://archive.ph/OIDUf | archive-date=24 September 2022}}</ref>
In an earlier Usenet posting, another user had claimed that the Klingon craft could cause lasting terrain damage with its weapons, leaving ''"craters in the Earth"''.<ref>{{cite web | date=16 August 1989 | last1=Hall | first1=Timothy | title=Overlay planes | url=https://groups.google.com/g/comp.sys.sgi/c/918KyFAs6Jk/m/omOpRckB8xUJ | url-status=live | archive-url=https://archive.today/20220924203643/https://groups.google.com/g/comp.sys.sgi/c/918KyFAs6Jk/m/omOpRckB8xUJ | archive-date=24 September 2022}}</ref>


Asked about this version, ''flight'' lead developer Rob Mace said that it had come ''"from a university"'', and that due to the copyrighted status of Snoopy and the sci-fi vehicles, SGI could not legally supply copies of it.<ref>{{cite web | url=https://groups.google.com/g/comp.sys.sgi/c/gYNWp8qbKpA/m/4zE_3EcGPjsJ | date=16 September 1992 | title=Comments/Questions about dog/flight | url-status=live | archive-url=https://archive.ph/PszQA | archive-date=24 September 2022}}</ref>
Asked about this version, ''flight'' lead developer Rob Mace said that it had come ''"from a university"'', and that due to the copyrighted status of Snoopy and the sci-fi vehicles, SGI could not legally supply copies of it.<ref>{{cite web | url=https://groups.google.com/g/comp.sys.sgi/c/gYNWp8qbKpA/m/4zE_3EcGPjsJ | date=16 September 1992 | title=Comments/Questions about dog/flight | url-status=live | archive-url=https://archive.today/20220924203906/https://groups.google.com/g/comp.sys.sgi/c/gYNWp8qbKpA/m/4zE_3EcGPjsJ | archive-date=24 September 2022}}</ref>


The Klingon vessel may have had unlimited maximum speed, and may also have been immune to stalling.{{Citation needed|date=September 2022}}
The Klingon vessel may have had unlimited maximum speed, and may also have been immune to stalling.{{Citation needed|date=September 2022}}
Line 105: Line 106:


* Gary Tarolli (Original version)
* Gary Tarolli (Original version)
* Network communications David "Ciemo" Ciemiewicz (Ciemiewicz worked on the UDP broadcast code<ref>{{cite web | url=https://archive.irixnet.org/developerforum95/html/bios.html | access-date=23 August 2022 | title=Developer Forum '95 - Speaker Information | url-status=live | archive-url=https://web.archive.org/web/20210310060345/https://archive.irixnet.org/developerforum95/html/bios.html | archive-date=10 March 2021}} {{webarchive | format=addlarchive | url1=https://archive.ph/KW51A | date1=23 August 2022}}</ref>) and Andrew Cherenson (IP multicast{{Citation needed|date=August 2022}}).
* Network communications David "Ciemo" Ciemiewicz (Ciemiewicz worked on the UDP broadcast code<ref>{{cite web | url=https://archive.irixnet.org/developerforum95/html/bios.html | access-date=23 August 2022 | title=Developer Forum '95 - Speaker Information | url-status=live | archive-url=https://web.archive.org/web/20210310060345/https://archive.irixnet.org/developerforum95/html/bios.html | archive-date=10 March 2021}} {{webarchive | format=addlarchive | url1=https://archive.today/20220823162047/https://archive.irixnet.org/developerforum95/html/bios.html | date1=23 August 2022}}</ref>) and Andrew Cherenson (IP multicast{{Citation needed|date=August 2022}}).
* Rob Mace (Main coder by 1989,<ref name=bad_stall_spins_and_threat_cones_and_mace_main>{{cite web | last1=Tarolli | first1=Gary | title=flight's concept of a 'good landing' | date=21 February 1989 | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/001462.html | url-status=live | archive-url=https://archive.ph/90BKc | archive-date=20 August 2022}}</ref> maybe involved as far back as 1988.{{Citation needed|date=August 2022}} Listed as responsible for IRIX 6.5 version. Credited with the geometry for the F-14. Also co-credited with Thad Beier for the F-18, with Marc Ondrechen for the 727, and with Marshall Levine for the new instrument panel)
* Rob Mace (Main coder by 1989,<ref name=bad_stall_spins_and_threat_cones_and_mace_main>{{cite web | last1=Tarolli | first1=Gary | title=flight's concept of a 'good landing' | date=21 February 1989 | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/001462.html | url-status=live | archive-url=https://archive.today/20220820164300/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/001462.html | archive-date=20 August 2022}}</ref> maybe involved as far back as 1988.{{Citation needed|date=August 2022}} Listed as responsible for IRIX 6.5 version. Credited with the geometry for the F-14. Also co-credited with Thad Beier for the F-18, with Marc Ondrechen for the 727, and with Marshall Levine for the new instrument panel)
* Barry Brouillette (Described as a "contributor", geometry for F-16 and P-38)
* Barry Brouillette (Described as a "contributor", geometry for F-16 and P-38)
* Marshall Levine (Described as a "contributor", co-credited with Rob Mace for the new instrument panel)
* Marshall Levine (Described as a "contributor", co-credited with Rob Mace for the new instrument panel)
Line 117: Line 118:
===The "city of lights"===
===The "city of lights"===


In a 1991 Usenet posting, one user asked about an "interesting city" which the manual had claimed would exist north-north-west of the airport. Tarolli and others explained that there was no physical city at that location, but that lights were shown at night as if there were a city there.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/007389.html | date=8 June 1991 | title=+-} Question on FLIGHT>Silcon Graphics | url-status=live | archive-url=https://archive.ph/kJfPM | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/008235.html | date=8 June 1991 | title=+-} Question on FLIGHT>Silcon Graphics | url-status=live | archive-url=https://archive.ph/bMvBw | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/003566.html | date=11 June 1991 | title=+-} Question on FLIGHT>Silcon Graphics | url-status=live | archive-url=https://archive.ph/9Hbz8 | archive-date=20 August 2022 | last1=Tarolli | first1=Gary}}</ref>
In a 1991 Usenet posting, one user asked about an "interesting city" which the manual had claimed would exist north-north-west of the airport. Tarolli and others explained that there was no physical city at that location, but that lights were shown at night as if there were a city there.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/007389.html | date=8 June 1991 | title=+-} Question on FLIGHT>Silcon Graphics | url-status=live | archive-url=https://archive.today/20220820182245/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/007389.html | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/008235.html | date=8 June 1991 | title=+-} Question on FLIGHT>Silcon Graphics | url-status=live | archive-url=https://archive.today/20220820182505/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/008235.html | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/003566.html | date=11 June 1991 | title=+-} Question on FLIGHT>Silcon Graphics | url-status=live | archive-url=https://archive.today/20220820182448/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/003566.html | archive-date=20 August 2022 | last1=Tarolli | first1=Gary}}</ref>


===SAM threat cones===
===SAM threat cones===
Pressing 'T' (shift+'t') in-game would cause wireframe domes to appear around the small brown rectangles in the swamp. These rectangles were intended to represent [[Surface-to-air_missile| surface-to-air missile (SAM)]] sites, and the domes would represent the regions in which the player was in danger from the missiles. This was added at the request of [[Williams Air Force Base]], as part of the changes that included the -h option described earlier.<ref name=williams_afb/> This behaviour was not documented.<ref name=bad_stall_spins_and_threat_cones_and_mace_main/>
Pressing 'T' (shift+'t') in-game would cause wireframe domes to appear around the small brown rectangles in the swamp. These rectangles were intended to represent [[Surface-to-air missile| surface-to-air missile (SAM)]] sites, and the domes would represent the regions in which the player was in danger from the missiles. This was added at the request of [[Williams Air Force Base]], as part of the changes that included the -h option described earlier.<ref name=williams_afb/> This behaviour was not documented.<ref name=bad_stall_spins_and_threat_cones_and_mace_main/>


The game did not in fact include code to fire SAMs from those sites, merely to show the "threat cones" that would exist for SAMs in these locations. However, a forked version was created (presumably by Williams AFB personnel) that ''did'' include this feature.<ref name=bad_stall_spins_and_threat_cones_and_mace_main/> The [[University of Calgary]] in Canada possessed a copy of this version,<ref name=Calgary>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/000998.html | date=20 February 1989 | last1=Jevans | first1=David | url-status=live | title=dog's T | archive-url=https://archive.ph/HKMGi | archive-date=20 August 2022}} {{webarchive | format=addlarchive | url1=https://web.archive.org/web/20220820233832/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/000998.html | date1=20 August 2022}}</ref>. In a Usenet post referring to this version, David Jevans of the University of Calgary mentioned that several other versions of ''flight'' now existed, including a version running on the IRIS Power Series with [[Gouraud_shading|Gouraud shaded]] planes.<ref name=Calgary/>
The game did not in fact include code to fire SAMs from those sites, merely to show the "threat cones" that would exist for SAMs in these locations. However, a forked version was created (presumably by Williams AFB personnel) that ''did'' include this feature.<ref name=bad_stall_spins_and_threat_cones_and_mace_main/> The [[University of Calgary]] in Canada possessed a copy of this version.<ref name=Calgary>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/000998.html | date=20 February 1989 | last1=Jevans | first1=David | url-status=live | title=dog's T | archive-url=https://archive.today/20220820232605/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/000998.html | archive-date=20 August 2022}} {{webarchive | format=addlarchive | url1=https://web.archive.org/web/20220820233832/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/000998.html | date1=20 August 2022}}</ref> In a Usenet post referring to this version, David Jevans of the University of Calgary mentioned that several other versions of ''flight'' now existed, including a version running on the IRIS Power Series with [[Gouraud shading|Gouraud shaded]] planes.<ref name=Calgary/>


SAMs were added to the official version in a later revision. However, they were only added to the "low end" version, not the GT/GTX/VGX version.<ref>{{cite web | last1=Tarolli | first1=Gary | url=https://groups.google.com/g/comp.sys.sgi/c/N930FUUPOp4/m/o-b-MalVh6EJ | url-status=live | date=21 October 1991 | title=Question about SGI flight simulator | archive-url=https://archive.ph/XTRq8 | archive-date=24 September 2022}}</ref><ref>{{cite web | last1=Tarolli | first1=Gary | url=https://groups.google.com/g/comp.sys.sgi/c/PZ2z4Jlxv1w/m/XdMVEjsIbmoJ | url-status=live | date=27 February 1992 | title=Flight/dog | archive-url=https://archive.ph/s9WiQ | archive-date=24 September 2022}}</ref> In this revision, the SAMs could not be intercepted, had higher acceleration than the player's sidewinders, and would detonate themselves after 10 seconds when they ran out of fuel. If the user had a weapon in flight (e.g. a rocket or sidewinder) it would be automatically destroyed at the moment the SAM was launched. The user would then be unable to fire any more weapons until the SAM was destroyed.
SAMs were added to the official version in a later revision. However, they were only added to the "low end" version, not the GT/GTX/VGX version.<ref>{{cite web | last1=Tarolli | first1=Gary | url=https://groups.google.com/g/comp.sys.sgi/c/N930FUUPOp4/m/o-b-MalVh6EJ | url-status=live | date=21 October 1991 | title=Question about SGI flight simulator | archive-url=https://archive.today/20220924175225/https://groups.google.com/g/comp.sys.sgi/c/N930FUUPOp4/m/o-b-MalVh6EJ | archive-date=24 September 2022}}</ref><ref>{{cite web | last1=Tarolli | first1=Gary | url=https://groups.google.com/g/comp.sys.sgi/c/PZ2z4Jlxv1w/m/XdMVEjsIbmoJ | url-status=live | date=27 February 1992 | title=Flight/dog | archive-url=https://archive.today/20220924180431/https://groups.google.com/g/comp.sys.sgi/c/PZ2z4Jlxv1w/m/XdMVEjsIbmoJ | archive-date=24 September 2022}}</ref> In this revision, the SAMs could not be intercepted, had higher acceleration than the player's sidewinders, and would detonate themselves after 10 seconds when they ran out of fuel. If the user had a weapon in flight (e.g. a rocket or sidewinder) it would be automatically destroyed at the moment the SAM was launched. The user would then be unable to fire any more weapons until the SAM was destroyed.


A user in Germany had access to one of these versions, although it is not clear which one.<ref>{{cite web | url=http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | title=Flight & Dogfight | url-status=live | date=21 May 1993 | archive-url=https://web.archive.org/web/20220507222959/http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | archive-date=7 May 2022}} {{webarchive | url=https://archive.ph/71vWX | date=7 May 2022}}}}</ref>
A user in Germany had access to one of these versions, although it is not clear which one.<ref>{{cite web | url=http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | title=Flight & Dogfight | url-status=live | date=21 May 1993 | archive-url=https://web.archive.org/web/20220507222959/http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | archive-date=7 May 2022}} {{webarchive | url=https://archive.today/20220507221904/http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | date=7 May 2022}}</ref>


===In-game physics===
===In-game physics===


====Yaw and roll coupling====
====Yaw and roll coupling====
The game's physics did not include [[Aircraft_principal_axes|yaw/roll]] coupling. Tarolli knew that this existed, but did not have a reference for the relevant equations and was unable to derive them himself. He was also unsure how much of an effect the shape of the wings would have, and whether yaw and roll would be strongly coupled for all shapes of wing.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/008982.html |last1=Gigante | first1=Mike A. | date=23 February 1989 | title=flight's concept of a 'good landing' | url-status=live | archive-url=https://archive.ph/aXZ5q | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004047.html | last1=Tarolli | first1=Gary | date=25 February 1989 | title=flight's concept of a 'good landing' | url-status=live | archive-url=https://archive.ph/jUKjG | archive-date=20 August 2022}}</ref> As a result, he was unable to implement it in code.
The game's physics did not include [[Aircraft principal axes|yaw/roll]] coupling. Tarolli knew that this existed, but did not have a reference for the relevant equations and was unable to derive them himself. He was also unsure how much of an effect the shape of the wings would have, and whether yaw and roll would be strongly coupled for all shapes of wing.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/008982.html |last1=Gigante | first1=Mike A. | date=23 February 1989 | title=flight's concept of a 'good landing' | url-status=live | archive-url=https://archive.today/20220820213418/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/008982.html | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004047.html | last1=Tarolli | first1=Gary | date=25 February 1989 | title=flight's concept of a 'good landing' | url-status=live | archive-url=https://archive.today/20220820213204/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004047.html | archive-date=20 August 2022}}</ref> As a result, he was unable to implement it in code.


====Stall and spin====
====Stall and spin====
Two users complained about the game's stall/spin physics, arguing that stalls and spins did not occur as often as they would in real life, or in as many circumstances. They also complained about unrealistic behaviour when a stall did happen.<ref name=jim_frost_stall_spin_rudder>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004823.html | title=flight's concept of a 'good landing' | last1=Frost | first1=Jim | date=22 February 1989 | url-status=live | archive-url=https://archive.ph/XSnhu | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004530.html | last1=Bartels | first1=Richard | date=22 February 1989 | url-status=live | title=flight's concept of a 'good landing' | archive-url=https://archive.ph/c92rl | archive-date=20 August 2022}}</ref>
Two users complained about the game's stall/spin physics, arguing that stalls and spins did not occur as often as they would in real life, or in as many circumstances. They also complained about unrealistic behaviour when a stall did happen.<ref name=jim_frost_stall_spin_rudder>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004823.html | title=flight's concept of a 'good landing' | last1=Frost | first1=Jim | date=22 February 1989 | url-status=live | archive-url=https://archive.today/20220820212357/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004823.html | archive-date=20 August 2022}}</ref><ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004530.html | last1=Bartels | first1=Richard | date=22 February 1989 | url-status=live | title=flight's concept of a 'good landing' | archive-url=https://archive.today/20220820214945/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/004530.html | archive-date=20 August 2022}}</ref>


In his response to this, Tarolli pointed out that while minor stalls were predictable, violent stalls were not. He also noted that modelling minor stalls would depend heavily on the wing design, and that it would require custom equations to be coded for every different wing shape on each of the planes. The calculations involved in modelling minor stalls would also be intensive and complicated enough to cause significant in-game slowdown.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/008086.html | url-status=live | date=22 February 1989 | last1=Tarolli | first1=Gary | title=flight's concept of a 'good landing' | archive-url=https://archive.ph/KmXwO | archive-date=20 August 2022}}</ref>
In his response to this, Tarolli pointed out that while minor stalls were predictable, violent stalls were not. He also noted that modelling minor stalls would depend heavily on the wing design, and that it would require custom equations to be coded for every different wing shape on each of the planes. The calculations involved in modelling minor stalls would also be intensive and complicated enough to cause significant in-game slowdown.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/008086.html | url-status=live | date=22 February 1989 | last1=Tarolli | first1=Gary | title=flight's concept of a 'good landing' | archive-url=https://archive.today/20220820220013/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/008086.html | archive-date=20 August 2022}}</ref>


At least one user felt that the criticism levelled at Gary for the in-game physics was unfair, noting that ''flight'' and ''dog'' were intended primarily as fun games, not as precise simulations. He added that the relevant aerodynamics were often described in ''"a highly qualitative fashion"'' in relevant books, and that coding them into a simulation could be extremely difficult even if one had been able to learn them from such a book.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/003539.html | date=22 February 1989 | title=Flight Simulators... (was concept of good landing) | last1=VandeWettering | first1=Mark | url-status=live | archive-url=https://archive.ph/2YCsz | archive-date=20 August 2022}}</ref> Tarolli himself noted that since he had not been able to model a real stall, he had coded random spins for very bad stalls (depending on how bad the stall was), in the hope that this would be "something fun" for the players.<ref name=bad_stall_spins_and_threat_cones_and_mace_main/> He also stated that ''"half the things in flight are meant to be real - the other half are there to make dog more fun than it would be if things were too real."''
At least one user felt that the criticism levelled at Gary for the in-game physics was unfair, noting that ''flight'' and ''dog'' were intended primarily as fun games, not as precise simulations. He added that the relevant aerodynamics were often described in ''"a highly qualitative fashion"'' in relevant books, and that coding them into a simulation could be extremely difficult even if one had been able to learn them from such a book.<ref>{{cite web | url=https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/003539.html | date=22 February 1989 | title=Flight Simulators... (was concept of good landing) | last1=VandeWettering | first1=Mark | url-status=live | archive-url=https://archive.today/20220820220946/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1989-February/003539.html | archive-date=20 August 2022}}</ref> Tarolli himself noted that since he had not been able to model a real stall, he had coded random spins for very bad stalls (depending on how bad the stall was), in the hope that this would be "something fun" for the players.<ref name=bad_stall_spins_and_threat_cones_and_mace_main/> He also stated that ''"half the things in flight are meant to be real - the other half are there to make dog more fun than it would be if things were too real."''


==Use in academic research==
==Use in academic research==


===1989===
===1989===
A group of researchers interfaced the flight simulator with the US military's [[SIMNET]].<ref>{{cite techreport | last1=Cadiz | first1=Jorge | last2=Ouyang | first2=Ruey | last3=Thompson | first3=Jack | title=Interfacing of the Silicon Graphics Networkable Flight Simulator with SIMNET | institution=University of Central Florida, Institute for Simulation and Training | date=5 October 1989 | url=https://apps.dtic.mil/sti/pdfs/ADA241023.pdf | number=IST-TR-89-1 | url-status=live | archive-url=https://web.archive.org/web/20220722141801/https://apps.dtic.mil/sti/pdfs/ADA241023.pdf | archive-date=22 July 2022}}</ref> In their report, they stated:
A group of researchers interfaced the flight simulator with the US military's [[SIMNET]].<ref>{{cite tech report | last1=Cadiz | first1=Jorge | last2=Ouyang | first2=Ruey | last3=Thompson | first3=Jack | title=Interfacing of the Silicon Graphics Networkable Flight Simulator with SIMNET | institution=University of Central Florida, Institute for Simulation and Training | date=5 October 1989 | url=https://apps.dtic.mil/sti/pdfs/ADA241023.pdf | number=IST-TR-89-1 | url-status=live | archive-url=https://web.archive.org/web/20220722141801/https://apps.dtic.mil/sti/pdfs/ADA241023.pdf | archive-date=22 July 2022}}</ref> In their report, they stated:


''"We were able to translate the SG "Dogfight" PDU's by "stealing" packets from the ETHERNET via a PC/AT with an [[Excelan]] 205E ETHERNET board installed. The software written to perform this operation uses UDP/IP to capture the SG broadcast packets and saves them to a disk file. Information contained in the SG PDU was reformatted or translated into SIMNET type packets, and then retransmitted over the ETHERNET to the SIMNET M1 tank modules."''
''"We were able to translate the SG "Dogfight" PDU's by "stealing" packets from the ETHERNET via a PC/AT with an [[Excelan]] 205E ETHERNET board installed. The software written to perform this operation uses UDP/IP to capture the SG broadcast packets and saves them to a disk file. Information contained in the SG PDU was reformatted or translated into SIMNET type packets, and then retransmitted over the ETHERNET to the SIMNET M1 tank modules."''
Line 150: Line 151:


===1990===
===1990===
A researcher at the US Air Force Institute of Technology attempted to reduce the cost of flight simulators used in pilot training by using a head-mounted display with a simulator that could run on PC hardware.<ref>{{cite thesis | type=MSc | publisher=Air Force Institute of Technology | title=A Low-Cost Part-Task Flight Training System: An Application of a Head Mounted Display | last1=Dahn | first1=David A. | date=1 December 1990 | url=https://apps.dtic.mil/sti/pdfs/ADA230353.pdf | url-status=live | archive-url=https://web.archive.org/web/20220722173624/https://apps.dtic.mil/sti/pdfs/ADA230353.pdf | archive-date=22 July 2022}}</ref> As part of this, an attempt was made to port ''dog''/''flight'' to a PC platform based on a 20MHz 80386 processor with [[X87#80387|80387]] coprocessor, and a Real World Graphics Ltd. PC Reality board containing two Intel [[Intel_i860|i860]] RISC processors. The PC was running ESIX, a version of System V UNIX. Due to the presence of the head-mounted display, the PC also had to host a device to track user head movements.
A researcher at the US Air Force Institute of Technology attempted to reduce the cost of flight simulators used in pilot training by using a head-mounted display with a simulator that could run on PC hardware.<ref>{{cite thesis | type=MSc | publisher=Air Force Institute of Technology | title=A Low-Cost Part-Task Flight Training System: An Application of a Head Mounted Display | last1=Dahn | first1=David A. | date=1 December 1990 | url=https://apps.dtic.mil/sti/pdfs/ADA230353.pdf | url-status=live | archive-url=https://web.archive.org/web/20220722173624/https://apps.dtic.mil/sti/pdfs/ADA230353.pdf | archive-date=22 July 2022}}</ref> As part of this, an attempt was made to port ''dog''/''flight'' to a PC platform based on a 20MHz 80386 processor with [[X87#80387|80387]] coprocessor, and a Real World Graphics Ltd. PC Reality board containing two Intel [[Intel i860|i860]] RISC processors. The PC was running ESIX, a version of System V UNIX. Due to the presence of the head-mounted display, the PC also had to host a device to track user head movements.


The flight simulator program needed to maintain cross-platform portability, so rewriting it in assembler instead of C was not allowed. Calls to the SGI hardware graphics pipeline were "emulated", translated on-the-go to calls to the PC Reality board's library functions.
The flight simulator program needed to maintain cross-platform portability, so rewriting it in assembler instead of C was not allowed. Calls to the SGI hardware graphics pipeline were "emulated", translated on-the-go to calls to the PC Reality board's library functions.
Line 160: Line 161:
It was noted that the unmodified version of ''dog'' used ''"makes extensive use of the Silicon Graphic's immediate mode graphics pipeline. In addition to including the new graphics functions released with the SGI 4D architecture, the program contains significant use of older functions that constituted the outdated SGI IRIS 31XX graphics pipeline methods. The SGI 4D machines provide built-in support for those older methods; however, they clearly identify that those methods do not optimally exploit the graphics pipeline provided in the 4D architecture."''
It was noted that the unmodified version of ''dog'' used ''"makes extensive use of the Silicon Graphic's immediate mode graphics pipeline. In addition to including the new graphics functions released with the SGI 4D architecture, the program contains significant use of older functions that constituted the outdated SGI IRIS 31XX graphics pipeline methods. The SGI 4D machines provide built-in support for those older methods; however, they clearly identify that those methods do not optimally exploit the graphics pipeline provided in the 4D architecture."''


However, the experiment was not a success. Some of the SGI functionality could not easily be ported/emulated, and was either omitted or replaced with a workaround. Wing stalls and G-limits were not enforced and all the aircraft were able to pull outside loops. Collision detection also had to be omitted, alowing the plane to fly through hangars, hills, and mountains. Furthermore, the PC Reality board was not able to support the polygon count or frame rate claimed, and some advertised capability was missing. Its approach to 3D graphics did not ''"allow for methods that write directly to the screen in device coordinates."'', which caused problems. Only 4 frames per second were obtained, and even in tests with ''"an out-the-window view without the runway, buildings, or other terrain visible"'' no more than 10 fps could be achieved.
However, the experiment was not a success. Some of the SGI functionality could not easily be ported/emulated, and was either omitted or replaced with a workaround. Wing stalls and G-limits were not enforced and all the aircraft were able to pull outside loops. Collision detection also had to be omitted, allowing the plane to fly through hangars, hills, and mountains. Furthermore, the PC Reality board was not able to support the polygon count or frame rate claimed, and some advertised capability was missing. Its approach to 3D graphics did not ''"allow for methods that write directly to the screen in device coordinates."'', which caused problems. Only 4 frames per second were obtained, and even in tests with ''"an out-the-window view without the runway, buildings, or other terrain visible"'' no more than 10 fps could be achieved.


An additional research goal had been to network the PC and IRIS together, and to have them run ''dog'' interoperably. This was not achieved in the time available. One problem was that ESIX's UDP/IP support did not support programming below the OSI transport layer, unlike SGI's.
An additional research goal had been to network the PC and IRIS together, and to have them run ''dog'' interoperably. This was not achieved in the time available. One problem was that ESIX's UDP/IP support did not support programming below the OSI transport layer, unlike SGI's.


===1991===
===1991===
Code from the SGI flight simulator was incorporated into a project to develop a low-cost flight simulator using [[object-oriented programming]] techniques and the [[C%2B%2B|C++]] language.<ref>{{cite thesis | type=MSc | publisher=Air Force Institute of Technology | title=An Application of the Object-Oriented Paradigm to a Flight Simulator | last1=Simpson | first1=Dennis J. | date=1 December 1991 | url=https://apps.dtic.mil/sti/citations/ADA243624}}</ref>
Code from the SGI flight simulator was incorporated into a project to develop a low-cost flight simulator using [[object-oriented programming]] techniques and the [[C++]] language.<ref>{{cite thesis | type=MSc | publisher=Air Force Institute of Technology | title=An Application of the Object-Oriented Paradigm to a Flight Simulator | last1=Simpson | first1=Dennis J. | date=1 December 1991 | url=https://apps.dtic.mil/sti/citations/ADA243624}}</ref>


===1992===
===1992===
Another group of researchers modified ''flight'' to log the actions of the human "pilot", and to use these logged actions as input to an "induction program". This program would use machine learning to create an autopilot for a specific flight plan.<ref>{{cite conference | url=http://www.dsc.ufcg.edu.br/~hmg/disciplinas/graduacao/ia-2014.1/slides/unidade6/learning_to_fly.pdf | last1=Sammut | first1=Claude | last2=Hurst | first2=Scott | last3=Kedzier | first3=Dana | last4=Michie | first4=Donald | title=Learning to Fly | book-title=Machine Learning: Proceedings of the Ninth International Workshop (ML92) | editor1=Derek Sleeman | editor2=Peter Edwards | publisher=Morgan Kaufman | doi=10.1016/B978-1-55860-247-2.50055-3 | date=1992 | pages=385-393 | url-status=live | archive-url=https://web.archive.org/web/20210602091521/http://www.dsc.ufcg.edu.br/~hmg/disciplinas/graduacao/ia-2014.1/slides/unidade6/learning_to_fly.pdf | archive-date=2 June 2021}}</ref> The researchers chose the Cessna as their plane, stating that it was easier to learn how to fly the Cessna than any of the others. They also claimed that the rudder did not have "a realistic effect on the aircraft", although it is not clear if this claim applied only to the Cessna or to any/all of the other planes available. A poster on ''comp.sys.sgi'' had previously noted that the rudder would have a significant effect on a real-life Cessna, but had very little effect on the simulated Cessna of the ''flight'' program, and almost no effect on the other simulated planes in ''flight''.<ref name=jim_frost_stall_spin_rudder/>
Another group of researchers modified ''flight'' to log the actions of the human "pilot", and to use these logged actions as input to an "induction program". This program would use machine learning to create an autopilot for a specific flight plan.<ref>{{cite conference | url=http://www.dsc.ufcg.edu.br/~hmg/disciplinas/graduacao/ia-2014.1/slides/unidade6/learning_to_fly.pdf | last1=Sammut | first1=Claude | last2=Hurst | first2=Scott | last3=Kedzier | first3=Dana | last4=Michie | first4=Donald | title=Learning to Fly | book-title=Machine Learning: Proceedings of the Ninth International Workshop (ML92) | editor1=Derek Sleeman | editor2=Peter Edwards | publisher=Morgan Kaufman | doi=10.1016/B978-1-55860-247-2.50055-3 | date=1992 | pages=385–393 | url-status=live | archive-url=https://web.archive.org/web/20210602091521/http://www.dsc.ufcg.edu.br/~hmg/disciplinas/graduacao/ia-2014.1/slides/unidade6/learning_to_fly.pdf | archive-date=2 June 2021}}</ref> The researchers chose the Cessna as their plane, stating that it was easier to learn how to fly the Cessna than any of the others. They also claimed that the rudder did not have "a realistic effect on the aircraft", although it is not clear if this claim applied only to the Cessna or to any/all of the other planes available. A poster on ''comp.sys.sgi'' had previously noted that the rudder would have a significant effect on a real-life Cessna, but had very little effect on the simulated Cessna of the ''flight'' program, and almost no effect on the other simulated planes in ''flight''.<ref name=jim_frost_stall_spin_rudder/>


The researchers noted that the flight simulator was non-deterministic, since it ''"runs on a multi-tasking Unix system, not on a dedicated real-time system. Thus, it is not possible to give a guaranteed real-time response because the flight simulator can be interrupted by other processes or I/O traffic."'' This meant that simply repeating the same set of inputs across multiple runs of the flight simulator would not be guaranteed to give the same results. The researchers hoped that the work they had done in addressing this problem would later be applicable to real-world situations, such as the effects of varying wind conditions on a plane.
The researchers noted that the flight simulator was non-deterministic, since it ''"runs on a multi-tasking Unix system, not on a dedicated real-time system. Thus, it is not possible to give a guaranteed real-time response because the flight simulator can be interrupted by other processes or I/O traffic."'' This meant that simply repeating the same set of inputs across multiple runs of the flight simulator would not be guaranteed to give the same results. The researchers hoped that the work they had done in addressing this problem would later be applicable to real-world situations, such as the effects of varying wind conditions on a plane.
Line 184: Line 185:
* [https://www.youtube.com/watch?v=srRquWes0BQ] A video showing version 2.4 of ''flight'' and various other demos running on an [[SGI Indigo]]. The Boeing 727 and F-14D are not available to select as planes, suggesting that this is not the GT/GTX/VGX version.
* [https://www.youtube.com/watch?v=srRquWes0BQ] A video showing version 2.4 of ''flight'' and various other demos running on an [[SGI Indigo]]. The Boeing 727 and F-14D are not available to select as planes, suggesting that this is not the GT/GTX/VGX version.
* [https://www.youtube.com/watch?v=CKQO1eboCus] A video showing version 3.4 of ''flight'' for the GT/GTX/VGX running on a later model of Indigo, with [[IRIX]] 5.3.
* [https://www.youtube.com/watch?v=CKQO1eboCus] A video showing version 3.4 of ''flight'' for the GT/GTX/VGX running on a later model of Indigo, with [[IRIX]] 5.3.
* [https://ryan.thoryk.com/sgi/irix_versions.html History of IRIX] {{webarchive | url=https://web.archive.org/web/20220417024541/https://ryan.thoryk.com/sgi/irix_versions.html | date=17 April 2022 | url2=https://archive.ph/TPDDH | date2=31 July 2021}}
* [https://ryan.thoryk.com/sgi/irix_versions.html History of IRIX] {{webarchive | url=https://web.archive.org/web/20220417024541/https://ryan.thoryk.com/sgi/irix_versions.html | date=17 April 2022 | url2=https://archive.today/20210731214629/https://ryan.thoryk.com/sgi/irix_versions.html | date2=31 July 2021}}
* [https://web.archive.org/web/20070717025813/http://ftp.arl.army.mil/ftp/info-iris/info-iris.txt.05 IRIS users discussion list archive, 1988]
* [https://web.archive.org/web/20070717025813/http://ftp.arl.army.mil/ftp/info-iris/info-iris.txt.05 IRIS users discussion list archive, 1988]
* [https://web.archive.org/web/20160119204212/http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/u_man/cat6/shadow.z Unix Manual Page] from SGI IRIX version 6.5
* [https://web.archive.org/web/20160119204212/http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/u_man/cat6/shadow.z Unix Manual Page] from SGI IRIX version 6.5
* [https://web.archive.org/web/20160303234100/http://tclab.kaist.ac.kr/~cs580/FTP/OPENGL/flightdoc.html Unix Manual Page] including references to an earlier version of the game, before multicasting was added.
* [https://web.archive.org/web/20160303234100/http://tclab.kaist.ac.kr/~cs580/FTP/OPENGL/flightdoc.html Unix Manual Page] including references to an earlier version of the game, before multicasting was added.
* [https://notwood.net/sgiflight/ A downloadable Windows port of version 3.4.1, plus source for version 2.4.] The port is dated April 4th 1997 and has its own version number of 1.01. It is a port of the GT/GTX/VGX version. The source code appears to be source for the other version, since the 727 and F-14D are not selectable.
* [https://notwood.net/sgiflight/ A downloadable Windows port of version 3.4.1, plus source for version 2.4.] The port is dated April 4, 1997 and has its own version number of 1.01. It is a port of the GT/GTX/VGX version. The source code appears to be source for the other version, since the 727 and F-14D are not selectable.
* [https://github.com/lkesteloot/alice/tree/master/alice4/software/flight The source code for a 2018 port of ''flight'' v2.4 to custom ARM hardware.]
* [https://github.com/lkesteloot/alice/tree/master/alice4/software/flight The source code for a 2018 port of ''flight'' v2.4 to custom ARM hardware.]
* [http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm A forum posting describing two undocumented features in at least one version of ''flight''] {{webarchive | url=https://web.archive.org/web/20220507222959/http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | date=7 May 2022 | url2=https://archive.ph/71vWX | date2=7 May 2022}}
* [http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm A forum posting describing two undocumented features in at least one version of ''flight''] {{webarchive | url=https://web.archive.org/web/20220507222959/http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | date=7 May 2022 | url2=https://archive.today/20220507221904/http://www.verycomputer.com/16_ee4d7aa4b29806e1_1.htm | date2=7 May 2022}}
* [https://forums.irixnet.org/thread-2858.html A download link for a compiled binary of version 2.4.] This was probably compiled for an Iris3000 target, and is not the GT/GTX/VGX version.
* [https://forums.irixnet.org/thread-2858.html A download link for a compiled binary of version 2.4.] This was probably compiled for an Iris3000 target, and is not the GT/GTX/VGX version.
* Cadiz, J.; Ouyang, R.; Thompson, J. (5 October 1989). [https://apps.dtic.mil/sti/pdfs/ADA241023.pdf ''Interfacing of the Silicon Graphics Networkable Flight Simulator with SIMNET'']; ([https://apps.dtic.mil/sti/citations/ADA241023 citation information]). University of Central Florida Orlando Institute for Simulation and Training. Accession number ADA241023, publication number IST-TR-89-1.
* Cadiz, J.; Ouyang, R.; Thompson, J. (5 October 1989). [https://apps.dtic.mil/sti/pdfs/ADA241023.pdf ''Interfacing of the Silicon Graphics Networkable Flight Simulator with SIMNET'']; ([https://apps.dtic.mil/sti/citations/ADA241023 citation information]). University of Central Florida Orlando Institute for Simulation and Training. Accession number ADA241023, publication number IST-TR-89-1.
* [https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/009617.html suggested mods for "dog" (a forum posting by a former commercial pilot containing detailed discussion of in-game physics and the behaviour of the simulated planes)] {{webarchive | url=https://archive.ph/zwys8 | date=20 August 2022}}
* [https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/009617.html suggested mods for "dog" (a forum posting by a former commercial pilot containing detailed discussion of in-game physics and the behaviour of the simulated planes)] {{webarchive | url=https://archive.today/20220820224230/https://mirrors.nycbug.org/pub/The_Unix_Archive/Unix_Usenet/comp.sys.sgi/1991-June/009617.html | date=20 August 2022}}


[[Category:1985 video games]]
[[Category:1985 video games]]

Latest revision as of 01:00, 31 October 2024

Dogfight
The view from inside of a cockpit
Developer(s)Gary Tarolli
Publisher(s)Silicon Graphics Incorporated
Platform(s)SGI Workstations
Release1985 as a free demo
Genre(s)Flight Simulator
Mode(s)Single Player, Multiplayer

Dogfight is a demonstration program initially written by Gary Tarolli (later founder of 3dfx) at Silicon Graphics, Inc in the summer of 1983.[1][2] It represents landmarks in two key areas of Internet development: games and multicasting, and notable advancement in creating rendered virtual environments.[citation needed]

Overview

[edit]

Dogfight might more properly be referred to as three programs, flight, dog, and shadow. Flight is a flight simulator, dog is an air combat game in which multiple people use the flight interface to control their aircraft, and Shadow is an observation program that allows a user to see what a user of either dog or flight sees.[3][4]

dog and shadow could also be run in "airshow mode", using the -i and -o command-line switches. With -o, the path taken by the plane would be saved to a file instead of being broadcast to the network. With -i, the user could specify a file containing a saved flight path of this sort, and it would be displayed. Missiles fired by a plane in this mode would not affect planes in non-airshow mode. The intention was for the user to be able to record the paths of several aircraft, and then, by replaying them simultaneously, to be able to display complex aerial formations with multiple planes.[3]

At some point, the -h command-line switch was also added. This would replace the standard instrument panel with a head-up display (HUD). Such a display was commonly used in military aircraft and would allow for a larger view, but at the cost of a slower update rate.[3][4] This was added because Williams Air Force Base was interested in using flight for F-16 training, debriefing and "human-interaction studies", but wanted it to have a HUD similar to the HUD on a real F-16.[5]

The following planes were available:[citation needed]

  • Cessna 150
  • P-38 Lightning
  • Boeing 747
  • F-16
  • F-15 (In the GT/GTX/VGX version, this was described as looking like an F-14 model with the wings swept back.[3] The F-15 is neither a delta-wing nor a swing-wing plane, so this would have been inaccurate if the wings were fully swept back.)
  • F-14D (wings laid on)

Later versions added:[citation needed]

History

[edit]

Flight was written in the summer of 1983 by Gary Tarolli, as a demo for SGI workstations.[1][2] It was inspired by the Blue Angels airshows at Moffett Field, across the street from SGI's original headquarters.[1][6]

In 1984, networking capabilities began to be added. Initially, two workstations were connected by a serial cable. This allowed about 7 frames per second and 500 polygons per second on a machine with a Motorola 68000 CPU capable of approximately 1 MIPS. By SIGGRAPH 1984, XNS multicast support was added, allowing play over an Ethernet network.[1][2] After the event, the networked version of Flight was distributed on all SGI workstations.[2] In this networked version, users could see each others' planes, but could not interact with them.[1]

Probably in early 1985, dog was created,[1][2] and dog and flight were shipped as demonstration software included with SGI workstations. Message packets were transmitted at frame rate, and the number of players was capped due to bandwidth limitations, although sources differ as to whether this cap was 10 players[6] or a value in the tens of players.[1] Due to the network congestion resulting from so many packets being transmitted at frame rate, many system administrators removed dogfight from newly installed systems in order to prevent abuse of resources.[1] Other sysadmins limited play to restricted off-peak hours.[citation needed]

Dead reckoning was later added, to reduce the amount of data that needed to be transmitted.[6]

In 1986, UDP broadcast protocol capability was added (using port 5130).[7][8][9] Information was transmitted via broadcast packets and at frame rate, meaning that the program made intensive use of network resources and even a small number of players was capable of saturating an Ethernet. So while it was probably the first game to use the Internet Protocol Suite, gateways would refuse to transmit UDP broadcast packets, and thus could not be played across the Internet itself.[8]

By 1988, with the introduction of SGI's 4D series of machines, Dogfight had forked, with one version running on most SGI machines of the time (3000 series, 4DxxG's, Personal IRIS, GT, GTX) and another for use only on the higher-end GT, GTX and VGX machines.[3] These could interoperate, with both versions playing in the same game. The 4D/20 was observed to run dog at around 12 frames per second, while the faster 4D/70 would be capable of 20-25 fps. The other version was observed to run on a GT at around 15 frames/second.[10] In the Irix 6.5 documentation, it was noted that the Boeing 727 and F-14 were not available to choose as planes in the normal version of the software, but were present in the GT/GTX/VGX version.[3]

SGI would supply the source code to IRIS owners upon request if a non-disclosure agreement was signed.[10][11] Some Usenet posts claimed that the code was not supplied standalone, but as part of a "Software Exchange Release Tape". A fee of $100 was charged for this, and the user had to specifically request that the dog source code be included on the tape.[12] Others stated that this was for the physical media and shipping/handling, not the source code itself,[13] and that no charge was made if the IRIS owner supplied SGI with a blank tape of their own to put the code on.[14] Based on the dates of the various postings, it is possible that SGI initially supplied the code for free, but began charging for it at a later date.

Several programmers used this code as an example, to teach themselves UDP and how to use it in their own code.[1][2]

For the IRIX 3.3 version, circa 1989, IP multicast capability was added,[3] and the game became playable between any compatible hosts on the Internet, assuming that they had multicast access (which was quite uncommon). The multicast address was 224.0.1.2 (SGI-DOG.MCAST.NET),[15] making this only the third multicast application to receive an address assignment, with only the Versatile Message Transaction Protocol (VMTP) protocol (224.0.1.0) and the Network Time Protocol (224.0.1.1) having arrived first.[citation needed] SGI would later use the same address for their objectserver daemon, which handled GUI icons.[15][16][17][18] This caused confusion for some system administrators.

Unofficial forked versions

[edit]

Due to the availability of the source code, various SGI customers created and distributed their own unofficial modifications to the original flight program.

The point-to-point communication fork

[edit]

A version replacing the UDP broadcast with point-to-point communication between two hosts was created at the Lund Institute of Technology in Sweden. The source code patch for this was posted on comp.sys.sgi in September 1989. The reason given for this fork was to allow machines on different subnets to play against each other.[19] It may also have been intended to reduce network congestion compared to the broadcast version, and probably pre-dated the addition of multicast to the official version.

The air traffic control server, and a different TCP/IP implementation

[edit]

Prior to 1988, the US Army's Ballistic Research Laboratory (BRL) had a copy of the XNS version of the software, but XNS did not work on their network. An engineer by the name of Ron Natalie had access to the source code and was able to create a TCP/IP version.[20][21][22] This version communicated with a central server with its own "air traffic control" display.

There is no record of code from this version being used in the "official" version, or of its own networking implementation influencing the official one in any way. This means that the BRL version is probably an independent fork with different TCP/IP networking, which may not have been compatible with SGI's own. It may not even have used port 5130.

A server program called atc (Air Traffic Control) for dog was mentioned on comp.sys.sgi in November 1988.[23][24] This was probably Ron Natalie's air traffic control server, running on the BRL's forked version of dog. There is no evidence of such a feature ever being added to the "official" version.

Porting for Sun Microsystems compatibility

[edit]

In a 1992 thread on the rec.aviation.simulators Usenet group,[25] a list of available flight simulators included a port of dog/flight to pixrect - a "low-level raster operations library for writing device-independent applications for Sun products."[26]

This port was described as "(an) unauthorized copy of SGI flight/dog programs ported to run with pixrect. Very difficult to find one of these, and probably not legal. Nice fast network dogfighting. Tends to bog down the whole LAN with packets."

Another Sun port - specifically compiled for Sun's SPARCstation hardware - was also mentioned.

In a 1990 post to comp.sys.sgi,[27] a Sun port was mentioned which "runs reasonably well on a colour GX Sparcstation although it doesn't fill the polygons so a lot of the realism is lost". It is not clear whether this was a third Sun port, or whether it was one of the ports listed in the rec.aviation.simulators thread.

The author of the thread stated that he had received this version in source code form, as a combination of the original SGI source code and a library to emulate SGI's graphics. In a later post,[27] he stated that he had been informed by SGI that the source code should not have been made publicly available, and was distributed in violation of an NDA. He also mentioned that he had originally downloaded it from an FTP server.

Sci-fi craft, World War 1 planes, and the X-29

[edit]

In a 1993 Usenet posting, one user mentioned having seen a version of flight with X-wing and TIE fighter models in the autumn 1987 issue of SGI's house magazine "IRIS Universe".[28] In a reply, a user from NASA's Langley Research Center said that they had had such a version running on an SGI 3130, and that as well as new vehicles there were also new weapons for some craft. The full list was as follows:

However, they only had a compiled binary of this version, and not the source code.

In a 1994 Usenet post, another user claimed authorship of the modified version, and offered to supply source code "for a price". The same user also stated that "It might need some changes for some of the newer machines."[29] Whether this user was indeed the author is not confirmed.

In an earlier Usenet posting, another user had claimed that the Klingon craft could cause lasting terrain damage with its weapons, leaving "craters in the Earth".[30]

Asked about this version, flight lead developer Rob Mace said that it had come "from a university", and that due to the copyrighted status of Snoopy and the sci-fi vehicles, SGI could not legally supply copies of it.[31]

The Klingon vessel may have had unlimited maximum speed, and may also have been immune to stalling.[citation needed]

Developers

[edit]
A missile being launched

The manual page for the IRIX 6.5 (circa 1998) version of the program lists the following:[3]

  • Gary Tarolli (Original version)
  • Network communications David "Ciemo" Ciemiewicz (Ciemiewicz worked on the UDP broadcast code[32]) and Andrew Cherenson (IP multicast[citation needed]).
  • Rob Mace (Main coder by 1989,[33] maybe involved as far back as 1988.[citation needed] Listed as responsible for IRIX 6.5 version. Credited with the geometry for the F-14. Also co-credited with Thad Beier for the F-18, with Marc Ondrechen for the 727, and with Marshall Levine for the new instrument panel)
  • Barry Brouillette (Described as a "contributor", geometry for F-16 and P-38)
  • Marshall Levine (Described as a "contributor", co-credited with Rob Mace for the new instrument panel)
  • Thad Beier (Co-credited with Rob Mace for the F-18 geometry)
  • Marc Ondrechen (Co-credited with Rob Mace for the 727 geometry)
  • Sound effects by Chris Perry and Chris Schoeneman

Gameplay

[edit]

The "city of lights"

[edit]

In a 1991 Usenet posting, one user asked about an "interesting city" which the manual had claimed would exist north-north-west of the airport. Tarolli and others explained that there was no physical city at that location, but that lights were shown at night as if there were a city there.[34][35][36]

SAM threat cones

[edit]

Pressing 'T' (shift+'t') in-game would cause wireframe domes to appear around the small brown rectangles in the swamp. These rectangles were intended to represent surface-to-air missile (SAM) sites, and the domes would represent the regions in which the player was in danger from the missiles. This was added at the request of Williams Air Force Base, as part of the changes that included the -h option described earlier.[5] This behaviour was not documented.[33]

The game did not in fact include code to fire SAMs from those sites, merely to show the "threat cones" that would exist for SAMs in these locations. However, a forked version was created (presumably by Williams AFB personnel) that did include this feature.[33] The University of Calgary in Canada possessed a copy of this version.[37] In a Usenet post referring to this version, David Jevans of the University of Calgary mentioned that several other versions of flight now existed, including a version running on the IRIS Power Series with Gouraud shaded planes.[37]

SAMs were added to the official version in a later revision. However, they were only added to the "low end" version, not the GT/GTX/VGX version.[38][39] In this revision, the SAMs could not be intercepted, had higher acceleration than the player's sidewinders, and would detonate themselves after 10 seconds when they ran out of fuel. If the user had a weapon in flight (e.g. a rocket or sidewinder) it would be automatically destroyed at the moment the SAM was launched. The user would then be unable to fire any more weapons until the SAM was destroyed.

A user in Germany had access to one of these versions, although it is not clear which one.[40]

In-game physics

[edit]

Yaw and roll coupling

[edit]

The game's physics did not include yaw/roll coupling. Tarolli knew that this existed, but did not have a reference for the relevant equations and was unable to derive them himself. He was also unsure how much of an effect the shape of the wings would have, and whether yaw and roll would be strongly coupled for all shapes of wing.[41][42] As a result, he was unable to implement it in code.

Stall and spin

[edit]

Two users complained about the game's stall/spin physics, arguing that stalls and spins did not occur as often as they would in real life, or in as many circumstances. They also complained about unrealistic behaviour when a stall did happen.[43][44]

In his response to this, Tarolli pointed out that while minor stalls were predictable, violent stalls were not. He also noted that modelling minor stalls would depend heavily on the wing design, and that it would require custom equations to be coded for every different wing shape on each of the planes. The calculations involved in modelling minor stalls would also be intensive and complicated enough to cause significant in-game slowdown.[45]

At least one user felt that the criticism levelled at Gary for the in-game physics was unfair, noting that flight and dog were intended primarily as fun games, not as precise simulations. He added that the relevant aerodynamics were often described in "a highly qualitative fashion" in relevant books, and that coding them into a simulation could be extremely difficult even if one had been able to learn them from such a book.[46] Tarolli himself noted that since he had not been able to model a real stall, he had coded random spins for very bad stalls (depending on how bad the stall was), in the hope that this would be "something fun" for the players.[33] He also stated that "half the things in flight are meant to be real - the other half are there to make dog more fun than it would be if things were too real."

Use in academic research

[edit]

1989

[edit]

A group of researchers interfaced the flight simulator with the US military's SIMNET.[47] In their report, they stated:

"We were able to translate the SG "Dogfight" PDU's by "stealing" packets from the ETHERNET via a PC/AT with an Excelan 205E ETHERNET board installed. The software written to perform this operation uses UDP/IP to capture the SG broadcast packets and saves them to a disk file. Information contained in the SG PDU was reformatted or translated into SIMNET type packets, and then retransmitted over the ETHERNET to the SIMNET M1 tank modules."

The simulator itself ran on a Silicon Graphics 4D/70GT workstation.

1990

[edit]

A researcher at the US Air Force Institute of Technology attempted to reduce the cost of flight simulators used in pilot training by using a head-mounted display with a simulator that could run on PC hardware.[48] As part of this, an attempt was made to port dog/flight to a PC platform based on a 20MHz 80386 processor with 80387 coprocessor, and a Real World Graphics Ltd. PC Reality board containing two Intel i860 RISC processors. The PC was running ESIX, a version of System V UNIX. Due to the presence of the head-mounted display, the PC also had to host a device to track user head movements.

The flight simulator program needed to maintain cross-platform portability, so rewriting it in assembler instead of C was not allowed. Calls to the SGI hardware graphics pipeline were "emulated", translated on-the-go to calls to the PC Reality board's library functions.

The planes used in the experiments were the F-14D, F-16, and Cessna C150. The Cessna model had a lower polygon count than either of the other two planes. Problems were mentioned with the PC's graphics software being unable to handle the F-15 model, although this may only have applied if another plane was also present.

For this experiment to be considered a success, the PC would have to achieve a frame rate of at least 15fps with Z-buffered, flat-shaded polygons. The PC's performance was also compared to that of the Silicon Graphics IRIS 4D/85GT with an unmodified version of the flight simulator.

It was noted that the unmodified version of dog used "makes extensive use of the Silicon Graphic's immediate mode graphics pipeline. In addition to including the new graphics functions released with the SGI 4D architecture, the program contains significant use of older functions that constituted the outdated SGI IRIS 31XX graphics pipeline methods. The SGI 4D machines provide built-in support for those older methods; however, they clearly identify that those methods do not optimally exploit the graphics pipeline provided in the 4D architecture."

However, the experiment was not a success. Some of the SGI functionality could not easily be ported/emulated, and was either omitted or replaced with a workaround. Wing stalls and G-limits were not enforced and all the aircraft were able to pull outside loops. Collision detection also had to be omitted, allowing the plane to fly through hangars, hills, and mountains. Furthermore, the PC Reality board was not able to support the polygon count or frame rate claimed, and some advertised capability was missing. Its approach to 3D graphics did not "allow for methods that write directly to the screen in device coordinates.", which caused problems. Only 4 frames per second were obtained, and even in tests with "an out-the-window view without the runway, buildings, or other terrain visible" no more than 10 fps could be achieved.

An additional research goal had been to network the PC and IRIS together, and to have them run dog interoperably. This was not achieved in the time available. One problem was that ESIX's UDP/IP support did not support programming below the OSI transport layer, unlike SGI's.

1991

[edit]

Code from the SGI flight simulator was incorporated into a project to develop a low-cost flight simulator using object-oriented programming techniques and the C++ language.[49]

1992

[edit]

Another group of researchers modified flight to log the actions of the human "pilot", and to use these logged actions as input to an "induction program". This program would use machine learning to create an autopilot for a specific flight plan.[50] The researchers chose the Cessna as their plane, stating that it was easier to learn how to fly the Cessna than any of the others. They also claimed that the rudder did not have "a realistic effect on the aircraft", although it is not clear if this claim applied only to the Cessna or to any/all of the other planes available. A poster on comp.sys.sgi had previously noted that the rudder would have a significant effect on a real-life Cessna, but had very little effect on the simulated Cessna of the flight program, and almost no effect on the other simulated planes in flight.[43]

The researchers noted that the flight simulator was non-deterministic, since it "runs on a multi-tasking Unix system, not on a dedicated real-time system. Thus, it is not possible to give a guaranteed real-time response because the flight simulator can be interrupted by other processes or I/O traffic." This meant that simply repeating the same set of inputs across multiple runs of the flight simulator would not be guaranteed to give the same results. The researchers hoped that the work they had done in addressing this problem would later be applicable to real-world situations, such as the effects of varying wind conditions on a plane.

See also

[edit]

References

[edit]
  1. ^ a b c d e f g h i Singhal, Sandeep; Zyda, Michael (1999). Networked Virtual Environments: Design and Implementation. Addison Wesley. ISBN 0201325578.
  2. ^ a b c d e f Zyda, Michael (2000). "Networked Virtual Environments in 75 Minutes!" (PDF). Archived (PDF) from the original on 17 April 2019. Archived 17 August 2022 at archive.today
  3. ^ a b c d e f g h "IRIX 6.5 Man Pages: FLIGHT(6D)". Archived from the original on 19 January 2016.
  4. ^ a b "Silicon Graphics Flight Simulator". Archived from the original on 3 March 2016.
  5. ^ a b Tarolli, Gary (28 December 1989). "test missile cones in dog/flight?". Archived from the original on 20 August 2022.
  6. ^ a b c Smith, Roger (2003). "Evolution of Networked Virtual Environments (relevant text is concealed by the second image on the first page. To read it, highlight the whole of that page, then copy-paste into a text editor.)" (PDF). Archived (PDF) from the original on 17 August 2022.
  7. ^ Millman, Miq (22 November 1988). "dog, radar, shadow, etc. & tcp/ip". Archived from the original on 20 August 2022.
  8. ^ a b Mace, Rob (8 December 1988). "Dogfight and others". Archived from the original on 20 August 2022.
  9. ^ Moore, Matthew (23 November 1988). "dog, radar, etc". Archived from the original on 20 August 2022.
  10. ^ a b "IRIS users discussion list archive, 1988". Archived from the original on 17 July 2007.
  11. ^ Mace, Rob (6 December 1988). "dog and arena". Archived from the original on 20 August 2022.
  12. ^ "dog on IRIS 3130". 14 July 1989. Archived from the original on 20 August 2022.
  13. ^ Seto, Keith (11 October 1990). "sources for GL demo programs". Archived from the original on 20 August 2022.
  14. ^ Moore, Matthew (6 December 1988). "Dogfight and Arena". Archived from the original on 20 August 2022.
  15. ^ a b "Why is my SGI multicasting to SGI-DOG.MCAST.NET?". August 1994. Archived from the original on 7 May 2022. Archived 7 May 2022 at the Wayback Machine
  16. ^ "What is sending packets to the sgi-dog.mcast.net multicast address?". Archived from the original on 10 June 2021.
  17. ^ Mapleson, Ian. "UNIX Administration Course: Detailed Notes for Day 2". Archived from the original on 10 March 2021.
  18. ^ "Multicasting from workstations to SGI-DOG". February 1995. Archived from the original on 7 May 2022. Archived 20 August 2022 at archive.today
  19. ^ "DOG: diff for point-to-point communication". 20 September 1989. Archived from the original on 20 August 2022.
  20. ^ Natalie, Ron. "Re: [TUHS] Gaming on early Unix". The Unix Heritage Society mailing list. Archived from the original on 20 August 2022.
  21. ^ "Ronald Natalie". LinkedIn.
  22. ^ Hobson, Kevin (7 December 1988). "Dogfight and others". Archived from the original on 20 August 2022.
  23. ^ Dombroski, Robert M. (28 November 1988). "DOG". Archived from the original on 20 August 2022.
  24. ^ "dog, radar, shadow, etc. & tcp/ip". 29 November 1988. Archived from the original on 20 August 2022.
  25. ^ "Summary: Flight simulators under X". 16 November 1992. Archived from the original on 24 September 2022.
  26. ^ "4.1 Pixrect Reference Manual (Part Number: 800-4835-10. Revision A of 5 January, 1990)" (PDF). Archived (PDF) from the original on 3 August 2020. Archived 24 September 2022 at archive.today
  27. ^ a b Hayman, Steve (15 February 1990). "Status of 'flight' source". Archived from the original on 24 September 2022.
  28. ^ "X-wing model for Dog". 15 October 1993. Archived from the original on 24 September 2022.
  29. ^ Cole, Ron (21 February 1994). "dogfight / flight". Archived from the original on 24 September 2022.
  30. ^ Hall, Timothy (16 August 1989). "Overlay planes". Archived from the original on 24 September 2022.
  31. ^ "Comments/Questions about dog/flight". 16 September 1992. Archived from the original on 24 September 2022.
  32. ^ "Developer Forum '95 - Speaker Information". Archived from the original on 10 March 2021. Retrieved 23 August 2022. Archived 23 August 2022 at archive.today
  33. ^ a b c d Tarolli, Gary (21 February 1989). "flight's concept of a 'good landing'". Archived from the original on 20 August 2022.
  34. ^ "+-} Question on FLIGHT>Silcon Graphics". 8 June 1991. Archived from the original on 20 August 2022.
  35. ^ "+-} Question on FLIGHT>Silcon Graphics". 8 June 1991. Archived from the original on 20 August 2022.
  36. ^ Tarolli, Gary (11 June 1991). "+-} Question on FLIGHT>Silcon Graphics". Archived from the original on 20 August 2022.
  37. ^ a b Jevans, David (20 February 1989). "dog's T". Archived from the original on 20 August 2022. Archived 20 August 2022 at the Wayback Machine
  38. ^ Tarolli, Gary (21 October 1991). "Question about SGI flight simulator". Archived from the original on 24 September 2022.
  39. ^ Tarolli, Gary (27 February 1992). "Flight/dog". Archived from the original on 24 September 2022.
  40. ^ "Flight & Dogfight". 21 May 1993. Archived from the original on 7 May 2022. Archived 7 May 2022 at archive.today
  41. ^ Gigante, Mike A. (23 February 1989). "flight's concept of a 'good landing'". Archived from the original on 20 August 2022.
  42. ^ Tarolli, Gary (25 February 1989). "flight's concept of a 'good landing'". Archived from the original on 20 August 2022.
  43. ^ a b Frost, Jim (22 February 1989). "flight's concept of a 'good landing'". Archived from the original on 20 August 2022.
  44. ^ Bartels, Richard (22 February 1989). "flight's concept of a 'good landing'". Archived from the original on 20 August 2022.
  45. ^ Tarolli, Gary (22 February 1989). "flight's concept of a 'good landing'". Archived from the original on 20 August 2022.
  46. ^ VandeWettering, Mark (22 February 1989). "Flight Simulators... (was concept of good landing)". Archived from the original on 20 August 2022.
  47. ^ Cadiz, Jorge; Ouyang, Ruey; Thompson, Jack (5 October 1989). Interfacing of the Silicon Graphics Networkable Flight Simulator with SIMNET (PDF) (Technical report). University of Central Florida, Institute for Simulation and Training. IST-TR-89-1. Archived (PDF) from the original on 22 July 2022.
  48. ^ Dahn, David A. (1 December 1990). A Low-Cost Part-Task Flight Training System: An Application of a Head Mounted Display (PDF) (MSc). Air Force Institute of Technology. Archived (PDF) from the original on 22 July 2022.
  49. ^ Simpson, Dennis J. (1 December 1991). An Application of the Object-Oriented Paradigm to a Flight Simulator (MSc). Air Force Institute of Technology.
  50. ^ Sammut, Claude; Hurst, Scott; Kedzier, Dana; Michie, Donald (1992). "Learning to Fly" (PDF). In Derek Sleeman; Peter Edwards (eds.). Machine Learning: Proceedings of the Ninth International Workshop (ML92). Morgan Kaufman. pp. 385–393. doi:10.1016/B978-1-55860-247-2.50055-3. Archived (PDF) from the original on 2 June 2021.
[edit]