<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gafferongames.com</title>
	<atom:link href="http://gafferongames.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gafferongames.com</link>
	<description>Glenn Fiedler&#039;s Game Development Articles and Tutorials</description>
	<lastBuildDate>Fri, 09 Dec 2011 19:24:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>GDC2011: Networking for Physics Programmers</title>
		<link>http://gafferongames.com/2011/02/24/gdc2011-networking-for-physics-programmers/</link>
		<comments>http://gafferongames.com/2011/02/24/gdc2011-networking-for-physics-programmers/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 06:18:02 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Game Physics]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=1622</guid>
		<description><![CDATA[This year I&#8217;ll be presenting a new version of Networking for Physics Programmers as part of the physics tutorial day on Tuesday. As for the material to be presented this year, it will differ significantly from prior years. I&#8217;m going for more advanced material this year so I&#8217;m not going to spend 5 minutes explaining [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a rel="attachment wp-att-1621" href="http://gafferongames.com/2011/02/24/gdc2011-networking-for-physics-programmers/gdc2011_logo_25th_color/"><img class="alignnone size-medium wp-image-1621" title="GDC2011" src="http://gafferongames.com/wp-content/uploads/2011/02/GDC2011_logo_25th_color-300x116.jpg" alt="" width="300" height="116" /></a></p>
<p>This year I&#8217;ll be presenting a new version of <strong><u>Networking for Physics Programmers</u></strong> as part of the physics tutorial day on Tuesday.</p>
<p>As for the material to be presented this year, it will differ significantly from prior years. I&#8217;m going for more advanced material this year so I&#8217;m not going to spend 5 minutes explaining UDP vs. TCP. We&#8217;ll be skipping that and going right to the interesting stuff which is:</p>
<p>1. <strong>How to develop your own custom network protocol in UDP</strong>. Reliability and acks, node / transport abstraction, how to structure your game protocol and serialize packets.</p>
<p>2. <strong>Overview of game networking models.</strong> Pure client/server, FPS networking model with client side prediction, deterministic lockstep, authority scheme. Examples of games using each technique. How each networking model works. Advantages and disadvantages. Understand the trade-offs so you can pick the best networking model for your situation.</p>
<p>3. <strong>Worked example: authority scheme for networked physics in a large streaming world</strong>. Same cube demo. Different networking strategy. This year I&#8217;ll be doing it dedicated client/server style instead of P2P and I&#8217;ll focus on all the practical details and tricks required to synchronize physics state in under 64kbit/sec such as: compression tricks for position, orientation and linear/angular velocity, how to prioritize object updates when you have too many objects to fit in one packet, using a reliability system and acks to avoid sending at rest objects over and over, lossy compression, quantization and other neat tricks.</p>
<p>Hope to see you Tuesday, March 1, in Room 3007, West Hall Moscone Center. I&#8217;ll be talking from 3:30PM- 4PM</p>
<p>Schedule details <a href="http://www.essentialmath.com/blog/?p=53">here</a>.</p>
<p><b>UPDATE:</b> Unfortunately the original material as presented above consistently took 2.5 hours during practice sessions. As a result, I&#8217;ve had to cut section 1 and 3. There is a lot of great info in section 2 and the feedback from practice sessions was consistently that it was the best section of the talk. If you&#8217;d like some information about #1 and #3 you can ask questions during Q&#038;A, plus I&#8217;ll be available during GDC for impromptu meetings etc. where I can go over this info with a whiteboard or a notepad. DM me on twitter if you&#8217;d like to meet up: @gafferongames</p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2011/02/24/gdc2011-networking-for-physics-programmers/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>GDC 2010 Networked Physics Slides + Demo</title>
		<link>http://gafferongames.com/2010/03/11/gdc-2010-networked-physics-slides-demo/</link>
		<comments>http://gafferongames.com/2010/03/11/gdc-2010-networked-physics-slides-demo/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 09:55:53 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Game Physics]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=1402</guid>
		<description><![CDATA[Big thanks to everybody who attended the physics tutorial today. You guys had some excellent and very thoughtful questions at the end of the talk. I really enjoyed answering them &#8211; thanks for being a great audience! UPDATE: I just uploaded the final versions of the slides with lots of extra notes + instructions for [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://gafferongames.com/wp-content/uploads/2010/03/gdc2010.jpg"><img src="http://gafferongames.com/wp-content/uploads/2010/03/gdc2010.jpg" alt="" title="gdc2010" width="200" height="200" class="alignleft size-full wp-image-1403" /></a></p>
<p>Big thanks to everybody who attended the physics tutorial today. You guys had some excellent and very thoughtful questions at the end of the talk. I really enjoyed answering them &#8211; thanks for being a great audience!</p>
<p><b>UPDATE:</b> I just uploaded the final versions of the slides with lots of extra notes + instructions for reproducing the demo sections. If you downloaded the previous versions then you should take another look!</p>
<p>Here are the final keynote slides for &#8220;Networking for Physics Programmers&#8221; with presenter notes: <a href="http://bit.ly/ckf1Xu">http://bit.ly/ckf1Xu</a></p>
<p>Here are the final PDF slides with notes sans superfluous visual effects: <a href="http://bit.ly/9CFzWb">http://bit.ly/9CFzWb</a></p>
<p>Here is the demo shown in the talk: <a href="http://bit.ly/beFYwX">MacOSX 64bit Binary + Source</a>, <a href="http://bit.ly/9dNw0x">Win32 Binary</a></p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2010/03/11/gdc-2010-networked-physics-slides-demo/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>What every programmer needs to know about game networking</title>
		<link>http://gafferongames.com/2010/01/24/what-every-programmer-needs-to-know-about-game-networking-3/</link>
		<comments>http://gafferongames.com/2010/01/24/what-every-programmer-needs-to-know-about-game-networking-3/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 06:22:22 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=1322</guid>
		<description><![CDATA[For some bizarre reason I felt inspired to spend my one day off from work during crunch writing an article chronicling the development of modern game protocols. From RTS peer-to-peer lock step, to client/server, right up to FPS games and client-side prediction. And I&#8217;m strangely enamored with the result, it flowed very well when writing [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://gafferongames.com/wp-content/uploads/2010/01/writing.jpg"><img src="http://gafferongames.com/wp-content/uploads/2010/01/writing.jpg?w=300" alt="" title="writing" width="300" height="299" class="alignleft size-medium wp-image-1330" /></a></p>
<p>For some bizarre reason I felt inspired to spend my one day off from work during crunch writing an article chronicling the development of modern game protocols. From RTS peer-to-peer lock step, to client/server, right up to FPS games and client-side prediction.</p>
<p>And I&#8217;m strangely enamored with the result, it flowed very well when writing it &#8211; and I believe it to be the best article I&#8217;ve written so far. It&#8217;s also the first article where I&#8217;ve felt compelled to include references to other people&#8217;s work instead of presenting just my own research.</p>
<blockquote><p>
<a href="http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/">What every programmer needs to know about game networking</a></p>
<p>You’re a programmer. Have you ever wondered how multiplayer games work?</p>
<p>From the outside it seems magical: two or more players sharing a consistent experience across the network like they actually exist together in the same virtual world. But as programmers we know the truth of what is actually going on underneath is quite different from what you see. It turns out that it’s all an illusion. A massive sleight-of-hand. What you perceive as a shared reality is only an approximation unique to your own point of view and place in time.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2010/01/24/what-every-programmer-needs-to-know-about-game-networking-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pandemic Shut Down</title>
		<link>http://gafferongames.com/2009/11/22/pandemic-shut-down/</link>
		<comments>http://gafferongames.com/2009/11/22/pandemic-shut-down/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 19:01:08 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=1267</guid>
		<description><![CDATA[Very sad news earlier this week: Pandemic Studios was shut down by EA. No point moping about although. What&#8217;s done is done. I choose to remember the good times not the bad: the friends I made and the colleagues I worked with at Pandemic and the shared experiences we went through. No matter how difficult [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://gafferongames.com/wp-content/uploads/2009/11/pandemic_logo.png"><img src="http://gafferongames.com/wp-content/uploads/2009/11/pandemic_logo.png?w=200" alt="" title="pandemic_logo" width="200" height="300" class="size-medium wp-image-1268" /></a></p>
<p>Very sad news earlier this week: <a href="http://kotaku.com/5406830/confirmed-ea-closes-pandemic-studios-says-brand-will-live-on">Pandemic Studios was shut down by EA</a>.</p>
<p>No point moping about although. What&#8217;s done is done. I choose to remember the good times not the bad: the friends I made and the colleagues I worked with at Pandemic and the shared experiences we went through. No matter how difficult and stressful they were, these experiences bind us together.</p>
<p>Here is my own personal Pandemic story: having worked for Irrational Games, and then Team Bondi &#8211; Pandemic flew me out from Sydney, Australia to work on Mercenaries 2 in Los Angeles. Obviously, this was a very significant event in my life, resulting in me settling in LA, meeting my wife, and eventually being hired by Sony. Along the way there were a lot of ups and downs: Getting acquired by EA, one week having an incredible demo and winning support from management, the next week struggling to get resources for the designers to test in COOP and fighting over stupid things like syncing debris and pausing in multiplayer. It was one hell of a rough ride!</p>
<p>In the last 6 months on Mercs2 &#8211; Andrew Goldman, CEO of Pandemic, donated his office to the multiplayer team  so that we could all work closely together and make sure Mercs2 shipped with COOP. It&#8217;s a story of 8 friends working very closely together (literally!) under tight deadlines. Of persistence and determination in the face of tremendous odds, when many of us &#8211; myself included &#8211; were not even sure it was even *possible* to network an large open world game like Mercs2. We kept on and in the end, succeeded. Mercs2 became the first open world game to ship with drop-in / drop-out COOP throughout the entire singleplayer campaign.</p>
<p>So here, never before told &#8211; is the story of the <a href="http://www.facebook.com/album.php?aid=10939&amp;id=100000161772918&amp;l=3314708332">Mercs2 Multiplayer Room</a> and the men who made it what it was.</p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2009/11/22/pandemic-shut-down/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>It&#039;s Cold in Montreal!</title>
		<link>http://gafferongames.com/2009/11/14/its-cold-in-montreal/</link>
		<comments>http://gafferongames.com/2009/11/14/its-cold-in-montreal/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 23:14:46 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Game Physics]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=1236</guid>
		<description><![CDATA[Spent most of my flight thinking through my slides and material and making adjustments, then watched through Harry Potter the Half Blood Prince, but we arrived before the movie finished! Now I must find out how it ends&#8230; Arrived Friday night around 9pm. Discovered this while in the customs line that my passport was no [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img src="http://gafferongames.com/wp-content/uploads/2009/11/montreal.jpg?w=300" alt="montreal" title="montreal" width="300" height="236" class="alignnone size-medium wp-image-1237" /></p>
<p>Spent most of my flight thinking through my slides and material and making adjustments, then watched through Harry Potter the Half Blood Prince, but we arrived before the movie finished! Now I must find out how it ends&#8230; <img src='http://gafferongames.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Arrived Friday night around 9pm. Discovered this while in the customs line that my passport was no longer in my pocket. Holy fucking shit! Frantic 5 minutes &#8211; back to the plane and we discovered it had slipped out of my pocket and down the side of my seat. Phew!</p>
<p>Through customs I arrived at the Hilton Bonaventure and checked into a very nice room. At this point, I dressed up warmly and headed out to Old Montreal to check out some restaurants and bars. A very nice area but a bit quieter than I expected. I found a really nice bar with good food and had great short ribs, a nice syrah and Creme Brulee for dessert. Oh yes.</p>
<p>This morning I woke up feeling a bit tired&#8230; a slight time difference between here and LA. Went around to explore downtown Montreal. I found St Catherine Street and the main area and walked up along all the shops. Walked past the strip Club area. Pushy bouncers. No thanks I don&#8217;t want to go in. No really. I mean it. Hit the Apple store to buy another USB  ethernet adaptor for my Macbook Air (I left it home =p), then enjoyed some good Coffee at <a href="http://www.cafemyriade.com/">Cafe Myriade</a>.</p>
<p>A few hours on my talk then met up with Aaron Contreras an old Pandemic buddy. Checked out the plateau area around Ubi and the italian neighbourhood. Good times. Aaron has a sweet studio style apartment. Jealous!</p>
<p>Back at the hotel now and some more work on the slides. I want to finalize the first half of the talk tonight, then hopefully I&#8217;ll have a bit of time tomorrow to spend walking around Montreal at lunch instead of spending the whole day preparing for the talk!</p>
<p>cheers all</p>
<p><b>Update:</b> the demo from the talk is now available at <a href="http://code.google.com/p/netgame/downloads/list" rel="nofollow">google code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2009/11/14/its-cold-in-montreal/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Solving the Networked Physics Puzzle</title>
		<link>http://gafferongames.com/2009/10/16/solving-the-networked-physics-puzzle/</link>
		<comments>http://gafferongames.com/2009/10/16/solving-the-networked-physics-puzzle/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 16:31:59 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Game Physics]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=1177</guid>
		<description><![CDATA[Traditional networking techniques work well for simple linear motion, but start to break down when networking complex rigid-body physics simulations where objects can tumble, stack and interact with each other. This light-hearted and humorous tutorial takes a look at various options, techniques and pitfalls to watch out for when networking this sort of simulation, providing [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="alignnone size-medium wp-image-1202" title="cube white" src="http://gafferongames.com/wp-content/uploads/2009/10/cube-white.jpg?w=300" alt="cube white" width="300" height="200" /></p>
<blockquote><p>Traditional networking techniques work well for simple linear motion, but start to break down when networking complex rigid-body physics simulations where objects can tumble, stack and interact with each other. This light-hearted and humorous tutorial takes a look at various options, techniques and pitfalls to watch out for when networking this sort of simulation, providing you with a tool-bag of new techniques and ideas you can use to network your physics based game.</p></blockquote>
<p>I&#8217;ll be performing this talk at the <a href="http://sijm.ca/2009/?page_id=81">Montreal International Game Summit</a> on November 16, 2009 &#8211; 10:15AM in the Verdun Room. I&#8217;m honored to be invited to perform one of the first sessions at the conference and hope to see some of you guys there! Please come up after the talk if you would like to discuss anything at all I will be available for questions.</p>
<p>Plus, this will be my first time visiting Montreal so I&#8217;m very excited! <img src='http://gafferongames.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I have the demo for the talk almost ready and have been working on the slides over the last few weekends. Right now I&#8217;m trying to lock down the overall theme of the talk and the content. My goal is to provide lots of interesting information without going to deep into the specifics on any one thing. Ideally folks should leave the talk with a great outline of the whole field and some great ideas and inspiration to take home to apply to their own projects!</p>
<p>Here is a more detailed version of my talk plan:</p>
<blockquote><p>I intend to start by asking the question: why is it that very few games provide meaningful interaction with networked physics objects? In other words, folks it&#8217;s 2009 &#8211; <i>why exactly are we still running around mostly static worlds shooting other people in the face?</i></p>
<p>There are many reasons. It is difficult to light a dynamic world. Character movement and animation is difficult. But also, it seems very difficult to <u>network</u> a dynamic world. Why is this? Traditional networking techniques don&#8217;t work. Objects can stack and tumble and interact with each other.</p>
<p>In truth: It&#8217;s like a puzzle. It&#8217;s actually really simple &#8211; <i>you just need to think in a different way</i>.</p>
<p>Quick 5-10 minute recap of a game networking engine. UDP vs. TCP, how to construct packets, serialization, reliability, flow control. All of the stuff in my <a href="http://www.gafferongames.com/game-networking">online book</a> and more at a brisk pace for folks already in the field. My goal is simply to get everybody on the same page and provide some very useful, concrete information for folks in the field. Here is my network engine and how I do everything.</p>
<p>The plumbing is out of the way. Now, lets explore options for getting a physics simulation on one computer to be simply *viewed* on another. Two main options: 1) run the simulation on one side and present an approximation on the client side (pure client/server model), 2) run the simulation on both sides and synchronize via state replication. Compare and contrast these two approaches. Touch on time synchronization and real-time nature of protocol and why it is now this way vs. traditional networking technique.</p>
<p>Latency compensation. Consider the same situation: A simulation synchronized between two computers, but now client controls their own object. Recap traditional client side prediction from FPS games. Attempt to apply it to network this physics simulation. Problems: Rewind and replay cost. Simulation islands. Complexity. Authority scheme as an alternative. Dining philosophers problem. Distributed programming. Dykstra. Consistency vs. throughput trade-off. Case studies.</p>
<p>Live demo. P2P authority scheme. Late joins. Corrections. Reverse corrections. Challenge: Think outside the box. Maybe client/server should not be the automatic choice? How important is anti-cheat for your game? How important is meaningful interaction with a dynamic world? Which one wins? Is it possible to have both? How?</p>
<p>Future looking. What can you do moving forward? What can physics engine developers do to make their engines network better? What do we need before this becomes practical? What will game networking look like in 10 years? Bandwidth considerations. Real-time protocol requirements. IPv6. RSVP, Flow Routing. QoS guarantees. Network neutrality.</p>
<p>Summary. Bring it back to the original point about the puzzle. Conclusion. Best approaches for each situation. Call to action. Triumphant dance. Q&amp;A.</p></blockquote>
<p>That&#8217;s about it for now. Please be sure let me know what you think and if you are planning on attending the conference. Sound off in the comments below &#8211; thanks guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2009/10/16/solving-the-networked-physics-puzzle/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Debugging Multiplayer Games</title>
		<link>http://gafferongames.com/2009/09/06/debugging-multiplayer-games/</link>
		<comments>http://gafferongames.com/2009/09/06/debugging-multiplayer-games/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 19:00:50 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=865</guid>
		<description><![CDATA[It seems that every few months I read a post-mortem or I hear about a case where a team had to cut multiplayer at the last minute, because it didn&#8217;t fit into the schedule, or they couldn&#8217;t get it working, or because they want to &#8220;focus on the singleplayer experience&#8221;. This is especially true of [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="alignnone size-full wp-image-874" title="bugs" src="http://gafferongames.com/wp-content/uploads/2009/08/ants-insects-photo.jpg" alt="bugs" width="450" height="350" /></p>
<p>It seems that every few months I read a post-mortem or I hear about a case where a team had to cut multiplayer at the last minute, because it didn&#8217;t fit into the schedule, or they couldn&#8217;t get it working, or because they want to &#8220;focus on the singleplayer experience&#8221;. This is especially true of teams that try to convert their existing singleplayer codebase to to support multiplayer.</p>
<p>Hell, I&#8217;ve even been in this situation myself with Mercs2, and I can tell you we <span style="text-decoration:underline;">only just made it</span> by the skin of our teeth &#8211; despite having a good team, the full support of the studio and plenty of resources to help us out.</p>
<p>So why is it that so many teams fail to integrate multiplayer at the last minute? Why does it at first seem to be going so well, but then bog down as teams struggle to get it multiplayer to shipping quality?</p>
<p>In my experience it boils down to this: <strong>debugging multiplayer games is hard.</strong> Not just your ordinary hard. More like pulling your hair out, grown man reduced to tears, holy shit it&#8217;s 6AM I&#8217;ve been up all night and the E3 demo is in 4 hours and it <span style="text-decoration:underline;">still doesn&#8217;t work</span> hard.</p>
<p>So in this article, I&#8217;m going to share my general process, techniques and tools that I use for debugging multiplayer games.</p>
<p>I hope these techniques will help <span style="text-decoration:underline;">you</span> out debugging your multiplayer game!</p>
<p>Read the article in <a href="http://gafferongames.com/networking-for-game-programmers/debugging-multiplayer-games/">Networking for Game Programmers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2009/09/06/debugging-multiplayer-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Montreal International Game Summit 2009</title>
		<link>http://gafferongames.com/2009/05/22/montreal-international-game-summit-2009/</link>
		<comments>http://gafferongames.com/2009/05/22/montreal-international-game-summit-2009/#comments</comments>
		<pubDate>Fri, 22 May 2009 15:53:07 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Game Physics]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=861</guid>
		<description><![CDATA[Good news! I&#8217;ve been invited to speak at the Montreal International Game Summit 2009 I haven&#8217;t decided on a name for the talk yet, but it will focus on networked physics and combine material from my GDC 2009 tutorial, lecture and new material I&#8217;m going to develop over the next few months. The basic overview [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.sijm.ca/2008/en"><img src="http://www.sijm.ca/2008/wp-content/uploads/2009/03/feuxartifice.jpg"></img></a></p>
<p>Good news! I&#8217;ve been invited to speak at the Montreal International Game Summit 2009</p>
<p>I haven&#8217;t decided on a name for the talk yet, but it will focus on networked physics and combine material from my GDC 2009 tutorial, lecture and new material I&#8217;m going to develop over the next few months.</p>
<p>The basic overview of the talk is something like this:</p>
<ul>
<li>How the internet works and why we should use UDP</li>
<li>Bandwidth considerations, packet structure, 64kbit/sec</li>
<li>Describe basic algorithm for synchronization: push/pull/serialize with visual smoothing</li>
<li>Synchronize one server controlled cube, client is just a viewer of simulation</li>
<li>Synchronize two player controlled cubes, client and server cube.
<li>Effects of latency, client side prediction</li>
<li>High simulation cost for rewind and replay, client side prediction breaks down in a dynamic world</li>
<li>Dynamic world synchronization: options &#8211; client side prediction, no prediction, styrofoam, authority scheme</li>
<li>Fiedler&#8217;s Cubes demo showing authority scheme to avoid high cost</li>
<li>Corrections, reverse corrections</li>
<li>Compression techniques</li>
<li>Cool demo to go out</li>
<li>Extended Q&amp;A</li>
</ul>
<p>The idea is to pretty much combine all the talks I&#8217;ve done so far on networked physics and present the information in a clear, simple manner &#8211; anybody who comes to this talk will leave with all the knowledge they need to network a physics simulation.</p>
<p>And of course, I get to spend a weekend in Montreal with my sweetheart about 2 months after we get married</p>
<p>So you see, it&#8217;s win-win folks <img src='http://gafferongames.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2009/05/22/montreal-international-game-summit-2009/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Aussie Aussie Aussie &#8211; OI OI OI!</title>
		<link>http://gafferongames.com/2009/04/07/aussie-aussie-aussie-oi-oi-oi/</link>
		<comments>http://gafferongames.com/2009/04/07/aussie-aussie-aussie-oi-oi-oi/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 16:14:34 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=848</guid>
		<description><![CDATA[Incredible. Just Incredible! Heads are screwed on right down under. After years of bungling they&#8217;ve made the right call. Just perfect! Kevin Rudd has announced that the NBN tender process has been terminated, and that the government will go it alone on a new $43 billion broadband network. The new wholesale-only network will connect 90% [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img src="http://gafferongames.com/wp-content/uploads/2009/04/aussie.jpg"></img></p>
<p>Incredible. Just Incredible! Heads are screwed on right down under. After years of bungling they&#8217;ve made the right call. Just perfect!</p>
<blockquote><p>Kevin Rudd has announced that the NBN tender process has been terminated, and that the government will go it alone on a new $43 billion broadband network.</p>
<p>The new wholesale-only network will connect 90% of homes with fibre to the home and will offer 100Mbit/s, with &#8220;next-generation&#8221; wireless and &#8220;third-generation&#8221; satellites to cover the remaining population. The network will be &#8220;open access&#8221; so retail ISPs can build their own products to sell to businesses and consumers.
</p></blockquote>
<p>If they keep this up, I might just start getting a bit homesick! <img src='http://gafferongames.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>source: <a href="http://www.whirlpool.net.au/news/?id=1843&amp;show=replies">whirlpool.net.au</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2009/04/07/aussie-aussie-aussie-oi-oi-oi/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Networking for Physics Programmers</title>
		<link>http://gafferongames.com/2009/03/24/networking-for-physics-programmers-draft/</link>
		<comments>http://gafferongames.com/2009/03/24/networking-for-physics-programmers-draft/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 08:13:01 +0000</pubDate>
		<dc:creator>Glenn Fiedler</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Game Physics]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gafferongames.com/?p=800</guid>
		<description><![CDATA[Here are the slides for my tutorial tomorrow The goal of the tutorial is to show people the basic ideas of how to network a physics simulation The key points are: Use UDP, not TCP Aim for 64kbit/sec &#8211; That&#8217;s 256 byte packets, 30 times per-second ** Handle out of order packets with a sequence [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img src="http://gafferongames.com/wp-content/uploads/2009/03/brick.jpg?w=300" alt="brick" title="brick" width="300" height="300" /></p>
<p>Here are the <a href="http://gafferongames.com/wp-content/uploads/2009/03/networking-for-physics-programmers.pdf">slides</a> for my tutorial tomorrow</p>
<p>The goal of the tutorial is to show people the basic ideas of how to network a physics simulation</p>
<p>The key points are:</p>
<ul>
<li>Use UDP, not TCP</li>
<li>Aim for 64kbit/sec &#8211; That&#8217;s 256 byte packets, 30 times per-second <b>**</b></li>
<li>Handle out of order packets with a sequence number</li>
<li>Send input and physics state in your packet</li>
<li>Snap the physics state and extrapolate</li>
<li>Run the simulation on both sides, and use the input to improve extrapolation</li>
<li>Use visual smoothing to hide errors</li>
</ul>
<p>Of course, there is a <u>lot more to it</u> but I hope this serves as a good starting point if you want to get into networked physics</p>
<p>Cheers!</p>
<p><b>**</b> <i>actually, that&#8217;s a little bit over 64kbit/sec, especially when you include IPsec header for consoles and UDP packet header, it&#8217;s just such a nice number for folks to remember, I couldn&#8217;t resist a little white lie <img src='http://gafferongames.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </i></p>
]]></content:encoded>
			<wfw:commentRss>http://gafferongames.com/2009/03/24/networking-for-physics-programmers-draft/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

