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

FPSを作ってみる@wiki

04)

最終更新:2010年04月28日 20:48

slice

- view
管理者のみ編集可

(2010/04/28)

パドル動かしてボールをバウンドさせるとこ(同期含め)までは出来たがそこから先は・・
とりあえず仕様変更を繰り返してこんがらがってきたから作り直す.
毎回ボールの速度等をやり取りするのって通信負荷的にどうなんだろ?
pongに限って言えばそんなの気にするレベルじゃないだろうけど.
できればボールがバウンドしたならバウンドに関する情報(時刻と角度と位置)だけ
やり取りしたほうがスマートだよね.等と要らぬ事を考えたりする.
座標ズレの補正に関してはズレていると判断したらずれ方の大小で
座標をワープさせるか見た目の座標を緩やかに目標座標まで線形補間してごまかすか選ぶようにした.
でもこれにキャラクターのアニメーションが加わったらどうすればいいかはまた考えなくちゃいけないか.

(2010/04/25)

あんまし進んでないけど進捗をば.
pongのクローンゲーでズレを修正しつつ同期するの,動き始めたかな?という状況.終わり.
本当にそれだけ・・2Dゲーで通信プレイといったら以下の事項が必須だろうと考えたので
色々と面倒な事になっている.
  • ホストとクライアントで平等なラグ
  • 座標等がズレたら目立たないように同期する


(2010/04/18)#2

作業しようと思ったがテンションが上がらないので溜まってた事項を消化しよう.
1つ目はweb拍手ちゃんと見てますありがとうございますという事.もちろんコメントも読んでます.
コメント貰えると更に良いけど,クリック1つでも励みになるものです.
その中に「オンボードでは動かなくなるのか?」という問いがありまして.
現時点では「わからない」としか.そう答えると更に疑惑が深まりそうだけど
このエフェクトはゲーム上絶対に必要だ,これ無しではゲームとして成り立たない!とか
切り替えできるとゲームバランス調整に差し支える!とかでなきゃ要求スペックに入れないつもり.

無名の状態での公開だし出来るだけ多くの環境でプレイできた方がいいよね
通信も含めると人が居てナンボなわけで,そうなると
別途ビデオカード積んでるPCじゃないと動かないって結構な敷居だと思うわけです.
別の理由としては単にそこまでディティールを作りこむ余裕と技術がないというのも.

やるとしたら弾痕に視差マップ施して立体的に見せる,
煙のポリゴンをピクセルシェーダーで細工して壁との境目を目立たなくさせる等
見た目をちょっとよくする味付け程度に用いる予定.これだったら切り替えが楽そうだ.
あとは静的ライトマップの計算にGPUを使ってるので高性能なGPUを積んでれば
オンボードと比べて計算する解像度を上げられたりして,それなりに恩恵はあるかと.
ラジオシティもやりたい野望.
これは前に試したら流石にオンボードだと計算時間が現実的でなかったのでハイスペックPC専用になりそう.
また同じ時期に興味本位で
「ゲームを動かしながら空いてるGPU時間を使って裏でライトマップ計算」なんぞやってみた事があって
次のレベルを裏で計算しつつ計算が終わる前にプレイヤーがその地点に差し掛かったら
ローディング画面をいれようか,等と考えてました.
実現するのかは未知数ですが.

(2010/04/18)

