Last update 2001/09/01

書き物


今となっては古い情報が多うございますが……

STL超入門

STLを使ってみようと思ったがよくわからなかった人向けの記事です。

VAFXImg入門

VAFXImgの入門ドキュメントです。是非読んでみてください。

VAFXImgリファレンス

結構強力でしょ? これでプラットフォーム非依存なんですよ!

オブジェクト指向と時間・空間

哲学とオブジェクト指向について考えてみました。間違いはあるかもしれませんが……

ゲームデザインを考える 第1回

第1回は考える前に終わりました(笑)

ゲームデザインを考える 第2回

また考える前に終わり。実技は次回から。

ゲームデザインを考える 第3回

今回は設計の素材となる企画。

Schemeを作ろう 第1回

ゲームの汎用スクリプト処理系を作る話。

Schemeを作ろう 第2回

だいぶインタプリタらしくなってきた。

Schemeを作ろう 第3回

前回省略した「継続」の話。

Schemeを作ろう 第4回

VismDLLを使って対話アプリケーションを作るには?

Schemeを作ろう 第5回

VismDLLを使ってオブジェクトブラウザを作るには?

Schemeを作ろう 第6回

VAFXとVismの連携・理論編その1

Schemeを作ろう 第7回

VAFXとVismの連携・理論編その2

Schemeを作ろう 第8回

VAFXとVismの連携・実践編

STL周辺情報集

あなたの情報をお待ちしています。(02/06)

iostreamの拡張

std::iostreamの拡張の実験です。(09/23)

PNG/MNGを使ってみる

ウワサのPNG・MNGを透過的にゲームに導入してみる話。(09/23)

論理レイアウト

TeXのレイアウトシステムについて。(10/07)


 

プロフィール

ときどきこっそり更新。


僭越ながら自己紹介をば。投げやりですが。

平山直之/白浜青雪

生年月日
S48/04/11
出身校
早稲田大学第一文学部卒(6年を要す)
職業
プログラマ(ゲーム)
使える言語
C++/C
LISP(scheme)
(Object)Pascal
perl/sed/awk
BASIC
アセンブラ
実際に経験があるのはこんなものかな?
結構言語オタクなので頭でだけ知ってるものは多数。
語らせるとウルサいこと
バスケ・サッカーの戦術(トラウマのせい)
漫画・ゲームの評論
他のアトリビュート
著書があるがウソ書いちゃったので忘れたい。

プログラマ的生い立ち

小学生のころ

合理主義が周囲のものどもに受け入れられなかったらしく、結構いじめられた。今にして思えばいじめられて当然だが。

剣道と野球をやってた。どっちもあまりまじめにはやってない。

小学生の頃はパソピア/FM-7で星の数ほどちょっとしたゲームを作って遊んでいた。ベーマガに投稿して最年少記録を取ろうなどと思っていたが、カセットテープを封筒につめるのが面倒で断念した。

記憶に残るゲーム

★は自分がものを考えるときに影響の大きいゲーム

マーズパニック(パソピア)
スタートレック(パソピア)
★ラビリンス(FM-7:ログインに載ってた奴)
ぐっちゃんばんく(FM-7:Oh! FMのダンプリスト打ち込んだ)
★Wizardry(FM-7)
ドラゴンスレイヤー(FM-7)
ハイドライド(FM-7)
マリオブラザース(ファミコン)
ファミスタ(ファミコン)
スターフォース(ファミコン)
ドルアーガの塔(ファミコン)

中学生のころ

中学生のときは、TRPGを結構アレしていたが、グループSNE系のアレさ加減に結構失望して高校に入ってからはほとんどしなくなっていた。そんな感じだったもんで、コンピュータRPGのアレさ加減にも結構反発してて、俺がCOOLなコンピュータRPGを作ってやるとか思ってそれなりにしこしこやってた。

とりあえずひらがな・漢字が出ないと格好悪いな(私の使っていたFM-7には漢字ROMさえも標準ではついてこなかった)とか思ってアセンブラでひらがな表示ルーチンを作ったりしていた。

知っている人は知っているはずだが、FM-7はデュアルCPUという設計を採用しており、6809を2つ積んでいた。画面表示は普通の方法ではアクセスできない裏CPUの担当になっており、BIOS経由のビットマップのPUTを行う方法ではスピードに限界があった。ひらがなで言うと、FM-8のテキスト表示速度くらいにしかならなかった。

当然のごとく、Oh! FMを読みながら気合で裏CPUにアクセスするルーチン(なんとかウィンドウだかなんとかバスだかなんとかポートだかいう128バイトのI/Oポートからコードを少しずつ転送する)をアセンブラ(なんとアートディンク製)で組み、なんとか目的は達成した。スピードもBIOS経由とは比較にならないものだった。

さすがにアセンブラでプログラム全部を作る気はしなかったので、BASICと組み合わせて作るつもりだったのだが、組み合わせるとどうもおかしいところでハングするのだ。再現性もない。結局そのバグが取れなくて、このルーチンを使うのは断念した。

今にして思えば、裏技で変なポートを使うルーチンがBASICと組み合わせてちゃんと動く保証などあるわけがないのである。戦術的な能力はあっても戦略的な能力がない辺り、さすがは子供と言わざるを得ない。

部活は3年間バスケ。

記憶に残るゲーム

ザナドゥ(FM-7:私はあまり好きではないが友人がウチでずっとやってた)
Might&Magic(別の意味で:FM-7版出すとか言っといて77AV専用にしやがった!)
★大戦略(FM-7)
マクロス(ファミコン)
忍者じゃじゃじゃじゃじゃじゃじゃじゃ丸君(ファミコン)
ファイナルファンタジーII(ファミコン:受験前日にやってた)

