hn-classics/_stories/1999/7289224.md

466 lines
15 KiB
Markdown
Raw Normal View History

2018-02-23 18:19:40 +00:00
[Source](https://www.gamasutra.com/view/feature/131781/the_internet_sucks_or_what_i_.php "Permalink to Gamasutra - The Internet Sucks: Or, What I Learned Coding X-Wing vs. TIE Fighter")
# Gamasutra - The Internet Sucks: Or, What I Learned Coding X-Wing vs. TIE Fighter
* Our Properties:
* [Gamasutra][1]
* [GameCareerGuide][2]
* [IndieGames][3]
* [GDC Vault][4]
* [GDC][5]
* [IGF][6]
![Gamasutra: The Art & Business of Making Games][7]![spacer][8]
SEARCH [GO][9]
[GAME JOBS][10]
[updates][11] [Blogs][12] [contractors][13] [newsletter][14] [store][15]
SEARCH [GO][9]
* [ALL][16]
* [CONSOLE/PC][17]
* [SMARTPHONE/TABLET][18]
* [INDEPENDENT][19]
* [VR/AR][20]
* [SOCIAL/ONLINE][21]
![][22]
| ----- |
| |
*  
*  
*  
*  
![arrow][23][Contents][24]
**The Internet Sucks: Or, What I Learned Coding X-Wing vs. TIE Fighter**
* * *
* Page 1
* [Page 2][25]
* [Page 3][26]
* [Page 4][27]
* [Page 5][28]
* [Page 6][29]
![arrow][30]
[PROGRAMMING][31]
* * *
![spacer][32]
[ART][33]
* * *
![spacer][34]
[AUDIO][35]
* * *
![arrow][36]
[DESIGN][37]
* * *
![arrow][38]
[PRODUCTION][39]
* * *
![arrow][40]
[BIZ/MARKETING][41]
![arrow][23][Latest Jobs][10]
[**View All**][10]     [**RSS**][42]
* * *
**February 23, 2018**
* * *
* Lone Wolf Development
[Veteran C++ Developer][43]
* * Backflip Studios
[Engineering Manager][44]
* * Intel
[Graphics Hardware Engineer][45]
* * Intel
[GPU Compute Architect][46]
* * Rockstar Games
[Producer][47]
* * Cryptic Studios
[Software Engineer, Graphics (all levels)][48]
* ![arrow][49][Latest Blogs][12]
[**View All**][12]     [**Post**][50]     [**RSS**][51]
* * *
**February 23, 2018**
* * *
* [Cultist Simulator Pre-Sales: Why, What, and How Much][52] [[1][53]]
* * [How I Started Programming (Part One of Two)][54]
* * [Episodic design 2.0 - Gameplay and storytelling at its best (Part 3)][55]
* * [Harvard Egyptologist discusses Assassin's Creed Origins][56]
* * [Video Game Deep Cuts: Florence & The Orange Monster Box][57]
* ![arrow][49]Press Releases
**February 23, 2018**
* * *
[**Games Press**][58]
* * *
[**View All**][58]     [**RSS**][59]
![arrow][60][About][61]
* **Editor-In-Chief: **
[Kris Graft][62]
* * ** Editor: **
[Alex Wawro][63]
* * **Assignment Editor: **
[Chris Baker][64]
* * **Contributors: **
Chris Kerr
Alissa McAloon
Emma Kidwell
Bryant Francis
Katherine Cross
* **Advertising: **
[Libby Kruse][65]
* * *
[Contact Gamasutra][61]
* * *
[Report a Problem][66]
* * *
[Submit News][67]
* * *
[Comment Guidelines][68]
* * *
[Blogging Guidelines][69]
* * *
[How We Work][70]
[ ![Sponsor][71] ][72]
![arrow][60][Gama Network][24]
If you enjoy reading this site, you might also want to check out these UBM Tech sites:
* * *
[Game Career Guide][2]
* * *
[Indie Games][73]
![arrow][49][Features][74]
 
# The Internet Sucks: Or, What I Learned Coding X-Wing vs. TIE Fighter
by [Peter Lincroft][75] [[Design][76], [Postmortem][77], [Programming][78], [GDC 2001][79]]
[2 comments][80] ![Share on Twitter][81] ![RSS][82]
* * *
**September 3, 1999** ![Article Start][83] **Page 1 of 6** [ ![Next][84] ][25]
* * *
 
_Editor's note: This paper was originally published in the 1999 [Game Developer's Conference][85] proceedings._
When we started the_ X-Wing vs. TIE Fighter_ project, our goal was to create the first multi-player space combat simulator to be playable over the Internet. There were several major problems that we had to be overcome to accomplish this goal, not the least of which was the Internet itself. I will review the problems we faced, the approach we took, and the results we achieved. I hope the lessons I learned will prove to be valuable to those who read this paper.
**The Problems We Knew About**
_X-Wing vs. TIE Fighter_ is the third game in the _Star Wars_ space combat simulator series. The Internet was definitely not one of the things that we were thinking about when we created the engine for the original _X-Wing_ game. This was the first problem we faced. Adding Internet capability to an existing engine is significantly more difficult when the engine was not designed with the Internet in mind.
Our second problem was the complexity of the game design. We had always felt that one of the strongest features of our engine was its ability to simulate fairly complex missions. We were proud to have fairly large numbers of craft in each mission, which had reasonably complex behaviors. Our goal in creating _X-Wing vs. TIE Fighter_ was to create a multi-player game that had this same level of complexity. We wanted to give gamers a multi-player experience that was more complex than "deathmatch." This requirement dramatically increases the amount of data that the players need to have in order to play the game.
![X-Wind vs. TIE Fighter box][86] Third on our list of problems was that we would not have a dedicated server available; we would have to use a peer-to-peer network model. The expense of providing servers with sufficient processing power and bandwidth for our expected audience size was considered unreasonably high. And because of the nature of the license we were working with, allowing gamers to set up their own servers was not a viable alternative. A peer-to-peer system avoids the problem, but it poses a significantly more challenging engineering problem, because each player must communicate with several other players, instead of with a single server. Because the Internet does not have a viable multi-casting capability, sending the same message to three destinations requires three times as much bandwidth as sending it to a single destination.
The fourth problem, of course, was the Internet itself. When we started the project we assumed that we would need to handle latency that varied from 200ms to a full second. We also knew that we would be limited to the bandwidth available from a 28K modem. These two constraints were our primary focus when we designed our network model, but they would turn out to be among the easiest problems to solve.
* * *
![Article Start][83] **Page 1 of 6** [ ![Next][84] ][25]
* * *
### Related Jobs
![Lone Wolf Development][87]
** Lone Wolf Development — San Jose, California, United States
[02.22.18] **
[Veteran C++ Developer][43]
![Backflip Studios][88]
** Backflip Studios — Boulder, Colorado, United States
[02.22.18] **
[Engineering Manager][44]
![Intel][89]
** Intel — Folsom, California, United States
[02.21.18] **
[Graphics Hardware Engineer][45]
![Intel][89]
** Intel — Folsom, California, United States
[02.21.18] **
[GPU Compute Architect][46]
[**[View All Jobs][10]]**
* * *
### Top Stories
![][90]
[**GDC 2018 Level Design Workshop: An expert roundtable Q&A;**][91]
![][92]
[**How Michael Brough's love of exploring a single game mechanic beget _Cinco Paus_**][93]
![][94]
[**_The Legend of Zelda: Breath of the Wild_ big winner at DICE Awards**][95]
![][96]
[**Net Neutrality repeal effective starting on April 23**][97]
131781 item_feature /view/feature/131781/the_internet_sucks_or_what_i_.php Loading Comments
* * *
![loader image][98]
![UBM][99]
* TECHNOLOGY GROUP
* [Black Hat][100]
* [Content Marketing Institute][101]
* [Content Marketing World][102]
* [Dark Reading][103]
* [Enterprise Connect][104]
* [GDC][85]
* [Gamasutra][1]
* [HDI][105]
* [ICMI][106]
* [InformationWeek][107]
* [INsecurity][108]
* [Interop ITX][109]
* [Network Computing][110]
* [No Jitter][111]
* [Service Management World][112]
* [VRDC][113]
* COMMUNITIES SERVED
* [Content Marketing][114]
* [Enterprise IT][115]
* [Enterprise Communications][116]
* [Game Development][117]
* [Information Security][118]
* [IT Services & Support][119]
* WORKING WITH US
* [Advertising Contacts][120]
* [Event Calendar][121]
* [Tech Marketing][122]
* [Solutions][122]
* [Contact Us][123]
* [Licensing][124]
* [Terms of Service][125]
* [Privacy Statement][126]
* [Legal Entities][127]
* Copyright © 2018 UBM, All rights reserved
![][128]
[1]: https://www.gamasutra.com/
[2]: http://www.gamecareerguide.com
[3]: http://www.indiegames.com
[4]: http://www.gdcvault.com
[5]: http://www.gdconf.com
[6]: http://www.igf.com
[7]: https://twimgs.com/gamasutra/images/gamasutra_logo.png
[8]: https://twimgs.com/gamasutra/images/spacer.gif
[9]:
[10]: http://jobs.gamasutra.com/
[11]: https://www.gamasutra.com/updates/
[12]: https://www.gamasutra.com/blogs/
[13]: https://www.gamasutra.com/contractors/contractor_display.php
[14]: https://www.gamasutra.com/newsletter-signup
[15]: https://store.cmpgame.com/storefront.php?loc=&skin=gamasutra_redesign
[16]: http://www.gamasutra.com
[17]: https://www.gamasutra.com/topic/console-pc
[18]: https://www.gamasutra.com/topic/smartphone-tablet
[19]: https://www.gamasutra.com/topic/indie
[20]: https://www.gamasutra.com/topic/vr
[21]: https://www.gamasutra.com/topic/social-online
[22]: https://twimgs.com/gamasutra/images/btn_gdmag0.png
[23]: https://twimgs.com/gamasutra/images/icon_jobs.png
[24]: https://www.gamasutra.com#
[25]: https://www.gamasutra.com/view/feature/131781/the_internet_sucks_or_what_i_.php?page=2
[26]: https://www.gamasutra.com/view/feature/131781/the_internet_sucks_or_what_i_.php?page=3
[27]: https://www.gamasutra.com/view/feature/131781/the_internet_sucks_or_what_i_.php?page=4
[28]: https://www.gamasutra.com/view/feature/131781/the_internet_sucks_or_what_i_.php?page=5
[29]: https://www.gamasutra.com/view/feature/131781/the_internet_sucks_or_what_i_.php?page=6
[30]: https://twimgs.com/gamasutra/images/button_programming.gif
[31]: https://www.gamasutra.com/category/programming/
[32]: https://twimgs.com/gamasutra/images/button_art.gif
[33]: https://www.gamasutra.com/category/art/
[34]: https://twimgs.com/gamasutra/images/button_audio.gif
[35]: https://www.gamasutra.com/category/audio/
[36]: https://twimgs.com/gamasutra/images/button_design.gif
[37]: https://www.gamasutra.com/category/design/
[38]: https://twimgs.com/gamasutra/images/button_production.gif
[39]: https://www.gamasutra.com/category/production/
[40]: https://twimgs.com/gamasutra/images/button_business.gif
[41]: https://www.gamasutra.com/category/business-marketing/
[42]: http://feeds.feedburner.com/GamasutraJobs
[43]: http://jobs.gamasutra.com/job/veteran-c-developer-san-jose-california-32721
[44]: http://jobs.gamasutra.com/job/engineering-manager-boulder-colorado-32719
[45]: http://jobs.gamasutra.com/job/graphics-hardware-engineer-folsom-california-32685
[46]: http://jobs.gamasutra.com/job/gpu-compute-architect-folsom-california-32684
[47]: http://jobs.gamasutra.com/job/producer-new-york-new-york-32682
[48]: http://jobs.gamasutra.com/job/software-engineer-graphics-all-levels-los-gatos-california-32735
[49]: https://twimgs.com/gamasutra/images/icon_blogs.png
[50]: https://www.gamasutra.com/blogs/edit/
[51]: https://www.gamasutra.com/blogs/rss/
[52]: https://www.gamasutra.com/blogs/ALEXISKENNEDY/20180222/314859/Cultist_Simulator_PreSales_Why_What_and_How_Much.php
[53]: https://www.gamasutra.com/blogs/ALEXISKENNEDY/20180222/314859/Cultist_Simulator_PreSales_Why_What_and_How_Much.php#comments "1 comments"
[54]: https://www.gamasutra.com/blogs/TrentPolack/20180222/314929/How_I_Started_Programming_Part_One_of_Two.php
[55]: https://www.gamasutra.com/blogs/PascalLuban/20180221/314688/Episodic_design_20__Gameplay_and_storytelling_at_its_best_Part_3.php
[56]: https://www.gamasutra.com/blogs/BobWhitaker/20180220/314746/Harvard_Egyptologist_discusses_Assassins_Creed_Origins.php
[57]: https://www.gamasutra.com/blogs/SimonCarless/20180218/314753/Video_Game_Deep_Cuts_Florence__The_Orange_Monster_Box.php
[58]: https://www.gamasutra.com/pressreleases_index.php
[59]: https://www.gamasutra.com/pressreleases/rss/
[60]: https://twimgs.com/gamasutra/images/icon_about.png
[61]: https://www.gamasutra.com/contactus
[62]: mailto:kgraft%40gamasutra.com
[63]: mailto:alex.wawro%40ubm.com
[64]: mailto:chris.baker%40ubm.com
[65]: mailto:libby.kruse%40ubm.com
[66]: mailto:support%40gamasutra.com
[67]: mailto:news%40gamasutra.com
[68]: https://www.gamasutra.com/static2/comment_guidelines.html
[69]: https://www.gamasutra.com/static2/blogsubmissions.html
[70]: https://www.gamasutra.com/static2/howwework.html
[71]: https://twimgs.com/gamasutra/images/AdwGama_177x60_button_v1.jpg
[72]: http://www.ubmgamenetwork.com/online/
[73]: http://www.indiegames.com/blog
[74]: https://www.gamasutra.com/features/
[75]: https://www.gamasutra.com/view/authors/518707/Peter_Lincroft.php
[76]: https://www.gamasutra.com/features/design/
[77]: https://www.gamasutra.com/features/postmortem/
[78]: https://www.gamasutra.com/features/programming/
[79]: https://www.gamasutra.com/features/gdc-2001/
[80]: https://www.gamasutra.com#comments
[81]: https://twimgs.com/gamasutra/images/twitter.gif
[82]: https://twimgs.com/gamasutra/images/icon_rss.gif
[83]: https://twimgs.com/gamasutra/images/btn_articlestart.gif
[84]: https://twimgs.com/gamasutra/images/btn_next.gif
[85]: http://www.gdconf.com/
[86]: https://www.gamasutra.com/features/19990903/boxshot.jpg
[87]: https://d1506sp6x4e9z7.cloudfront.net/gamasutra/uploads/1016229.png
[88]: https://d1506sp6x4e9z7.cloudfront.net/gamasutra/uploads/rjdrag.jpg
[89]: https://d1506sp6x4e9z7.cloudfront.net/gamasutra/uploads/1015456.jpg
[90]: https://www.gamasutra.com/images/news/314857_thumb.jpg
[91]: https://www.gamasutra.com/view/news/314857/GDC_2018_Level_Design_Workshop_An_expert_roundtable_QA.php
[92]: https://www.gamasutra.com/images/news/314837_thumb.jpg
[93]: https://www.gamasutra.com/view/news/314837/How_Michael_Broughs_love_of_exploring_a_single_game_mechanic_beget_Cinco_Paus.php
[94]: https://www.gamasutra.com/images/news/314942_thumb.jpg
[95]: https://www.gamasutra.com/view/news/314942/The_Legend_of_Zelda_Breath_of_the_Wild_big_winner_at_DICE_Awards.php
[96]: https://www.gamasutra.com/images/news/314936_thumb.jpg
[97]: https://www.gamasutra.com/view/news/314936/Net_Neutrality_repeal_effective_starting_on_April_23.php
[98]: https://www.gamasutra.com/ajax-loader.gif
[99]: https://twimgs.com/nojitter/gama/UBM_Logo_White.png
[100]: http://www.blackhat.com/
[101]: http://contentmarketinginstitute.com/
[102]: http://www.contentmarketingworld.com/
[103]: http://www.darkreading.com/
[104]: http://www.enterpriseconnect.com/
[105]: http://www.thinkhdi.com/
[106]: http://www.icmi.com/
[107]: http://www.informationweek.com/
[108]: http://insecurity.com/
[109]: http://www.interop.com
[110]: http://www.networkcomputing.com/
[111]: http://www.nojitter.com/
[112]: http://www.smworld.com/
[113]: http://www.vrdconf.com/
[114]: http://tech.ubm.com/community-brands/content-marketing-2/
[115]: http://tech.ubm.com/community-brands/enterprise-it/
[116]: http://tech.ubm.com/community-brands/enterprise-communications/
[117]: http://tech.ubm.com/community-brands/game-and-app-developers/
[118]: http://tech.ubm.com/community-brands/information-security/
[119]: http://tech.ubm.com/community-brands/technical-service-and-support/
[120]: http://createyournextcustomer.techweb.com/contact-us/
[121]: http://events.ubm.com/?company=10
[122]: http://createyournextcustomer.techweb.com/
[123]: http://tech.ubm.com/contact-us/
[124]: http://wrightsmedia.com/sites/ubm/index.cfm
[125]: http://legal.us.ubm.com/terms-of-service/
[126]: http://legal.us.ubm.com/privacy-policy/
[127]: http://reg.ubmamevents.com/UBMLegalEntities
[128]: http://cmp.112.2o7.net/b/ss/cmpglobalvista/1/H.21--NS/0