atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
Akasin_Room
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Akasin_Room
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Akasin_Room
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • Akasin_Room
  • Diary
  • 2006年05月04日
  • 「ミスティックロンド」ver0.26、動作速度劇的改善

Akasin_Room

「ミスティックロンド」ver0.26、動作速度劇的改善

最終更新:2006年05月04日 09:24

匿名ユーザー

- view
メンバー限定 登録/ログイン
#blognavi
「ミスティックロンド」ver0.26をリリース。
動作速度の劇的な改善に成功いたしました。
実行時の負荷は実に7割減!(当社比)
これで貴方も処理落ちによる不快な思いからはオサラバ!

download

[更新内容]
ver0.25->0.26
  • 動作速度の劇的改善。

 - - - -
[改善内容の解説]
ここで少し、動作速度の改善に用いた方法とその解説をさせて頂く。

 - -
問題点について
動作速度について問題となっていた処理は、コインオブジェクト(O_Coin)の処理である。
このオブジェクトは、敵を倒すと大量に発生し、多いときには同時に50個以上発生する。
また、ここで行われている処理も重い。
周囲8方向に壁が無いか調べ、その影響を計算するという処理を毎フレーム行っている。
この処理の軽量化をすることで、動作速度は大きく改善する。

 - -
改善方法について
改善に用いた方法は2つ。
 -
先ず、毎フレーム周囲を調べる処理について。
周囲に壁があるか調べるというのは、人ならパッと見で分かるが、
計算機が行うのは、思いのほか処理が重い。
明らかに壁から遠いにも拘らず、毎フレーム周囲を調べるという”無駄な”計算を強いられる。
壁に近いか否かだけでも簡単に分かれば、壁に近い場合にのみ周囲を調べればよくなり、負荷は軽減される。
それを実現する方法には、あらかじめその地点(座標)が壁から近いか否かを調べておく方法をとった。
あらかじめ各地点が壁から近いか否か(最も近い壁からの距離)を調べその情報を配列に格納しておく。
コインオブジェクトは、まずその配列にアクセスし、壁から近い場合にのみ実際に調査・計算を行えばいい。
これにより、毎フレーム周囲を調べていたのが、必要なときにのみ周囲を調べ、
通常は配列の1要素にアクセスするという簡単な処理のみで済むようになった。
なお、地点の刻み幅は8ドットとした。
理想を言えば、1ドット刻み、つまり全ドットに対して調べたほうがいいのだが、それを行うには膨大な手間が掛かり、
またそこまでやる意味もない。(画面サイズ400×300の場合、データ数は12万に上り、調査に要する時間も膨大)
壁にある程度近いか否かの判別に使うだけなので、さほど正確な情報は必要ない。
コインのサイズや刻み幅の大きさによるコストなどから、8ドット刻みとした。
あからじめ各地点の情報を調べるのに多少時間は掛かるが、さほど問題ではない(1秒程度)。
 -
もう1つ、処理の停止について。
コインの動きを見てもらえば分かるが、一度停止したコインはもう動作しない。
動作する必要が無い。つまり、動作に必要な(重い)処理、周囲を調べ壁の影響を計算、重力の影響を計算、
等をする必要が無い。
そこで、動作しているか(!=速度0)を先ず判定し、動作している場合にのみ処理を行うようにした。
これにより、長い時には出現から300フレーム目に自動消滅するまで、上記の処理を行っていたのが、
生成から停止するまでの約100フレーム程度の時間で処理を停止させることが出来る。

 - -
ここまで上手く出来るとは思っても見なかった。
久々にプログラムやってて感動した。



カテゴリ: [ゲーム制作] - &trackback() - 2006年05月04日 03:28:28

#blognavi
「「ミスティックロンド」ver0.26、動作速度劇的改善」をウィキ内検索
LINE
シェア
Tweet
Akasin_Room
記事メニュー

MENU

  • TopPage.
  • Product(別館)
    • TRogue
    • その他
  • Weblog
  • BBS
  • Links





■


更新履歴

取得中です。

[ more old ]


Total: - /today: -



記事メニュー2

人気記事ランキング
  1. Diary/2009年01月23日/阻止
  2. Diary/2006年11月06日/さめがめ
もっと見る
最近更新されたページ
  • 5241日前

    Diary/2010年08月10日/昔の"記憶"
  • 5261日前

    Diary/2011年03月15日/◆地震に役立つ情報
  • 5261日前

    Diary/2011年03月15日/情報を(必要以上に)取り入れないという選択
  • 5261日前

    Diary/2011年03月15日
  • 5261日前

    Links
  • 5263日前

    Diary/2011年03月13日/生存報告
  • 5263日前

    Diary/2011年03月13日
  • 5472日前

    Diary/2010年08月17日/PC購入
  • 5472日前

    Diary/2010年08月17日
  • 5479日前

    Diary/2010年08月10日
もっと見る
人気記事ランキング
  1. Diary/2009年01月23日/阻止
  2. Diary/2006年11月06日/さめがめ
もっと見る
最近更新されたページ
  • 5241日前

    Diary/2010年08月10日/昔の"記憶"
  • 5261日前

    Diary/2011年03月15日/◆地震に役立つ情報
  • 5261日前

    Diary/2011年03月15日/情報を(必要以上に)取り入れないという選択
  • 5261日前

    Diary/2011年03月15日
  • 5261日前

    Links
  • 5263日前

    Diary/2011年03月13日/生存報告
  • 5263日前

    Diary/2011年03月13日
  • 5472日前

    Diary/2010年08月17日/PC購入
  • 5472日前

    Diary/2010年08月17日
  • 5479日前

    Diary/2010年08月10日
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. まどドラ攻略wiki
  3. MadTown GTA (Beta) まとめウィキ
  4. R.E.P.O. 日本語解説Wiki
  5. シュガードール情報まとめウィキ
  6. ソードランページ @ 非公式wiki
  7. ヒカマーWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. AviUtl2のWiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  5. 初音ミク Wiki
  6. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 検索してはいけない言葉 @ ウィキ
  8. 発車メロディーwiki
  9. Abiotic Factor 日本語攻略Wiki
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  3. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  4. 無幻銃士ダルタン - モンスター烈伝オレカバトル2@wiki
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 邪神アラキシュ - モンスター烈伝オレカバトル2@wiki
  8. 女神アルテミス - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  9. オオヘビヌシノミコト - アニヲタWiki(仮)
  10. 機将アクセラ - モンスター烈伝オレカバトル2@wiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.