DIARY 2003
log [ 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | latest ]
2003/1/07 ヽ(`Д´)ノ
また、ブレーカーが落ちたのでブチ切れてUPS(無停電電源装置)を注文しました。
うぇーん。これ書いてるそばからまた落ちるし……。 家の増築で工事のおっちゃん達、電気使いまくって下さります(´д`;)
Programing > Book > リファクタリング
この本凄過ぎます。目から滝のように鱗が落ちました。 何故今まで読まなかったのか? 読んでいないプログラマは読むべきです。 特にソースを公開しているプログラマはこれを読み、 糞汚いソースはすぐに窓から投げ捨て、保守性のある美しいソースを広めるべきです。
今のところ、6章まで読みました。 なんつーか、この一時変数を減らしたり、複雑な部分をできるだけ関数化したり、 関数の引数を弄らないようにするのって、極端に推し進めると関数型言語マンセーになりませんか? 一時変数等による副作用を極力抑える方向性は、関数型の参照透明性にも通じるような。 数学の理論実現のアプローチから関数型に行くのもいいけれど、 実用的効率的なプログラム手法から関数型に辿り着くことも十分できるのではないかと思わせます。
NotePC
ま た 液 晶 の 足 が 折 れ ま し た ヽ(`Д´)ノ 前回の修理から4ヶ月もたっていませんです。 今回、破損したのはまさに1年半前に修理した部分。 とりあえず、部品さえもらえれば自分でもドライバー一本で修復可能な模様。 DELLに問い合わせて、部品だけ送ってもらえないかなあ。
2003/1/20 斑鳩
Game > 斑鳩
GC版斑鳩入手。プレイは真コントラをクリアしてから……(どんどん貯まって行くー)。
programing > Game Engine > Script
今やってる「顔!顔!顔!」で、 スクリプトエンジン作り直している余裕がないもので、敵のスクリプトなんかは簡単な記述しかできないんです。 それでは困るので、perlで敵のスクリプトを吐き出してみたらエラく制御が楽。 下手な自作スクリプトよりよほど自由な表現ができる罠。 意外とどうにでもなるものです……。
programing > DirectSound
ちょっとハマることがあったんで、これは書いてwebに残しておかなくてはならない。
今頃になって、DirectSoundのストリーミングで謎な挙動が発生。 メインの開発環境(WindowsXP)で、BGM用のストリーミングとstaticな効果音を同時に鳴らすと、 BGMが速く再生されて音がおかしくなるというもの。
以前は上手くいっていたし、サブ開発環境のノートPC(Windows2000)でも問題ないので変だと思っていたら、 少し前にインストールした音源のドライバがどうも怪しい。インストール前は正常だった気もする。 で、ネットで調べてみると、いくつか似たような現象を発見しました。 BBXのこれ とか、 とある方の日記のこれ とか、 さる方の日記の9月27日のこれ とか、 ある方の日記の6月24日のこれ と同じ現象の模様。有名なバグですか?
デバッグの結果、上記とほぼ同様、 ストリーミングバッファの方にイベントを設定したはずなのに、 他のバッファのイベントも飛んできてしまうという現象を確認しました。 (ストリーミングバッファを長めに設定してみると、すぐ確認できました。 正常動作なら、設定した時間ごとにしかイベントがこないはずです。 しかし、実際は関係ないはずの効果音がなる度にバカスカとイベントが飛んできやがってくれやがります。) 他の環境では正常に動くことからも、大元の原因はドライバでしょう。
本来なら「うんこドライバは使わないで下さい」と説明書に書いて終わりなのですが、 うちの開発環境で起こりますし、何せ Windows Media Player は回避している (Media Playerとテストアプリを同時に鳴らすと、テストアプリのみがおかしくなるため) ようですし、これは手を打たないわけにはいきません。 で、解決策ですが、
- IDirectSoundNotifyを使わずに、タイマーで逐一読み込む(DirectX5以前の手法かな?)
- イベントがおかしな位置で呼ばれていたら無視する
- いっそのこと、効果音はDirectSoundを使わずにwavOut系のAPIで……
などと考えているところで、 とあるところの2002年9月8日の記事 に解決策を発見ヽ( ´ー`)ノと思いきや、 やはり根本的解決でないので、たまにおかしくなるっぽい。駄目。 仕方なく、DirectX3SDKのサンプル(こちらは正常動作を確認済み)でやっている手法 (=マルチメディアタイマーで定期的に読み込む)方法で行きます。 昔はこれで上手くいっていたのですからまあ、問題ないでしょう。
2003/2/20 訓練
ある小学校で「変質者が構内に入ったことを想定した訓練」が実地されたという。 変質者に扮した先生(だったか?)がわめき散らしながら校舎を蹂躙、 それを地震の訓練のように机の下で見守る児童。異様な風景でした。 ニュースでやってて、嗚呼そんな時代なのかと。
そのうちエイリアンに対(以下ry
Game > 真コントラ
いまだにSクリアできません。泣きそうです。 4面まで楽に突破後、5面のランスの火の玉が交わしきれずに死ぬこと多し。 ランクAとランクSとの間のこの愕然とした難易度の差は一体……。
Game > GameBodyAdvance SP
購入された方にお願いして触らさせていただきました。 で、ファーストインプレッション。
- バックライトで、画面が見やすい
- 音が増幅されてて変(普段聞こえないノイズまで聞こえるのが痛い)
- LRが押しづらい
音に関しては好みがあると思います。 PCMオンリーなら、アレは悪くないかもしれませんが、PSGも聞くので×。 はっきり言って、PSGだけ見れば音質はGBの初代が一番いいのではないかと。
結論。旧型にバックライトつければSP(゚听)イラネ
Unix
crontab -e と間違えて crontab -r やっちまいました(´д`;) Yes/Noぐらい聞いてほすぃ。こんなの、絶対一度は間違えるっつーの!! /var/cron/tabs/root のデフォルトは /usr/src/etc/crontab にあった(@OpenBSD)のでよし。
2003/3/23 まだ眠いけど
2時起きしてしまったので、更新。
Flash
学校のサークルの方でFlashを導入したとかで、最近流行気味。 で、 一番最初に作られた作品『ボシカテイ・ザ・フラッシュ』 があるんですが……謎。ジョントラボルタ、マンセー!?
こんな調子で今年もまた、新入生歓迎ムービーならぬ、 Flashアニメーションを作ってます。 今回はこちらの都合もあり、自分は編集にはほとんど関わってません、 が、昨年の 2002年度部紹介ビデオ『テクニカル番長』 の監督さんが、また監督やってられるのでこうご期待、といかその前に完成するんだか微妙。
Programing > Flash
Flash見てたら、うらやましすぎてイヤになります。 こうなったら、ゲーム用のFlashエンジン作って、 画面デザインやオブジェクトの動きなんかはデザイナさんに丸投げするしか(ぉぃ
Game > Unlimited SaGa
買いました(中古2000円(ぉぃ))。文章が全くまとまらなかったので箇条書きにします。
- 最初のキャラ選択のセリフとデザイナーズノートを見てハズレを引いたかと思いました。
- 河津ファンなら買いかなと。 むしろサガシリーズが好きで、今でもGB版遊んでます、っていう人には余りお勧めできません。
- 前作(?)であるWildCard(WanderSwan)が「カードゲーム」とすると、 USagaは「ボードゲーム」。
- 初プレイだとまずわからないという宝箱の開け方は、WildCardで予習済みなので全く問題なし。
- まあ、説明書よんでもわからない、とか言われてますが、確かに実際にプレイしないとわからんです。 いや、人によってはプレイしてもわからないです。多分。 簡単な日本語の説明書しかついていない海外製のボードゲームを遊んでいると思えば、まあ。 システムを味わう(理解していく)ゲームだと思うので余計に燃えると言えば燃えます。
- やれば、やるほど、プレイヤー側が成長していくゲーム。 だんだんと効率のよい方法が見えてくる。クリアすればするほど面白くなってきます。スルメゲー。
- 微妙に全体のテンポが悪い。アクションゲームばかりやっていたせい?
- 今回、何よりも問題点として一番気になるのはローディングでした。 なんつーか、全体のテンポが悪いのをさらに拍車を掛けて悪くしてる気がします。
- 戦闘に入るたび、ステータス画面開くたび、何かするたびにローディング。 SFCの磨訶磨訶どころじゃない。 それと、ロード音がうるさくてたまりません(PS2ってうるさいんだね……)。
- CD-ROM系のRPGだから当たり前言われればそれまでかも。 ハードディスクに対応しているようなので、安ければほしいところなんですが。
- この内容なら、携帯(GBA)で出してほしかった……。
- ローディングなし、非大作思考で作ればこんなに面白いゲームはないのに……。 WildCardがあるんだから、不可能ではないはず。 SaGaとスクウェアの名前を背負ったばかりに……。
不満ばかり書いてますが、システムは面白いんでついついやってしまいます。 ああ、でもやっぱテンポ悪い。 なんとかならんのかなあ。せめて、ハードディスク欲しい。
結局、不満だらけ…。いや、ゲーム自体は面白いんですよ!!
2003/4/19 ThumbSenseマンセーヽ( ´ー`)ノ
ThumbSense にハマりました。 絵でも描かない限り、日常作業に差し支えなく使えます。 おかげ様で、今まで全く役に立たないと思っていたタッチパッドが生き返りました。 今のところ、ホイールボタンを押す機能がないことと、 タスク切り替え時にウインドウのイメージが表示されない(結局、重いから使わないのですが)こと以外は 全く問題なしです。 すばらしいソフトです。
最初は動いてくれなくて、実は、タッチパッドのドライバを入れ忘れてたというオチもあったり。 で、ドライバ入れてみて気づいたのですが、 「キーボード入力中にちょっとパッドに触れてしまって、あらぬところにカーソル飛んでしまう」、 というタッチパッド独特の不都合は、ドライバ側の調整で何とかなりますね。 よく、吹っ飛ぶ人は、ドライバだけでも入れておくとよいと思います。
Game > Unlimited SaGa
ええ、ローディングにブチ切れて買いましたよ、 PS2BBUnit。 もう、これだけのために。 やっぱり、製作者の意図したベストの環境でやりたいですもの。 ちなみに、届いたハードディスクを見たら、どう見てもIDEで(しかも、ATA66っぽいし)ビビリましたよ、ええ。
さて……これが、またサクサク動くんですわ。 即起動、セーブデータの読み込み書き込みも一瞬……。 いや、もう、ハードディスク必須ですよ。 これからのゲームは全てハードディスクに対応すべきです。 もう、ローディングが長いCDとかDVDは駄目、クソ、うんこ。
ローディングも気にならないですし、ゲームにも慣れてきましたし、 先日の感想のほとんどはどうでもよくなりました。 あえていうなら、というかやはり、というか「全体のテンポが悪い」ぐらいです (←でも、重要だなあ、これ)。
Programing > Lisp
Lisp で webサーバー作った人のインタビュー記事。 Lispうんぬんよりも、むしろこの人がスゴイ。
「Unixの時代は終わっているんですよ」とか「PCカルチャーじゃダメなんじゃないの?」とか アツイなあ。 Lisp使いの人って、こういう人が多い気がする。
Lispの話ですけど、動的オブジェクト指向ですか。 言語は性悪説的でなくてはならない、と思っている自分には、 受け入れ難いんですよね。 コンパイル時に静的に型が決定されていないと安心できないんですよ。 まあでも、実際にはそれだけでは、組めないのが現実なんですが……。 Delphi の as 演算子はよく使うし、ダウンキャストもするし……。 型推論で全部静的に解決!ってわけにはいかないですよねえ。 矛盾をかかえるよりかは、いっそのこと全部、型を動的に片付ける方がいいのかなあ。 でもなあ……。
あと、あれです。 Lisp使える人がめったにいないということをわかっていて、 メンテナンス性がうんぬんってのは、どうなんでしょうか。 確かにLisp使いは少ないけれど、いつの時代も必ずいる(50年後も)ってことなんですかね。
:(中略)
あー、Lispやりたくなってきた。(←Lispは信条に合わないというようなことをいいつつもこれか)
以下、参考リンク
- Practical Scheme 「普通のやつらの上を行け」なんかは刺激的でよいです。
- Lispに関するリンク
2003/6/13 『野菜生活』の飲みすぎにご注意下さい
おいしい野菜ジュースである『野菜生活』。
コップ一杯200g中に含まれる成分は、ビタミンA一日摂取量の170%。 自分は、1日にボトル1本分、930g 飲んでいます(いました)。 つまり 170 x 930 / 200 で、1日に必要な摂取量の790%とっていることになります。
……ビタミンA超過剰摂取!!その症状は?
頭痛、吐き気、寒気、不安、起きているのがつらい、手足がはれて痛む、 食欲がなくなる、体重減少、脱毛、かゆみ、肝臓や脾臓が大きくなる、骨 粗鬆症(骨がぽきぽき折れる)、口角亀裂・ 妊婦の場合生まれた子供に先天異常の危険性が高まる
ヽ(´Д`)ノ (д`ノ) ヽ( )ノ (ヽ`д) ヽ(`Д´)ノ
一ヶ月近くつづけていたわけで(ry
そもそも、コップ1杯ですでに過剰摂取ということに気づくべ(ry
Flash
学校の所属サークルの 2003年度部紹介ビデオ『IT殿下 電々丸』 が公開されている模様です。今回はFlashムービーです。
今回に関しては、自分は少ししか関わっておりません。キャストぐらいかな。 ちなみに、監督はいつもの人です。
2003/6/16 ★☆★☆驚愕!新事実!☆★☆★
怒首領蜂大往生、ケツイのBGMはMODなんですね。 しかも、ITとかXMとかS3Mとかでなく、ProTracker準拠のいわゆる.mod。 さらに、8Bit8chPCMで曲全部で2MBって、あんたいつの時代ですか、みたいな。
というわけで、サントラ買いました。 どうやら、一日で完売の模様です。 注文受付開始直後は、いきなりサーバー落ちてたみたいです。 2chで、新しいサーバーのリンク先を見つけてなければ買えてませんでした。 ありがとう。神に感謝。
2003/7/08 AstroJax
トイザラスでAstroJax買ってきました。 見ていると地味なのですが、やってみると分かる楽しさがあります。 現在は、スイッチというトリックを練習中。
宣伝では次世代ヨーヨーという謳い文句ですが、雑誌やアニメのタイアップがないため、 ヨーヨーやミニ四駆、ベイブレード等のようにまずブームにはなりえない気がします。 右に習えの日本文化が原因なのでしょうが、 そういうのは非常に口惜しいので、ここはあえて広めてみることに。 とりあえず、周囲の人間4人に布教成功。
Programing > Game Engine
現在のプロジェクトのゲームエンジンの設計がどうもまずい模様。 数年前に作った物を改造して使っていることもあり、中途半端なためか、 何を実現するにしても時間がかかってしまいます。
そもそもの原因は、何をするのしてもハードコードしなくてはならないことにあると思い、データ駆動する手法の参考資料( これとか、 これ。 ^C氏のサイトで発見)を読んでいたりします。 しかし、今回のプロジェクトのようなデザイナ主導の場合だと、 データ駆動では要求についていけません。
それで、細かい部分はスクリプトで制御するという方法を思いつきます。 スクリプトだと、『本体を再コンパイルせずに変更が可能』という最大の利点はあるものの、 その他は結局ハードコードと同じなんですよね。 細かい制御ができるような言語仕様にすると、プログラマしかスクリプトを書けなくなりますし……。
そして、最終的に行きつく先は、Flashのようなオーサリングツール的なものなのか、と言うことになります。 ゲームの仕様に合わせたゲームエンジンを作っておいて、 GUIでオブジェクトを作ることができるツールを用意し、細かいところはスクリプトで制御。 オブジェクトのデザインはプログラマ以外でも容易にできて、 ツールで制御できないようなこまかい挙動はスクリプタ(もしくは、プログラマ)が実装する。 ……手間はゲーム用のFlash(風)エンジンと、Flash(っぽい)開発環境を作るのと等価……余計時間がかかりそう……。
まあ、そんなの作ったら、単体で売れそうなんですが。Asciiの何とかツクールみたいに。 採用実績は、自社のゲームそのもの。
って、よく考えたら、いわゆる、洋ゲーだと本体にそのツールを付属しちゃってるんですね。 ユーザーが拡張用のMOD作れたりするわけで。 (UnrealTornament2003あたりだと、マップエディターやら、モデリング用にMAYAのFree版までついてきたりします)
Programing > Lisp
やっぱり、型が動的なのは気持ち悪くてしっくりきません。 通常だとコンパイル時に解消できるようなエラーが実行時に起こったりして、もう辛抱たまりません。 やはり、Lispはクソということで……。 (Lispというか、動的に型決定される言語、ということはSmallTalkも?)
2003/7/08 人力MATRIX
日テレのwebページで見られる欽ちゃんの仮装大賞第69回優勝作品「ピンポン」 がアツイです。
人力でオブジェクトの移動、カメラの視点変更、ロウテク感がたまりません。 CGだと大してすごさを感じない辺り、 デジタルの方が表現の幅が広がっているように見えて実は損をしているのではないか、 などと思えて来てしまう作品。
Programing > Game Engine
先日の結論は飛躍しすぎなので、頭を冷やして考え直してみないと。
今のプロジェクトでは、
- オブジェクトの移動アルゴリズムとアニメーションはハードコード
- 定数はスクリプトで外部
などという、誰が考えてもマズイ構成です。 今から再設計は時間がかかるので無理なのですが、 もし改善するとしたら、アニメーションと移動アルゴリズムを切り離して、 細かい制御が必要な部分は、自由度の高いスクリプトで記述できるようにして、 外部に追い出したいところです。
と、思いましたけれど、うねうねにょろにょろ多関節キャラなんかは、 動きとアニメーションとを切り離すのが難しいんですよね。どうしたものか。
悩んだ結果、全部が全部をデータ駆動にさせる必要は無くて、 複雑な部分はハードコードすればよいのかな、と。 割りきりが肝心かな、と。 というか、順を追っていかないといきなり完璧な物は無理。
Programing > C# Builder
Borland C# BuilderのPersonal版(無料利用可)がダウンロードできるようになっている模様です。 例のごとく、商用開発は不可のバージョンですが、評価にはよいかな。 (直接のダウンロードはftpからもできるみたい)
早速、ダウンロードして、実際に使ってみましたが、自分にはえらくしっくりきました。 一見、MSの開発環境かと見間違いますが、操作感はやはりBorlandのツールです。 Borland信者向けのツールということで間違いないです。
しかしながら、DelphiやC++Builderのころならともかく、 C#はMSからVS.NETという似たような開発環境が提供されています。 Borland信者以外が、これを使う利点はというと……。
2003/8/24 ブラスター
ルーターのログを見てると、数分ごとにポート135にアクセスが……。
今回のように、アップデートしようとしてつなぐと感染するようなケースは人事ではありません。 再インストールもままならないわけでして。
そんなわけで、ネットにつながずにアップデートする方法ですが、 「Windows Update カタログ」 を利用するとよいようです。 必要なアップデートファイルを個別にダウンロードできます。 この際だから、一通り落として、CDに焼いておこうかな。
Norton Internet Security
うーん、Sambaサーバーが見られない。 他のWindowsマシンのファイル共有は見ることができる。
いろいろ調べてみた結果、導入している Norton Internet Security(以下NIS)が、NETBIOSを遮断してくれているための模様。 他のWindowsマシンが見ることができるのは、NISで防がれていない NetBEUI を利用していたため。 Sambaは、TCPを利用するため NIS で防がれてしまった、と。
「インターネットゾーン制御」の「信頼」の部分に、 自分の属するサブネットを登録して無事Sambaを認識。
Programing
GuNMeN、Gan3等に使っているリプレイ用の再生ルーチンに壮大なバグ発見! うぁあぁあぁあぁめぁあぁあぉ。 今まで動いたいたのが不思議なくらいなんですが。
Programing > Gan3
敵配置と敵のパラメータをスクリプトで弄れる様にしておいて、 デザイナさんに渡して直接調整してもらうように。 分業できてなかなかよい感じ。
記述するのは複雑で汎用的なスクリプトではなく、 あくまで用途にあった簡易的なスクリプトなのがポイント。 こっちの方が、総合的に見て早いです。
2003/8/27 事故
実は一週間ほど前に車で事故ってました。後ろからの軽い追突。 車はほとんど傷が無いし、その時は大丈夫と思っていたら、 体の方にだんだんと症状が。
事故後、徐々に右腕、右手がしびれてきたので、接骨院で見てもらったところ、 首からきているとのこと。
それで、保険を効かせるために、 警察で物損事故を人身事故に変更してもらう必要もあって、 急遽、検査したり、診断書をもらってきたり、保険屋と話したり、 もちろん治療もしながらで、ここ1週間てんやわんや。
事故と無関係にして治療だけしていれば どんなに楽だったか、なんて思ってしまいます。 (実際のところ、事故によるものと自然発生の傷害とで治療方法が変わってくるし、 治療費も馬鹿にならないので、そうもいかない)
Programing > Gan3
リプレイに苦戦中。 ステージごとにリプレイを開始できるようにしなければいけない仕様なんですけど、 なかなか上手くいかないんです。 ステージ間がつながっているのが問題。 幸いにして、ステージ開始直後は他のオブジェクト(敵等)はない。 自機だけでもシリアライズする必要があるかな。
窓使いの憂鬱は憂鬱
- CtrlとCapsLockの入れ替えに AltIME を使っている。
- 窓使いの憂鬱 の方がカスタマイズが自在にできるらしい。乗り換えよう。
- (かなり前の話)AltIMEをアンインストールせず、 窓使いの憂鬱をインストールしてしまう。動かない。 その後、AltIMEをアンインストールするも、動かない。あきらめ
- (ついこの前)再挑戦。 AltIMEをアンインストールして、再起動せずに窓使いの憂鬱をインストール。 キーボードやマウスが全く効かなくなる。ログイン画面から操作不能。 修復インストールするも駄目。再インストール。
- 再インストール後、念のため外部操作できるようにVNCを入れておく。 今度は、AltIMEをいれずに、窓使いの憂鬱を先にインストール。動いた。
- ThumbSense と一緒に動かすと、動作が変。マウスボタンが押しっぱなしになる。
- 結局、AltIMEに戻る
- (´・ω・`)
ThumbSenseを入れていない家のデスクトップでは、 AltIMEでなく窓使いの憂鬱を使ってみてます。こちらは問題なし。
2003/9/9 RTS
最近、RTS(Real Time Strategy)に興味がありまして、 片っ端から洋ゲーの体験版をやってみてます。 面倒くさそう、難しそう、という理由で避けてきた分野でしたが、 やってみると見事にハマってしまいました。
気に入った大きな理由の1つに『インターフェースが洗練されていて、操作がしやすい』 ということがあります。 RTSに限らず、多くのゲームは、インターフェースで損をしている感があります。
次点で『チュートリアルがしっかりしている』ということです。 プレイしたゲームのほとんどが、初めてプレイする人も遊べるように、 作られているわけです。 そのシリーズの続編であるソフトにも、 チュートリアルがあったりするわけで。 遊び方をわかるように作るというのは、やはり大事かな、と。 チュートリアルはあくまでその手段の1つですけれど、 新しいゲームを作るならなおさらじゃないのかな、と。
そんなことがありまして、RTSの歴史を知りたいのですが、自分の中では、 『ポピュラス』、『パワーモンガー』あたりから 一気に『Age of Empire』辺りまで知識が飛んじゃってたり。 一度調べておきたいところ。
Programing > Gan3 > Script
ハードコードはもうイヤ。 時間がいくらあっても足りないです。
弾幕には興味がないのですが、 最近は、BulletMLやらLuaBullet辺りの動作記述系に興味が。 試しに組み込んでみてもいいんですけど、 問題はアニメーションとの同期なんですよね。
Programing > Gan3 > Replay
リプレイ実装完了。ステージごとにリプレイ可能。 結局、まともなシリアライズはせずに、以下の方法で対処。
- 主要なオブジェクトをステージごとに初期化
- 継続したデータは、以前のデータを記録(総経過タイム等)
- キー入力の記録用ストリームの位置の記録
今のところは問題なく動作。
ついでに、再生ルーチンに早送りやスロー、一時停止機能を付加。 早送りすると、ただでさえ速いゲームが物凄いスピードに。
Programing > Gan3 > TestPlay
初めての人にテストプレイしてもらって思ったのですが、 どうもこのゲームは初心者に優しくないみたい。 どうみても『真コントラ』的難易度、いわゆる憶えゲー。 いやまあ、憶えゲーを作ってるんですが。
2003/9/16 ボードゲーム
『 ボードゲーム天国(01号) 』 購入。
ゲームの本質はシステムだろうということで、 原点に戻って考えてみたいことも多々あるのです。 いくつかリプレイが載っているけど、ルール知らんのでわけわからんです。 購入のためのカタログには使えそう。
Game > RTS
対戦というものをやってみたくて、 たまたま来ていたIdaten氏とAOE2(Age of Empire 2)にて対戦。 開始直後に村の横に兵舎をたてられ、瞬殺。 研究室で必須科目となっているだけあって、さすが、 と思いきや常識らしい。あー、そーですか。
Programing > Language > D
int main() {
if (1) {
printf("a = true");
}
return 1;
}
このコンパイルが通った時点で、冷めました。
2003/9/20 帰郷してたtoyman氏に会う
いよいよ貫禄が増してました(体の)。
明日はわが身。
Programing > Language > C
toyman氏に、C言語でOOPっぽいことをやる方法を聞く。 メモリ配置が一致していれば、継承っぽいことも可能とか。 へー x 2。 確かにそうだけど、OOPLだと意識しないでよい話なので、 かなり懐疑的に思いました。 って、結局はマクロなんかで意識せずに使えるようにするんだろうから、別によいのか。
でも、RTTIないとつらくないっすか?C言語。 え?使わない?
2003/9/26 学祭1ヶ月前
Programing > 学祭ネタ
学祭向けのプログラムまで時間が無いので、 企画の方に明確な仕様を決めてもらいました。 プログラムのテストが十分でない状態なんで、 実際のパフォーマンスの話が曖昧なままなのが申し訳なかったです。
決めてもらったはいいけれど、やっぱり時間が足りないのは変わらないので、 (コンピュータサークルなのに)数少ないプログラマの1人である M.I.G.氏に応援を頼むことに。 フレームワークはこちらが作っておいて、重要な変換ルーチンはDLLで外部呼出しするようにすれば、 作業の分担が容易になりそう。 あわよくば、変換部は全て彼(以下略
Programing > Singleton
PImplってのを使うと、
- Singletonしながら、
- 「インターフェス部にprivateメンバ置くのが気持ち悪い」問題を解決しつつ
- privateなメンバを変えても、ヘッダをincludeしているところは、再コンパイルの必要なし
らしい。(最後のは、Delphiだと気にせんでいいけど。) Singletonでありながら、オブジェクト間の依存関係が減らせるのはよさげ。
Delphiでの例。こんな感じですか。 でも、面倒くさい……。 property の問題もあるし。 言語側のサポートがほしいところ(ないからこんなことやってんだけど)。
2003/9/28 あのね
Programing > CVS
WinCVSに「サブフォルダの内容も表示」という機能があることにようやく気づきました。 コンチクショー。
2003/11/05 このまま
webからでも編集できない限り、永久に更新しないところでしたが、 なんとか奮い起こして書くことに成功 > 日記のこと
このものぐさ加減をいかして、この際に『はてなDIARY』にでもなだれ込もう、 などと思ったりもしましたが、 それだとせっかくこの日記のシステム作ったのももったいないので、今回は見送りました。
学祭終了
晴天だったのと、太陽族とかいうバンドが来たおかげか、 ブースへの人の出入りはまずまず。 老若男女を問わず、楽しんでいってもらえたようで、その点ではよかったかな、と。
学祭ネタ > Graphion
今回はうちのゲームは出さずに、 サークル の企画に全面協力してました。
Graphionなる画像や動きを音に変換するソフトを作ってました。 『アクションシンセサイザー』とか、『音を楽しめ』とか、なにやらウソ臭い大げさな宣伝してたみたいですが、 ようは画像を音に変換するっていう企画なんです。
プログラム的には全然たいしたことやってないんですけど、出来上がったものを見ると これがまた、ハマる音がならせるんですわ。 細かいパラメータ調整してくれた方や、テストプレイしてくれた部員の皆様には感謝しないと。 (この辺の感覚は、ゲーム作りといっしょな気きがする……パラメータ調整でどうにでもなるという)
学祭ネタ > Graphion > Programing的なこと
やってることはというと、DirectShow(DirectX9a)でUSBカメラの画像をとりこんで、 画像解析して、適当な音のパラメータを取得して、DirectSound(ゲーム用のライブラリを流用したのでDirectX5相当) で既存の音ネタを周波数を変えたり、パンしたりして鳴らすだけ。 遅延を抑えるために、自力で波形合成なんてことはやってません(というか時間がなかったからだけど)
で、今回のプロジェクトのプログラム的な成功と言えば、 プログラマが都合よく二人いたので、上手く仕事を分担できたことです。
カメラからの取り込み部分と、音の発声部分は自分が作成したフレームワーク(=本体)が担当。 肝心の変換ルーチンはプラグインで可換可能で、その部分はもう一人のプログラマにお任せ。 変換前と変換後の画像をデュアルヘッド(!!)で全画面表示するという仕様が追加されたので、 その辺の画面への出力もプラグイン化して、普段からDirectGraphicsに慣れている彼にお任せ。 (というわけで画面出力はDirectX8相当?)
そういえば、スクリプト言語のLuaを採用してます。 データセーブ用のプロジェクトファイル(!!)やマクロ機能等に使ってます。 シンプルながら結構強力なのでビックリ。 関数宣言が無名関数に名前をバインディングするシンタックスシュガーだったり、 クロージャがあったりと、関数型言語っぽい(というかLisp?)のがアツイ。
学祭ネタ > BF1942 レース MOD
3日で学祭ネタ作れ命令の元に、FPS好きの部員によって作成された、BattleField1942のMODも展示してました。 空から戦車が降ってくる地帯があったり、 後半は寝不足な部長によって作成された意味不明MAPがあったり、難易度高すぎでした。無理。
レースMODにというかFPSにハマった小学生が、朝から晩まで展示用PCに張り付いてレースそっちのけで、 TK(Team Killer)しまくってたのはどうかと思いました。 わんぱくでもいい、たくましく育ってほしい。
とりあえず、MODはともかく、既存のゲームエンジンを利用して作るのもいいかもと、思ったり。 Halflife2のエンジンっていくらくらいするんだろー、 MODの商用利用ってありなのかなー、とか。 そういえば、ConterStrikeって単体で売ってますよね?勝手に売っていいのかな?駄目?
2003/11/15 チェインダイブがよい
Game > ChainDive
チェインダイブ(PS2)やってます。
アクションゲームにストーリーはあってもかまわないんです。 でも、アドベンチャーパートが長すぎたり、アクション中に急にビジュアルシーンに入るのはどうも……。 何度もやり直す時や、通して遊ぶ時にこうまで邪魔になるとは思いませんでした。 アクションは面白いんですよ。そんなわけだから、余計にもったいない。
適当に遊んでも(=新しい操作に慣れてなくても)楽しいところは非常によいです。 以前遊んだ、ガンバルキリー(ブーストコンボができるまで一週間)、罪と罰(まともに狙いながら移動できるまで1ヶ月)より、 圧倒的にとっつきやすく、慣れやすいです。
実は、スノーボードの面がかなり好きで、もう3倍ほど面が長けりゃ、なんて思ったり。 どうも自分は滑走系が好きなことを再確認。 Tribes2でも延々とスキーイングしてたこともあったくらいなんで…
そうれはそうと、これ、何本売れてるんだろ。
TV > 人間講座
NHK教育で放映中の人間講座。甲野善紀さんの「古の武術」に学ぶ がアツイです。 剣術とか手裏剣とかの技術見たさというよりは、甲野善紀という人とその人の振る舞いを見てる感じ。
自分流。理論と実践の両立。逆らわず自然の流れの一部とする。人は常に変わりつづける。学ぶことは多いです。
参考サイト: 松聲館
2003/11/20 一周
Game > ChainDive
とりあえず、一周。
勢いで、もう一周しようとしたけれど、デモで勢いをそがれてしまいました。 最初からやっても、結局やることが一緒なのも拍車を掛ける。うーん。
それでやはり、スノーボードの面をいつでも遊ぶには、セーブデータを残しておかねばならんのですかー。 ムフー。
Game > Evolution Snowboarding
実は、その後これを知ったものですから、 ChainDiveを続けるのか怪しくなってきたという代物。
滑走系 + アクションゲームということで、期待。 って、今年のはじめに出てるんですか。
海外だとGC版も出てるって何それ! 日本だとアクションゲームは売れないから? PS2版より、GC版ほすぃー。
Game > ESPGALUDA
で、エスプガルーダの基盤が富山に1枚もないのではないかという懸念が。
2003/12/14 師走
Game > Evolution Snowboarding
なんとか、GC版ゲット。 ローディング時間なし、処理落ちほとんどなしは素晴らしい。 PS2イラネ。
スポーツゲーム派生のアクションなためか、基本操作が激ムズ。 スポーツ系はプレイ経験がないんで新鮮でよいです。 やりごたえあります。 この感覚は、罪と罰やりはじめのころと同じ。
SLIPKNOTの曲にのりながら、ローディング気にせずガンガンリトライしてると、 時間がいつの間にか過ぎてて危険。
Game > Shantae(GBC)
Evolution Snowboarding と同時に購入。
vorc → fx2.0 → Shantae BGM という経由で、知りました。
GBCでここまで作ることが出来るんですね。 主人公や敵の動きがエロいし、 演出凝ってるし、なんか悔しいです (この辺はスクリーンショットだけだとわからない)。 ひそかに、ムチ系間合いアクションっぽいし。 ムキー!
で、実はGBC用なのに、GBA用にも調整されているのがイカします。 GBAにさすと、ちゃんと明るめの色になるんでプレイしやすかったりします。 GBAのゲームも見習ってほすぃ(TVとかモニタで見て、まともに見られるのは勘弁して)。
Game > Iridion2(GBA)
これも同時に購入。
ムービー( その1、 その2 )見て、オオッ!と思っていましたが・・・_| ̄|○
でも、BGMはよい
Game > ESPGALUDA
富山にも1枚はあったらしい。
ちょこっとしかやれなかったけど、圧倒的に難しいハズのケツイの方が面白い予感(´д`;) 時間操作はやっぱり、シューティングの鬼門な気がしまする。
2003/12/28 Ruby!
Programing > Ruby
Rubyが面白そう(半分は作者の思想が)なので、perlから移行中。
「お手軽なオブジェクト指向言語が欲しいなあ」とか, 「Perlの機能は便利だが,あの文法は耐えられない」とか, 「lisp系の言語の思想は嫌いじゃないけど,括弧だらけなのはいや. せめて数式は普通に書きたいし」などと思っている人には喜ばしい言語かもしれません.
まさに、今の自分のためのスクリプト言語だと思いました。
Programing > Lisp
<暴言> よく聞きやがれ、オープン・ソースのデベロッパーたち! Schemeベースのスクリプティング言語を作るのはやめろ!
ワロタ
Programing > Delphi
if aIndex in [Low(TestArray)..High(TestArray)] then hoge
というように、集合を配列の範囲チェックに使うのはやめましょう。 集合([a..b])は、0〜255までしか保持できないので、 TestArray が、割り当てられていない(nil)ときに、High(TestArray) で -1 が返ってきて、 ただしく判断されません。
ていうかハマりました・・・
log [ 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | latest ]