annotate poster/master-lt.html @ 17:d39c452010ea

add poster base.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Tue, 15 Feb 2011 18:21:02 +0900
parents
children a5fb2dea1c60
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 <html xmlns="http://www.w3.org/1999/xhtml">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 <head>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <title>master_presentation</title>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 <!-- metadata -->
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 <meta name="generator" content="S5" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 <meta name="version" content="S5 1.1" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 <meta name="presdate" content="20050728" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 <meta name="author" content="Eric A. Meyer" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 <meta name="company" content="Complex Spiral Consulting" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 <!-- configuration parameters -->
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 <meta name="defaultView" content="slideshow" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 <meta name="controlVis" content="hidden" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 <!-- style sheet links -->
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <!-- S5 JS -->
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <script src="ui/default/slides.js" type="text/javascript"></script>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 </head>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <body>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 <div class="layout">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 <div id="controls"><!-- DO NOT EDIT --></div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 <div id="currentSlide"><!-- DO NOT EDIT --></div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 <div id="header"></div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 <div id="footer">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 <h1>[date:11/02/09]</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 <h2>Game Framework Cerium を用いたゲームプログラミングにおけるテスト手法の提案</h2>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 <div class="presentation">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 <h1>Game Framework Cerium を用いた<br>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 ゲームプログラミングにおける<br>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 テスト手法の提案</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 <h3>発表者:小林 佑亮</h3>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 <h4>所属:琉球大学 理工学研究科 情報工学専攻 並列信頼研究室</h4>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 <h4>指導教員:河野 真治</h4>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 <h1>発表内容</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 <ol>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 <li>序論</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 <li>CppUnit を用いたゲームプログラムテスト</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <li>ゲームプログラミングにおけるテスト</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 <li>Cell BE と Cerium</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 <li>テスト対象のシューティングゲーム Super Dandy</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 <li>構築したテスト環境</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 <li>テスト環境によるデバッグと検証</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 <li>まとめ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 </ol>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 <h1>研究背景</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 <font size="4"><ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 <li>我々は PlayStation3(以下 PS3) 上においてゲーム開発が行えるフレームワーク
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 Cerium を開発した。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <li>Cerium ではプログラムを Task という単位に分けて管理し、これを PS3 の
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 アーキテクチャである Cell B.E に渡して並列処理を行う。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 <li>シーケンシャルなプログラムを Task に分割して並列実行させても、
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 逐次実行させた時と同じ動作をするとは限らない。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 <li>オブジェクト同士のデータの同期や、処理の実行順序など、シーケンシャルな
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 プログラムに比べて、バグを発生させる要因は多い。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 <li>また、ゲームプログラムの特徴はプレイヤーの入力やプログラム内にある乱数
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 などの非決定的な要素が多いことが挙げられる。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <li>これによってバグの再現性が低下するため、ゲームプログラムのテストは
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 一般的なソフトウェアのテストに比べて難しい</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 </ul></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 <h1>研究目的</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 <font size="4"><ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 <li>本研究では Task に分割されたゲームプログラムがシーケンシャルなバージョン
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 と同じ動作である事を確認できるテスト環境の構築を目的とする。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 <li>プレイヤーの入力や乱数などの非決定的な要素を固定化し、バグの再現性を
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 低下させずにテストを行えるようにする。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 <li>動作の同一性を確かめるために必要なパラメータの書き出しを行う</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 <li>高速なテストを行う為、テストに影響しない範囲で実行時間が大きい処理を
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 排除する。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 </ul></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 <h1>CppUnit</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 <li>xUnit と呼ばれる単体テストのためのフレームワークの内の 1 つ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 <li>単体テストとは関数やメソッドなどの比較的小さな単位で行うテストで、
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 モジュールへの入力と出力を調べることでそのモジュールが要求された仕様を
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 満たしているかをテストする手法</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 <li>CppUnit は 1 つの事象に対して様々なテストケースを同時にテストできる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 <li>羅列したテストケースは一括で実行と結果表示が出来る</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 <li>しかしこうした単体テストではゲームプログラムのバグを見つけるのは難しい</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 <h1>ゲームオブジェクトに対するテスト</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 <li>3 つの SceneGraph ノードを持つ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 <li>本体を tree の root として左右のパーツがその子供になっている。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 <li>オブジェクトの動き(Move)として左右の平行移動をする</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 <li>簡単なゲームの例題</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 <td><img src="images/boss1_SG.png" width=300 height=250></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 <h1>ゲームオブジェクトに対するテスト</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 <h2>テスト方法</h2>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 <li>SceneGraph tree の root のアドレスを取得</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 <li>そこから tree を辿って各オブジェクトの座標を取得</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 <li>初期値を入力してオブジェクトの初期化が正しいか調べる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 <h2>テスト結果</h2>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 <li>全てのオブジェクトの初期値が正しい事がわかった</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 <li>初期化の段階でバグが発生していないことが保証された</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 <h1>ゲームに対する単体テストの欠点</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 <ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 <li>単体テストは瞬間的な値の正しさは調べられる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 <li>常にオブジェクトのパラメータが変化するゲームには有効的ではない</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 <li>ゲームのバグは他のオブジェクトのパラメータとの関係により発生するものが
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 多い</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 <li>一般的な単体テストではゲームのバグの発見は難しい</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 <h1>ゲームプログラムの特徴</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 <li>多数のオブジェクトが存在する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 <li>オブジェクト同士が相互に干渉する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 <li>プレイヤーの入力やゲームの進行によって新たなオブジェクトが生成される</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 <li>オブジェクトは他のオブジェクトのパラメータを見て、衝突判定や挙動の変化をする</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 <img src="images/game.png" width=300 height=250/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 <h1>ゲームプログラムの特徴</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 <li>プレイヤーの入力がゲームに影響する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 <li>遷移する状態が膨大</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 <li>遷移する状態が仕様の範囲内に収まるかをチェックするテストは向かない</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 <li>実際にプレイヤーがゲームをプレイするのが重要なテスト</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 <h1>プレイヤーの入力の不定性</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 <li>プレイヤーの入力は常に非決定的(毎回結果が異なる)</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 <li>同じ人間が同じゲームの同じ場面をプレイしても全く同じ入力をする可能性
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 は極めて低い</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 <li>プレイヤーは制御不能なランダム要素</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 <li>テストにおけるバグの再現性を低下させている</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 <h1>ゲームにおける乱数の役割</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 <li>オブジェクトの振る舞いに多様性を持たせる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 <li>ランダムな位置配置に使われる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 <li>乱数のランダム性はデバッグをする上でバグの再現を困難にする</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 <li>対処法としては、乱数生成器を無効にするか、定数でシードする</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
196
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 <h1>Cell Broadband Engine</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 <li>SCE と 東芝、IBM によって開発されたCPU</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 <li>2 thread の PPE(PowerPC Processor Element) と 8 個の
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 SPE(Synergistic Processor Element)を持つ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 <li>各 CPU 間は高速リングバスであるEIB(Element Interface Bus)で
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 繋がっている</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 <center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 <img src="images/cell.png" width=350 height=150/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 </center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
210
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 <h1>Game Framework Cerium</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 <dl>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 <b><dt>SceneGraph</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 <dd>オブジェクトのパラメータやポリゴン情報を tree 構造のノードで管理</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 <b><dt>Rendering Engine</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 <dd>3 種類の Task によって並列に描画処理を行う</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 <b><dt>TaskManager</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 <dd>Task を動的に SPE へ割り振るカーネルとして振舞う</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 </dl>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
222
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 <h1>Task Manager</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 <li>Task と呼ばれる分割されたプログラムを管理する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 <li>Task の単位はサブルーチンまたは関数とする。</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 <li>生成された Task を依存関係を考慮しながら SPE に転送したり、実行する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
231
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 <h1>Task 生成時に使用できる API</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 <center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 <table border="1" cellspacing="0">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 <tr><th>create_task</th><td>Task を生成する</td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 <tr><th>set_inData</th><td>Task への入力データのアドレスを追加</td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 <tr><th>set_outData</th><td>Task からの出力先アドレスを追加</td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
239 <tr><th>set_param</th><td>Task に 32 bit の情報を追加</td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 <tr><th>set_post</th><td>Task が終了した後に PPE 側で実行される関数を登録</td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 </center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
244
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 <h1>シューティングゲーム SuperDandy</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
250 <li>我々が PlayStation 上でのゲーム開発を行っていた 1998 年に開発</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 <li>タイトルからゲーム本編中の敵機の登場、ステージクリア、エンディングと
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 ゲーム的な要素が多い</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
253 <li>PlayStation, PlayStation2 Linux, OpenGL と伝統的に移植されてきた</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 <img src="images/dandy.png" width=300 height=250/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
261
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
262 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
263 <h1>Super Dandy 移植の利点</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 <li>全 5 ステージという、ある程度のボリュームのあるゲーム</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
266 <li>衝突判定やオブジェクト判定、ステージクリアによるシーン切り替えと、基本的なゲームの要素が入っている</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 <li>動作結果を過去の環境と比較することによる新たな環境のチューニングができる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
269 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
270
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
271 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 <h1>Super Dandy Cerium version</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
274 <li>最初に Cerium に対応したバージョン</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 <li>描画処理に Cerium の Rendering Engine を用いており、その箇所のみ
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
276 Task で処理される</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
277 <li>基本的なゲームの処理は変わらない</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
278 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
279 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
280
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
282 <h1>Task Dandy(Super Dandy Task version)</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
283 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
284 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
285 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
286 <li>オブジェクトの Move や Collision を Task 化</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
287 <li>オブジェクトの描画は SceneGraph tree の形成、Rendering Task の
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
288 生成といった Cerium の描画処理を使用</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
289 <li>できるだけ Super Dandy のコードやデータ構造を流用</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 <img src="images/taskdandy.png" width=300 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
293 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
294 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
295 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
296 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
297
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
298 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
299 <h1>Task Dandy のデータ構造</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 <dl>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
301 <b><dt>player</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 <dd>プレイヤーの操作する機体。xy 座標、残機数、無敵時間、
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
303 コンテニュー回数などを持つ。</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
304 <b><dt>CHARACTER</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
305 <dd>敵機や敵の弾。xy 座標とその方向の速さ、体力、倒したときのスコア、
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
306 オブジェクトの種類を表すキャラナンバーを持つ。</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
307 <b><dt>tama_lv1〜lv3、laser_lv1〜lv3</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
308 <dd>プレイヤーが撃った弾。xy 座標をもつ。プレイヤーが射撃ボタンを押すと
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
309 弾が配列に格納され、敵に当たるか画面外にいくと消滅する。</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
310 </dl>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
311 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
312
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
313 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
314 <h1>データ転送に用いる Property</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
315 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
316 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
317 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
318 <li>必要なパラメータをまとめて Property にコピーして set_inData</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
319 <li>複数のデータをまとめることによって Task の inData を簡略化</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
320 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
321 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
322 <img src="images/property.png" width=400 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
323 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
324 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
325 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
326 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
327
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
328 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
329 <h1>ステートパターン</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
330 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
331 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
332 <td><font size="4"><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
333 <li>オブジェクトの Move と Collision を行う</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
334 <li>オブジェクトが関数ポインタを持ち、そのポインタが示す関数が
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
335 Move や Collision の処理を行う</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
336 <li>関数ポインタのアドレスを他の関数ポインタのアドレスに書き換え、
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
337 オブジェクトの状態遷移をする</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
338 <li>しかし、メモリが独立している SPE 上で状態遷移をする場合、
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
339 ステートパターンで使用した関数ポインタのアドレスは使えない</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
340 </ul></font></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
341 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
342 <img src="images/state_pattern.png" width=300 height=200/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
343 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
344 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
345 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
346 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
347
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
348 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
349 <h1>SPE における状態遷移</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
350 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
351 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
352 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
353 <li>SPE 上では Task の ID を変更</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
354 <li>PPE 上で変更された ID を見て次に生成する Task の種類を変更</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
355 <li>オブジェクトの状態遷移が成立</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
356 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
357 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
358 <img src="images/task_change.png" width=400 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
359 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
360 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
361 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
362 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
363
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
364 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
365 <h1>目標とするテスト環境</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
366 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
367 <li>プレイヤーの入力や乱数などの非決定的な要素の固定化</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
368 <li>現在動作中の OpenGL バージョンと Cerium バージョン、そして Task Dandy
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
369 の動作が同一かどうか確認できるテストログの出力</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
370 <li>高速なテスト環境</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
371 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
372 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
373
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
374 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
375 <h1>Capture モードと Trace モード</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
376 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
377 <li>プレイヤーからの入力を 1 フレーム毎に記録する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
378 <li>記録した入力をバイナリデータとして書き出す</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
379 <li>書き出したファイルを読み込むことで過去のプレイヤー入力を再現できる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
380 <li>実行ファイルにオプションとファイル名を付けて起動する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
381 <li>3 つの Super Dandy 全てで使える</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
382 <li>旧バージョンの入力を記録し、新バージョンで読み出すことができる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
383 <li>入力が同じでも動作が違えばそこにバグが潜んでいると考えられる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
385 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
386
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
387 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
388 <h1>入力を記録するバッファのデータ構造</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
389 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
390 <li>単方向リスト型のバッファ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
391 <li>Capture モードではバッファが足りなくなると新たなバッファを確保する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
392 <li>Trace モードでは必要なバッファサイズを計算し、あらかじめバッファを確保しておく</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
393 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
394 <center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
395 <img src="images/pad_buff.png" width=400 height=150>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
396 </center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
397 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
398
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
399 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
400 <h1>SPE における乱数生成</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
401 <font size="4"><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
402 <li>シーケンシャルプログラムでは 1 つの乱数列から順番に乱数を取得</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
403 <li>Cell における並列プログラムでは各 SPE 内で 独自の乱数列を生成</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
404 <li>SPE に送られた Task は SPE 固有の乱数列を使用</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
405 <li>SPE 内では依存関係を持たない Task は実行順序が不定</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
406 <li>シーケンシャルと並列で異なる結果が出る</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
407 </ul></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
408 <center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
409 <img src="images/spe_random.png" width=400 height=150>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
410 </center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
411 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
412
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
413 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
414 <h1>SPE 内での予測可能な乱数の使用</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
415 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
416 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
417 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
418 <li>あらかじめ PPE 内で乱数列を生成しておく</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
419 <li>inData として Task に渡す</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
420 <li>Move Task や Collision Task の生成タイミングは Super Dandy の
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
421 Move や Collision のタイミングと同じ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
422 <li>Super Dandy と同じ乱数が使用できる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
423 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
424 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
425 <img src="images/ppe_random.png" width=400 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
426 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
427 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
428 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
429 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
430
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
431 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
432 <h1>並列処理をすることによって発生するバグ</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
433 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
434 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
435 <td><ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
436 <li>Task 間のデータの同期による衝突判定のバグ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
437 <li>Task の実行順序の違いによる衝突判定のバグ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
438 <li>Task の実装の違い</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
439 <li>主にオブジェクトの衝突判定でバグが発生</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
440 <li>衝突時のログを見ることでバグを発見する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
441 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
442 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
443 <img src="images/test_log.png" width=350 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
444 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
445 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
446 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
447 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
448
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
449 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
450 <h1>出力されるテストログ</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
451 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
452 F64: CREATE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -128.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
453 vx= 0.000000 vy= 4.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
454 F85: DELETE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -44.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
455 vx= 0.000000 vy= 4.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
456 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
457 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
458 <dl class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
459 <b><dt>F64, F85</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
460 <dd>生成、被弾した時の経過フレーム</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
461 <b><dt>CREATE, DELETE</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
462 <dd>CREATE はオブジェクトの生成、DELETE はオブジェクトの被弾</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
463 <b><dt>NAME</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
464 <dd>オブジェクトの種類と ID</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
465 <dl>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
466 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
467
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
468 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
469 <h1>出力されるテストログ</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
470 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
471 F64: CREATE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -128.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
472 vx= 0.000000 vy= 4.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
473 F85: DELETE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -44.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
474 vx= 0.000000 vy= 4.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
475 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
476 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
477 <dl>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
478 <b><dt>COORD</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
479 <dd>オブジェクトの xy 座標と速度</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
480 <b><dt>BULLET</dt></b>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
481 <dd>その瞬間に画面内に存在した弾丸の数。</dd>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
482 </dl>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
483 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
484
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
485 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
486 <h1>Cerium における画面の描画処理</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
487 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
488 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
489 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
490 <li>ビデオモードの選択(SDL, OpenGL)</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
491 <li>描画処理を行う画面バッファの領域の確保</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
492 <li>ゲーム処理の実行</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
493 <li>レンダリング Task による画面バッファへの描画</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
494 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
495 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
496 <img src="images/video.png" width=300 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
497 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
498 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
499 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
500 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
501
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
502 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
503 <h1>本研究のテスト環境における描画処理</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
504 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
505 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
506 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
507 <li>プレイヤーの入力の自動化により、プログラムを実行するだけでテストが可能</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
508 <li>描画処理が不要となる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
509 <li>描画用 Task の生成を行わない事により、テストの高速化ができる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
510 <li>また、画面バッファの確保も不要</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
511 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
512 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
513 <img src="images/video2.png" width=300 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
514 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
515 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
516 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
517 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
518
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
519 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
520 <h1>描画処理を行わないモード</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
521 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
522 <li>ビデオモードの選択時に選ぶ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
523 <li>Task を生成する処理をスルーしてゲーム処理を実行</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
524 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
525 <center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
526 <img src="images/video_none.png" width=200 height=150/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
527 </center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
528 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
529
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
530 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
531 <h1>本研究のテスト環境におけるバグの検出方法</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
532 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
533 <li>OpenGL バージョンを Capture モードでプレイし、入力を記録</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
534 <li>Cerium バージョン、Task Dandy を Trace モードで実行</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
535 <li>各バージョンで得られたテストログを比較、考察</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
536 <li>テストログの違いにより、バグの発生している箇所を特定</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
537 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
538 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
539
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
540 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
541 <h1>OpenGL と Cerium のテストログの比較</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
542 <center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
543 <table border="1" cellspacing="0">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
544 <tr><td></td><th>大きさ</th><th>行数</th><th>単語数</th></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
545 <tr><th>OpenGL</th><td>349486 byte</td><td>3411</td><td>37194</td></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
546 <tr><th>Cerium</th><td>349471 byte</td><td>3411</td><td>37195</td></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
547 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
548 </center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
549 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
550 <li>Cerium バージョンは描画を行わないモードで実行</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
551 <li>エンディングまでプレイした入力データを仕様</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
552 <li>テストログのデータに unix コマンドの wc(word count) コマンドを実行して検証</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
553 <li>各バージョンで得られたテストログを比較、考察</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
554 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
555 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
556
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
557 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
558 <h1>OpenGL と Cerium のテストログの比較</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
559 <center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
560 <table border="1" cellspacing="0">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
561 <tr><td></td><th>大きさ</th><th>行数</th><th>単語数</th></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
562 <tr><th>OpenGL</th><td>349486 byte</td><td>3411</td><td>37194</td></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
563 <tr><th>Cerium</th><td>349471 byte</td><td>3411</td><td>37195</td></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
564 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
565 </center>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
566 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
567 <li>2 つのログに大きな差は無い</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
568 <li>Super Dandy をエンディングまでプレイしたときに得られるテストログの大きさ
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
569 は約 350 KB</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
570 <li>単語数と大きさに僅かな差</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
571 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
572 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
573
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
574 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
575 <h1>diff によるテストログの比較</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
576 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
577 % diff log/demo_log log/dandy_log
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
578 1a2
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
579 > Use Joystick
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
580 3410,3411c3411,3412
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
581 < 83.308451 FPS
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
582 < move: average:49usec, peak:1091usec
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
583 ---
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
584 > 0.000000 FPS
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
585 > game end
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
586 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
587 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
588 <li>表示されているメッセージは OpenGL や Cerium 依存のメッセージ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
589 <li>0.000000 FPS は Cerium 側のメッセージで描画を行わないビデオモードにより
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
590 正しく FPS の計算ができなかったため</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
591 <li>wc の単語数はスペース区切りで判別するため、Cerium=6,OpenGL=5</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
592 <li>よって両バージョンの動作は同じである</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
593 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
594 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
595
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
596 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
597 <h1>OpenGL バージョンと Task Dandy の比較</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
598 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
599 super dandy(OpenGL) >>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
600 F64: CREATE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
601 F85: DELETE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -44.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
602 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
603 F96: CREATE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
604 F96: CREATE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
605 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
606 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
607 F117: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= 40.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
608 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
609
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
610 << task dandy
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
611 F64: CREATE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
612 F85: DELETE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -44.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
613 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
614 F96: CREATE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
615 F96: CREATE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
616 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
617 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
618 F109: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
619 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
620 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
621 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
622
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
623 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
624 <h1>ログからのバグの洗い出し</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
625 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
626 super dandy(OpenGL) >>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
627 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
628 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
629 F117: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= 40.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
630 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
631
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
632 << task dandy
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
633 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
634 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
635 F109: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
636 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
637 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
638 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
639 <li>OpenGL では別フレームで死んだ 2 つの敵オブジェクトが Task Dandy では
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
640 同フレームで死亡</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
641 <li>この時の弾丸の数が一致</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
642 <li>片方が死んだ後、弾丸のオブジェクトの除去がされてない</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
643 <li>弾丸データが取れていない、という仮説を立てた</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
644 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
645 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
646
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
647 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
648 <h1>Collision Task 間でのデータの同期</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
649 <table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
650 <tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
651 <td><ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
652 <li>Collision Task を同じ CPU に送る</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
653 <li>予め衝突判定に必要なパラメータの領域を確保する</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
654 <li>その領域のパラメータで衝突判定を行う</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
655 <li>SPE 内で変更されたパラメータをメインメモリ側に反映させる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
656 </ul></td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
657 <td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
658 <img src="images/collision_reflect.png" width=300 height=300/>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
659 </td>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
660 </tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
661 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
662 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
663
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
664 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
665 <h1>Collision Task の改良後の比較</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
666 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
667 super dandy>>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
668 F64: CREATE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
669 F85: DELETE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -44.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
670 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
671 F96: CREATE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
672 F96: CREATE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
673 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
674 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
675 F117: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= 40.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
676 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
677
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
678 << task dandy
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
679 F64: CREATE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
680 F85: DELETE [NAME]enemy_greenclab_0 [COORD]x= 120.000000 y= -44.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
681 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
682 F96: CREATE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
683 F96: CREATE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= -128.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
684 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
685 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
686 F117: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= 40.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
687 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
688 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
689 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
690
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
691 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
692 <h1>Collision Task の改良後の比較</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
693 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
694 super dandy(OpenGL) >>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
695 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
696 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
697 F117: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= 40.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
698 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
699
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
700 << task dandy
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
701 F109: DELETE [NAME]enemy_greenclab_1 [COORD]x= 56.000000 y= -24.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
702 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
703 F117: DELETE [NAME]enemy_greenclab_2 [COORD]x= 184.000000 y= 40.000000 ...
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
704 [BULLET]tlv1 = 2, tlv2 = 0 llv1 = 0
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
705 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
706 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
707 <li>2 つのバージョンのログがフレーム単位で同じ</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
708 <li>Collision Task のデータ同期が有効に働いている</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
709 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
710 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
711
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
712 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
713 <h1>Task への乱数受け渡しの検証</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
714 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
715 <li>多数の隕石オブジェクトが生成されるステージで全ての隕石オブジェクトが
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
716 生成されるのを観察</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
717 <li>隕石オブジェクトの初期配置は乱数によるランダム配置</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
718 <li>隕石オブジェクト生成後の座標と速度を出力</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
719 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
720 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
721
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
722 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
723 <h1>隕石オブジェクトの実装</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
724 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
725 int sf;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
726
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
727 sf = random() % 4;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
728 if((sf == 0) || (sf == 1))
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
729 {
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
730 p->x = -35;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
731 p->y = random() % (120 - 35);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
732 p->vx = (random() % 4 + 1);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
733 p->vy = random() % 3 + 1;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
734 p->state = chara_state23;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
735 }
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
736 if((sf == 2))
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
737 {
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
738 p->x = random() % 290;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
739 p->y = -30;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
740 p->vx = random() % 3 - 1;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
741 p->vy = (random() % 4 + 1);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
742 p->state = chara_state23;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
743 }
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
744 if(sf == 3)
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
745 {
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
746 .....
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
747 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
748 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
749
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
750 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
751 <h1>Task Dandy 側の実装</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
752 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
753 int rand1 = (int)smanager->get_param(0);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
754 int rand2 = (int)smanager->get_param(1);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
755 int rand3 = (int)smanager->get_param(2);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
756 int rand4 = (int)smanager->get_param(3);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
757
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
758 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
759
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
760 int sf = rand1 % 4;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
761 if((sf == 0) || (sf == 1))
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
762 {
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
763 p->x = -35;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
764 p->y = rand2 % (120 - 35);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
765 p->vx = (rand3 % 4 + 1);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
766 p->vy = rand4 % 3 + 1;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
767 }
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
768 if((sf == 2))
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
769 {
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
770 p->x = rand2 % 290;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
771 p->y = -30;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
772 p->vx = rand3 % 3 - 1;
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
773 p->vy = (rand4 % 4 + 1);
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
774 .....
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
775 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
776 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
777
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
778 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
779 <h1>実行結果</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
780 <font size="4"><pre>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
781 demolog >>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
782 [COORD]x= 320.000000 y= 66.000000 vx= -2.000000 vy= 0.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
783 [COORD]x= -35.000000 y= 20.000000 vx= 3.000000 vy= 1.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
784 [COORD]x= -35.000000 y= 36.000000 vx= 3.000000 vy= 2.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
785 [COORD]x= 89.000000 y= -30.000000 vx= 1.000000 vy= 3.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
786 [COORD]x= -35.000000 y= 81.000000 vx= 1.000000 vy= 2.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
787 [COORD]x= 320.000000 y= 8.000000 vx= -4.000000 vy= -1.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
788 [COORD]x= 220.000000 y= -30.000000 vx= 1.000000 vy= 4.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
789 ....
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
790
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
791 << tdandylog
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
792 [COORD]x= 320.000000 y= 66.000000 vx= -2.000000 vy= 0.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
793 [COORD]x= -35.000000 y= 20.000000 vx= 3.000000 vy= 1.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
794 [COORD]x= -35.000000 y= 36.000000 vx= 3.000000 vy= 2.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
795 [COORD]x= 89.000000 y= -30.000000 vx= 1.000000 vy= 3.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
796 [COORD]x= -35.000000 y= 81.000000 vx= 1.000000 vy= 2.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
797 [COORD]x= 320.000000 y= 8.000000 vx= -4.000000 vy= -1.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
798 [COORD]x= 220.000000 y= -30.000000 vx= 1.000000 vy= 4.000000
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
799 ....
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
800
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
801 % diff demolog tdandylog
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
802 %
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
803 </pre></font>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
804 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
805
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
806 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
807 <h1>乱数受け渡しによる実行結果の検証</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
808 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
809 <li>生成された隕石オブジェクトのパラメータが両バージョンで一致している</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
810 <li>Task への乱数受け渡しによるバグの再現性の低下防止は有効である</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
811 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
812 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
813
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
814 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
815 <h1>ビデオモードによる実行時間の比較</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
816 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
817 <li>実行時間の計測には unix の time コマンドを使用</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
818 <li>3 バージョンの描画無しモードを使用(OpenGL は 1x1)</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
819 <li>描画ありバージョンは 1200x800 で統一して計測</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
820 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
821 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
822
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
823 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
824 <h1>実行結果</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
825 <table border="1" cellspacing="0">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
826 <tr><td></td><th>OpenGL(w=1,h=1)</th><th>Cerium(no video)</th><th>Task(no video)</th><th>OpenGL</th><th>Cerium</th><th>Task</th></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
827 <tr><th>実行時間</th><td>335.06 sec</td><td>334.21 sec</td><td>385.17 sec</td><td>336.09 sec</td><td>5066.11 sec</td><td>6643.16 sec</td></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
828 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
829 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
830 <li>OpenGL バージョンと Cerium バージョンではほとんど差がない</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
831 <li>描画処理を除けば 2 つのバージョンには殆ど差がない為と考えられる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
832 <li>TaskDandy では Cerium における Task の処理が発生したため、実行時間が大きく増加したと考えられる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
833 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
834 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
835
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
836 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
837 <h1>実行結果</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
838 <table border="1" cellspacing="0">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
839 <tr><td></td><th>OpenGL(w=1,h=1)</th><th>Cerium(no video)</th><th>Task(no video)</th><th>OpenGL</th><th>Cerium</th><th>Task</th></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
840 <tr><th>実行時間</th><td>335.06 sec</td><td>334.21 sec</td><td>385.17 sec</td><td>336.09 sec</td><td>5066.11 sec</td><td>6643.16 sec</td></tr>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
841 </table>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
842 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
843 <li>OpenGL では描画無しバージョンとの差がほとんど無い</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
844 <li>Cerium バージョンや Task バージョンは劇的に処理時間が増加</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
845 <li>描画処理の Task の処理時間が非常に大きいと考えられる</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
846 <li>描画処理の Task に比べればゲームの Task は処理が小さい</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
847 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
848 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
849
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
850 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
851 <h1>結論</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
852 <h2>本研究では並列環境におけるゲームプログラムのテスト手法を提案した</h2>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
853 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
854 <li>衝突判定時のテストログ出力によるデバッグは OpenGL バージョンと Task
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
855 Dandy の実行結果が同じであることから、効果的であった</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
856 <li>Task への乱数受け渡しによるバグの再現性は 同様にして有効であることが
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
857 わかった</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
858 <li>描画をしないビデオモードによるテスト時間の高速化は、描画をする場合に
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
859 比べて 非常に効果があった</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
860 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
861 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
862
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
863 <div class="slide">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
864 <h1>今後の課題</h1>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
865 <ul class="simple">
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
866 <li>描画処理におけるバグの修正</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
867 <li>Cerium におけるメモリアロケータの実装</li>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
868 </ul>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
869 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
870
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
871 </div>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
872 </body>
d39c452010ea add poster base.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
873 </html>