FPSを作ってみる@wiki
05)
最終更新:
slice
-
view
(2012/05/27)
アンケート結果
0票だったらどうしようかねー、wiki畳んじゃうかねーと思っていたが杞憂に終わった。
銃のモデリングが4票に、javascriptとphpによる自前アンケートフォーム+αが1票。
銃のモデリングが4票に、javascriptとphpによる自前アンケートフォーム+αが1票。
−−−−−−−
という訳で来月まではひたすら銃のモデリングに決定
ただ自分がモデリングに集中するだけなので大したことじゃあない。過度な期待は禁物である。
その後の事はやっぱり何も考えてないし・・
という訳で来月まではひたすら銃のモデリングに決定
ただ自分がモデリングに集中するだけなので大したことじゃあない。過度な期待は禁物である。
その後の事はやっぱり何も考えてないし・・
(2012/05/21)
何もする気がしない
おいおい。最後にゲームのソース触ったの今月の初めじゃないか。
Qtの進行速度も鈍化傾向だし・・
かといって他に何か取り組んでる訳でもない
Qtの進行速度も鈍化傾向だし・・
かといって他に何か取り組んでる訳でもない
でも気持ちが焦るだけで何も進まず。困ったねぇ
(2012/05/13)
GUIの裏で
ツイートの検索をかけた時に各ツイートに関する情報の一部(本文含む)が取得できる。
個別にツイートのクエリをすればフルで貰える。
ホームTLを取得した時にはまた別の一部情報が取得できる・・・といったようにツイートを取得した状況により持っている情報量が異なる。
TwitterにはAPIの呼び出し回数制限があるために逐一フルで問い合わせする訳にもいかない。
すでに要求された情報を持っているならそれを返す、
足りない情報を補うにはどうするか、当然クエリにはタイムラグが生ずるからその対策も・・等と「非常に」難儀していた。
個別にツイートのクエリをすればフルで貰える。
ホームTLを取得した時にはまた別の一部情報が取得できる・・・といったようにツイートを取得した状況により持っている情報量が異なる。
TwitterにはAPIの呼び出し回数制限があるために逐一フルで問い合わせする訳にもいかない。
すでに要求された情報を持っているならそれを返す、
足りない情報を補うにはどうするか、当然クエリにはタイムラグが生ずるからその対策も・・等と「非常に」難儀していた。
実はこれは前に3Dのクライアントを作る際にも苦戦していた部分であり、
その時は間に合わせで実装してしまった。なのでソースがめちゃくちゃである。
今回はその辺ちゃんとやろうかと頑張ってその甲斐あってか大体納得行く実装ができた。
その時は間に合わせで実装してしまった。なのでソースがめちゃくちゃである。
今回はその辺ちゃんとやろうかと頑張ってその甲斐あってか大体納得行く実装ができた。
残念な事にここ3,4日はQtに殆ど触れずじまいである。
これから遅れた分を取り戻したい所存。
これから遅れた分を取り戻したい所存。
(2012/05/07)
現状
一日の内で最初はQtを勉強して、その後にDirect3Dをやるか・・等と思っても頭の切り替えが上手くいかない。逆も然り。
「今日は○○の日!」と決めてしまった方が良いのだろうか?
現状。
「今日は○○の日!」と決めてしまった方が良いのだろうか?
現状。
Qtでは基本的にGUIオブジェクトをnewで確保し、ポインタで渡す。ガベコレが実装されているJavaやC#のような感じ。
しかし本当に生ポインタでありstd::shared_ptrなどでは無いので「誰が破棄するのか?」を常に気にしなければならない。
あるオブジェクト(QObject継承)にsetParent(p);で親を設定したら親が削除の責任を持つ。
もしユーザーが任意でdeleteをしてもちゃんと親に伝わり子リストから削除される。ここまではいい。
自分にとって問題なのは場合によってsetParentであったりsetWidgetだったりsetCentralWidgetであったりaddWidgetを呼び分けなければ上手く動作しない点。
しかし本当に生ポインタでありstd::shared_ptrなどでは無いので「誰が破棄するのか?」を常に気にしなければならない。
あるオブジェクト(QObject継承)にsetParent(p);で親を設定したら親が削除の責任を持つ。
もしユーザーが任意でdeleteをしてもちゃんと親に伝わり子リストから削除される。ここまではいい。
自分にとって問題なのは場合によってsetParentであったりsetWidgetだったりsetCentralWidgetであったりaddWidgetを呼び分けなければ上手く動作しない点。
一体どれを使えばいいんだと。
マニュアルを見れば書いてはあるのだが・・
無論間違えるとメモリの2重開放になったり表示されなかったりする訳だ。頑張って1つ1つ覚えるしかないのか。
マニュアルを見れば書いてはあるのだが・・
無論間違えるとメモリの2重開放になったり表示されなかったりする訳だ。頑張って1つ1つ覚えるしかないのか。
(2012/05/04)
脱VisualC++の動き
非ゲームなプログラム(ツール類含む)ではgccをメインに使う事にしたのでこれを機に今までVisualC++が対応していなかった
c++11の機能を幾つか試す。特に可変長テンプレート引数とか。
c++11の機能を幾つか試す。特に可変長テンプレート引数とか。
VisualC++11だとこの辺かなり対応してるのかと思ったらそうでもないし
そもそもExpress Editionではmetro styleプログラムしか作れないだとか
コンパイルしたプログラムはXPじゃ動かないとか、あんまり良い話を聞かない。
微妙な雰囲気・・
そもそもExpress Editionではmetro styleプログラムしか作れないだとか
コンパイルしたプログラムはXPじゃ動かないとか、あんまり良い話を聞かない。
微妙な雰囲気・・
Qtフレームワークも地道に学習中。
マウスイベントやメニュー、ショートカットキーなど。
マウスイベントやメニュー、ショートカットキーなど。
一方、ゲームの方はと言えば。
海面の描画に使う頂点配列はに試した「視点の円周上に配置」が一番バランスがとれていると思った。
この方法なら最初に静的頂点、インデックスバッファを一度生成するだけなんでCPUとGPUの負担は軽いだろう。
ただ頂点数と間隔が要調整なのは言うまでもない。
前に上げたスクリーンショットのような見た目が自分の限界か。これ以上はちょっと無理そうなので一旦終了。
海面の描画に使う頂点配列はに試した「視点の円周上に配置」が一番バランスがとれていると思った。
この方法なら最初に静的頂点、インデックスバッファを一度生成するだけなんでCPUとGPUの負担は軽いだろう。
ただ頂点数と間隔が要調整なのは言うまでもない。
前に上げたスクリーンショットのような見た目が自分の限界か。これ以上はちょっと無理そうなので一旦終了。
海面に使って玉砕した、タイルで描画するクラスをどうにか活かそうとして
次に取り組んだのはハイトフィールド。
フリーソフトで適当なハイトフィールドを作りとりあえず表示したらまずまずの見た目。
しかしその仕様上タイルのポッピング(ディティールが切り替わる際のちらつき)が目立つ。
木や岩なんかのオブジェクトを配置すればマシにはなるだろうが、どうもねぇ。
次に取り組んだのはハイトフィールド。
フリーソフトで適当なハイトフィールドを作りとりあえず表示したらまずまずの見た目。
しかしその仕様上タイルのポッピング(ディティールが切り替わる際のちらつき)が目立つ。
木や岩なんかのオブジェクトを配置すればマシにはなるだろうが、どうもねぇ。
じゃあミップマップにおけるトライリニアの如く、タイルのディティール(頂点の高さ)を補間すればいいんだろうか?と思い立ち
現在実装中。
考えられる最悪のケースでは地形が目の前で伸びたり凹んだりが予想されるが
こればかりは動かしてみないとなんとも言えない。
現在実装中。
考えられる最悪のケースでは地形が目の前で伸びたり凹んだりが予想されるが
こればかりは動かしてみないとなんとも言えない。
(2012/05/03)
別に何があった訳じゃないけれど
今月から気を引き締めて行こう・・
冗談とか多分書かないし文章も堅くなるかもしれないが、それはそれで。
更新がパタリと止まったらお察しください。
では。
冗談とか多分書かないし文章も堅くなるかもしれないが、それはそれで。
更新がパタリと止まったらお察しください。
では。
Doneリスト
- Makefileの文法、gccのコンパイル方法
プログラミング始めた時からIDEがあった身なので今まで知らなかったが
Qt Creatorにてライブラリ化した自前ルーチンを使用する際に必要となった。
(どうせならwindows以外の環境でも動かしたいという理由)
Qt Creatorにてライブラリ化した自前ルーチンを使用する際に必要となった。
(どうせならwindows以外の環境でも動かしたいという理由)
- QtにおけるHTTPリクエストの送受信
懲りずにまたtwitterクライアント作ろうとしてる。
今度は整ったGUIフレームワークあってか表示周りが割とサクサク進んでいる。
JSONの読み書きはまだアルファ版のver5.0からの様なのでとりあえず自前のJSONパーサを組み込む。
今度は整ったGUIフレームワークあってか表示周りが割とサクサク進んでいる。
JSONの読み書きはまだアルファ版のver5.0からの様なのでとりあえず自前のJSONパーサを組み込む。
添付ファイル