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

FPSを作ってみる@wiki

02)

最終更新:2009年02月27日 15:32

slice

- view
管理者のみ編集可

(2009/02/02)

今日はなんだか全然眠れないので、布団でゴロゴロしてるよりは進捗状況を書いておこうかと。
なんだかんだやってるうちに2月になってしまいました
今月の目標は何と言っても動画アップでしょうね。
どっちの動画かって言うと、どっちもです。頑張ります。

ちょっと前に書いた記事と重複する部分がありますがこれからやる事整理の為。
リソースをブロック単位で読み込むルーチンを実装し終わったのでこれからテストします
問題なく動くようなら次はゲームの本スレッドとは別のスレッドで読み込み処理を行うようにして
非同期ローディングを実装。
それが終わったらogg vorbis形式の音楽をストリーミング再生するクラスを作る。
(そう、現状ではwav形式でしかも一括読み込みしか対応してないので実質的に音楽鳴らせません)
上記のプログラミングと併行してモデリングもしようかと思っております。

ここから少し無駄話なんですが、併行という言葉が出てきたのでトリビアを書きます。
「へいこう」には「並行」と「併行」という漢字表記が存在しますが
「並行」は複数の動作を同時に実行することを意味します。複数CPUによる並列演算とか。
対して「併行」はある時間を見ると一つの事しかやっていないけど一定の時間で区切って
複数の動作をする意味。
OSで1つのCPUが複数のスレッドを極短いタイムスライスでちょっとずつ処理する感じです。
自分が論文書くときに注意されました。

(2009/02/03)

ファイルの非同期ローディング完了。
プリエンプティブなスレッド使ったので(今は複雑な事してないから大丈夫そうだが)
将来的にはデッドロックが心配。一応ならないようには組んだつもり。まあいいか。
簡易的なロードの進行状況も取得できるようにした。
(読み込み済みファイル数 / 読み込むファイル数)という形式で、ファイル単位だが。

(2009/02/04)

音楽のストリーミング再生のベタ実装と確認終了。
バッファの書き換えを毎フレーム更新チェックするポーリング方式にするか
DirectSoundにイベント設定して必要なときだけ呼んでもらうコールバック方式か微妙に迷った。
ポーリングやってみたけど今時のCPU負荷的には全く問題なし。自分の環境で1%行くかいかないかって所。
(というかPentiumIII以上だったら余裕そうだが)
でもやっぱなるべく無駄な処理は抑えたいからコールバック方式だよなと思ってそっちにした。
これからクラス化・・・っていうのかわからんけど
ファイル名指定したら再生準備してくれて後は関数一個呼んで再生するだけ~みたいな状態にする。
ついでにクロスフェードとか付けてみようか。

ふと思ったが、音楽って1つのファイルを複数再生するんだろうか?
効果音だと1つのサウンドデータを複数で使いまわすなんてしょっちゅうだけど。
。。いらんよな今の所。違う音楽を再生ならクロスフェードする時にするけど。

DirectSoundのストリーミングバッファで再生ポインタイベント通知の方法について
ざっとネットで調べてたら皆さんスレッド作成に_beginthread()って関数使ってるんですね。
_beginthread()は標準ライブラリ的でCreateThread()はWin32API的なのかな?
自分はCreateThread()しか使ったこと無かったから知らなかった・・
まあ他機種への移植性を考えたら前者だろうな。でも今回はWindowsオンリーなんでどっちでもいいと。

(2009/02/05)

音楽のクラス化完了。ボリュームとパン機能を付けた。フェードはそのうちってことで。
次は何だ?モデル作成を今月に入ってから全然やってなかったから続き作るか。
あと、このwiki作ってから一度もバックアップ取ってなかったから取っておいた。
簡単操作でできましたとさ。