正確にはこれは進捗ではない.
makeplex salon:史上最大のコーディングスキル判定というのをやっていた.
てか麻雀知らねえ!ごめんなさい.
まずは用語を調べてちょっとルールとか調べて
おもむろに実装を始めたら途中で物凄い勘違いしてるのが判明してまたやり直して・・・ってやってたら
余裕で時間オーバーでした.本当に(ry
まあ一応出来たっぽいからこれはこれとして,次の機会にまた頑張ろうかなと.
一言言うならばもうちょっと問題を明確に書いてくれないかなあ.
七対子は考慮するの?しないの?とか.

入力と出力の対応表も欲しかった(途中までは書いてあるのに.これじゃ正しいのかどうか判断がメンドイ).それと
麻雀を知らない人は、順子・刻子・アタマ・待ちといった用語の意味だけ調べてから解答に取りかかってください
とあるが文字通り意味だけ調べてもドン詰まります.用語の意味を理解するにはその前にルールを知らなければ無理.
もしコンテストでこの問題に遭遇したら麻雀知らない人は速攻後回しにするだろうな.

とはいえこういうプログラミングコンテストのような問題って
普段みたいに例外処理とか汎用性を意識しなくていいので純粋にアルゴリズムを考える事ができて時間を忘れる.
FPS作る時もこのくらい集中できればいいのだが!

(2010/04/14)

また作業が思うように進んでない感じですが.同期の方法を幾つか試したりしてた.
単純にキー入力を相手に送るだけの(最低限時刻によるタイミング合わせはする)方式で
実際どのくらいズレるの?とか,PONG-likeのパドルを上下に振りまくって確認したり.
案の定10秒程でずれ始める.30秒続けると10ピクセルくらいずれる.

ただ試したのはフレーム単位のタイミング同期なのでこれをミリ秒単位にしたらもうちょっとマシにはなるかと思う.
何れにしても根本的にズレの蓄積は避けられないのは明白なのでやらなかったが.
ズレにくい仕組みも重要だが,必ず溜まる差分をどこかで誤魔化して帳尻を合わせにゃならんわけで.

まずは毎フレームプレイヤの操作情報やボールの座標をやり取りしてたら
それだけで負荷が高くなる&無駄すぎると判断したので
ゲーム内物体の状態が変化した時だけその旨送信するように作り変えている.
具体的にはパドルの移動方向が変わった時だけ相手にパケットを送信する等.
(TCPなので送信は一回で済む)
その後はまだエディタ上でああだこうだやってる状態で決まらない・・

(2010/04/11)

予定通りサクッとPONGのようなものを実装.まぁボールが跳ね返るだけだからね.
で,これまでに書いたwinsock関連のクラスをライブラリにまとめて自前3Dエンジンにリンクしようと思ったら
接続先のIPをGUIで指定するのにダイアログボックスを使っているのだが,このリソースファイルの扱いで詰まった.

というのもそのままリンクするだけだと基本的にlibファイルにはリソースを含められない仕様らしく
リソースが一緒にコンパイルされないのだった.
(そりゃまあねえ,vcが出力するリソースファイルなんてウィンドウズ専用だもんねぇ)
DLLにすると含まれるようだが面倒なので強引に解決する.
具体的にリソースファイルのインクルード機能でライブラリのリソースを含めた.
折角ライブラリの形でプログラムを1つのファイルに梱包したのにリソースを別途インクルードとか
意味が分からんが,近いうちに作り直す予定なので今回はこれでいく.

(2010/04/10)

前回,FPSのプログラムのコンパイルは通ったのだけは確認して油断していたがいざ実行すると
エラーが出た(メッセージは失念)
とりあえず実行時にランタイムライブラリが見つからない系のエラーだった.
結果としてはogg vorbis形式の音楽再生用に外部ライブラリであるliboggをリンクしていたが
それをコンパイルした時にvc2005を使ったので今回のvc2008のランタイムと競合を起こしていたと.
初歩的といえば初歩的.の割にちんたらググッてたら2~3時間掛かったけど・・
久々に自作の3Dプログラムを動かしてみた感想.やはり今時のビデオカードは速い.
ファンの騒音対策のためGPUクロックを4分の1に落とした状態でも使用率が数パーセント程度である.

負荷の程度としてはオンボードで60fpsを維持できるギリギリのレベル(もっとも,最適化してない状態なのだが)だったと記憶しているのでオンボードの精一杯の能力は
今のクロックダウンしたhd4770の10パーセントが相当すると考えていいだろうか.
ちなみにAMD690Gは市販ソフトで言えばhitman2がオプション最高の解像度1024x768で60fps,
half-life2は設定ミディアムの同解像度20~30fpsで動作する.参考までに.

話を戻してリアルタイムゲームの通信対戦実験をする為に
まず2Dベースのクラスを書いてみてサクッと「PONGのようなもの」を動かす所から始めようか.

「サクッと」は自分にとって死亡フラグな件 (ボソ

(2010/04/09)

将棋はひと段落.そしてその動画は例のところへ.
ビデオカードを新調したのでシェーダー2.0止まりだった描画関係の新しい手法なんぞ試してみたい気はするが・・・
(ピクセル単位のライティングを当たり前のようにしてうねる水面やソフトな影とかね)
ここはグッとこらえてリアルタイムなネットワークゲームの作成に取り掛かる.

さて過去のページを見返すとFPSのプログラムに触らなくなって実に3ヶ月.
いくら自分が書いたとはいえ3ヶ月もしたら立派に他人のソースコードである.怖い怖い.
まずはサッと動かして見てどこまで組んだか,何所でほっぽりだしたかを把握する作業からだな.
その辺進捗状況1月分を読めば大体はわかるのがせめてもの救いか.

(2010/04/08)

クラス構造を半分以上書き直したので大幅に進んではいないけど機能追加の繰り返しによる冗長な記述が減った.
関係ないけど持ち駒表示の画像2つ.
種類が増えると幅を調整して収まるようにしてある.横に並べる間隔も可変にした.

(2010/04/07)

いかん.いかんよ.何時までもこんな事やってる場合じゃあ・・・
詰み判定に手間取りそうな悪寒.まぁやってみないとわからんが.
詰んだらorどうやっても詰むと踏んだら事前に投了するのがルールだけど
最後どうやってゲーム終わろうか?
リバーシの時みたいに投了ボタンでも表示するかなあ.

さて次に取り掛かるリアルタイムゲームの通信実験でPONGのクローンをやるという話をした.
またWINAPIでゴリゴリやってたら本気で終わらないし微妙にレガシーなAPIを
使いこなしても無駄なので素直にDirectXを使う方向に(今だとWPFなんだろうか).
しかしDirectXを使うにしてもやはり一から組んでたんじゃあ(以下略)であって,じゃあ
使い慣れた既にある自作エンジンもどきを利用しようという至極真っ当な結論に行き着く.
先日開発環境をvc2005から2008にしてもソースの変更ほぼ必要無しだったのを踏まえて
エンジンを組みなおす前の状態で作ろうかと.
というのもエンジン組みなおすといっても基本構造は同じでソースを整理する程度に留まる予定なので.

関係ないが2005から2008への移行でソースコードエディタの描画速度向上を期待していたが逆に更に遅くなっていた.
WinXPだからなのか,Vistaや7でGPUも駆使したら速いとでも言うのか.
DX10のジオメトリシェーダーでも遊びたいし・・もう少し安かったらすぐにでもOS移行したいところだが.


(2010/04/06)

主に表示部分で苦戦した.マスク付き画像の描画ってどうやんだっけ?など.
取った敵の駒を並べて表示するルーチンは書いたので判定が間違ってる部分を直して
持ち駒を指定位置に打つ(打てるかの判定も)処理を加えたら完了か?
王手かかってる時は次に王手を避ける手しか打てない様にするとスマートだが面倒かなあ

画像だと後手のプレイヤは盤面を180度回転して見た図になってるけど駒の部分だけ回転してるので
盤の数字はそのままという謎.これは直さないと.

(2010/04/01)#2

PCで動く将棋それも通信対戦できる物なんてブラウザゲーで沢山あるわけですが.というか本題じゃないし.
だがしかし,やると言った傍からやっぱ辞めるなんて幾らなんでもアレ過ぎる(以後気をつける)
なのでサクッと実装してリアルタイムゲームへ移る方向で.
手始めに将棋の盤と駒の画像を作成した.これからプログラムを書いていく.
あくまで練習なので最低限の機能だけ実装するのは当たり前として・・だからといって
画面が見にくかったりしてプレイしづらいのは避けねばならん.
  • 持ち駒は同種類の駒はまとめて表示する
  • 平手のみ
  • アニメーションは無し
  • 千日手の判定も無し
  • 棋譜も無し
こんなとこか.もちろんCPUプレイヤも居ない.
なにしろ自分がルール知ってる程度だし.

(2010/04/01)

なにがってわけじゃないけど,漠然と考えてはいたものの結局まったく手を付けてなかったので今日は何もありません.
やるならちゃんと用意しないとね.急ごしらえの中途半端はイカン.
って去年もそんな事言ってたような・・

さて.リバーシが実装できたので何時ものように動画を上げておいた.
次はどうしようか・・いよいよリアルタイムゲームか?と思いきや将棋やってみます.
ところで先週突然現れたweb拍手ボタンにお気づきだろうか.
製作者がへたれてると思ったらポチッと押していただければ励みになって大変助かるので是非.
任意のコメントも,どのボタンから送信された物か区別できるようにID振ってるので日記の内容へツッコミ入れたい時にもどうぞ.

「04)」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • piece0.jpg
  • piece1.jpg
  • shogi0.jpg
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.