<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: What every programmer needs to know about game networking</title>
	<atom:link href="http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/feed/" rel="self" type="application/rss+xml" />
	<link>http://gafferongames.com</link>
	<description>Glenn Fiedler&#039;s Game Development Articles and Tutorials</description>
	<lastBuildDate>Sat, 12 May 2012 23:14:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-49249</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Fri, 11 May 2012 16:42:30 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-49249</guid>
		<description>Starcraft networking model:
http://www.aff2aw.com/blog/starcaft-networking.html</description>
		<content:encoded><![CDATA[<p>Starcraft networking model:<br />
<a href="http://www.aff2aw.com/blog/starcaft-networking.html" rel="nofollow">http://www.aff2aw.com/blog/starcaft-networking.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Graham</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-48339</link>
		<dc:creator>Graham</dc:creator>
		<pubDate>Sun, 06 May 2012 17:18:20 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-48339</guid>
		<description>&quot;The Unreal Networking Architecture&quot; link is down. I&#039;ve had a look around unreal&#039;s new site but I can&#039;t find the article.

If you can find it could you please let me know.</description>
		<content:encoded><![CDATA[<p>&#8220;The Unreal Networking Architecture&#8221; link is down. I&#8217;ve had a look around unreal&#8217;s new site but I can&#8217;t find the article.</p>
<p>If you can find it could you please let me know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Efficient JavaScript Delta-encoding - Merging JSON objects &#124; Craig Thompson&#039;s Blog - professional web developer based in North East England</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-46370</link>
		<dc:creator>Efficient JavaScript Delta-encoding - Merging JSON objects &#124; Craig Thompson&#039;s Blog - professional web developer based in North East England</dc:creator>
		<pubDate>Tue, 24 Apr 2012 19:30:32 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-46370</guid>
		<description>[...] architecture after reading up on several articles, particularly Glenn Fiedler&#8217;s &#8220;What every programmer needs to know about game networking&#8221; and Valve&#8217;s awesome multiplayer networking overview. However this meant a lot of [...]</description>
		<content:encoded><![CDATA[<p>[...] architecture after reading up on several articles, particularly Glenn Fiedler&#8217;s &#8220;What every programmer needs to know about game networking&#8221; and Valve&#8217;s awesome multiplayer networking overview. However this meant a lot of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-45475</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Wed, 18 Apr 2012 15:38:18 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-45475</guid>
		<description>Because your knowledge here sounds awfully theoretical. Yes, if your game is deterministic it&#039;s easy. No shit. But how do you make sure your game is deterministic? What if you have 10 programmers working on it? What if the game streams in assets? What about random numbers? What about floating point calculations? What about SSE vs. FPU calculations? What about internal 80bit floating point precision on intel chips vs. AMD? What about cross-platform play between different architectures, one of which has FMADD and the other doesn&#039;t? What about sin(x)? What if you call c runtime functions that have slightly different values depending on compiler (eg. GCC vs. Visual Studio)? What if you have bugs with uninitialized memory that cause desync at random points? What if this random point is 30 minutes into a play session with 7 other players? How do you detect and fix these desyncs? What about 3rd party libraries you integrated into your engine, are they deterministic as well? How can you be sure? How many players can you support? What about having to wait for the most lagged player? If it&#039;s so easy why not just deterministic lockstep your MMO? What about cheating concerns and lag switches? What about desync hacks? How do you solve all this? What if one player cannot simulate fast enough to keep up? What about delta time? Do you need the same delta time on each machine or not? OK you do so how do you ensure that all players simulate at the same delta time rate, if one computer can render faster than the others? What about late joins? What if you want to hide latency (eg. GGPO)? And so on... and on... and on...</description>
		<content:encoded><![CDATA[<p>Because your knowledge here sounds awfully theoretical. Yes, if your game is deterministic it&#8217;s easy. No shit. But how do you make sure your game is deterministic? What if you have 10 programmers working on it? What if the game streams in assets? What about random numbers? What about floating point calculations? What about SSE vs. FPU calculations? What about internal 80bit floating point precision on intel chips vs. AMD? What about cross-platform play between different architectures, one of which has FMADD and the other doesn&#8217;t? What about sin(x)? What if you call c runtime functions that have slightly different values depending on compiler (eg. GCC vs. Visual Studio)? What if you have bugs with uninitialized memory that cause desync at random points? What if this random point is 30 minutes into a play session with 7 other players? How do you detect and fix these desyncs? What about 3rd party libraries you integrated into your engine, are they deterministic as well? How can you be sure? How many players can you support? What about having to wait for the most lagged player? If it&#8217;s so easy why not just deterministic lockstep your MMO? What about cheating concerns and lag switches? What about desync hacks? How do you solve all this? What if one player cannot simulate fast enough to keep up? What about delta time? Do you need the same delta time on each machine or not? OK you do so how do you ensure that all players simulate at the same delta time rate, if one computer can render faster than the others? What about late joins? What if you want to hide latency (eg. GGPO)? And so on&#8230; and on&#8230; and on&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-45472</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Wed, 18 Apr 2012 15:31:17 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-45472</guid>
		<description>Jon I&#039;m well well aware of how this technique works in theory.

I also have experience earned implementing this technique in practice. Do you?</description>
		<content:encoded><![CDATA[<p>Jon I&#8217;m well well aware of how this technique works in theory.</p>
<p>I also have experience earned implementing this technique in practice. Do you?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-45413</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Wed, 18 Apr 2012 05:28:38 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-45413</guid>
		<description>Well you make it sound like in practice such techniques don&#039;t actually work. If you google for &#039;deterministic replay&#039; you will find many such implementations of capturing only the non-deterministic events and replaying them.

In my own game engine I currently use this technique to do the lock-step network model. Of course it only works on a lan with very low latency but it works fine.

If the problem is in capturing (or even figuring out) the non-deterministic events then I guess it could complicate things but I can&#039;t think of situations where its not completely obvious.</description>
		<content:encoded><![CDATA[<p>Well you make it sound like in practice such techniques don&#8217;t actually work. If you google for &#8216;deterministic replay&#8217; you will find many such implementations of capturing only the non-deterministic events and replaying them.</p>
<p>In my own game engine I currently use this technique to do the lock-step network model. Of course it only works on a lan with very low latency but it works fine.</p>
<p>If the problem is in capturing (or even figuring out) the non-deterministic events then I guess it could complicate things but I can&#8217;t think of situations where its not completely obvious.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-45408</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Wed, 18 Apr 2012 03:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-45408</guid>
		<description>Yes in theory it&#039;s very simple.</description>
		<content:encoded><![CDATA[<p>Yes in theory it&#8217;s very simple.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-45390</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Tue, 17 Apr 2012 23:07:15 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-45390</guid>
		<description>&gt; First, it’s exceptionally difficult to ensure that a game is completely deterministic; that each turn plays out identically on each machine. 

I would argue that its exceptionally easy to ensure that a game is deterministic on two machines. If both machines are running the same simulation (i.e. code) then if they both have the same inputs they will behave in identical ways. Only non-determinstic events need to be synchronized between the two machines which is generally the random seed and player input.</description>
		<content:encoded><![CDATA[<p>&gt; First, it’s exceptionally difficult to ensure that a game is completely deterministic; that each turn plays out identically on each machine. </p>
<p>I would argue that its exceptionally easy to ensure that a game is deterministic on two machines. If both machines are running the same simulation (i.e. code) then if they both have the same inputs they will behave in identical ways. Only non-determinstic events need to be synchronized between the two machines which is generally the random seed and player input.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-44644</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Fri, 13 Apr 2012 02:59:30 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-44644</guid>
		<description>Well it&#039;s a difficult problem. Even if you run everything on the server you always have the aimbots</description>
		<content:encoded><![CDATA[<p>Well it&#8217;s a difficult problem. Even if you run everything on the server you always have the aimbots</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guni</title>
		<link>http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/#comment-44484</link>
		<dc:creator>Guni</dc:creator>
		<pubDate>Thu, 12 Apr 2012 05:18:46 +0000</pubDate>
		<guid isPermaLink="false">http://gafferongames.com/?page_id=1309#comment-44484</guid>
		<description>Mistake in my first big paragraph, I mean to say &quot;people WON&#039;T be able to teleport&quot;.</description>
		<content:encoded><![CDATA[<p>Mistake in my first big paragraph, I mean to say &#8220;people WON&#8217;T be able to teleport&#8221;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic page generated in 0.242 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-14 02:31:16 -->

