# HG changeset patch # User koba # Date 1297975177 -32400 # Node ID c20d7b72cd4a55b33c0ff9a08b6679f2bca32a7a # Parent a5fb2dea1c60621ea7fc6dd931c96ff30a7f7d93 finish? diff -r a5fb2dea1c60 -r c20d7b72cd4a poster/master-lt.html --- a/poster/master-lt.html Thu Feb 17 14:49:08 2011 +0900 +++ b/poster/master-lt.html Fri Feb 18 05:39:37 2011 +0900 @@ -60,29 +60,24 @@
  • 本研究では Task に分割されたゲームプログラムがシーケンシャルなバージョン と同じ動作である事を確認できるテスト環境の構築を目的とする。
  • -
    - -
    -

    ゲームプログラムの特徴

    - -
    - -
    -

    Capture モードと Trace モード

    - +

    並列処理をすることによって発生するバグ

    + + + + + +
      +
    • Task の実行順序の違いによりバグが発生
    • +
    • Task 間のデータの同期による衝突判定のバグ
    • +
    • Task の実装の違い
    • +
    • オブジェクトの生成時、衝突時にゲームの状態が遷移する
    • +
    • オブジェクトの生成時、衝突時のログを見ることでバグを発見する
    • +
    + +
    @@ -90,76 +85,26 @@ - -
      -
    • あらかじめ PPE 内で乱数列を生成しておく
    • -
    • inData として Task に渡す
    • -
    • Move Task や Collision Task の生成タイミングは Super Dandy の - Move や Collision のタイミングと同じ
    • -
    • Super Dandy と同じ乱数が使用できる
    • +
    • シーケンシャルプログラムでは 1 つの乱数列から順番に乱数を取得
    • +
    • Cell における並列プログラムでは各 SPE 内で 独自の乱数列を生成
    • +
    • シーケンシャルと並列で異なる結果が出る
    • +
    • PPE 内で乱数を生成し、Task に渡して計算させる
    • +
    • シーケンシャルと同じ乱数が使用できる
    - -
    -
    - -
    -

    本研究のテスト環境における描画処理

    - - - -
      -
    • プレイヤーの入力の自動化により、プログラムを実行するだけでテストが可能
    • -
    • 描画処理が不要となる
    • -
    • 描画用 Task の生成を行わない事により、テストの高速化ができる
    • -
    • また、画面バッファの確保も不要
    • -
    - +
    -

    シューティングゲーム SuperDandy

    - - - - - -
      -
    • 我々が PlayStation 上でのゲーム開発を行っていた 1998 年に開発
    • -
    • タイトルからゲーム本編中の敵機の登場、ステージクリア、エンディングと - ゲーム的な要素が多い
    • -
    • PlayStation, PlayStation2 Linux, OpenGL と伝統的に移植されてきた
    • -
    - -
    -
    - -
    -

    Task への乱数受け渡しと検証結果

    +

    Capture モードと Trace モード

    -
    - -
    -

    実行結果

    - - - -
    OpenGLTask(no video)Task
    実行時間336.09 sec385.17 sec6643.16 sec
    -
    @@ -167,12 +112,12 @@

    結論

    本研究では並列環境におけるゲームプログラムのテスト手法を提案した

    diff -r a5fb2dea1c60 -r c20d7b72cd4a poster/master-poster.pdf Binary file poster/master-poster.pdf has changed diff -r a5fb2dea1c60 -r c20d7b72cd4a presen/master-presen.html --- a/presen/master-presen.html Thu Feb 17 14:49:08 2011 +0900 +++ b/presen/master-presen.html Fri Feb 18 05:39:37 2011 +0900 @@ -29,7 +29,7 @@
    @@ -548,7 +548,7 @@ @@ -584,13 +584,13 @@ > 0.000000 FPS > game end -
    @@ -779,27 +779,19 @@

    実行結果

     demolog >>
    -[COORD]x= 320.000000  y= 66.000000  vx= -2.000000  vy= 0.000000
    -[COORD]x= -35.000000  y= 20.000000  vx= 3.000000  vy= 1.000000
    -[COORD]x= -35.000000  y= 36.000000  vx= 3.000000  vy= 2.000000
    -[COORD]x= 89.000000  y= -30.000000  vx= 1.000000  vy= 3.000000
    -[COORD]x= -35.000000  y= 81.000000  vx= 1.000000  vy= 2.000000
    -[COORD]x= 320.000000  y= 8.000000  vx= -4.000000  vy= -1.000000
    -[COORD]x= 220.000000  y= -30.000000  vx= 1.000000  vy= 4.000000
    -....
    +[ID]0  [COORD]x= 320.000000  y= 66.000000  vx= -2.000000  vy= 0.000000
    +[ID]1  [COORD]x= -35.000000  y= 20.000000  vx= 3.000000  vy= 1.000000
    +...
    +[ID]6  [COORD]x= 220.000000  y= -30.000000  vx= 1.000000  vy= 4.000000
    +...
    +[ID]11  [COORD]x= -35.000000  y= 57.000000  vx= 3.000000  vy= 3.000000
    +...
     
     << tdandylog
    -[COORD]x= 320.000000  y= 66.000000  vx= -2.000000  vy= 0.000000
    -[COORD]x= -35.000000  y= 20.000000  vx= 3.000000  vy= 1.000000
    -[COORD]x= -35.000000  y= 36.000000  vx= 3.000000  vy= 2.000000
    -[COORD]x= 89.000000  y= -30.000000  vx= 1.000000  vy= 3.000000
    -[COORD]x= -35.000000  y= 81.000000  vx= 1.000000  vy= 2.000000
    -[COORD]x= 320.000000  y= 8.000000  vx= -4.000000  vy= -1.000000
    -[COORD]x= 220.000000  y= -30.000000  vx= 1.000000  vy= 4.000000
    -....
    -
    -% diff demolog tdandylog
    -%
    +[ID]6  [COORD]x= 220.000000  y= -30.000000  vx= 1.000000  vy= 4.000000
    +[ID]11  [COORD]x= -35.000000  y= 57.000000  vx= 3.000000  vy= 3.000000
    +[ID]1  [COORD]x= -35.000000  y= 20.000000  vx= 3.000000  vy= 1.000000
    +...
     
    @@ -823,7 +815,7 @@

    実行結果

    - +
    OpenGL(w=1,h=1)Cerium(no video)Task(no video)OpenGLCeriumTask
    OpenGL
    (w=1,h=1)
    Cerium(no video)Task(no video)OpenGLCeriumTask
    実行時間335.06 sec334.21 sec385.17 sec336.09 sec5066.11 sec6643.16 sec