そういえば計算したライトマップの保存と読み込みを実装するべきだな。
ゲームの途中セーブ&ロードに必須。
クイックセーブにするかチェックポイント制みたいにするかは未定。
何回でもセーブ出来るとゲームの仕様上、緊張感(面白さ)が半減しそうなので
一回のプレイで30分~1時間程度を目安に考えてるけど。
ノーマルモードでは数回だけセーブでハードモードだと出来ないようにするかな。
フリーズバグが発生したら軽く死ねるけど・。
いやまてよ、セーブ自体は何回でもできるけどロードが3回までとかどうだろうか。
セーブを戦略的にしておき、いざとなったら計画的にロード。
ロードすると持ち物やステータスはセーブした時点に戻ってしまうがこれからどんなイベントが起きるか、
先がどんなマップになってるかは変わらないので状況次第では事を有利に運べるとか。
不意の事故で死んでしまったときにもロードが出来るが、自発的にロードするのと違い何かペナルティが加わる等。
ランダムマップ故のシステムだと思ったが、どうか。
欠点は暫くセーブを忘れていた時に死んだらやる気なくなる事。
これについてはエリアを移動した時に自動でセーブされるとかで対処かな?

(2009/02/07)

BSPツリーをファイル出力するルーチンを書いているときにふと思った。
今の実装だとツリー構造は2分木だ。
しかもノード増やすたびにメモリ確保してるから、メモリの断片化が激しいだろうな。
断片化に関しては一旦要素を全部退避して改めてデカいメモリ領域を確保しなおせばいいだろう(言うのは簡単です)
それ以外に気になることがあってそれはツリーバランス。
ある要素にたどり着くまでの根っこからの長いのと短いののバランス。言うまでも無く短い方がアクセスが速い。
アクセス速度がばらついてるって事は=ノード検索処理の負荷が予測しづらい。
ゲームではFPS(Frame per secondの方)が頻繁に上下するより多少処理落ちしててもなるべく安定していた方が良いだろうと。

そんなわけで、BSP木をなんとかバランス良く出来ないかいろいろ調べもの。

(2009/02/09)

前回、B木がどうとか全っ然関係ない事書いたけどそれは気にしない方向で。
な~んて自分の性質上なるはずもなく「いつか役に立つだろう」と考え
一度乗りかかった船はなんとやらでB木を実装してたりするんですけどね。
データベースにしか使わないんじゃなかろうか><
というかB木の2分木バージョンであるAVL木の方が使えそうだなBSP的には。
絶対そのままじゃ使えないけど。まあいいか。

今日明日はマップのエクスポート&インポートを頑張る方向で。
モデラからのじゃなくて自作ゲームエンジン側で生成したBSPやPVSやライトマップを
一つのファイルに保存してゲームの途中セーブなんかに役立てようってやつ。

(2009/02/10)

とりあえず、マップをファイルに出力するのは完了。次は読み込み。
これでテスト実行の度にライトマップ計算で待たされなくて済む予定。

(2009/02/12)

マップのインポートが難航中
そもそもクラスの設計がファイルから読み込むようになってない事に気づいた。
インポートするのに回りくどい処理してる。
だが一旦途中まで実装してしまったので効率が悪くとも最後までやってしまおうと思う。
マップに配置したイベントを出力するの忘れてたし。どうやって出力するかな・・
イベント入出力は3ds maxのエクスポータと処理が大部分被る。すなわち無駄があるので気に食わん。

ちょっとだけモデル作り進めたので画像アップしてみた。
基本的にプログラムの合間に気が向いたときしかやってないんで遅い遅い。

#追記
マップ情報を全部入出力するのはクラス設計のままやるのは無駄(どうせ次で書き直すので)だと判断
そこで時間のかかるライトマップとポリゴン分割結果だけをセーブして次回
元マップファイルと一緒に読み込むようにする予定。

(2009/02/13)

ライトマップの読み込み完了。
ソースがガタガタだ。どうしよう
機能追加は一旦休止してそろそろ次の動画に取り掛かるか・・

(2009/02/15)

射撃場マップでも作ってみるかね
で、自動ドアイベントとランダム的出現イベントの確認
次はだいぶ前に作った得点計算の確認
あの後色々ソースいじってるからそのままだと動かないかもしれないなあ

