0
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
|
4 <html xmlns="http://www.w3.org/1999/xhtml">
|
|
5
|
|
6 <head>
|
|
7 <title>ゼミ資料 10/10/26</title>
|
|
8 <!-- metadata -->
|
|
9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
10 <meta name="generator" content="S5" />
|
|
11 <meta name="version" content="S5 1.1" />
|
|
12 <meta name="presdate" content="20050728" />
|
|
13 <meta name="author" content="Eric A. Meyer" />
|
|
14 <meta name="company" content="Complex Spiral Consulting" />
|
|
15 <!-- configuration parameters -->
|
|
16 <meta name="defaultView" content="slideshow" />
|
|
17 <meta name="controlVis" content="hidden" />
|
|
18 <!-- style sheet links -->
|
|
19 <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
|
|
20 <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
|
|
21 <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
|
|
22 <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
|
|
23 <!-- S5 JS -->
|
|
24 <script src="ui/default/slides.js" type="text/javascript"></script>
|
|
25 </head>
|
|
26 <body>
|
|
27
|
|
28 <div class="layout">
|
|
29 <div id="controls"><!-- DO NOT EDIT --></div>
|
|
30 <div id="currentSlide"><!-- DO NOT EDIT --></div>
|
|
31 <div id="header"></div>
|
|
32 <div id="footer">
|
|
33 <h1>[date:10/10/26]</h1>
|
|
34 <h2>発表資料</h2>
|
|
35 </div>
|
|
36
|
|
37 </div>
|
|
38
|
|
39
|
|
40
|
|
41 <div class="presentation">
|
|
42
|
|
43
|
|
44 <div class="slide">
|
|
45 <h1>Cerium を用いた<br>
|
|
46 Game Programming における<br>
|
|
47 テスト手法の提案</h1>
|
|
48 <h3>小林 佑亮</h3>
|
|
49 <h4>琉球大学 理工学研究科 情報工学専攻</h4>
|
|
50 <h4>No.098581D</h4>
|
|
51 </div>
|
|
52
|
|
53 <!--
|
|
54 <div class="slide">
|
|
55 <h1>研究背景・目的</h1>
|
|
56 <font size="5"><ul>
|
|
57 <li>我々は学生実験においてPlayStation3を用いたGameProgramの作成を行っている</li>
|
|
58 <li>PlayStation3上の開発ではCell Architectureを考慮した並列プログラミングが必要である</li>
|
|
59 <li>そこで当研究室ではCerium Game Engineを開発した</li>
|
|
60 <li>CeriumではObjectの描画や動きを全てTaskという単位で管理している</li>
|
|
61 <li>しかしSequentialなProgramに比べて期待した動作を保証する事が難しい</li>
|
|
62 <li>本研究ではCeriumを用いたGameProgramの信頼性を上げることを目的とする</li>
|
|
63 <li>Task単位の単体テスト</li>
|
|
64 <li>Input DataとOutput Dataの比較</li>
|
|
65 <li>Taskの依存関係・実行順序</li>
|
|
66 <li>並列度の低い部分を知らせる</li>
|
|
67 <li>可視化</li>
|
|
68 </ul></font>
|
|
69 </div>
|
|
70 -->
|
|
71
|
|
72 <div class="slide">
|
|
73 <h1>今週の作業内容</h1>
|
|
74 <ul>
|
|
75 <li>Debug</li>
|
|
76 <li>TaskArray への対応</li>
|
|
77 <li>Dandy 移植のアプローチ考察</li>
|
|
78 </ul>
|
|
79 </div>
|
|
80
|
|
81 <div class="slide">
|
|
82 <h1>超弾帝</h1>
|
|
83 <h2>Debug</h2>
|
|
84 <ul>
|
|
85 <li>TaskArray 使用 -> 謎の Bad Access</li>
|
|
86 <li>App->init で TaskArray を生成していた</li>
|
|
87 <li>App->init は一度しか呼ばれない</li>
|
|
88 <li>毎フレーム TaskArray を生成する必要がある</li>
|
|
89 <li>Renderer 側で TaskArray 生成に必要な値(Task_id, Task_num, param, inData_num, outData_num) を保持しないといけない</li>
|
|
90 <li>全部 SceneGraphRoot に持たせるのは嫌なので新しい class にまとめる</li>
|
|
91 </ul>
|
|
92 </div>
|
|
93
|
|
94 <div class="slide">
|
|
95 <h1>超弾帝</h1>
|
|
96 <h2>GTaskArray の作成</h3>
|
|
97 <pre>
|
|
98 <code>
|
|
99 <font size="4">
|
|
100 class GTaskArray {
|
|
101 public:
|
|
102 GTaskArray(void);
|
|
103 ~GTaskArray(void);
|
|
104
|
|
105 HTaskPtr game_task_array;
|
|
106 TaskPtr game_task;
|
|
107
|
|
108 int task_id;
|
|
109 int task_num;
|
|
110 int param_num;
|
|
111 int inData_num;
|
|
112 int outData_num;
|
|
113
|
|
114 void init(int id, int task, int param, int inData, int outData);
|
|
115 void create_task_array(TaskManager *manager);
|
|
116 void next_task_array(int id);
|
|
117 void finish();
|
|
118 HTaskPtr get_task_array(){return game_task_array;}
|
|
119 };
|
|
120 </font>
|
|
121 </code>
|
|
122 </pre>
|
|
123 </div>
|
|
124
|
|
125 <div class="slide">
|
|
126 <h1>超弾帝</h1>
|
|
127 <h2>TaskArray への対応</h2>
|
|
128 <ul>
|
|
129 <li>SceneGraphRoot が GTaskArray をもつ</li>
|
|
130 <li>GTaskArray の init の有無によって TaskArray を使用するか判断</li>
|
|
131 <li>Application 側では最初の init と task の設定だけでおk</li>
|
|
132 <li>TaskArray を用いずに SimpleTask を使える API も作る?</li>
|
|
133 </ul>
|
|
134 </div>
|
|
135
|
|
136 <div class="slide">
|
|
137 <h1>超弾帝</h1>
|
|
138 <h2>SceneGraph の値の更新について</h2>
|
|
139 <ul>
|
|
140 <li>各 Task の post_func で更新</li>
|
|
141 <li>SPE に SceneGraph そのものを送る -> パラメータが汎用的でない</li>
|
|
142 <li>TaskArray の post_func で更新</li>
|
|
143 </ul>
|
|
144 </div>
|
|
145
|
|
146 <div class="slide">
|
|
147 <h1>超弾帝</h1>
|
|
148 <li>移植のアプローチ</li>
|
|
149 <ul>
|
|
150 <li>allExecute なので schedule, collision によって SceneGraph木 を書き換えていく</li>
|
|
151 <li>同期をどうするか</li>
|
|
152 <li>Move->Collision->Rendering が望ましいが並列的でない</li>
|
|
153 <li>過去書いたソース(PutEnemy, Move関数)は再利用できる、と信じている</li>
|
|
154 <li>特に直書きパラメータは利用したい</li>
|
|
155 </ul>
|
|
156 </div>
|
|
157
|
|
158 <div class="slide">
|
|
159 <h1>研究内容</h1>
|
|
160 <h2>どんな研究に落とし込む?</h2>
|
|
161 <ul>
|
|
162 <li>可視化</li>
|
|
163 <li>並列度, Dependency, SPE のLS</li>
|
|
164 <li></li>
|
|
165 </ul>
|
|
166 </div>
|
|
167
|
|
168 </div>
|
|
169 </body>
|
|
170 </html>
|