あんまし覚えてねえ。

高校生のころ

コンピュータ暗黒時代。生産的なことはほとんどしていない。ずっとバスケばっかりしてた。

一応弟が98買ったんでエロゲーとかはしてた。

記憶に残るゲーム

AD&D プールオブレイディアンス(PC-98:なぜかサザンの曲とセットで)
WizardryV(PC-98)
新Wizardry Bane of the Cosmic Forge(PC-98)
きゃんきゃんバニーシリーズ(PC-98)
ドラゴンナイトII(PC-98)
同級生(PC-98)
満開電飾(PC-98:今でも続いてるらしいネ)
ドラクエIV(ファミコン)
★ファイアーエンブレム(ファミコン)
★いただきストリート(ファミコン)

大学生のころ

高校の最後の春休み辺り、することがなくなったのでまたプログラミングを始めた。今度はCから。とある会社でバイトして割と自由だったのでいろいろ研究したりしてみたら、TeXだとかsedだとかによるテキスト処理とかが面白くなってきてどんどんハマっていった。1年目の最後辺りはUNIXコンソール用のテキストエディタ(curses使ったり使わなかったり)とか作ってた。

なんか精神的に病んでて1年目は1週間も大学行かなかった。けどそのお陰でかなり成長したのでその時間は無駄ではなかったと思う(とは言えものすごい馬鹿やらかして落ち込むこともときどきあるけど、まあそれはそれ)。

2年目以降は割とだらだらしながらプログラミングしたりバイトしたり本書いたり遊んだりしてた。プログラミング上の主な研究テーマはオブジェクト指向を用いたテキストエディタとLISPのインタプリタ(emacsの影響大)の制作だったが、変な友達に変な影響受けたりしていつのまにかゲーム作ることに変わってた。彼がいなかったらいまだにそーゆーの作ってたりしてたかもしれない。それも悪くないと思うけど。

学祭で使うために98でスプライトシステムを作ったりはしたけど、ゲームプログラミング自体そんなにしてなかったのでそれほど役には立たなかった。

オブジェクト指向でプログラミングするようにしていると、哲学の授業がとても楽しく感じられる。哲学者の言うことって本当にもうオブジェクト指向といちいち関係あるから。オブジェクト指向設計ですべきことは、コンピュータでどう処理するかを考えることではなくて、ある観点から見たモノの本質を見極めることだから、当然と言えば当然かも。

そういう感じで、一般的なゲームプログラマーとはちょっと普通と違う道を通ってきた。

卒業間際に大学の偉大な先輩Kastle氏にHELLHOUND移植の許可をもらって、DirectX環境に移植してみた。X68000のエミュレートはそれなりに大変だったけど、力技で結構動くのは凄い。

前にやってたようなツールとか言語系のプログラミングでは、「戦術より戦略」てのは常識だったのに、インターネットなんかを見回したりするとみんな(特にゲームプログラマ)アセンブラレベルでどうこう言っているみたいなんで、違和感を感じてた。HELLHOUNDを移植してからは現実として体感できたので、特に。

現在必要な戦術的な最適化は、極論を言えばメモリアクセスをI/Oの一種と考えることだけ。メモリに触るくらいなら掛け算したほうがいいくらい(ちょっと大袈裟)。クロック数がどうとかパイプラインがどうとかMMXがどうとか、CPU屋に躍らされてるだけで基本的に考えるだけムダ。そういう最適化はメモリアクセスをなんとかしてからするようにしよう。覚えておくと得するよ。もちろん、アルゴリズム的な最適化とか、特殊ハードの利用みたいな戦略的な最適化は別だけど。

どっちにしても最適化なんてある意味全てムダなんで、若いプログラマはもっと本質的なところに目をむけるようにしよう。後で得するよ。

卒論はちょっと面白かった。成果はこのホームページにある通り。

就職活動のまねごとのようなことをしたときには、HELLHOUNDを使わせてもらった(もちろん移植しただけということはきちんと言って)。私としては単に移植しただけのHELLHOUNDよりオブジェクト指向で組んだLISPのインタプリタの方がプログラマ的にはかっこいいと思ってるんだけど、見た目がとにかく地味なので仕方ない(笑)。

記憶に残るゲーム

スーパーフォーメーションサッカー(SFC)
ファイナルファンタジーV(SFC)
タクティクス・オウガ(SFC)
★ときめきメモリアル(プレステ)
★アーマード・コア(プレステ)
HELLHOUND(X68000、Windows)
★ギルド梁山泊(Windows)
ストリートファイター ZERO2(アーケード、プレステ、サターン)
ストリートファイターIII(アーケード)

その後

ネットでいろいろ発表するも、肝心の本業はなかなかうまくゆかず。やれやれ。

VAFXとVismを組み合わせて、X-BASICのように気軽に色々試せる環境を作れないかなあ、と漠然と考えている。

記憶に残るゲーム

ギレンの野望(サターン)
SDガンダム G GENERATION(プレステ)
ゼルダの伝説 時のオカリナ(N64)
ストリートファイター ZERO3(アーケード、プレステ)
★幻想水滸伝2(プレステ)
実況ウィニングイレブン3(プレステ)
ストリートファイターIII 3rdStrike(アーケード)
★ファーストクイーン ザ・ニューワールド(Windows95)
★実況パワフルプロ野球 '99開幕版(プレステ)

てなところで。ここに挙げたゲーム好きな人は人生相談室で話題をふってください。しっぽふって喜びます。特にパソピアのマーズパニック。


(C) 1999 Naoyuki Hirayama. All rights reserved.