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

FPSを作ってみる@wiki

02)

最終更新:2013年02月28日 20:47

Bot(ページ名リンク)

- view
管理者のみ編集可

(2013/02/28)

勉強した事
  • pthreadの続き。条件付きmutexやTLSなど(C++11のthreadも同じ様な案配だった)
  • androidにおけるイベントハンドリングの仕組み(Looper, Handler関連)
  • C++でのOpenGL初期化と簡単な描画

取り組んでいる事
  • android_native_app_glueの読解
  • NativeActivityのC++コードのgdbを使ったデバッグ

OpenGLについてはとりあえずNativeActivityでOpenGL初期化できました & ポリゴン一枚描画して見ましたレベル。
スクショ撮っても仕方ないので割愛。
NativeActivityを利用してプログラムを書くには付属のヘルパークラスandroid_native_app_glueを使う方法とnative_activity.hをインクルードして自前で制御する2通りがあるようだが
android_native_app_glueのソースを覗いてみたら行数がそれ程でもなかったし使うにしても中で何が行われているか気になったので読んでみている。
eclipseで普通にc++のコードをGUIでデバッグ出来るのかと思ったら、どうやらそうでもない様で・・発展途上?なのか
ググッて調べると手順が色々ある模様。要するに面倒くさそう。

まぁ、こんなとこか。
to be continued...

(2013/02/26)

折角なので

乗りかかった船だし何とやら。という事で2月いっぱいはAndroid関連。
但しJavaはエミュレーターで見てるとGCが動くだけで5〜8ms程度持ってかれていて速度的に微妙だと思い、従ってC++で書きたい。
AndroidのプログラムをC++で書くにはJNIというJavaとC++の橋渡しをする仕組みを利用するかフルC/C++でアプリを書くNativeActivityか、という2種類があるようだ。
JNIは昔のバージョンで動くようだけどJavaと行ったり来たりするのが面倒そうなので今回はパス。NativeActivityに挑戦する。
そうなるとAndroid2.3以降でしか動かない事になるが、まぁどっちみち3Dをやるなら昔の端末じゃ遅いだろうし問題ないだろう。
2.3以降ならサウンドにOpenSLという遅延の少ないライブラリも使えるっぽい。

JavaやJNIで書く時はOpenGLで描画するのにGLSurfaceViewという便利なヘルパークラスが使えたが
あいつはフレームスキップを実現したい時はどうすればいいのかイマイチわからんし
第一Nativeではそんな物なさげなのでまずはOpenGL初期化方法から勉強している・・

勉強した事
  • OpenGL ESの初期化
  • pthreadと、C++11におけるthreadの使い方

(2013/02/25)

正直、ないと思う

タスクシステムを作り終えて動作完了。試しに紐シミュレータをば。
入り用で、Androidにて。
シミュレーションにはVelocity Verlet法を使用。
ボタンでゴム紐とただの紐を切り替えたりとか。
もちろんJavaで。エミュなので10fpsしか出ない
しかも、お流れ(実質)になった >えええええ!?
深くは語るまいが。
ま、ともかくAndroidで動くタスクシステムと諸所のAndroid&Java知識を手に入れた訳で。
気が向いたら何か作るかもね・・OpenGLの勉強も少し進めた事だし。

あ、あとPCの方のゲームもDirectX11は見送ってOpenGLの線が濃厚。やはりiPhone, Android, WebGLにも使えるというのが強い。
とりあえずJavaで実装したタスクシステムをC++に移植しますかね・・

(2013/02/13)

アップデート機構やコリジョン通知

本格的にゲームに取り組むにあたって場面遷移機構を考えていた。
あれ、前に考えなかったっけ?と思い過去の記事を検索してみたがヒットしなかったのでやっぱり今までマトモにゲーム作れてなかったんだろう。

場面遷移とは大層な響きだが
例えばリバーシとかのちょっとしたゲームだったら現在のステートを数値で管理してswitch文で力任せに行けなくはない。
しかしそこから一歩進めて「ゲーム中にメニュー開いてアイテム管理画面作ろうか」とか、「イベント中は操作を受け付けなくして下に会話ウィンドウ、関係ないNPCも止めておこうか」とかなってくると
何らかの管理機構なしではスパゲッティコードを免れないのである。
Android等でコンスタントにミニゲームを出していたブログなんかが
ある時期を境にパッタリと更新が止まってしまう原因もこの辺にあるんだろうか?等と要らぬ心配をしつつ・・
前置きはここまでとしたい。

自分の場合

具体的にはゲーム内オブジェクトのアップデート機構としては伝統的なタスクシステム(詳細はググって欲しい)を使用。
ゲームを[タイトル][スコアランキング]などの場面(以後Sceneと呼ぶ)に分割しそれぞれクラスに分割、
Scene毎の処理をそこに書く。
で、これらをスタックで管理する。

