changeset 8:b1e6e100c535

merge
author Yutaka_Kinjyo
date Sat, 02 Oct 2010 08:23:38 +0900
parents 93c3962d9a01 (current diff) 17db5cd650c3 (diff)
children 57a4fa3f2359
files
diffstat 32 files changed, 232 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file presen/graffle/fpslinda_read.graffle has changed
Binary file presen/graffle/fpslinda_waitread.graffle has changed
Binary file presen/graffle/fpslinda_write.graffle has changed
Binary file presen/img/apigraph.png has changed
Binary file presen/img/apiinout.png has changed
Binary file presen/img/apiupdate.png has changed
Binary file presen/img/connectionoftspace.png has changed
Binary file presen/img/debugring.png has changed
Binary file presen/img/fedaqua.png has changed
Binary file presen/img/fedlinda.png has changed
Binary file presen/img/fpslinda.png has changed
Binary file presen/img/fpslinda_read.png has changed
Binary file presen/img/fpslinda_waitread.png has changed
Binary file presen/img/fpslinda_write.png has changed
Binary file presen/img/game.png has changed
Binary file presen/img/linda_server.png has changed
Binary file presen/img/lindaserver.png has changed
Binary file presen/img/metafedlinda.png has changed
Binary file presen/img/nadeko.png has changed
Binary file presen/img/poll.png has changed
Binary file presen/img/prefedlinda.png has changed
Binary file presen/img/relay1.png has changed
Binary file presen/img/relay2.png has changed
Binary file presen/img/relay3.png has changed
Binary file presen/img/relay4.png has changed
Binary file presen/img/relay5.png has changed
Binary file presen/img/routing.png has changed
Binary file presen/img/routing1.png has changed
Binary file presen/img/tcpnodelaygraph.png has changed
Binary file presen/img/treeandring.png has changed
Binary file presen/img/treetopology.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/presen/linda.html	Sat Oct 02 08:23:38 2010 +0900
@@ -0,0 +1,232 @@
+<html>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<title>2010-10-02 (土)   シーングラフとPS3 を使ったゲームプログラミング</title>
+<!-- metadata -->
+<meta name="generator" content="S5" />
+<meta name="version" content="S5 1.2a2" />
+<meta name="author" content="Eric A. Meyer" />
+<meta name="company" content="Complex Spiral Consulting" />
+<!-- configuration parameters -->
+<meta name="defaultView" content="slideshow" />
+<meta name="controlVis" content="hidden" />
+<!-- style sheet links -->
+<link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projec
+tion" id="slideProj" />
+<link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="scree
+n" id="outlineStyle" />
+<link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" 
+id="slidePrint" />
+<link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="project
+ion" id="operaFix" />
+<!-- S5 JS -->
+<script src="ui/default/slides.js" type="text/javascript"></script>
+</head>
+<body>
+
+<div class="layout">
+<div id="controls"><!-- DO NOT EDIT --></div>
+<div id="currentSlide"><!-- DO NOT EDIT --></div>
+<div id="header"></div>
+<div id="footer">
+<h1>2010-10-02 (土)   シーングラフとPS3 を使ったゲームプログラミング</h1>
+<h2></h2>
+</div>
+</div>
+
+<ol class="xoxo presentation">
+
+
+</li>
+<li class="slide">
+<h1>Linda Server</h1>
+</li>
+
+<li class="slide">
+<h1>Linda Serverとは?</h1>
+<div style="float: left; width: 59%;">
+<ul>
+	<li>データベースのひとつ</li>
+	<li>タプルスペースというデータを入れる箱が用意されている.</li>
+	<li>そこに,データを読み込んだり書き込んだりすることができる. </li>
+	<li>タプルスペースは多数用意されている.</li>
+</ul>
+</div>
+<img src="./img/linda_server.png" style="display: block; width: 27%; margin-right: 10%; float: right;"/>
+</li>
+
+<li class="slide">
+<h1>Federated Lindaとは?</h1>
+<p class="subhead">複数のLindaサーバーを接続したもの</p>
+<ul>
+  <li>複数のLindaを接続することで負荷を分散する</li>
+  <li>情報を取捨しながら伝搬する</li>
+  <ul>
+    <li>すべてのデータをレプリケーションする必要はない</li>
+    <li>サーバーがクライアントの必要な情報とは何かを把握する</li>
+  </ul>
+</ul>
+</li>
+
+<li class="slide">
+<h1>Federated Lindaとは?</h1>
+<div style="display: block; float: left; width: 60%;">
+<p>タプルスペースを複数個つなげて、タプルの伝搬を基にデータを共有する</p>
+<ul>
+  <li>タプルスペース間には データの伝搬などを管理する Protocol Engine と呼ばれるプログラムが存在</li>
+  <li>共有して接続を分散させることでスケーラブルなプログラムを書く事ができる</li>
+</ul>
+</div>
+<img src="./img/prefedlinda.png" style="display: block; width: 37%; margin: auto; float: right; margin-right: 3%; margin-top: 5%;"/>
+</li>
+
+<li class="slide">
+<h1>Linda Serverの使い方</h1>
+<div style="float: left; width: 59%;">
+<small>
+<p>Linda は、以下のAPIを用いてタプルスペース上のデータの更新を行う</p>
+<ul>
+	<li>in(id)</li>
+	<ul>		
+		<li>データをタプルから取り出す。タプルにデータは残らない</li>
+	</ul>
+	<li>rd(id)</li>
+	<ul>		
+		<li>データをタプルから取り出す。タプルにデータが残る</td>
+	</ul>
+	<li>out(id,data)</li>
+	<ul>		
+		<li>データをタプルへ書き込む</li>
+	</ul>
+</ul>
+</small>
+</div>
+<img src="./img/linda_server.png" style="display: block; width: 27%; margin-right: 10%; float: right;"/>
+</li>
+
+<li class="slide">
+<h1>水族館ゲーム</h1>
+<div style="float: left; width: 49%;">
+<small>
+<p>本研究では、ネットワークゲームを例題として用いる。</p>
+<ul>
+  <li>複数のプレイヤーの画面を並べる</li>
+  <li>魚が1匹ずつプレイヤーに与えられる</li>
+  <li>画面の端まで行くと、隣のプレイヤーの画面に移動する</li>
+</ul>
+</small>
+</div>
+<img src="./img/fedaqua.png" style="display: block; width: 37%; margin-right: 10%; float: right;"/>
+</li>
+
+<li class="slide">
+<h1>First Person Shooter Test</h1>
+<div style="float: left; width: 49%;">
+<small>
+<p>同じくネットワークゲームの例題として作成したゲーム</p>
+<ul>
+  <li>Lindaにプレイヤーの座標が保存されている</li>
+  <li>複数台のPS3がLindaサーバーにアクセスしプレイヤーの座標を更新・取得</li>
+  <li>PS3ではそのプレイヤーを自由に移動させることができる</li>
+</ul>
+</small>
+</div>
+<img src="./img/fpslinda.png" style="display: block; width: 37%; margin-right: 10%; float: right;"/>
+</li>
+
+<li class="slide">
+<h1>ゲームの仕組み(座標の書き込み)</h1>
+<div style="float: left; width: 49%;">
+<small>
+<ul>
+	<li>Lindaは数値のIDをもつタプルが存在している</li>
+	<li>接続されているPS3はそれぞれ固有のIDをもつ</li>
+	<li>IDを10倍した値をタプルスペースのアドレスとする.</li>
+	<li>そこに,座標などのデータを格納する.</li>
+</ul>
+</small>
+</div>
+<img src="./img/fpslinda_write.png" style="display: block; width: 37%; margin-right: 10%; float: right;"/>
+</li>
+
+<li class="slide">
+<h1>ゲームの仕組み(座標の読み込み)</h1>
+<div style="float: left; width: 49%;">
+<small>
+<ul>
+	<li>プレイヤー座標はそれぞれのIDが10倍された場所にある.</li>
+	<li>その場所が更新されれば他のプレイヤーが動いたことになる.</li>
+	<li>座標が保存されるIDにReadを用いるとタプルの値を取得できる.</li>
+	<li>Readでは値が更新されていなくても通信が発生してしまい効率が良くない.</li>
+</ul>
+</small>
+</div>
+<img src="./img/fpslinda_read.png" style="display: block; width: 37%; margin-right: 10%; float: right;"/>
+</li>
+
+<li class="slide">
+<h1>ゲームの仕組み(座標の読み込み)</h1>
+<div style="float: left; width: 49%;">
+<small>
+<ul>
+	<li>そこでWaitReadを用いる.</li>
+	<li>WaitReadはタプルの値が更新されていなければ値を返さず,待機する.</li>
+	<li>処理が帰ってきたときタプルの更新を検知することが出きる.</li>
+	<li>WaitReadで得た座標を用いてPS3の画面を描画する</li>
+</ul>
+</small>
+</div>
+<img src="./img/fpslinda_waitread.png" style="display: block; width: 37%; margin-right: 10%; float: right;"/>
+</li>
+
+<!--
+<li class="slide">
+<h1>ツリー型トポロジーを用いた負荷分散</h1>
+<div style="display: block; float: left; width: 60%;">
+<small>
+<ul>
+  <li>ツリー型トポロジーを用いて、負荷を分散する</li>
+  <li>末端にクライアントを接続する</li>
+  <li>末端のノードは、クライアントから受け取った座標情報をクライアントが必要か判断する</li>
+  <ul>
+    <li>必要ならば、その Linda サーバーのみで通信は完結</li>
+    <li>必要でないなら、親に判断を委ねるため、親に伝搬</li>
+  </ul>
+  <li>伝搬された上位ノードは、子のノードが必要か判断し、子に伝搬するか、親に伝搬するかを決定する</li>
+  <li><strong>データを必要としているマシンのみにデータを伝搬する</strong></li>
+</ul>
+</small>
+</div>
+<img src="./img/treetopology.png" style="display: block; width: 37%; margin: auto; float: right; margin-right: 3%; margin-top: 5%;"/>
+</li>
+
+<li class="slide">
+<h1>タプルの伝搬</h1>
+<img src="img/relay1.png"/>
+</li>
+
+<li class="slide">
+<h1>タプルの伝搬</h1>
+<img src="img/relay2.png"/>
+</li>
+
+<li class="slide">
+<h1>タプルの伝搬</h1>
+<img src="img/relay3.png"/>
+</li>
+
+<li class="slide">
+<h1>タプルの伝搬</h1>
+<img src="img/relay4.png"/>
+</li>
+
+<li class="slide">
+<h1>タプルの伝搬</h1>
+<img src="img/relay5.png"/>
+</li>
+-->