Programming
http://d.hatena.ne.jp/m107/20050528/1117283017 なんか遅いらしい。せっかく今日試してみようと思ってたのにーちょっとublas::vectorのドキュメントを眺めてると、 テンプレート引数にアロケータを渡すようになってて デフォルトではstd::vectorを使うよう…
http://sowwa.blog4.fc2.com/blog-entry-36.html シンプルかつ必要十分な機能のLuaラッパー。 C++クラスとのbindはlunaを使えばいいだろう。 何気に初期化のところのfunctorの使い方に関心。 漏れの知能では思いつきもしなかった。
http://d.hatena.ne.jp/m107/20050526/ で知った。 http://www.page.sannet.ne.jp/d_takahashi/boost/ublas/index.html クォータニオンクラスがあるのは知ってたけど行列やベクトルクラスがあるのは知らなかった。 自作のベクトルクラスでも不便はしていない…
http://d.hatena.ne.jp/a_little_bit/20050519 便乗させていただきまつ。こういう、アイテムデータと振る舞いをセットにして扱いたい場合、 Luaだとこういう風に書けると思う。 Items = { "Herb", "AbaTea"......} -- ヘルス回復用の薬草 Herb={ name = "薬…
toge氏の情報によると(http://d.hatena.ne.jp/toge/20050519) CharMapで指定するのは、FTGLに渡す文字列のコードではなく使用するフォントの文字コードだということらしい。 何故か漏れはFTGLが勝手に文字コード変換してくれるもんだと思い込んでいたぽい。…
keim_at_Si氏の語りが興味深いので連日便乗。 http://d.hatena.ne.jp/keim_at_Si/20050519/ ここで触れられているスクリプト仕様の、再利用性・汎用性のための一般化された設計は特殊化しづらい場合があるという問題。 漏れは今まで「汎用性の高い設計にしと…
http://d.hatena.ne.jp/keim_at_Si/20050518/に便乗。まずはkeim_at_Si氏の述べている、どこまでをスクリプトで記述するのかという問題。 スクリプト処理させると便利そうなもの ゲーム中の細かなパラメータ 敵のデータ・挙動 メニュー画面やステージ毎の処…
http://d.hatena.ne.jp/i-saint/20050515 WindowsでSJIS表示できるらしいとの情報。さっそく実験してみることに。FTGLのFTCharMap.hを読むと、SJISにも対応しているようなことが書かれている。 CharMapにエンコード方式を渡してやれば良いようだ。 ところが…
コンポーネント間の相互通信についても一つ困ったことが。衝突が検知された場合、こういう仮想関数へコールバックして欲しいわけですよ。 virtual void collisionDetected(Object& target) 衝突を知らされるオブジェクトとしては、衝突した相手が誰だか知り…
昨日の続き。コンポーネントベースの設計を実装するにあたってぶつかった問題点。 まず問題になったのが、コンポーネント間の情報交換。たとえばオブジェクトが視界内にあるかどうかの判定。これは視錐台との衝突判定とみなすことができるため、できれば衝突…
http://d.hatena.ne.jp/m107/20050512/1115912015 FTGLで日本語が表示できないのでは?という情報が気になって寝るに寝られず実験。 ビルドするのにFreeTypeやらglutやらが必要で思いのほか手間取ってしまった。なんとかデモプログラムをビルドして日本語表…
今まで悩みながらも満足の行く設計が出来たことがないんだよなぁ。ここで言うゲームオブジェクトとは、いわゆる古典的タスクシステムのタスクに相当する物で、プレイヤーや敵などのキャラクタであったり、画面を彩る派手なエフェクトであったり、特定の領域…
http://d.hatena.ne.jp/toge/20050508に便乗。 連想コンテナをソート済みのstd::vectorに置き換えたほうが効率が良い場合があるというお話。 以前Effective STLを立ち読み(_| ̄|○)した時に気になって試してみたのだけれど、思ったほどパフォーマンスが出…
ホーミングレーザーののアルゴリズム http://d.hatena.ne.jp/m107/20050505 std::vectorのパフォーマンスについての考察 その1 http://d.hatena.ne.jp/studiokingyo/20040719 その2 http://d.hatena.ne.jp/studiokingyo/20040916 MMX/SSEを使ったメモリコ…
単純コピーにはmemcpyを使ったほうが速いという話をよく聞くので、真偽を確かめるべく情報を集める。 http://www.cyborg.ne.jp/~xelf/developer/MemoryCopy.html http://d.hatena.ne.jp/kmt-t/20040629#p3 http://beautiful.homelinux.net/~sky-software/dia…
http://d.hatena.ne.jp/Cryolite/20040717 STL使いまくりストとしては非常に気になる。というかVCのSTLについて良い話しを聞いたことがないのだけれどw 7.1でもSTLがクソなのは相変わらずかぁ。いい加減STLPortに乗り換えようかなあ。 http://www.nantekott…
というわけで、Luaのラッパを製作中。 luabindやluaplusのような物は大袈裟すぎる気がするのでヘッダファイル読み込みだけで使えるようなシンプルな物を目指す。 そこで、他の方が公開されているラッパはどういう実装になっているのか調査。Luna(http://www.…
LuaからC++の値を直接いじいじしたい場合。 データをLua側に持たせておくと、C++からアクセスするにはスタックを操作しなければならないし、毎回Luaへデータの問い合わせを行うのはオーバーヘッドが大きそう。 というわけで大抵の場合、C++の値を操作するた…
衝突判定でちょっと困ったことに。 現在はhttp://d.hatena.ne.jp/halo_w2/20050401#p3 の構想で、すべてのオブジェクトの状態更新が終了した段階でまとめて衝突判定を行っている。オブジェクト状態更新の順番に依存しなくなるメリットがあるんだけど、いくつ…
Luaの欠点としてよく挙げられるのが、C側からのインターフェースの使いづらさ。いちいちスタックを弄くらなくてはならない面倒がある。テーブル内のメンバに触りたい場合など特に面倒くさい。そこで任意のluaコードを実行するlua_dostringを使って手抜きでき…
Luaでコメントや文字列リテラルに日本語を使ってみる実験。 やはりgccなどと同じくSHIFT-JISの'ソ'や'表'などの2バイト目がエスケープシーケンスとみなされてしまい、正常に解釈されない。これを回避するために"表示"を"\x95\\示"と書く必要が出てきちゃう。…
std::stringをキーにしたstd::mapとかをよく使うのだけど、比較・照合のコストが高い文字列の場合、二分木のコンテナだと無駄が多くてよろしくなさそう。 というわけで計算量をほぼO(1)に抑えることが出来るhash_mapやhash_setを使ってみようと思う。標準C++…
本日の_| ̄|○な失敗。 Luaのラッパクラスを作ろうと思い、LuaStateとそこから派生したLuaThreadというクラスを作った。LuaStateではデストラクタ中で後片付け関数close()を呼び出す。Luaのthreadに対してlua_closeを呼ぶと落ちるのでLuaThreadではこのclose…
boostの乱数ライブラリであるboost::randomは、Mersenne Twister法をはじめとする複数の乱数発生器と、ベルヌーイ分布や正規分布などの複数の乱数分布があり、それらを組み合わせて使うことが出来るスグレモノ。 だけど、プログラム中で複数の乱数分布を使お…
Luaスレッドで制御するオブジェクトの話。オブジェクト生成時にそのつどlua_newthread()でスレッドを作成していくと10個くらいオブジェクトを作ったところで何故か落ちてしまうことが判明。 最初にスレッドをドカッとプールに作り貯めておく方式であれば落…
Luaのスレッド(coroutine)を使ってオブジェクトを制御してみる。このcoroutine、まさにゲームにうってつけの超便利な機能。coroutineがいったいどんなもので、どんな風に便利なのかは下記URLを参考に。 http://www.radiumsoftware.com/0303.html#030329…
toge氏の日誌(id:toge:20050420)を見て漏れ漏れもということで後回しにしていたARB_vertex_buffer_objectを試してみることに。 OpenGLではこういった拡張機能を使用する場合、使用できる拡張のリストを取得して目的の拡張が使えるのかどうかを調べ、必要な関…
ゲーム中オブジェクトのパラメータ設定や制御をできるように。楽しくなってきた。こいつは使いこなせればかなり使えそう。 最初は奇妙に感じたスタック操作にも慣れてきた。とはいえかなり面倒くさいので理解したらラッパを作ろう。微妙に気になるユーザーデ…
前から気になっていた組み込み言語Luaを弄くりまわしてみる。下のサイトを参考にコネコネと。とりあえずLuaから設定を弄れるようにしてみた。 LuaからCの関数を呼ぶのは簡単なのに、逆をやろうとすると大変。データの受け渡しにいちいちスタックを弄るのはと…
キタ━━━(゜∀゜)━( ゜∀)━( ゜)━( )━( )━(゜ )━(∀゜ )━(゜∀゜)━━━!!!!! 超定番本でついにメタプログラミングやBoostについて言及される! 日本語訳出るのはいつだろう。