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

FPSを作ってみる@wiki

03)

最終更新:2010年03月30日 02:00

Bot(ページ名リンク)

- view
管理者のみ編集可

(2010/03/30)

まあそんな感じか.あとは置ける場所が無いときにパスボタンを表示すれば終わりな雰囲気.


(2010/03/28)

接続認証処理から通信開始までの間にこける現象がたまに発生する問題を今まで放置してきたが多分解決.
WSAWait系関数で複数のイベントを待ち受けたらシグナルが来た時に
戻り値のインデックス1つしかチェックしてなかったが
コケる時っていうのは恐らく同時にシグナルが来てるんだろうな.
ということで単純にループ回して全部のイベントをチェックするようにした.

(2010/03/25)#2

近況.テキストで思案ばかり.

今書いてるプログラムが一区切りついてから~なんて長い事放置していたvisual studio 2008を2005と入れ替えインストール.
そんな事言ってたら何時まで経ってもできないわけで.
環境が変わった時の手直しについては気合で頑張るしかない(といっても何も無さそうだけど)
常時接続だしオンラインのだけで十分と思っていたMSDNもインストールしておこうかと.
たまに回線が重くてもたつく時があった.
でも一番の理由はブラウザを開くことによってふと目に入った気になるリンクをクリック,あらぬページへジャンプして本来の目的を見失うのを防止する為だったりする.
他にはソースコードエディタの描画が何故か2005は2003と比べて遅いのが気になったのもある.
2008はどうかな?更に重くなければいいが.

(2010/03/25)

リアルタイムゲームの同期はまだ考え中.机上の空論レベルで仕様がまとまって来たかといった所.
結果だけ見るとA4ノート半ページに収まっちゃう勢いで「数日間考えて,これだけ?」と言われそうだが・・
実装しようとするとボロボロと穴が見つかるんだろうな~

やる事を整理しよう.
まずターン性ゲームの方をちゃっちゃと形にして区切りをつける.(ネタバレするとリバーシを作ろうと思ってる)
次に簡単なリアルタイムゲームを作ってみる.
これも腹の内を明かすと第一段階としてPONGのクローン,そこから発展させて上から視点のシューティングゲームをやろうかと.
シューティングといっても戦闘機のではなく人を上から見た絵が自機でマウスカーソルの方に銃口が向く
最近の例だとshadow groundsみたいなタイプだ.
P2P形式で通信プレイやるのはそこまで.というのも3人以上だとまた制御を考えねばならん気配なので.

更にその後はPONGか上から視点シューティングを本命のサーバー&クライアント形式に改造する.
最初からそれで作れという話だけどP2P形式でラグが平等な対戦ゲームも一度やってみたかっただけです.

(2010/03/23)

先日ひょんなことからそれなりなビデオカード買ってしまって
早速積んであったヒットマンやってたりするんで作業が滞りがちに.
で,アンケートにラジオチャットとありますが.
おそらくショートカットから出せる定型文チャットの事ですよね.
(ボイスチャットは別途skypeでも使ってもらうことにして・・)
文字だけなら入れるつもりだったけど・・声なんてある程度ゲームの規模が大きくなってから幾らでもできるだろうし.
L4Dのシステムは中々秀逸だと思うからアレを更に発展されされればと.

作業経過:
○×ゲームの後,急に汎用クラス化したくなりそこまでしてもな~と思いつつもしている.
ターン性の完全情報公開ゲームの主要機能を搭載したベースクラスに,
ルールや描画方法を記述したゲーム盤クラスを渡せばそのゲームが出来るという.
でもいい加減こういう変なこだわり捨てないと.どうせ後々使わないよと.

それと元々リアルタイムゲームの通信プレイをやりたかったのでこちらも同期の方法を検討中.
デバッグ用途に任意の通信遅延を発生させるプログラムを書く必要があるかなあ.
100msとか固定の遅延とある程度遅延の波がある状況を意図的に作り出せないと
実際インターネットを介してプレイした時に安定するのか甚だ疑問である.

(2010/03/18)