例えばアクションゲームならばタイトル画面はこうなるだろうか
([]で囲まれた名前はScene名、続いて上から順番に処理するタスク という意味)
[タイトル]
・背景のアニメーション
・タイトルメニュー表示
・カーソル移動
メニュー項目が決定され、それがオプション画面であり、タイトルの背景を表示したままオプションを表示させたいならこんな感じにする
[タイトル]
[オプション]
・(タイトル::背景のアニメーション)
・オプション項目表示
・カーソル移動
オプション画面を抜けたらScene: [オプション]をスタックから取り除いてまたタイトルが表示されると。
Scene:タイトル の一部の処理だけアクティブにするには背景アニメーションのタスクグループを名前で検索して
参照をScene:オプション のタスクツリーに持ってきて・・とか細かい話は色々あるけど
ようは現在のSceneより下に積んであるSceneの処理の一部だけを実行するのもアリだと。これは表示に関しても同じ。

場合によっちゃこんな風になるかもしれない
[ゲームメイン]
[ボス戦]
[ゲーム内メニュー]
[警告とかのポップアップ表示]
・(ゲームメイン::背景やキャラクター表示)
・(ボス戦::ボスの体力バー表示)
・背景を暗くするための黒い半透明枠
・(ゲーム内メニュー::所持アイテム表示)
・「これ以上持てません」などの警告表示
まだ実装途中だからやっぱこれは上手くいかないやっていう可能性も十分考えられるが
やってみない事には始まらないので。

(2013/02/07)

Debianパッケージ

Windowsだと「とりあえず公開したい」プログラムの時に共有ライブラリは同じディレクトリへ
一緒に突っ込んでおけば優先的に読み込まれるからそのへんは楽だったが
Linuxは当然というか、そうはいかないようだ。ちゃんとライブラリ検索パスが通った場所に置く必要がある。
そこでDebianパッケージの作り方について調べているが、
ファイルを指定場所にインストールする事自体は出来そうなのだが・・パスを通したり
アイコンファイルをちゃんと読めるか、アンインストールの確認などもうちょっと時間がかかりそう。
下手に急いで中途半端なパッケージを出しても仕方ないので焦らず進める。

ゲームへ

さてさて、心残りだったプログラムが公開の段階まで持っていけたという事で
改めてメインのゲーム開発に戻る。

(2013/02/06)

公開

Qtで組んで放置してたTwitterクライアント。ほぼ一から組み直しという形でやっとこさ公開。
READMEに書き忘れたがQt5 Framework用で、c++0xまたはc++11の機能を使っているので古いコンパイラだとビルドが通らない。
ソースコードはGitHubに、バイナリは・・・まだだった。これからビルドする。
Windows版とLinux版。
クロスコンパイルについては前にあれほど苦戦したからきっと大丈夫と思われる。

#追記
Windows版バイナリをTwilveのアップローダにアップロードした。
初回のみQt5ランタイムと一緒にダウンロードしてそれぞれ展開、一式をtwilveのexeがあるフォルダに突っ込む。
Linuxバイナリについては、デバッグ版ライブラリしか入ってなかった為これからライブラリのビルドから始めるので少し時間がかかるかも。
動作はWindowsXPと8で確認済。

(2013/02/05)

相変わらず

作業は長引き、予定をブッちぎり・・
なんかTwitterのバージョンが上がってAPI 1.1になっていた事に気づいた。
今までのAPIも一応使えるみたいだし何が違うのかといえばAPI回数制限の変更が主らしい。
具体的には全てのAPIに対して一時間何回まで~となっていたのが機能ごと別個にカウントされる。
もちろん自分のクライアントは昔の仕様で組んでいたのでAPI回数カウンタが使い物になってない。そして直す気力も残ってない。リリース優先である。

ところで自分はネットワークサービスのAPIを使って色々するのはこれが初で事情をよく知らないのだが
「誰にリツイートされたかはここの値見れば一発ダヨ!」という風にはいかないのだろうか?
もちろん一発でわかる情報も多いけど物によっては
サーバから返されたJSONの幾つか値を見て行って結果「どうもこのツイートは自分がリツイートした”らしい”」という風に
判断するしかなくてやきもきする。
手順を調べようにもドキュメントには断片的にしか載ってなかったりして、なんとも。

予定

あとバグを何か所か直せば最低限の機能が揃い(ツイート、フォロー、リツイート)公開出来るレベルにはなると思うので頑張る。
本当はテキスト解析してフィルタリングしてみたら面白そうと画策していて、
実際そのアルゴリズムを調べて実装などしたんだけどお預けかもしれない。
さっさとゲームに戻らねば。

余談

いつものように作業垂れ流し配信をしていたら
外人さんに「前々から思ってたんだけど、なんでこんな配信してんの?」と問われ
一応いつもの返しで「自分のサボり防止の為」と言っておいたが
ぶっちゃけ自分でも何でやってんだかわからん。習慣とは恐ろしいものよ。

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