2005-03-01から1ヶ月間の記事一覧

タスクシステム タスク間の依存関係

ゲームでは、タスク実行に他のタスクの情報が必要な場合が多々ある。例えば、プレイヤーを追尾する誘導弾のタスクはプレイヤーの位置情報を知る必要がある。ただ、ここで誘導弾タスクにプレイヤータスクへの生ポインタを保有させるのは危険。プレイヤータス…

Scrapbook 1.5 preview release

待望のインポートエクスポート機能が追加。気づけばFirefoxのExtensionでAdblockと同じくらいお世話になってる。もうこれ無しではいられない。素晴らしい。 http://amb.vis.ne.jp/mozilla/forum.php?lang=ja

SDL_ConvertSurfaceについて注意

今回テクスチャの読み込みにはSDL_imageを使っている。対応しているフォーマットの画像ならばIMG_Load()一発で読み込めるという優れもの。透過色やα付きPNGにも対応。ところで、WEB上のSDL_Imageでテクスチャを読み込むサンプルではこういうコードをよく…

加算α爆発

バトルシティもどきでは爆発の表現にGL_POINTを加算合成したパーティクルを用いていたのだけれど、流石にこれだと大量に爆発を出すと重くなるので、ビルボードとテクスチャアニメーションの爆発を作ってみた。爆発アニメーションの表現には発色弾というツー…

ドラえもん新声優陣(id:higepon:20050331経由)

http://blog.livedoor.jp/insidears/archives/17569289.html ドラえもんの声にテラワロス。ジャイアンは微妙。無理に似せようとしている感じ。しずかちゃんは・・・とりあえずモチツケ。のび太とスネ夫は思ったほど違和感なかった。そういやジャイアン役の人…

BattleCity modoki on Linux

toge氏(id:toge:20050329)が拙作バトルシティもどきをLinuxにportしてくださったらしい。汚いソースを見られるのはちょっと恥ずいけど素直に感動。オープンソース万歳。今までIDEとデバッガを気に入ってVC使ってきたけれど、VCってテンプレートの対応があま…

â– 

ググってみたところ評判の良い本のようなので「ゲームプログラミングのための3Dグラフィックス数学」を注文してしまった。届くのが楽しみ。数学の勉強するなんて何年ぶりだろう。

タスクシステムと描画管理

タスクマネージャの実装についてid:a_little_bit:20050323氏がNested Classというテクニックを紹介されている。なるほどこんなテクニックもあるのか、凄い。というわけでタスクシステムと描画管理について考えてみる。 ここから完全にチラシの裏。 今のとこ…

納豆を一万回混ぜるとどうなるのか

http://portal.nifty.com/koneta05/03/28/01/ はてなブックマークの注目エントリーより。 本当に1万回混ぜてるのが凄い。とにかく凄い。感動した。

windef.hのバカヤローヽ(`Д´)ノ

C++標準ライブラリのstd::numeric_limits<>::maxを使おうとしたところ何故かコンパイルエラーが。 maxの定義を調べていると、windef.h内でこんなマクロが定義されていた。 #define max(a,b) (((a) > (b)) ? (a) : (b)) こいつか・・・こいつのせいでプリプロ…

欲しい書籍リスト

amazon.co.jpのギフト券を貰ったので、以前から欲しかった書籍を購入しようと画策。 やっぱりここはゲームプログラマーの必読本Gem Game Programming Gems (GAME PROGRAMMING GEMS SERIES)作者: Mark Deloura出版社/メーカー: Charles River Media発売日: 20…

glScalefのバカヤローヽ(`Д´)ノ

メタセコモデルのローダーを改良中。なんだけれど妙な問題にぶつかった。どうしてもモデルのシェーディングがおかしい。異常にハイライトがきつかったり暗すぎたり。法線の計算ルーチンがバグっているのかと思い見直してみるも問題ない様子。材質やライティ…

未来日記

なぜかサイトを立ててみた。今のところただのガラクタ置き場。

汎用的な衝突検知クラス

OpenGLの今まで書き散らしたコードを、適当にnamespaceで囲いつつクラス化してみる。こういう作業は楽しいもんですな。なるべく汎用的に使えそうなクラス設計を心がける。とりあえず衝突検知をクラス化して汎用的に使いまわせるようにしようという企て。衝突…

マイコーディングルール

// メンバ関数の実装部 boost::shared_ptr<CMudamuda> CMudamuda::DoMudamuda(int ora) { // と2行に分けて書いたりする/* /C++ではあまり使わないけど、このように、 * コメント分のアスタリスクの位置をそろえる */C++の場合、一つだけどうしても許せないのが・・・</cmudamuda>…

