
What I Learned Coding X-Wing vs TIE Fighter (1999) - dpeck
http://www.gamasutra.com/view/feature/131781/the_internet_sucks_or_what_i_.php?print=1
======
taurath
Man, brings me back to my childhood. It's still disappointing to me that there
hasn't been a game in the x wing/tie fighter mold - for me it would be a
killer app for vr.

~~~
paulmd
How about FS2Open? Fantastic series of games, even more fantastic engine.
Someone should get on VR support, would be a good Elite:Dangerous competitor.

~~~
j_s
FS2Open "Getting Started": [http://www.hard-
light.net/wiki/index.php/Getting_started](http://www.hard-
light.net/wiki/index.php/Getting_started)

Demo of the associated kickstarted game "Overload":
[http://playoverload.com/playable-teaser/](http://playoverload.com/playable-
teaser/) Copied from that link: _The teaser includes VR support for the Oculus
Rift only. The final launch of Overload will support other VR devices._

Apparently newer Overload demos include eye tracking support:
[https://youtu.be/jcXWpL9CMps](https://youtu.be/jcXWpL9CMps)

Descent: Underground Early Access claims VR support and is $15 (50% off) on
Steam right now:
[http://store.steampowered.com/app/360950](http://store.steampowered.com/app/360950)
Reviews say there's not much there yet though.

------
magpi3
Interesting link but definitely needs a [1999] qualifier in the title.

------
jstimpfle
The obligatory
[http://fabiensanglard.net/quake3/network.php](http://fabiensanglard.net/quake3/network.php)

~~~
bartread
Thanks for posting that - it's basically a case study on how to do a good job
of implementing the communication for a networked multiplayer game. Extremely
handy.

The only bugger of it is that there's still no across the board UDP support in
browsers(1) which means if you're building games with HTML5 and JavaScript,
whatever you do, you're still using TCP, which is a PITA. It's actually even
worse: WebSockets obviously a bunch of HTTP guff on top so it's not even like
you're using vanilla TCP. At present I don't think there's any way to use raw
TCP from JavaScript.

This obviously isn't a big problem for slower paced or turn-based games but
it's a total pain in the neck for anything that has real time dynamics (FPS,
many types of 2D arcade game, etc.).

 _(1) There is WebRTC, which is apparently UDP-based, but it 's not yet
supported across all browsers:
[http://caniuse.com/#feat=rtcpeerconnection](http://caniuse.com/#feat=rtcpeerconnection).
It's also meant for peer to peer so may or may not be a good fit for the kind
of client/server/master game state comms you'd need for a multiplayer game. (I
suppose you could utilise one of the clients for the master state but this is
obviously open to abuse given that JS runs in a completely insecure execution
environment - anything can get injected in there.)_

------
paulmd
So would it have worked better to send the entire game state every frame/every
N frames/etc so that a dropped UDP packet would not totally trash the game? I
don't know what the maximum frame size is for UDP.

~~~
TD-Linux
You can only assume a MTU of about 1500 bytes, unfortunately. However, instead
of sending each packet effectively twice as in the original article, you can
use FEC to require only 2 of 3 packets to be received for example [1].

But yeah, WebRTC for example also effectively implements resending the whole
state - if you get too far behind, the receiver can request a video keyframe
from the sender.

[1] [https://tools.ietf.org/html/rfc5109](https://tools.ietf.org/html/rfc5109)

------
jeremiep
The whole bit about TCP being evil and hopelessly broken made me laugh - its
funny to imagine these guys as complete network beginners :)

Its also ironic that people building networked games today are making the same
mistakes - and it all starts from a huge misconception of how the internet and
its protocols really work.

For as much as we like to think of ourselves "clever", networking is one area
where intuition usually leads to terrible implementations :)

------
bullen
I made a tribute to these games: [http://aeonalpha.com](http://aeonalpha.com),
it uses TCP/HTTP and the backend is open source:
[http://fuse.rupy.se/fuse.html](http://fuse.rupy.se/fuse.html)

------
shanselman
"[TCP is] why we would see latencies in the 5-second range." So much has
changed. :)

~~~
B1FF_PSUVM
Well, the writer's bio lists his game making achievements, but the take on
networking reminds me of the phrase "Let the cobbler stick to his last" (
[http://proverbhunter.com/proverb/let-the-cobbler-stick-to-
hi...](http://proverbhunter.com/proverb/let-the-cobbler-stick-to-his-last/) )

~~~
empath75
Are you saying that he didn't know what he was talking about? Because in 1999,
the internet was terrible for games. Most people were still on dialup!

~~~
joveian
It is interesting to compare this to congested public wifi (congested internet
connection behind the wifi). Or Comcast in some (many?) cases for that
matter... Congestion is worse these days but when things go well bandwidth and
latency are much better. UDP is also a "if there is any congestion drop this
first" flag (first attempt retry via a tcp connection that is kept open but
normally not used might be an interesting tactic to try these days).

With bittorent and browsers opening a zillion connections at once, a single
connection can be easily swamped. For those of us using a VPN past the ISP,
that means everything, but a game with a single connection is likely just as
vulnerable. These days (if not using a server) having clients each send their
data and what they received from everyone else to all other clients might be
more likely to work.

------
kensai
"TCP is evil. Don’t use TCP for a game. You would rather spend the rest of
your life watching Titanic over and over in a theater full of 13 year old
girls."

OK, I giggled at this! :D

~~~
mysterydip
I'd add a condition to that to say don't use TCP for a realtime game. For
turn-based games, it works great and the inherent benefits of TCP (retrans, in
order, etc) can be used to simplify the netcode.

On a related-but-not note, I wonder if 13 year old girls react the same to
Titanic now as they did when it was in theaters? I'll find out in about 11
years myself but curious if anyone has anecdotal evidence.