思ったんだけどターン性のゲームだったらご大層な通信クラスなんか無くても作れるよね?
チート対策はともかく通信と処理する手順が決まっているのだから例外処理とか要らないよね.
じゃあ何でこんな時間掛けてんだ・・・
リアルタイムゲームへ移行しないとバカやってるみたいだ.はやくなんとかしないと.

(2010/03/17)

例の如く配信の抜粋を追加してみた.
文字が潰れてるし何がなんだかって感じだが雰囲気だけでも.

(2010/03/16)

よく,プログラムがうまく動いた時に快感が得られるから続けられるというが
自分の場合は気持ちいいのは確かなんだけど「やっっっと動いた~疲れたー」という感じで疲労感の方が強い.
まあそれはそれとして.
スクショを見てもらえば分かるように以前から書いていた簡単なゲームというのは○×ゲームの事だったのだ.
言ってしまえばたかが三目並べ,しかもターン性なのでリアルタイムに比べ同期が楽だし
TCPオンリーだからパケットが届かなかった時の処理もしなくていい・・・と
高をくくっていたがそれでもwinsockを使って一から作ると結構な作業量となる.
例えばwinsockのsend()関数で123, 456, 789と3回に分けてデータを送っても受信側も3回分に分かれて受信される保証はなく
ドライバの実装によっては12, 345678, 9みたいに届く可能性もあるのでデータの切り分け作業が必要だ.
もう少しエラー処理を加えてから公開したい所存
その後は練習として別のボードゲームを実装したい.三目の次といったら大体見当がつくかもしれない.
基礎は出来てるからサクッといく予定なんだけど,どうだか.

#ちなみに
以前にTCPを使ってないゲームなど無い等と嘘吐いてしまったがちょっと調べたら
主に大手だとUDPオンリーなゲームもありますな.
とはいっても内部でTCPみたいな再送機構を設けてるだろうし,独自実装はパケット解析されにくいというのもあるだろう.

(2010/03/07)

鬼のように日にちが過ぎる.
肝心のプログラムはというと未だに通信関連を弄っている.
商用ゲームの同期の仕組みってどうやってるんかな?まあそのへんは製品のアドバンテージに成り得るし企業秘密だろうけど.

前回の記事書いた後に実装したのは「オブジェクトの状態のズレ補正」だ.
どういう事かというと例えば各プレイヤがチャット画面からゲーム画面へ移行した後
互いにメッセージ(MSG)をやり取りする処理を書いたとする.
この時一寸の狂いもなく全員同時に画面(ゲーム状態)を切り替えできればいいが
現実的にはどんなに頑張っても1~2ms程度の誤差は出てくる.
するとあるプレイヤはまだチャット画面なのにMSGが届いてしまう.この場合,どう処理していいか困るのだ.

真っ先に思いつく解決策は「ゲーム画面」へ移行した後に数秒待ってからMSGを送る手だが
レスポンスが悪いし,なにより確実性に欠ける.
あるプレイヤはPCの処理が込み入っていて10秒待ってもまだチャット画面かもしれない.
かといってチャット画面の時に受信したMSGを捨ててしまうと
届かなくても影響が少ない物(キャラの挨拶アクションとか?)ならともかく,それはそれで問題だ.

じゃあどうするか.自分が考えた方法は
チャット画面の時にMSGを受け取ったら一旦別のバッファに溜めておいて
アプリケーションに対してはあたかもゲーム画面へ移行した直後にメッセージが届いたように見せかける,というもの.
考え付くまでに結構時間掛かった.
でもまだまだ先は長そうだ.なんせ簡単なゲームさえ出来てないのだから(俺達の通信はこれからだ)

「03)」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • kinkyou0.jpg
  • rev0.jpg
  • tm0.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
もっと見る
最近更新されたページ
  • 2687日前

    menu_L
  • 2687日前

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

    Drawing_digital_13
  • 2687日前

    Drawing_digital_12
  • 2687日前

    トップページ
  • 2892日前

    Drawing_digital_11
  • 2973日前

    Drawing_digital_10
  • 3005日前

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

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

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

    menu_L
  • 2687日前

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

    Drawing_digital_13
  • 2687日前

    Drawing_digital_12
  • 2687日前

    トップページ
  • 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.