さよならコード戦士

http://www.metrowerks.co.jp/information/2005/info0323.html また一つ、デスクトップ向けの開発環境がお亡くなりになりました(´Д⊂ PowerPlantは素晴らしいオブジェクト指向フレームワークですたよ・・・

バキ

板垣先生、漏れの好きなキャラをかませ犬にすんのは止めてください(´・ω・`)

â– 

敵のAIを改良。プレイヤー、司令部を狙い撃ちするように。とりあえずうまく動いてるようではあるのでこれでFAか。しかしプレイしてみるとさらに難しくなった。なるべく敵と正面から撃ち合わないことか。地形に隠れて待ち伏せを多用するといいかも。ソース…

変数の範囲チェック

ある変数の取れる値を制限したい場合がある。 int x; // xにいろんな処理 // xの値を0 〜 255に制限 if( x > 255 ) x = 255; if x < 0 ) x = 0;いちいち上のようなコードを書くのはくたびれるので、こんなマクロを用意しておくと役立つ #define RANGE_CHECK(…

SDLは自分でビルドしよう

[id:halo_w2:20050313]で悩んだSDLをVC7.1で使う場合のdll問題。公式で配布されてるSDLのdllはVC7.1だと強制的にmsvcrt71.dll、msvcp71.dllとリンクされてしまう。プログラムを配布する場合には1MB近い2つのdllを一緒に配布しなければならない。 /MTオプシ…

自分のコードである証

http://slashdot.jp/article.pl?sid=05/03/21/0947253&topic=58 なかなか面白い。 static char* znn = "kinokoru";みたいな文字列をstaticで埋め込んでおいて、バイナリエディタで覗くと(以下略 とか if( (znn[1] % 5) != 0 ) throw std::runtime_error("残…

â– 

やったこと ゲーム中のポーズができるようになった ゲームウィンドウを裏に回したり最小化した際に自動的にポーズ状態になるようにした タイトル画面のCONTINUEを使えるように(今まではNEW GAMEと変わらなかった^^;) そして正式版までに超えないといか…

â– 

今までバトルシティもどきでは、グラフィックスを描くのにglVertex2f()で一つ一つ座標指定して表示していたのだけれど、自機、敵各4種類とアイテム6種類をこれで作るのはさすがに骨が折れるので、メタセコでモデリングしたデータを読み込めるようにした。…

荒木飛呂彦 STEEL BALL RUNとうとう再開

http://atmarkjojo.org/archives/2005/2005-03-18-000749.html 喜び勇んで買いに出かけたのだが、近所の書店ではどこもウルトラジャンプを扱っていない・・・半年間待った挙句に読み逃したらどうしよう _| ̄|○

議会制思考ルーチン

http://user.ecc.u-tokyo.ac.jp/~s31552/wp/diet/ 面白いページを発見。大変興味深く読ませてもらった。思考ルーチンに議会制を取り入れるなんて考えたことも無かった。 この思考ルーチンを組み込んだゲームも公開されていて、これでもかってほどの弾幕をヒ…

ループ内でメンバ変数を用いてはいけない件について

C++プログラマーなら常識?なことだけど、漏れはつい最近まで知りませんですた(汗 メンバ変数だけでなくグローバル変数も使わないほうがいいのか。 詳しく解説しているページ http://www.emit.jp/prog/prog_opt0.html

Boostってすごくね?

各所で話題のkeyword:Boostを試してみる。 とりあえず参照カウント付きスマートポインタであるshared_ptrだけのためでも使う価値はある。オブジェクトのライフタイムを気にしなくて言いというのは楽だ。std::auto_ptrはSTLのコンテナに対応していない弱点が…

描画順を管理する描画システムを妄想してみる。

以下完全にチラシの裏。 まず、ゲーム中で用いられる。地形やキャラクター、FPS表示、スコア表示などはすべてCGameObjectとかから派生させておいて、毎フレーム呼ばれるCGameObject::update()あたりから mGameFrame->queueDraw( 0x0001 ); // プライオリティ…

â– 

ClearType向けフォントMS *ゴシック Ex keyword:ClearTypeで存在を知って使ってみたところ幸せになれますた。シャープの開発した液晶用フォントを改造したものなのかー。これの配布は法的にヤバいらしいのでここにリンクは掲載しないことにしよう。ググって…

バトルなシティもどき

だいぶゲームらしくなってきた。 敵のバリエーションの実装(速い敵、固い敵etc) スコアを実装 ステージ切り替え時の画面を実装 出現時の無敵時間を実装 アイテムを実装 本家の「森」をどう実装すべきか悩む。半透明ポリ重ねただけじゃそれっぽくないしねえ…