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

FPSを作ってみる@wiki

03)

最終更新:2014年03月30日 02:42

Bot(ページ名リンク)

- view
管理者のみ編集可

(2014/03/30)

で、でた〜、色々手を出して進捗してない奴〜
  • Blenderを触る
  自分が持ってる3ds maxもなんだかんだ言って古いバージョンだし
  前々から気になっていたBlenderというソフトはどうなんだろう・・という事で、ちょっと触ってみたり。
  まだ初日だから何も言えない。無料のソフトとしてはかなり高機能(元々売ってたのを有志で買い取ったとか、なんとか・・)
  中でもスカルプト機能がお気に入りで適当に土を盛ってるだけでも楽しいが、ちゃんと作ろうとすればムズイだろうな。
  本当に触っているだけなので本格的に使うかは不明
  • 非同期ファイル読み込み
  ファイルの拡張子でリソースを判別して読み込むだけのはずが、シーンごとのリソース管理を考え始めていつの間にか別スレッドで非同期読み込みをしていた。な、なにを言ってるか(略
  • いつの間にか前のプログラムが動かなくなってた
  多分環境を構築しなおしたせいだろうけど、
  OpenALでサウンドデバイスが開けないとか(OpenALのビルド時にALSAやpulseaudioのヘッダなどがインストールされて無くて無効になってた)
  ビデオドライバがOpenGLに対応していない(SDLを最新のリビジョン取ってきてビルドし直したら動いた。よくわからん)
  PNGやJPEGが開けない(SDL_imageのビルド時にバージョン決め打ちでlibjpeg8がリンクされていて、こっちのブログラムではlibjpeg9がリンクされエラーになってた。pngも同じ)
  あと、エフェクトファイル(HLSLにおけるFxファイルみたいなの)の文法変えてないしファイルもそのままの筈だけど
  実行時に文法エラー出る。直さないと。

なんか、土台ばかりやってて全ッ然ゲーム制作してないね。
始めてもないじゃん、という・・

(2014/03/20)

Android対応も一段落し、スクリプト制御のオブジェクト生成やらシーン管理やらは動いてるので
ここらでサウンドでも鳴らしてみるかーと、思ったらそのような物が無かった。
そもそもリソース周りをどういう設計方針で行くか忘れかけていたのでもう一度確認してみる。
  • リソース自体はスクリプトからアクセスできず、あくまでハンドルを扱うのみ
  モデル描画したりサウンド鳴らしたりなんてのは専用クラスに任せる
  シューティングならシューティング用に設計したサウンドクラス等
  • リソースをファイルパス指定で1つ1つ読んでいたのでは管理が大変なので別途ファイルにリソースブロックとして記載し、これをインポートして一括読み込みする
  「別途ファイル」もLua形式であり、単なるテーブル(配列)にURLを文字列で並べるだけ
  2ブロックの差分とって必要なリソースだけ追加読み込み対応の予定
-- Resource.lua
-- リソースブロック定義
Block = {
  modelA = "path/to/modelA.mdl",
  modelB = "path/to/modelB.mdl",
  seffect = "sound0.wav",
  music = "music0.ogg",
  -- あと色々
}
 
-- Main.lua
-- リソースブロック読み込み
local block = ResourceManager:loadBlock(require("Resource.lua").Block)
-- 敵モデルをセット
enemy.setModel(block.modelA) -- block.modelAには"path/to/modelA.mdl"のリソースが入ってる
-- サウンド再生
soundmgr.play(block.seffect) -- block.seffectには"sound0.wav"のリソースが入ってる
 
で、リソースハンドルが格納されたblockテーブルは通常、Sceneクラスが持っていて場面によって必要なリソースを読み込むと。
別にリソースのリストだけ別ファイルにせんでもSceneクラス定義に一緒に書いてしまっていいかもしれない。
そんな感じかねぇ。あとはやってみないと分からん。

(2014/03/17)

clangとAndroid

先週辺りから自作プログラムをAndroid用にコンパイルする試みを、ずっとしている。
Boostに始まり各種libogg, libfreetype2, libSDL2...なんかのライブラリをビルドし
うっかりOpenGL ES2には無いAPIを使ってエラーが出ている箇所を修正など。

OpenSLのシリアライズ処理を書いてないのにコンパイルが通って「あれ?」っと思ったが
よく見たらOpenALやOpenSL依存のルーチンをそれぞれ別クラスに隔離していて、
シリアライズは共通クラスだった。後はちゃんと動いてくれればいいが・・

コンパイラもgccではなくclangを使う様に変更。
今までそうしてなかったのは正直言ってclangでどのようにクロスコンパイルするか設定などがわからなかったから。
別にgccでもプログラムの動作は変わらないのだが多分boost::spiritの影響で
1プロセスで1.8Gも行くと4つ並列に動かしたらビルド用にメモリが7.2Gは必要な計算。
gvim(clang_complete)やリファレンスを見るためのブラウザに現在1.6G程度使っているので、全然足りない。

ま、プロセスを2,3程度に制限すれば良いとも言えるがそれだとクアッドコアのCPUが遊んでしまう。
だったらこの際メモリ消費が半分以下で済むclangを試してみようかという事で。
結論から行くと Arm5Teの場合
"clang++ -target arm5te-none-linux-androideabi --sysroot=(NDKのplatformヘッダのパス) --gcc-toolchain=(NDKのgccツールチェインのパス)"とオプションを与えればクロスコンパイル出来た。
自分のケースではNDKを/opt/adt-bundle-linux-x86_64/ndkにインストールしているのでArmアーキテクチャ向け,Android API Level 9以降を対象とすると
clang++ -target arm5te-none-linux-androideabi --sysroot=/opt/adt-bundle-linux-x86_64/ndk/platforms/android-9/arch-arm --gcc-toolchain=/opt/adt-bundle-linux-x86_64/ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
のようになる。

なんでnone-linuxなのかはよく分からんっていうか普段PC用にコンパイルするときの
i686-pc-linux-gnu
なんかの指定も内部動作をほとんど知らないまま使ってるので、これについてはなんとも。

ちなみに

Androidに付属している (NDK-Path)/docs/STANDALONE-TOOLCHAIN.html を読むとスタンドアロンで動くツールチェインセットを生成することができるが、
見た感じ手間はNDK内のパスを指定して動かす場合と比べてあまり変わらないっぽいし
同じファイルをディスクに2つ3つ置きたくないので自分は上記の設定で直に使ってる。

(2014/03/10)

LUbuntu13.10のアレコレ

サスペンド失敗する問題

カーネルの自前コンパイルしたらサスペンド(電源OFF)するまでは行くが、相変わらず復帰に失敗。
なにやらfglrxがどうのとかエラーメッセージが出るのでドライバを最新版やBeta版に変えてみるも改善せず。
LUbuntuのログアウトウィンドウでサスペンド・・ではなくコマンドラインで
sudo pm-suspend --quick-s3-mode
とやるとちゃんとサスペンド&復帰ができるので
少し手間だが当分これで行く。
pm-suspendの代わりにpm-hibernateを使うとハイバネーションで
pm-suspend-hybridはHDDにRAMの内容を書き込んでサスペンド状態へ、復帰時にRAMの内容が残ってたらそれを使い
消えてたらハイバネーションと同じ動作って事だろうか?

ibusのmozcが全角カナ入力になってしまう問題

どうも、Alt + Shiftを押すとなってしまうっぽい。
これはキーバインドにも載ってないので解決方法が分からんけど、とりあえずもう一度Alt+Shiftを押せば戻る。

ibusのmozcでキーバインドを変えても反映されない問題

IMを使うアプリケーションを再起動かと思いきや、
ibus自体を再起動しなければ反映されなかった。コマンドラインで
ibus-daemon -drx
等として手動で再起動

(2014/03/10)

Boost 1.55.0のAndroid向けビルド

BoostはそのままではAndroidコンパイラでビルドできず修正が必要なようで、パッチを作ってみた。
といっても
http://yutopp.hateblo.jp/entry/2011/12/26/233059
ここの記事の通りやっただけ。バージョンが1.48.0と少々古かったので最新版で使えるよう微修正。
ページの一番下にリンクがあるのでもし良かったらどうぞ。
適用するには単純にboost_1_55_0を展開したディレクトリで
patch -p1 < boost_arm.patch
とする。
後はb2で普通にビルドする。一応自分がビルドした時のオプション等をbuild_arm.shに書いてある。

1つ注意が必要なのは、ファイルの名前通りboost_arm.patchはarm用でboost_x86.patchがx86用なのだが
x86の方はarm版の後に追加で適用する形となっている事。
あとNDKは64bit版を /opt/adt-bundle-linux-x86_64/ndk にインストールした前提で書いてあって、
これは各自tools/build/v2/user-config.jamを修正してほしい。
32bit版NDKなら
androidPlatform = linux-x86_64
なってるところを
androidPlatform = linux-x86
に変えるとかね。

実のところ

gitでpatchを作るにはどうするか?適用は・・・とか、そういう自分の勉強が主だった。
つまりパッチはオマケ。

(2014/03/07)

進捗としては前回書いた項目の半分くらいだけどキリが悪いから次回ということで。
今回は単なる日記。

とりあえず「期間空いたけど残念ながらあまり進んでない・・・云々」と始めようとしたら
mozcの日本語入力がうまく動かず記事を書く気力が激しく減退したものの、
僅差で「2週間も音沙汰なし」の後ろめたさが勝利。
自分でも何を言ってるのかよくわからんが。

色々あって環境(LUbuntuとWin8)の再構築をしている。XPはもういいかなという事で入れなかった。
このご時世だけどメモリを新調し合計8GになったのでMinGWでboost::spiritとか使って
1プロセスのメモリ使用量が1G超のコードでも4,5個並列コンパイルでき、
ついでにLUbuntuも64bit版にしてみたのでもし2Gを超えてもエラーでgccが落ちることはないと思われる。
コンパイルにそんなメモリ食うコードは良くないと言われればそれまでではあるが・・
ライブラリ一式も64bitバージョンが導入され、32bitで動くプログラムを配布したい時の手間が気にかかる。

windowsの方は元々ゲームとモデリングが主な用途だったのでパッチのインストールとソフト突っ込んで終わり。
マザボとメモリ交換したのもあって認証関係でちょい躓いたがまぁいい。

問題はOSそれ自体より今まで書いたソースコードの断片だのメモ書きだのの整理が面倒で先送りにしていたツケが回ってきた事。
どうでもいいファイルばかりだからフォルダごと消そうか・・・と思いきや大事なメモが〜とか、
逆に大事なプロジェクトフォルダの周りにゴミが散乱してたり。
そもそも、用済みのメモ等を消すのが忍びなくて放置してるのが元凶かねぇ

大事なファイルだったらgitで管理すればいいんだろうけど自分の場合、
最初は一時的なメモとして書いていたけどそのうち文章が増えてって気づいたら・・というパターンも結構あるから悩ましい。
何でもかんでもgitするとそれはそれで邪魔。う〜む、これといった解決策が思いつかん。

#追記
LUbuntu 13.10 64bit版にして良かった点
  • 64bitなプログラムを書ける(本当は使えるレジスタ本数が増えて速くなってるはずだが、測ってないのでよくわからん)
  • 起動時間が前の半分か2/3くらいになった
(LUbuntu 12.04 32bit版と比べて)悪い点
  • コンパイルする際にライブラリの準備、管理が少し面倒
  • マザボ依存っぽいが、サスペンドからの復帰に失敗する。画面が崩れ再起動を余儀なくされる
  • 英語版を入れたせいか、日本語入力が不便(12.04でも英語版だったがこちらは問題なし)

一番困るのは不意にmozcが全角カタカナモードになってなんのキーを押しても戻らない事。
この時何故かScrollLockランプが点灯し、キーを押しても解除はできない。
戻すには一旦ログアウトしなければならず、大変不便である。ググッてもそれらしき症状の人が居なくて手詰まり。
mozcのキーコンフィグも効かない。GUIで設定を変更しても反映されてないという・・
他にはキーボードのリピート間隔設定も相変わらず反映されない。調べたところバージョン8くらいからずっとで、もう何年目だろうか。
「03)」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • boost_arm.patch
  • boost_x86.patch
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.