2005-01-01から1年間の記事一覧

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

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

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

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

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

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

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

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

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

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

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

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

雨の降らせ方

ピーカンのお天気も悪くないんですけど、せっかく殺し合いをするならもっと禍禍しい天気のほうが雰囲気がでるんじゃないかと思うわけです。そんなわけで雷雨を表現したいなぁと思い至ったわけですが、3次元の空間内に雨を降らせるのは考えてみれば大変そう。…

多重継承したクラスの基底クラス型を指すポインタの意外な挙動

class X {};class Y {};class XY : public X, public Y {}; XY* orig = new XY(); ... X* xp = orig; 0040107C mov ecx,dword ptr [orig] 0040107F mov dword ptr [xp],ecx Y* yp = orig; 00401082 cmp dword ptr [orig],0 00401086 je test22+73h (401093h)…

視界内にいないPCにもメッセージを送りつけるいわゆるシャウトのようなものを実装するための数行の追加にほぼ一日がかかった。そもそものネットワークトポロジの基本的な部分が、お互いの情報を必要とするクライアント同士がローカルに寄り集まって情報交換…

音声の資源管理モジュールをつくるが、SEのみ。ストリーム再生とかBGMについてはまだサポートできていない。再生させること自体は1日くらいの作業だろうと思って放置しておいたのだが、考えてみれば当たり前のことだが、使うwavを全部メモリに読み込んでおく…

事の顛末

また何年か後にハードディスクが飛んだときのために記す。 秋葉原でThinkPad 560Eから取り出したものと思われるDTNA22110を発見。2Gで\2310。 560EはCDROMがないので、一度デスクトップに2.5inchを3.5inchへ変換するケーブルでも使って繋いで、CDROMの中身を…

お客様の声

いつも食料を買いに行ってる西友の入り口のところに、よくある「お客様の声」とタイトルがつけられた掲示板(本物の)が設置されていた。客が匿名でクレームを書いてポストにいれておくと、店側がそれに答えなどを書いて貼り出すという仕組みになっているや…

サーバーにしてたノートパソコン(のハードディスク)が逝きました。

昔のシンクパッドだし、ハードディスクも昔の低容量のIBMだから丈夫だしなんとかなるだろうと思ってたけどさすがに永遠に寿命がつきないわけではなかった。とにかく1年近く24時間動きつづけて鯖公開の役目を全うしてくれた。ハードディスク以外の本体の方は…

続Garry's MOD

墓石君一号完成。 溶接部や使用部品をできるだけ抑え簡素ながらも剛性を備えた構造、それでいて落下防止のガイドを前後左右完備した高い安全性を備える。ノズルを足場と背もたれ部で噴出パワーを変えることで最小限の設置で力点のバランスを取った。これがエ…

Garry's MOD

ハーフライフ2のMODにGarry's MODというのがあるんですよ。これおもしろいです。Garry's MODというとコンバインとかレジスタンスの皆さんに面白い格好をさせたジオラマ作りみたいな使いかたばかりが目につきがちだけれども、実は実際に触ってみるとしょっぱ…

a bunch of monkeys

http://www.screenhead.com/funny/dance_monkeys_dance.swf http://www.ernestcline.com/spokenword/dance.htm 猿どもには意識の存在という呪いがかけられている。その呪い故、猿どもは恐れる。猿どもは心配する。猿どもはあらゆることについて心配する。そ…

やっぱり

http://urakata.cool.ne.jp/blog/archives/2005/02/index.html ここの「ただの日記3」にかかれているとおり、やっぱり相当具体的でない限りは指針を書き出すのは絶対よくないと思った。(2/28の日記のことね。)目的が半分達成されてしまう。結局は束縛にしか…

近所の西武の食品売り場の棚から

http://www.kewpie.co.jp/products/pro_img/pasta_10.jpg これ、なくなっちゃった…多分自分しか買ってなかったから棚卸で整理されてしまったんだと思うんだけど。愛用してたのですごく残念。3回分分けて使えるし、容器がチューブなんで保存もきくんですごい…

考えがまとまってきた

wireさんのお陰だわ。みんな結局従来どおりの消費活動をベースにした物の見方でしかMMOGを捉えないので、ゲームの中も外もなんだか下らない雰囲気になってるんだろう。という見方を自分はしたいらしい。

今後の予定

全体の流れとしては、普通にMMORPGをつくっていく方向へ軌道修正するよ。 ソロでも時間が潰せるように。けれどもBartleモデル(id:kataho:20040817参照)でいうところの修行者は相変わらずないがしろにさせてもらうよ。なのでソロのときは探検家として時間を潰…

D3DXIntersectTriは

なんか返してくる交点までの距離の値がおかしいんです。マニュアルの説明の英文もその項目だけ説明文がめちゃくちゃになってるし。なんなんだ。他は正常で距離の出力だけ距離じゃない何かの値をいっしょうけんめい返してくる。頑張ってるんだけど一本ネジが…

quad treeとかめんどいんで

物凄く広いマップデータのメッシュを処理しなくてはならないことになりました。(というかしました。)マップは広々としたランドスケープではなくて、多数の部屋の集合として作られるようで、部屋ごとに区切って描画したり地面や壁との衝突判定をする必要が…

仮想世界の死

http://www.geocities.jp/my_bloody_valentine_in_moe/この事件のことを知っておもしろいなと思ったのは、いたるところで「虐殺」という表現が使われてることでした。こういう派手目の表現を好んで使うこと自体は別にいいんですよ。良識と分別のある僕らには…

http://d.hatena.ne.jp/moraz/20050119#p2にて発見 http://www.kokusen.go.jp/t_box/data/t_result0501.html オンラインゲームに関して、「規約違反行為をする利用者が多く、公平性が阻害されている」、「ゲームの運営業者は規約違反行為をしている利用者を…

シャドウマップじゃなくてライトマップ

画像の左上のようなテクスチャを2枚目のテクスチャにして、Modulate2xで合成するとこんな感じになります。#7F7F7Fより明るいの色はライトになって暗い色は影になります。Modulate2xは便利です。Modulate4xだともっと強い照明を表現できます。DirectXのサンプ…

結局のところ

http://home.att.ne.jp/gold/uo/uo/books/book_02.htm http://home.att.ne.jp/gold/uo/uo/books/book_13.htm UOの初期にあったらしいアナーキズムによる理想社会は崩壊してしまったとされるけれども、それはどうしてだったのだろう?実際には性悪な人々に性…

エピクテートス曰く「子供を愛撫しながら、君は心の中でこういうべきである。もしかすると明日お前は死んでしまうかもしれないと。」そんなことは不吉だ!「いや、少しも不吉ではない」と彼はいった。「ある自然事を意味するにすぎないのだ。さもなければ穀…

つづき。新しいゲーム世界にやってきては、個人的な不快感を基準に善悪の基準を定めようとする人達は気が付いていないのではないだろうか。彼等のゲーム世界は、彼等の来る前からそこにあったし、彼等がログインしていない時間や、彼等がその世界に飽きて他…

DirectX8のCopyRectはDirectX9でどこへ行ったのか、ここに記す。GetRenderTargetDataでPOOL_DEFAULTからPOOL_SYSTEMMEMへ。UpdateSurface、UpdateTextureでその逆を。