<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>TannSanWiki - GenEngine/Networking</title>
<link>http://www.davidmillington.net/pages/GenEngine/Networking</link>
<description>History/revisions of TannSanWiki/GenEngine/Networking</description>
<language>en-us</language>
<item>
<title>2006-07-24 15:33:11</title>
<link>http://www.davidmillington.net/pages/GenEngine/Networking/show?time=2006-07-24+15%3A33%3A11</link>
<description>&lt;div class="pageBefore">&lt;img src="http://www.davidmillington.net/pages/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a name=".genengine.networking" href="http://www.davidmillington.net/pages/GenEngine/Networking" class="">/Gen&amp;nbsp;Engine&amp;nbsp;/&amp;nbsp;Networking&lt;/a> of &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking?time=2006-07-24+15%3A33%3A11">2006-07-24 15:33:11&lt;/a> and &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking">2006-07-24 15:54:08&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Deletions:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;ul>&lt;li> Look into the&amp;nbsp;3 networking structs.cs files and&amp;nbsp;see what can&amp;nbsp;be&amp;nbsp;moved into networkings one.  Might be&amp;nbsp;able to&amp;nbsp;delete the&amp;nbsp;two other structs files then.&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-07-24 15:30:15</title>
<link>http://www.davidmillington.net/pages/GenEngine/Networking/show?time=2006-07-24+15%3A30%3A15</link>
<description>&lt;div class="pageBefore">&lt;img src="http://www.davidmillington.net/pages/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://www.davidmillington.net/pages/GenEngine/Networking" class="">/Gen&amp;nbsp;Engine&amp;nbsp;/&amp;nbsp;Networking&lt;/a> of &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking?time=2006-07-24+15%3A30%3A15">2006-07-24 15:30:15&lt;/a> and &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking?time=2006-07-24+15%3A33%3A11">2006-07-24 15:33:11&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;strong>Idea Chalkboard&lt;/strong>&lt;/div>&lt;br />
&lt;b>Deletions:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-07-24 15:29:33</title>
<link>http://www.davidmillington.net/pages/GenEngine/Networking/show?time=2006-07-24+15%3A29%3A33</link>
<description>&lt;div class="pageBefore">&lt;img src="http://www.davidmillington.net/pages/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://www.davidmillington.net/pages/GenEngine/Networking" class="">/Gen&amp;nbsp;Engine&amp;nbsp;/&amp;nbsp;Networking&lt;/a> of &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking?time=2006-07-24+15%3A29%3A33">2006-07-24 15:29:33&lt;/a> and &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking?time=2006-07-24+15%3A30%3A15">2006-07-24 15:30:15&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ul>&lt;li> Theres a&amp;nbsp;single abstract class called NetworkDataHandler that handles the&amp;nbsp;data that is&amp;nbsp;passed to&amp;nbsp;and from the&amp;nbsp;Networking dll.&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Deletions:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;ul>&lt;li> Theres a&amp;nbsp;single abstract class called &lt;span class="missingpage">Network&amp;nbsp;Data&amp;nbsp;Handler&lt;/span>&lt;a href="http://www.davidmillington.net/pages/NetworkDataHandler/edit?add=1" title="Create this page">?&lt;/a> that handles the&amp;nbsp;data that is&amp;nbsp;passed to&amp;nbsp;and from the&amp;nbsp;Networking dll.&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-07-05 22:04:45</title>
<link>http://www.davidmillington.net/pages/GenEngine/Networking/show?time=2006-07-05+22%3A04%3A45</link>
<description>&lt;div class="pageBefore">&lt;img src="http://www.davidmillington.net/pages/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://www.davidmillington.net/pages/GenEngine/Networking" class="">/Gen&amp;nbsp;Engine&amp;nbsp;/&amp;nbsp;Networking&lt;/a> of &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking?time=2006-07-05+22%3A04%3A45">2006-07-05 22:04:45&lt;/a> and &lt;a href="http://www.davidmillington.net/pages/GenEngine/Networking?time=2006-07-24+15%3A29%3A33">2006-07-24 15:29:33&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;strong>Network Layout&lt;/strong>&lt;br />
&lt;ul>&lt;li> Dedicated Server &amp; Client System
&lt;/li>&lt;li> Each client is&amp;nbsp;only aware of&amp;nbsp;the server
&lt;/li>&lt;li> The&amp;nbsp;Server is&amp;nbsp;aware of&amp;nbsp;all clients
&lt;/li>&lt;li> A&amp;nbsp;client sends a&amp;nbsp;message to&amp;nbsp;the server.  Depending on&amp;nbsp;what that data is&amp;nbsp;the server may&amp;nbsp;either:
&lt;ul>&lt;li> Process the&amp;nbsp;data and&amp;nbsp;broadcast it&amp;nbsp;to multiple clients
&lt;/li>&lt;li> Process the&amp;nbsp;data and&amp;nbsp;send it&amp;nbsp;to 1 or&amp;nbsp;more clients i.e. a&amp;nbsp;smaller subset of&amp;nbsp;the above
&lt;/li>&lt;li> Process the&amp;nbsp;data and&amp;nbsp;send verification to&amp;nbsp;the client that it&amp;nbsp;has been processed i.e. ack&amp;nbsp;&lt;/li>&lt;li> In&amp;nbsp;reality the&amp;nbsp;first two&amp;nbsp;are going to&amp;nbsp;be the&amp;nbsp;same thing as&amp;nbsp;we hope to&amp;nbsp;enable broadcasting to&amp;nbsp;limited groups of&amp;nbsp;users.  User A&amp;nbsp;on the&amp;nbsp;farthest left edge of&amp;nbsp;the world doesnt need to&amp;nbsp;know that User B&amp;nbsp;on the&amp;nbsp;opposite side of&amp;nbsp;the world moved left.&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>
&lt;strong>Programmatic Structure&lt;/strong>&lt;br />
&lt;ul>&lt;li> There is&amp;nbsp;a single Networking dll&amp;nbsp;class that does all&amp;nbsp;the lowest level data sending and&amp;nbsp;receiving.  It&amp;nbsp;is oblivous to&amp;nbsp;the actual data beyond knowing it&amp;nbsp;is a&amp;nbsp;byte array.
&lt;/li>&lt;li> Theres a&amp;nbsp;single abstract class called &lt;span class="missingpage">Network&amp;nbsp;Data&amp;nbsp;Handler&lt;/span>&lt;a href="http://www.davidmillington.net/pages/NetworkDataHandler/edit?add=1" title="Create this page">?&lt;/a> that handles the&amp;nbsp;data that is&amp;nbsp;passed to&amp;nbsp;and from the&amp;nbsp;Networking dll.
&lt;/li>&lt;li> The&amp;nbsp;client and&amp;nbsp;the server both have their own&amp;nbsp;network data handler classes that implement the&amp;nbsp;above Networking version.  The&amp;nbsp;reason for&amp;nbsp;this is&amp;nbsp;due to&amp;nbsp;the server will need to&amp;nbsp;handle the&amp;nbsp;data differently than the&amp;nbsp;client i.e. the&amp;nbsp;client sends data solely to&amp;nbsp;the server but&amp;nbsp;the server sends data to&amp;nbsp;oodles of&amp;nbsp;clients.
&lt;/li>&lt;li> Actual game world interacting with the&amp;nbsp;network involves calling functions on&amp;nbsp;the relevant network data handler i.e. ClientNetworkDataHandler.Instance.sendMoveCommand(this.id, this.x, this.y); would send the&amp;nbsp;players current position to&amp;nbsp;the server.&lt;/li>&lt;/ul>
&lt;strong>To Do&lt;/strong>&lt;br />
&lt;ul>&lt;li> Re-implement sending binary data
&lt;/li>&lt;li> Start adding more data types that can&amp;nbsp;be&amp;nbsp;passed and&amp;nbsp;finish implementing the&amp;nbsp;ones that already exist.
&lt;/li>&lt;li> Look into the&amp;nbsp;3 networking structs.cs files and&amp;nbsp;see what can&amp;nbsp;be&amp;nbsp;moved into networkings one.  Might be&amp;nbsp;able to&amp;nbsp;delete the&amp;nbsp;two other structs files then.
&lt;/li>&lt;li> Implement sending to&amp;nbsp;groups instead of&amp;nbsp;every client.  That will allow us&amp;nbsp;to do&amp;nbsp;things like say&amp;nbsp;&amp;#147;broadcast this message to&amp;nbsp;all clients within x&amp;nbsp;radius of&amp;nbsp;my current position&amp;#148; instead of&amp;nbsp;how it&amp;nbsp;is now&amp;nbsp;which is&amp;nbsp;&amp;#147;broadcast this message to&amp;nbsp;all clients connected to&amp;nbsp;the server&amp;#148;.&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