(2009/02/17)

これは・・・やばいぞ限界だ。ソースが。
さっさと動画に作ってエンジン書き換えないと。
はやいとこVisualStudio2008にしたいな。あと一ヶ月以内に乗り換えないと買っといて放置で一年になってしまう。
動画にしたいが見えない部分ばっかり作ってるから全然ネタがないぞ。
まぁそれはいいとして。

1フレームモデルの描画回数が30回以上に増えるとフレームレートが極端に落ちるのだが、原因はなんだろう。
ちょっと試して見た結果、ポリゴン数はあんまり関係ないようだが・・?
デバッグビルドだからなのかね。
だけど現状、中途半端にマクロ切り替えやってるおかげでリリースビルドできません。合掌。

(2009/02/18)

今日は、あんまり頑張って作業してません
敵の向きと移動をスクリプトから制御する部分の細かい修正と
銃のモデリングの続きを少しだけ。
銃の本体は出来たが、マガジンをまだ作っていない事に気づいた。

(2009/02/23)

えっと、プログラミングをサボってここ4日くらいある物のモデリングと
テクスチャの作成とそのUV座標合わせ(初体験)をやってたら
なんかプログラミングの腕が鈍りました。その程度でなんだって感じもしなくもないが。
タイプミスが多いの(まあいつも多い方だけど)。
困ったのが一週間前に組んだはずの関数の内部構造ド忘れ。
自分が作ったソースを一ヶ月も触らないと速攻で他人のソースコードの一丁上がりでございますよ。

で何でモデリング練習してたか。
いくら絵が描けない自分でも小物くらいは作れないとなっていう気持ちからですね。
プログラム以外何も出来ませんてのもアレじゃないですか。

(2009/02/26)

テクスチャを頑張ってみた。結果は別ページにて。
UV展開が素人だな。所々テクスチャが歪んじゃってる。
何のモデルのテクスチャかは次の動画に出てくると思うので、そういうことで。

プログラムのほうはリソースマネージャをマルチスレッドに対応させてるところ。
今まで1つのスレッドで動作させるようにしか設計してなかったから、
というかゲームを動作させながらバックグラウンドでデータを読み込むとかそのレベルまでいってなかったのだ。
現段階ではゲーム動かしてそのまま裏でファイル読み込もうとすると割と高い確率でクラッシュしてしまう。
今は限定的に対応させて次のソース書き直しの時に本格的に対応させるつもり。

(2009/02/27)

引き続き、エンジン本体をマルチスレッドに対応させてる途中。
DirectXドライバ生成時にマルチスレッド対応フラグを忘れてクラッシュ。
自作プロファイラ(といってもGameProgrammingGems1のを自分なりに変更しただけ)がマルチスレッド対応してなかったので修正するつもり。
「02)」をウィキ内検索
LINE
シェア
Tweet
FPSを作ってみる@wiki
記事メニュー
  • トップページ
  • 参考資料ブックマーク等
  • Tips

Media

  • 頂き物
Screen shot
  • FPS_page1
  • FPS_page2
  • FPS_page3
  • Other_page1
Drawing
  • Drawing(analog)
  • Drawing(digital)
  • Drawing(digital) 2
  • Drawing(digital) 3
  • Drawing(digital) 4
  • Drawing(digital) 5
  • Drawing(digital) 6
  • Drawing(digital) 7
  • Drawing(digital) 8
  • Drawing(digital) 9
  • Drawing(digital) 10
  • Drawing(digital) 11
  • Drawing(digital) 12
  • Drawing(digital) 13
Movie
  • movies-list

Old Contents

  • トップページ(old)
  • メモ書き
  • 力仕事UP場
  • ゲームシステムとか
  • バグ・動作報告
  • program(twilve)

