Mercurial > hg > Papers > 2011 > koba-master
view poster/master-lt.html @ 19:c20d7b72cd4a default tip
finish?
author | koba <koba@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Feb 2011 05:39:37 +0900 |
parents | a5fb2dea1c60 |
children |
line wrap: on
line source
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>master_lightning talk</title> <!-- metadata --> <meta name="generator" content="S5" /> <meta name="version" content="S5 1.1" /> <meta name="presdate" content="20050728" /> <meta name="author" content="Eric A. Meyer" /> <meta name="company" content="Complex Spiral Consulting" /> <!-- configuration parameters --> <meta name="defaultView" content="slideshow" /> <meta name="controlVis" content="hidden" /> <!-- style sheet links --> <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" /> <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" /> <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" /> <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" /> <!-- S5 JS --> <script src="ui/default/slides.js" type="text/javascript"></script> </head> <body> <div class="layout"> <div id="controls"><!-- DO NOT EDIT --></div> <div id="currentSlide"><!-- DO NOT EDIT --></div> <div id="header"></div> <div id="footer"> <h1>[date:11/02/18]</h1> <h2>Game Framework Cerium を用いたゲームプログラミングにおけるテスト手法の提案</h2> </div> </div> <div class="presentation"> <div class="slide"> <h1>Game Framework Cerium を用いた<br> ゲームプログラミングにおける<br> テスト手法の提案</h1> <h3>発表者:小林 佑亮</h3> <h4>所属:琉球大学 理工学研究科 情報工学専攻 並列信頼研究室</h4> <h4>指導教員:河野 真治</h4> </div> <div class="slide"> <h1>研究背景・目的</h1> <font size="3"><ul> <li>シーケンシャルなプログラムを Task に分割して並列実行させても、 逐次実行させた時と同じ動作をするとは限らない。</li> <li>オブジェクト同士のデータの同期や、処理の実行順序など、シーケンシャルな プログラムに比べて、バグを発生させる要因は多い。</li> <li>また、ゲームプログラムの特徴はプレイヤーの入力やプログラム内にある乱数 などの非決定的な要素が多いことが挙げられる。</li> <br> <li>本研究では Task に分割されたゲームプログラムがシーケンシャルなバージョン と同じ動作である事を確認できるテスト環境の構築を目的とする。</li> </ul></font> </div> <div class="slide"> <h1>並列処理をすることによって発生するバグ</h1> <table> <tr> <td><ul> <li>Task の実行順序の違いによりバグが発生</li> <li>Task 間のデータの同期による衝突判定のバグ</li> <li>Task の実装の違い</li> <li>オブジェクトの生成時、衝突時にゲームの状態が遷移する</li> <li>オブジェクトの生成時、衝突時のログを見ることでバグを発見する</li> </ul></td> <td> <img src="images/test_log.png" width=350 height=300/> </td> </tr> </table> </div> <div class="slide"> <h1>SPE 内での予測可能な乱数の使用</h1> <table> <tr> <td><ul class="simple"> <li>シーケンシャルプログラムでは 1 つの乱数列から順番に乱数を取得</li> <li>Cell における並列プログラムでは各 SPE 内で 独自の乱数列を生成</li> <li>シーケンシャルと並列で異なる結果が出る</li> <li>PPE 内で乱数を生成し、Task に渡して計算させる</li> <li>シーケンシャルと同じ乱数が使用できる</li> </ul></td> <td> <img src="images/cell.png" width=300 height=200/> </td> </tr> </table> </div> <div class="slide"> <h1>Capture モードと Trace モード</h1> <ul class="simple"> <li>プレイヤーからの入力を 1 フレーム毎に記録する</li> <li>記録したファイルを読み込むことで過去のプレイヤー入力を再現できる</li> <li>旧バージョンの入力を記録し、新バージョンで読み出すことができる</li> <li>非決定的なプレイヤー入力を固定することができる</li> </ul> </div> <div class="slide"> <h1>結論</h1> <h2>本研究では並列環境におけるゲームプログラムのテスト手法を提案した</h2> <ul class="simple"> <li>衝突判定時のテストログ出力によるデバッグは OpenGL と Task Dandy の 実行結果が同じであることから、効果的であった</li> <li>Task への乱数受け渡しによって逐次実行、並列実行で使用する乱数を 同じものにした</li> <li>入力の自動化により、描画を行わずにテストを行ったところ、 テスト時間を短縮することが出来た</li> </ul> </div> </div> </body> </html>