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

一晩おいたカレーが

おいしいとかいうわけですが、昨日今までで最高の出来に仕上がったカレーを一晩放置したところ、今日なべのふたを開けてみたら微妙にすっぱい香りがするわけですよ。さすが梅雨。一晩(といっても15時間は経ってるな)で腐りかけました。とりあえずもったい…

ゲームオブジェクト設計の変遷(つづきのつづき)

● 成熟期(かどうかは分らないけど現況) 3種類の主要な機能を司るクラスと、データ構造を定めているクラスとの継承関係を断ち切り、それぞれの継承ツリーを独立させた。断絶された部分はコンポジションによって接続を保っている。また、3種類の機能を司るク…

ゲームオブジェクト設計の変遷(つづき)

――仮にGhostのさらに基礎になる部分をEntityと名づけたとすれば、要求を満たすために多分こんな継承ツリーが生まれることだろう。 クモの巣だ。見た目も悪いが、今後の拡張の面からも不安がある。例えばもしEntityを継承するデータ構造がGhost以外にも現れた…

auto_ptrのconstについて考えていた

std::map とかやっていたところ、これをメンバに持つクラスのデストラクタでここに追加された要素を全部deleteしてあげるのを忘れてメモリリークがでてたのですよ。そこで、 std::map > としてみたわけですがこれがコンパイルできない。原因は、std::auto_pt…

ゲームオブジェクト設計の変遷(つづき)

システムにはキャラクタが上に乗ると別の場所へ移動するポータルが存在した。この位置や転送先はこれまではマップのデータに静的に書き込まれたものを展開していただけだったが、サーバからネットーワークを介して届く情報に基づいてその属性を決定する必要…

ゲームオブジェクト設計の変遷

● 黎明期 扱っているゲームオブジェクト(エンティティ)は人間型のキャラクターだけであり、それが最も小さな単位だったため、霊魂にたとえた名前をもつ基底クラスからすべてのエンティティクラスが派生している。ネットワークからデータを取得して動くのは…

結局vertualなデストラクタを定義しておくのを忘れていて、それを基底クラスとしているクラスのメンバのスマートポインタのデストラクタが呼ばれなかったのが原因だった。それにしても分りずらかったよ。背中は寒いのに鼻水止まらないのに汗かくんだよな…も…

ちょうど洗濯物がたまり食料が尽きつつ天気が悪い日が続いている素晴らしいタイミングで勝手に扁桃腺を腫らして体調をくずしている、風邪をうつされたわけではなく自家製なところがまた情けない。頭がぼんやりして何もしなくても最初っから苦しいのでリファ…