Progress log

  • (2018/03)
  • (2017/04)
  • (2017/03)
  • (2016/10)
  • (2016/09)
  • (2016/08)
  • (2016/07)
  • (2016/06)
  • (2016/05)
  • (2016/04)
  • (2016/03)
  • (2016/02)
  • (2016/01)
  • (2015/12)
  • (2015/11)
  • (2015/10)
  • (2015/09)
  • (2015/08)
  • (2015/07)
  • (2015/06)
  • (2015/05)
  • (2015/04)
  • (2015/03)
  • (2015/02)
  • (2015/01)
  • (2014/12)
  • (2014/11)
  • (2014/10)
  • (2014/09)
  • (2014/08)
  • (2014/07)
  • (2014/06)
  • (2014/05)
  • (2014/04)
  • (2014/03)
  • (2014/02)
  • (2014/01)
  • (2013/12)
  • (2013/11)
  • (2013/10)
  • (2013/09)
  • (2013/08)
  • (2013/07)
  • (2013/06)
  • (2013/05)
  • (2013/04)
  • (2013/03)
  • (2013/02)
  • (2013/01)
  • (2012/12)
  • (2012/11)
  • (2012/10)
  • (2012/09)
  • (2012/08)
  • (2012/07)
  • (2012/06)
  • (2012/05)
  • (2012/04)
  • (2012/03)
  • (2012/02)
  • (2012/01)
  • (2011/12)
  • (2011/11)
  • (2011/10)
  • (2011/09)
  • (2011/08)
  • (2011/07)
  • (2011/06)
  • (2011/05)
  • (2011/04)
  • (2011/03)
  • (2011/02)
  • (2011/01)
  • (2010/12)
  • (2010/11)
  • (2010/10)
  • (2010/09)
  • (2010/08)
  • (2010/07)
  • (2010/06)
  • (2010/05)
  • (2010/04)
  • (2010/03)
  • (2010/02)
  • (2010/01)
  • (2009/12)
  • (2009/11)
  • (2009/10)
  • (2009/09)
  • (2009/08)
  • (2009/07)
  • (2009/06)
  • (2009/05)
  • (2009/04)
  • (2009/03)
  • (2009/02)
  • (2009/01)
  • (2008/12)
  • (2008/11)
  • (2008/10)
  • (2008/09)
  • (2008/08)
  • (2008/07)
  • (2008/06)
  • (2008/05)
  • (2008/04)



記事メニュー2

Update Log

取得中です。
人気記事ランキング
  1. Drawing_analog
もっと見る
最近更新されたページ
  • 2686日前

    menu_L
  • 2686日前

    進捗状況(2018/03)
  • 2686日前

    Drawing_digital_13
  • 2686日前

    Drawing_digital_12
  • 2686日前

    トップページ
  • 2892日前

    Drawing_digital_11
  • 2973日前

    Drawing_digital_10
  • 3005日前

    進捗状況(2017/04)
  • 3046日前

    進捗状況(2017/03)
  • 3097日前

    頂き物
もっと見る
人気記事ランキング
  1. Drawing_analog
もっと見る
最近更新されたページ
  • 2686日前

    menu_L
  • 2686日前

    進捗状況(2018/03)
  • 2686日前

    Drawing_digital_13
  • 2686日前

    Drawing_digital_12
  • 2686日前

    トップページ
  • 2892日前

    Drawing_digital_11
  • 2973日前

    Drawing_digital_10
  • 3005日前

    進捗状況(2017/04)
  • 3046日前

    進捗状況(2017/03)
  • 3097日前

    頂き物
もっと見る
ウィキ募集バナー
新規Wikiランキング

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

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

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

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

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

  1. 過去の行動&発言まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  2. マイティーストライクフリーダムガンダム - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. 魚拓まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  4. 参加者一覧 - ストグラ まとめ @ウィキ
  5. 1103環境(遊戯王) - アニヲタWiki(仮)
  6. 前作からの変更点 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  8. コレクター・ユイ - アニヲタWiki(仮)
  9. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  10. 画像倉庫 - 鹿乃つの氏 周辺注意喚起@ウィキ
もっと見る

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

2019 AtWiki, Inc.