更新履歴兼雑記 - Update

最新のものはこちら
03.11.27

[Update]: attohttpD

DMD-0.76 対応。proxy を適当に追加。listdir を使うように。 linux_listdir は news に Ant 氏が投稿していたものです。 phobos に入ったらそちらを使うように変更します。

proxy がいいかげんなのは、Socketライブラリが 無いといまひとつやる気が起きないからです。 実は自分で SocketStream の Linux 版を作りかけていたりもしますが、 完成させる根性は現状ありません。

Win32 は右も左もわからん人間なので、 かなりお世話になりました。 ただ 7zip には苦しめられましたけど。 (Linux 版 7zip をビルドできなくて、 結局 wine & 7zip.exe で展開するというへたれっぷり)

03.11.26

[Update]: 白い弾幕くん

件の MacOSX 対応と Windows の bml ダブルクリック時に 再現条件の説明しにくいバグがあったので修正。

Windows のエクスプローラでダブルクリックした時は 関連付けしてある exe ファイルをそのファイル名を 引数として起動してくれるわけですけど、 そのファイル名がややこしい場合は、 ありがたいことに MSDOSファイル名 (と呼ぶのでしょうか、ORIGIN~1.BML みたいなの) に勝手にしてくれるらしく、 拡張子 bml は lower case 決め撃ちだったのに 勝手に upper case に変換してくれたために エラーが出ていた、とかそんなストーリーらしいです。 よく考えると現状でも Hoge.Bml とかだとエラーになる気がします。 ダメダメ。

あと、SDL_kanji_f1b もビッグエンディアン対応しました。

追記: ソースの方、 SDL_endian.h を include しわすれてたので修正しました。

03.11.22

[Update]: attohttpD

Web サーバを再生産しました。 手軽なコンフィグ設定ツールが欲しい、 私的に自由にいじれるプロキシが欲しい、 手軽に実験に使える httpd が欲しい、 などの要求が自分的にあったので作成しました。 まだプロキシの機能がありませんが。

まあ Linux では使えてる感じです。 Windows ではどうせ設定ツールとして 添付することしか考えてないので良いか。

03.11.11

[Update]: SDL_net.d

出せるもんは出していこう… 一月位前に作ったもんですけどね。 localではそれなりにテストされてます。

03.10.31

[Update]: 白い弾幕くんをひっそりとバグフィックスしました。

おたくツーさんご報告ありがとうございました。

03.10.22

[Update]: 白い弾幕くん-1.5.5

暇が少しできたので、久しぶりに。 ちょこちょことバグフィックスなどを。 今回いろいろやったので逆に作っちゃったバグがあるかもしれないので、 その場合ご連絡頂ければありがたいです。

この場合のバグというのは、 どんなことをしようが何も言わずに落ちたらバグ。 予想外の挙動を示したらバグ。 というような基準で考えています。 今のところ、 不可能な画面サイズ指定で落ちる場合がある (エラーを返すんじゃなくてそのまま落ちるので回避できません) のと、 ヘンなファイル (拡張子が bml, lua, xml, act のどれでも無い) を指定して実行すると落ちるのがバグと言えると思います。 ていうか後者は回避できるんだからしろと。

最近 Lua弾幕に凄いのが増えてきて、 自機が弾撃っちゃうような弾幕(というのか)を見るにいたって、 ちょっとでも文法間違えるといきなり落っこちるような状況では 大変だろうなと思ったのでちゃんとエラーメッセージを出すように。 ていうかもっとはやくやれという感が強いです。

画面サイズころころ変わるのウザいよ、ごもっとも。 というわけで変わらない方をデフォルトに。 SetVideoMode を二度呼ぶと落ちたりする環境もあるかもしれず、 ひょっとしたら今まで落ちていた環境でも動くかもしれず。 もし今まで動かなかった人で動くようになっていたら教えて下さいませ。 そういや Linux & XFree86 だと画面サイズが合っていない状況で フルスクリーンにしちゃうと落ちちゃうけどどうしようもないな…

bmlファイルで存在しないグループ名が指定された場合、 userグループとして扱うようにしました。 新しいグループを作りたい人は勝手に名乗って下さい。 三つ程度そのグループのファイルが集まったらグループ名を追加します。

リプレイ時にスペースで落ちるのは昔の Boost.lexical_cast の問題。

Windows版にしばらく最適化オプション付けてなかったかも、 というマヌケな状態。 速くなってたらすいません。それが本来の姿です。

追記: デフォルトで画面最大になってないじゃん、と気付いたので修正しました。

03.09.28

[Update]: bogoYAML は YAML に改悪を加える

YAML ってそれなりに使ったんですけど 使わないっていうか邪魔な機能が結構多いなーとか 思ってたんですけどそんなこと無いですかね。 ということで雑な YAML for D を作りました。

一応 YAMLデータを D 言語ネイティブな配列と連想配列に変換できるのがウリ。 D 言語でのテンプレートメタプログラミングのサンプルにもなるんじゃないかと。 D 言語の template は普通に強力だと思いました。 コンパイル爆速だし。型演繹がすごく欲しい。

03.09.23

[Update]: libBulletML for D と d_cpp

ABAさんに rand は設定できないとダメだ、ということと、 alias bit bool はいらんということを指摘を受け、 ごもっとも、と修正。

管理するファイルが増えるとややこしくて涙が出てくるので、 弾幕 360度の方で libBulletML for D も同時配布ということにさせて下さい。

SWIG使うことも考えたんですけど 動いてるものをいじりたくない Windowsいじりたくない とヘタレな理由でやめました。 しかし今後 C++ を使いたい人は SWIG を使った方が絶対に良いでしょう。

03.09.21

[Update]: d_cpp

Makefile.win32 を付けたり、 ちょっとした修正をしたり、 インチキ英語で説明を書いたり。

03.09.20

[Update]: 弾幕 360度

あるいは barrage 360 deg. といいます。 弾幕ビューアーです。ゲームじゃないです。

D 言語でいろいろするサンプルといった趣が強いので、 ものとしては実にやる気のない作りです。

スクリーンセーバーにしようと思ってたんですけど、 めんどうだし、私を含めて誰も実際に使いはしないだろうと思ってやめました。 俺は使うぜ、みたいなことを言って下さる人が一人でもいれば考えます。

d_cpp と libBulletML は追ってこちらの変更に追従させます。

騒いでた問題はどうしようもなくつまらん問題でした。 まあ glu32.lib が無いのが問題なんですけど、まあいずれ作ります。

03.09.18

[Update]: D 始めました。

glut.d を作りました。 あと SDL を問題の焦点から外したかったので SDL の tutorial を glut に訳したものを glut.d のサンプルとして。 これでもまだ Win32 では Access Violation…

opengl.d, openglu.d って extern(Windows) とか import windows とか、 そもそも gl.d, glu.d じゃないとか気になるなあ。

03.09.13

[Update]: libBulletML for D

アイアイサー。といっても 元々 libBulletML と回避機関を D で使いたいから ごにょごにょしてたわけなんですけど。

回避機関は接続部が雑もいいとこなんで苦労しそうなんで、 こちらを先にやってみました。テストは実に不十分です。

実用物に適用してみることによって、 d_cpp のダメなところがわかったので、 こちらも修正してあります。

libBulletML も parser に渡す引数が std::string => const char* に変化しています。 これはちょうどこのあたりで VC の DLL のデバッグビルド版で 問題を報告して頂いているので、 動作確認の後、C++ 版の方も追随させ、統合する予定です。

03.09.12

[Update]: D 始めました。 - C++クラスライブラリを使う

ああー疲れた。 永遠恋人 C++ を D から使うためのモノ。

まだ Windows環境でテストしてませんし、 インターフェイス、機能もイマイチと言えばイマイチ。 いつもどおり、ご意見ご指摘んなもん既にあるよなど、くだされば嬉しいです。

役者は揃った。私的に。

> make clean all
rm -f *.o cpp_test cpp_inter.d
g++ -g -c cpp.cc
perl create_d_import.pl cpp.cc cpp_inter.d
dmd -g -c cpp_test.d
gcc -g cpp.o cpp_test.o -o cpp_test -lphobos -lpthread -lm

なんか凄い make 光景だと思った。

03.09.07

[Update]: libBulletML

VC で落ちちゃう問題をご指摘頂いたので修正。 さらに VC 用のプロジェクトファイルも頂いたので追加。 nakさんありがとうございます。 VC ユーザ以外には関係ありません。

最近細々したことばかりやってるねえ。 ところで libbulletml-0.0.2 というのはどこにあるんだろう…

こいつは何かの役に立つかもしれないし一応晒しておこう… VC と他の STL でコンパチな auto_ptr::reset と auto_ptr::release 相当。

久しぶりに VC 触ったけど本当にこれ使って 1年間バイトでキャドキャドしてたのかと 不思議になる位よくわからなかった。

03.09.05

[Update]: コネタ

小ネタはいいですねえ。 ですので、細々と書いてた小ネタをまとめておく場所を作りました。

最近はアンテナをこさえてたんですけど、 タイムリーに同時期に開発されてたっぽい K.INABA さんの とあまりの違いっぷり。 こちらは Ruby から system 文で perl だの wget だの w3m だの diff だのを動かしまくるひどいものです… ソースの行数も十倍以上差があるようで。

03.08.28

[Update]: 白い弾幕くん

紫月飴さんにバグの指摘を頂いたので修正。 かなりびびるバグでした。なんでこんなことになったんだろう…

連絡を頂いた時は絶対 SDL_kanji_f1b だと思ったんですけど。 なんでバグがないんだろう…

忘れてましたけど、 天狐を見ればわかる通り、 author というタグが出現してます。 group だけでは作者が特定できんのでアレだな… と思ったのでなんとなく入れてみました。 現状何にも使ってませんが、ひょっとしたら使うようになるかもしれません。 形式としては <author>作者を表す任意文字列</author> という感じです。 古い弾幕にわざわざ入れてもらう必要はありません。

03.08.28

[Update]: D 始めました。

気が向いたのと必要に差し迫られたので、 ポーティングな作業に SDL_gfx 一式と SDL_sound を追加。 (not checked) と書いてあるやつは実行チェックしてません。

03.08.27

[Update]: 白い弾幕くん

グループに交通安全Xオリジナル、東方、エスプガルーダロケテを追加。 ついでに色々整理しました。 東方の方は許可取らずに弾幕のグループ名変えちゃいました。 もしご覧になっていて、問題あればご連絡を下さい。

フォントの操作を SDL_kanji_f1b に移行。

総数254とのことですが、 凄い量弾幕を頂いていてありがたいこってす。 で、 なるほど(03/08/24より)と思い、感想なんぞ書いてたんですが、 なんかまとまらんのでそれはまた別の話として、

ヘンな弾幕とかは全く気にせず入れて下さって結構です。 難しすぎ、簡単すぎも無問題。 極端な話、 これあげてもらっても結構。 基本的な方針として、昔っからこれは弾幕ビューアであって、 ゲームではないと認識してまして、 などと言いつつも、 頂いた弾幕を難易度調整していた時期があったりしたんですが、 それってのは何故かスコトラとかやってる人がいたんで、 ゲームとして一応難易度調整しておこうと思ったりしてたからです。 弾幕やさん作ってノーマルに影響が出ない弾幕を登録してもらう ってスタイルにしたのは難易度とか気にしないで 作ってもらおうという意図もあったりした気もします。 そのへんの意思表示のために OKGなんていう rank調整すらしてないムチャな弾幕を作ったんですが、 よく考えればそう書きゃ良かったですね。アホか。 ちなみに OKG は避けれなくも無いです。

03.08.27

[Update]: SDL_kanji_f1b

VC やら BCC やら icc やら kylix やら NetBSD で動作確認したので。 SDL_kanji_rle っていう名称はどう考えてもおかしかったのでやめました。 SDL_kanji は SDL_kanji_bdf とすると対称性ができて良いなと思っています。

03.08.24

[Update]: D 始めました。

ポーティングな作業 なる項目を追加。 サルも おだてりゃ木に登るんで、 SDL_image, SDL_ttf, smpeg もやりました。 実のところ、自動でやるのは大変だろうけど手動でやるのは簡単なんです。 SDL_gfx, SDL_sound, SDL_kanji, SDL_kanji_rle 位は 自分的に必要なんでやると思います。 気が向いたら SDL_net, SDL_gui, SGE あたり? SGE は C++ 混じってやがるからどうなるか知らない。

先日のパッチを採用してもらいました。 lua.d をコンパイルしようとすると lauxlib.d で 定義されている luaL_ref が見つからなくて コンパイルできないって問題がありまして、 これは lua 自体の問題だと思うんだよな… C ではマクロだからいざ使わなければ 問題にならないから放置されてんだろうな。 まあ相談ですね。英語で。しんどい。

03.08.07

[Update]: libBulletML

ずっと放置してた問題をちょこっと解決。

たぶん敵が発生してから最初のフレームの挙動が変わっている気がします。 発生したそのターンはたぶん何もしません。

あとは VC6 のダメダメ auto_ptr に対応したはず。 一生懸命 DECLSPEC を付けて回ったので VC で DLL も作れるはず。

ライセンスについて、GPL ってそういうライセンスなんだー と思うようなマヌケな勘違いがあると気付いたのはずいぶんと前にも関わらず、 今までずっとさぼってたんですが、ふとしたきっかけで今回リリースし直しました。 今後は修正BSDライセンスということでお願いします。

03.08.04

[Update]: 白い弾幕くん

lua を用いた bml ファイル中に ] を記述すると syntaxエラー扱いになってしまうというバグを 大原さんに指摘して頂きましたので修正しました。

弾幕やさん経由で結構弾幕が増えています。 登録して頂いている方々に感謝します。 あと、あそこに登録したものはリアルタイムにパッケージに反映されますんで、 まとめて落としたい場合はパッケージの方を落として頂ければ良いかと。

弾幕やさんの方、ふとコメントしたくなることとかあるから コメント機能でも付けようかと思ってますが、本当にやるかは知りません。

1.5.2位の時にふと気になって雑に調べたもの。

・ソースコード  
ぼく 14000行
lua 9000行
boost 5500行
tinyxml 2300行

・だんまく
ぼく 8870行
大原さん 7000行
おたくツーさん 2500行
ABAさん 1600行
紫月飴さん 1500行
たまもくろすさん 530行

03.07.28

[Update]: D 始めました

関数まわりを。 K.INABAさんの偉業に含まれていない delegate とかそのへん。 あんまりわかってなかったんで、 とりあえずそのへんを適当に訳してみました。

C++ が std::mem_fun やら boost::function なんかで 実装に苦労し、コンパイル速度を犠牲にしてやっていたことを、 言語レベルのサポートがあればいとも簡単にやってしまうわけです。 カリー化の言語レベルサポートも欲しいねえ。

こういう貴重なサイトはページランクを上げないと…

03.07.25

[Update]: bpo-0.2.1

SDL_sound を使うことによって、Windows での mp3 の問題を駆逐しました。 もう ID3v2タグも大丈夫だと思いますし、 トコトコ音も鳴らないと思います。

副産物として対応フォーマットが増えました。 .mp3, .mid, .midi, .ogg, .mod, .wav, .mpg, .aiff, .au, .fla, .shn, .voc, .raw, .xm(など mod関係) (追記: .fla と .flac も OK) です。 ただ Windows な人は MIDI はダメです。 こいつは私の力ではどうにもなりそうになかったので、放棄しました。

mpgが大きいというのは意外でした。 おかげで mpg は smpeg もろとも捨てさるつもりでしたが、踏み留まりました。 mp3 は mpglib が鳴らしているので、mpg の音だけ拾うために smpeg.dll の 210kB があるという贅沢っぷり。 あとなんでか知りませんが、チーズはスロー再生じゃなくなったみたいです。

大原さんに指摘頂いた、select2nd が非標準である件と、 ygg.o を含んでしまっていたパッケージミスを修正しました。 こっちはソースからビルドする人じゃなければ関係無し。

チーズの mpg を何回かプレイ。 短いやつをひたすら繰り返すのが案外面白いなあ… とりあえず 349000点。

ソースがとんでもなく汚なくなってきましたが バグが無ければしばらく放棄する予感がします…

03.07.23

[Update]: bpo-0.2.0

FFTかまして楽曲解析したら結構曲に合うようになりました。 イロイロ夢があったような気がするけど、 とりあえず凄く普通にやっちゃいました…

ゲームの曲など、リズムがはっきりしてるものはいい感じかと。 静かなところで突然怒鳴るような曲はひどい弾幕になります。 とりあえず、 ZUNさんのところの リーインカーネーションの最初の方が個人的にはいい感じ。 避けれませんが。 Winな人は ID3v2 タグを外してもらわにゃなりませんし、 トコトコ音は健在ですが。

紫月飴さんによるオールレンジパッチをモードとして選択できるように。 かなりの残虐っぷりだったので若干弾速を落としました、が、 あまり意味が無かったようです。 プログラムに手を入れずにこんなことができるなんて気付かんかったです。 できる限りデータとプログラムは分離しておく方が思わぬ収穫があっていいねえ。

あとはフォントが綺麗に。 オールレンジパッチの一部として配布されてたものですが、 こっちの方が断然良かったのでこちらに統一させて頂きました。 そうそう、紫月飴さんといえば、私も HHK Lite2 を最近買いました。 奇遇ですな。英語配列で黒で USB ですが。

ID3v2タグについて、よくメール頂くんで、もう一度。 mp3 には曲の情報を入れる空間があるわけですが、 ID3v2タグっていう種類のヤツは私が使ってるライブラリで サポートされてないみたいなのです。 で、Windows では落ちちゃうんで、 ID3v2タグを外すか、ID3v1タグに変換して下さいと。 それは WinAmp か SuperTagEditor というものでできるらしいです。

そんなこと書いてる暇があればなんとかしろと。 ID3v2タグ対応とトコトコ音は今日やるつもりだったんですが、 いろいろハマって挫折。 smpeg はどこいじって良いのやら。 mad は GPL がねえ… cmd_pipe は Win32化できず。 ということでどうせ Mix してないので、 SDL_mixer をやめて SDL_sound を使うことで対応としようかなー、 と今は思っています。

斑鳩に凍らされた弾幕熱がちょっと戻りつつあるらしい…

03.07.22

[Update]: D 始めました

昨日のやつをビルドした手順を記憶から書きました。 実にいい加減な書きっぷりです。

ついでに 別ページを設けました。

03.07.21

[Update]: D 始めました

むっちゃ簡単なゲームを作りました。 作りもコーディングもインターフェイスもいい加減です。 しかし D/SDL、十分使えるねえ。 Winバイナリ作るのは C++ より楽だったと思うよ… いまいち D らしいコーディングはしてないけどね。

ところでこのゲーム、もともとの名前は何だったんでしょうか? 知ってる方情報下さいませ。

03.06.28

[Update]: 白い弾幕くん

敵がやたらと連続攻撃してくるという致命的なバグを修正しました。 これは 1.5.1 で混入したバグで、 環境/用途によっては必ずしも致命的なことにはなりません。 パッケージングしている時間が無いので バージョンとかは変わっていません。 おたくツーさん、デバッグ協力ありがとうございました。

03.06.26

[Update]: CSS

よくわかんないけど簡単そうなので CSS 使うことに。 理由は白い背景に青いアンダーラインのリンクが嫌いだから。 今まで放置していた理由は自分はほとんど w3m でしか見ないから。

03.06.20

[Update]: 君は自ら生みだしたものによって以下略。

作りたくなって発作的に作りました。 robocode で人間 VS CPU を実現するためのものです。

03.06.16

[Update]: D 始めました。

ちょこちょこやってた作業がある程度の量になったので。 これからもちょこちょことやっていきます。 基本的に私のメモなんで、私の興味の赴くままに見ていきます。

どうしても Eiffel との比較が多くなるね… 見た目は全然違うのにね。

D って見ていくとサポートされているパラダイムは凄い数だけど、 個々のパラダイムの機能が少しずつ足りない感じがします。 これからに期待、なのかな。

03.06.11

[Update]: 白い弾幕くん

大原さんに既に頂いてる弾幕を加え忘れるという大失態を。 私はそういう失敗をやる人間だと信じてるからその予防として 弾幕やさん を作ったんだけどねえ。

これでしばらくいじりません。 あとテックウィンから載せるよメールが来てました。

03.06.09

[Update]: 白い弾幕くん

色々いじりました。 とりあえず弾幕17個もありがとうございます。 おたくツーさん

まあ、メインは このへん で書いてたもののうち、スタイル指定以外をやった感じです。 最近及びこれからあまし時間が無いんで、 弾幕メールもらっても反映が遅くなるのは悪いなあ、と思ってたので、 弾幕アップローダ を作るためにやった変更です。 詳しい変更内容はアップローダ中のサンプルを適当に見て下さい。

配布ファイルを直接いじれるっていう愉快な実験です。 気軽に使って頂ければ、と思います。 個人的にもメールより処理が楽なので助かります。

ちなみに今総弾幕数199なんで、最初にアップロードした人は 記念すべきかどうかは知りませんが、200個目になるという特典付き。

アップローダは http 的には application/bulletml というヘッダを返しています。 拡張子だけで判断できてしまうブラウザ以外を お持ちの方で直接弾幕を実行したいような人は 適当に設定して下さい。 意味がわかんなければよくわからんけど不便だっていう連絡下さい。

できれば全てのファイルをこんな感じで扱えれば良いな、 と思っています。その試験というか。 HTTPクライアントさえ組込めば、 WindowsUpdate みたいなこともできるし夢は広がるねえ。

03.05.17

[Update]: zsp

リナザウでプロットを。 学校で実験という授業があるのですが グラフ用紙にプロットとかをマジメにやるのがめんどいんで作りました。 すごくやるきのない物体です。すいません。

03.05.04

[Update]: 白い弾幕くん

新弾幕記述言語 LuaBullet をでっちあげました。 詳しくはダウンロードパッケージ中の LuaBullet.txt を参照。 ちなみに Lua 歴一晩なんで、間抜けなミスをやっているかもしれません…

BulletML は簡単かつ結構強力ですが、 LuaBullet は難しいけどなんでもできます。 プログラミング言語ですし。 今回追加した弾幕は BulletML ではちょっと表現しきれないものばかりかと。 黄流発狂を再現する日が来るとは思わなんだ。

ただエラーハンドリングとかドキュメントとかが不足しまくりなんで、 敷居は尋常じゃなく高いはず。API もとっても不親切。

弾幕 9個追加。 おたくツーさんから6弾幕、 自分で作った LuaBullet のサンプルを兼ねてるものが3弾幕。

斑鳩スキンと撃破伝スキンを おたくツーさんに頂きました。

03.04.26

[Update]: 白い弾幕くん

弾幕7個追加。 おたくツーさんから4弾幕、 大原さん から頂いたのが3弾幕です。 ありがとうございました。

前回混入したバグをフィックス。 あと大往生スキンのバグフィックス版も頂きました。

あと、あまりにセレクトとかの画面の移動がめんどいんで、 ページアップとページダウンを追加しました。 キーボードの PageUp, PageDown、 ジョイスティックのボタン6 とボタン7 で OK です。 ちなみに私のジョイティックではこれが LR なのです。

03.04.21

[Update]: 白い弾幕くん

弾幕12個追加。 大原さん から頂いたのが6弾幕、 紫月飴さんからが4弾幕、 おたくツーさんからが2弾幕です。 みなさんありがとうございました。

ちなみに今まで頂いた弾幕は他の弾幕に合わせて、 適当に難易度調整したり持続時間調整したりしてました。 これはスコトラとかやってた方がいたので、 まあ難易度をあまり変えたくなかったからです。 ですが、既に160個も弾幕があって個々のレベルは全然違いますし、 調整してる時間も無いし、適当にいじって元の弾幕の良さを 奪ってしまうのもアレですし、基本的にやめることにしました。 ABAさんが昔おっしゃっていた弾幕美術館の方向で。

一応調整は、レベル50が難しすぎない、レベル0は凄く簡単、 持続時間は30秒程度をめやすに、1分以内で。 などと調整してました。 合わせて頂ける嬉しいかもしれません。

スキン選択をコンフィグに追加。 おたくツーさんからは大往生スキンを頂いたため。 ただし多分バグ入り。 コンフィグで変更してすぐに始めると落ちるかも。 まあもう一回起動すれば多分大丈夫。 あと回避機関がとても弱体化します。

あと、改行コードが CRLF(Win), LF(Unix), CR(Mac) となんでも 良くなったような気がしますが、気のせいかも知れず。 最近本当に適当だな。

おたくツーさんの弾幕の作り方。 わかりやすいチュートリアルになってて良いです。

G-わんげ鳩大往生XII〜絆ダウン〜。 まあ最近微妙にこういうのが流行りなのか知らないんですが、 適当にみんなで集まって一つのゲームを作ろうっちゅう話です。 楽しげ。 で、最近弾幕のプロトタイプを BulletML で記述している方がいたりして、 やっぱりそういう用途には非常に良いなーと実感。 ところで、この弾幕勝手に使っちゃっても問題無いのかな。 許可もらいたいけど、方法が想像もつかない。

LuaBullet を作りたいなと思う今日この頃。 …と思ったら、 既出

03.04.17

[Update]: 白と黒の弾幕くん

あまりにひどいバグだけ修正。 大原さん ありがとうございます。すいませんでした。

03.04.15

[Update]: 白と黒の弾幕くん

大原さん に大改良施して頂きました。 随分まともなゲームになりました。

懺悔。 改良版を受け取ったのは 3月24日だったのにとても遅くなりました。

言い訳。 Winバイナリがなかなか作れなくてね…とか。 未だに Borland C++ で作ったやつは落ちるんで、 Mingw32 でコンパイル。つまりまだバグ入り。

次は白い弾幕くんを。手元に弾幕結構あるなあ…

03.04.10

[Update]: bpo-0.1.1

mp3 の ID3v2 タグによって落ちちゃうバグを修正できたと思います。 まだテスト不足なんでなんとも言えんものがありますが。 あとは曲名あたりのとりあつかいがあやしかったのを修正。 同じ曲から同じ弾幕が作られるようにしました。 曲を攻略して下さい。

mp3 で落ちちゃうバグはいろんな方に報告して頂いて助かりました。 問題となる曲の例を紹介して頂いた、 紫月飴さんと、 問題を特定して頂いた 569=574氏に特に感謝。

しかし ime.nu が REFERER になっていると、 リンク元に貴重な情報があるかもしれん場合は、齒痒い。 どうにかしてくれんもんか。

smpeg に修正加えました。以下の diff を参照。 対象は MPEGsystem.cpp です。

138a139,149
>   /* ID3v2 tag */
>   if(pointer[0] == 'I' && pointer[1] == 'D' && pointer[2] == '3') {
>         Uint32 size = 0;
>         Uint32 i, p = 1;
>         for(i = 0; i < 4; i++) {
>                 size += pointer[9-i] * p;
>                 p *= 128;
>         }
>         pointer += size + 10;
>   }
> 

smpeg.dll を strip すると bpo.exe が実行できなくなりますが何故ですか。 よくわからんですが、これ以上 bpo にかかずってもいられないので、 とりあえず strip してません。 おかげでサーバの容量がいよいよピンチ。 このへんと ID3v2 タグ、MIDI のあたりは余裕ができたら ゆっくり調べてみようと思います。

bpo 雑記。

音に今一つ合わないのが悔しいです。 もうちょっと勉強した方が良さげです。 よく合うのは、ベースだのドラムだのがでかい曲や、 あと、歌はそれなりに良いみたいです。 速めの弾を多くしたとはいえ、結局弾が届くまでにラグがあるわけで、 今一つリズムに合わんというか。

で、Good Timing と Just Timing っつうボーナスを作りました。 知ってる曲なら音が大きめの音が鳴る時に合わせて 適当な方向を入れるとそれなりにボーナスが入ります。

グラフィック的には全て CPU で処理っつう、 時代の流れに完全に逆行したやりかたでやってます。 clear_screen.cc 書くのはとても楽しかったです。

最後の方に書いたものはだんだん適当になっていきましたが、 わりと納得のいくコードというか、 自分なりのコードの書き方が定着してきた感があります。

pimpl イディオムなんかのおかげであまり依存が無いかんじです。 あと spimpl っていうあやしげなイディオムをひねりだしてみました。 s は static もしくは singleton です。

最後の方に書いたのは UI とかスコア表示とかです。 こういうののプログラムは大嫌いです。

好き勝手に色んなライブラリをつまみ喰いしてます。 boost も欲しくなればすぐに使おうとしているのですが、 filesystem を使うとやたら容量がでかくなってしまって、 断念したのがちょっと残念でした。

それにしてもコンパイルに時間がかかりすぎます…

03.04.08

[Update]: Bullet Philharmonic Orchestra

音に合わせて弾が飛んでくる、 おたまの二番煎じみたいなの。 mp3, ogg, midi, mod, wav なんかから弾幕生成します。

Windows & SDL_mixer & MIDI で PostMix がヘンなのは ポリシーか仕様かバグか、なんなんだろう…

03.03.24

[Update]: 白い弾幕くん

27弾幕追加。凄い量だね。大原さん17個もサンクスです。 私が二の足踏んでた緋蜂弾幕をタマモクロスさんに再現して頂けました。 BulletML書いてる人間が増えるのは嬉しいですな。 今回は私も6個作りました。えへん。当り前。 0.0.3 とかいうバージョンナンバーのヤツを見つけたんで、 BulletML 移行前の弾幕で面白げな弾幕を復刻しただけですが。

ちなみに、昔の敵行動記述言語の一例。 意味わからんな。

はさむ
for 1 1 200 1
    rand 3 180
    multi 4 0.3 1.5
    shotRA 0.3 50 0 0 -0.4 50
    shotRA -0.3 50 0 0 0.4 50
    wait 30
next

あと、凄くいい加減に算出した難易度情報など。 最近いい加減な拡張ばかりだ。もうちょっとなんとかしないと。

後は、下記参照。

03.03.24

[Update]: 議会制弾幕回避機関

えと、君も議会制の面倒さを体験してみないか?

議会制弾幕回避機関に新人が。 一人はプレイヤー。HumanCpu という矛盾したクラス名。 このボタンを押しながら方向を入力すると議会制弾幕回避機関に 口出しができるようにしてみました。 なんでもっと早くやんなかったのかな。 結構おもしろい。 コンフィグで発言権を大にするとほとんど自分で操作してるけど、 なんか絶対死なないな、ってモード。 発言権中はなんか微妙にままならんぞ、って感じ。 発言権小だと大まかな方向性しか指示できない。

この人手の操作を学習させて… というのが誰もが思いつく夢だろうかと思います。

もう一人は、査察官。 全く決定には関わらんけど、弾幕の評価を下します。 誰も見ていないと思われた右下の覧に、 難易度、弾幕量、速度、自機狙度、特殊度、を追加。 難易度はとてもいい加減。ていうか全体的に凄く適当。

パターン性などの指標を加えたりして、もうちょっといろいろやりたい。 140個を越える弾幕を管理できてるんだから、 色々分析してみんと損なんだよなあ。

03.03.10

[Update]: boost memo

メモとしての機能アップとラクにメモをとるために、 なんかいい方法を考えてたところ、 SDL Watch::TNG が公開され、 あまりに素晴しいので適当に真似ることに決定。 んで、こうなった。 もともとここで cz-add-diary 使い始めたのは こっちに使いたかったからなんだけど随分遅れたなあ。

現状 local に落ちたメールの番号から勝手にリンクを作ってくれたり、 まとめのページを自動で作ってくれたりしていて結構ラクになった。 静的に作ってるから変更がきかないのがアレだが。

03.03.10

[Update]: zfc

なにかと必要なので関数電卓を作りました。 正気とは思えないデザインと、使いにくいインターフェイスを備えていますが、 ruby にまんま eval させてるだけなので、やろうと思えば何でもできるはず。 式をパースせずに関数電卓が作れるとは、インタープリタは便利だね。

まだまだヘボヘボなんで色々いじろうと思います…

03.03.07

[Update]: 白い弾幕くん

Windows向け関連付けツールを添付。 意図はブラウザから bml ファイルをクリックして実行できればええなあ、と。

ぼくは Linux & w3m なので、 run_sdmkun というものを作って、

#!/bin/sh
cd ~i/wrk/sdmkun
./sdmkun $@

/etc/mailcap に

application/bulletml; /home/i/bin/run_sdmkun %s

として、 .htaccess に

AddType application/bulletml .bml

と書きました。明らかに間違っている気もする。

そうそう、レジストリの編集の仕方とかよくわかんなかったんで、 K.INABA. さんのソースを参考にしました。謝辞。


top
ここから辿れる私のもの全てリンクフリーでGPLです。 なにかあれば下記メールアドレスへ。
s31552@mail.ecc.u-tokyo.ac.jp
shinichiro.h
更新履歴兼雑記 2003年02月分

更新履歴兼雑記 2003年02月分

最新のものはこちら
Feb 27, 2003

03.02.22

[Update]: 白い弾幕くん

大原さんから、凄い勢いで弾幕を頂いています。 弾幕多すぎるんで分類をしました。 まだ仮実装なので画面が寂しいです。 あと bml ファイルというファイル形式をでっちあげました。 単体ファイルで BulletML 記述と弾幕解説を記述したいなあと思っています。 こう、ブラウザからクリックすると弾幕が動きだすといいんだけどね。

03.01.26

[Update]: 白い弾幕くん 1.2.3

よもやこんなに早く次バージョンを出すとは。 大原さんに、弾幕をさらに4つと、バグ報告も頂いたので。

ありがたいことです。

ちょっと作りが変わっているんで、 バグがあるかもしれません…

03.01.26

[Update]: リナザウ版ドリラー

adasさん にフォントのことについて教えてもらったので、 ちゃんと何メートル進んだかわかるようになりました。

03.01.20

[Update]: 白い弾幕くん 1.2.2

弾幕を 大原さんに頂いたのでリリースでございます。 今回は リナザウ版 も同時リリースです。

リナザウ版は 30FPS 弱。浮動小数点を全部 固定小数点数に置きかえたのにまだ遅い。 まあでもゲームにはなります。 これで街に出て弾幕をその場コピーが可能か?

弾幕といえば、 Bulletnote をやっと試せました。 Linux に Eclipse がなかなかインストールできなかったので、 Windows で。ああ面白い。 カルネージハート気分で弾幕書ける日も近いか? とりあえず Linux で Eclipse 動さないと。 めんどくさそうなんだよねえ。依存ライブラリとかが。

リナザウ版の GUI 作る時に zgnuboy のソース借りたんですが、 SDL ゲームを Process::exec で動かすと、 defunct ができまくるんですが、なんでだろう。 とりあえず system で一時しのぎをしました。

02.12.12

[Update]: 白い弾幕くん

CPU が動かなくなってたという嫌なバグを発見したので。 ついでに 変なキーコンフィグ設定ツール を作りました。

02.12.03

[Update]: タグ分類

なんかいいかんじ。 まあ人様のためというより自分の回顧のためという感じですが。

ただこういう perl プログラミングは苦痛。 バイトで飽き飽きしているので。

Book というタグを増やしてそれを集めると書評一覧になるとかしてみたい。 本には高い金払ってるものが多いので、 自分なりに総括を出しとかんと損するし。

02.12.02

[Update]: 白い弾幕くん

久々のバージョンアップ。総弾幕数100らしい。 ここからは ChangeLog の補足です。

エスプ話 を見ていると懐しくなってきて、原点回帰で100弾幕目付近はエスプを三つ。 やっぱエスプの弾幕は良いです。 この方向性でもう少し自機が小さくて遅いゲームを作ってくれんかのう。

Noiz2saからも。 ABAさんすいませんまた勝手に弾幕を奪いました。

あと前のケツイ弾幕をランク調整とか入れて入荷。 色々違うってのは知ってるけど所詮ロケテバージョンなので ばれないのが幸せ。

BulletMLのエラー表示。 不正な BulletML データが来たときに、 そのエラー内容を画面に表示する。 たぶん半分位のエラーは捕捉してくれると思う。 これ以上のエラーハンドリングは xerces 使わんときつい。 結構本気で xerces を使うことを考えていたりもする。 Unix版は tinyxml をデフォルトで使い、 xerces がインストールされていれば使うことも可とし、 Windows 版は DLL をくっつけて配布すれば良いと思う。 そういや tinyxml は Windows と Linux で動作が違う気がする。 Windows の方がエラー捕捉がぬるい?

省メモリ。 なんで私は 8Mバイト位の bmp ファイルを最初に読ませてたんだろう? とりあえず使用メモリが 3M 程度まで減った。 ただスクリーンショットのあり方が今のままではまずいのは明らか。 それぞれの弾の位置だけ記憶すれば良いのだから。

非 autoconf 化。何も configure してなかったし、 ファイルが散らかりすぎて、 Windows から見ると何が何やらよくわからなかったから。 後はソースは src に押しこめたり、そんな感じ。 もう少しこの方向で整理は続けようと思う。

02.12.02

[Update]: Robocodeについて

偽ジャパンカップとか小さなスクリプトとか。 ごにょごにょしているらしい。

02.12.02

[Update]: サイト名変えました。

いい加減トップページが崩壊していたので修正ついでに。 ちなみにサイト名決定の判断材料。

つまりなんとなくだ。

02.11.26

[Update]: Robocodeについて

一応終わったからまとめておいた。 後はロボットが勝手に戦うだけ。頑張ってくれ。

つらかった。 考えるオリジナルのアルゴリズムはほとんど役に立たず、 既存の優れたアイデアを洗練させて地道に地道に強くしていくのが正解っぽい。 もうしんどい。 まあ、チームバトルやコード制限下での戦いはまだ楽しめそうだ。

02.11.17

[Update]: SDL_kanji

0.0.3。 ほとんどZinniaさんに頂いたものをそのままあげただけ。 もう最近お世話になりすぎなので、遅らばせながら、 TOGEさんに続いて北枕敢行しますです。 帰省されてる時は逆で良いのかなあ。

02.11.13

[Update]: SDL KnowledgeBase

提案しておきながら何も動かないという無礼千万な状態だったので作りました。 SDL の tips 集になったらいいなあってものです。

ECCS の管理者にはいつも笑わせていただいていますが、 今回もいろいろ笑えました。 というか、そのせいで長い間設置できなかったとか言い訳。

深く考えようとしたら頭が痛くなってきたので、 適当に始めちゃったのでいろいろ失敗する予感があります。 すいません。いきなり弱気。

思いつく問題点は、 容量が足りなくなるとか、 私の Wiki 経験が一人で電波文章書いただけだとか、 tiki の配布元の todo.org が無くなってるとか。

始めた直後マシンがぶっつぶれた。 何かの暗示だろうか。 修理何日かかるんだろう…

これは ECCS の笑いがこみ上げてくる端末で書いていますが、 つらいのでしばらくサイトはいじらんと思います。

とりあえず boost はそろそろ Serialization Library の FormalReview のはず。 これだけは大事。

KnowledgeBase の方は思い出と SDL Watch を 手繰ってしょぼしょぼやっていこうかと思います。

ついでだから ECCS の笑える環境を ご紹介。 Linux + Solaris + WindowsNT のスーパー環境。 どれ一つとしてまともに使えるもの無し。 2ちゃんねる見る以外に何に使えというのか… それとも kterm と emacs が動いている以上 これ以上を望むのは贅沢なのか…

ux201 ~> ls -l /usr/openwin/bin/xview
lrwxrwxrwx   1 root            1 Feb 25  2002 /usr/openwin/bin/xview -> ./

どういう意図なんだろう…

02.11.02

[Update]: 白い弾幕くん

頂いた弾幕を追加です。 紫月飴さん弾幕のセンス良すぎ。

お手本が無いなど、いい加減なリリース。 なんかパッケージの中も無茶苦茶だし、結構管理が辛い。 12月になったらなんとかします。多分。

02.10.22

[Update]: sevilwm

バグ指摘を頂いたので。 二ヶ月以上前に頂いたパッチを今ごろ加えてリリース。 すっかり記憶から抜け落ちてました。すいません。

暇を見て c++ 部分を c で書き直したいなあ、などと。

02.10.18

[Update]: boost user

MPLに加筆。 継承さえすれば後は気軽に使える dumper。 MPL Sequence/Iterator の解説のため作成。 MPL最高。 使うぶんには簡単なのがなんとも。

内容紹介

class Class : public std::string,
              public Dumper<mpl::list<std::string, char,
                                      int, std::string, char>
{
    Class() : std::string("derived from string") {}
    char c1;
    int i1;
    std::string s1;
    char c2;
};

int main() {
    Class c;
    c.c1 = 'a';
    c.i1 = 2;
    c.s1 = "hello world";
    c.c2 = 'b';

    c.dump();
}

で、出力が

3221222032: derived from string
3221222036: a
3221222040: 2
3221222044: hello world
3221222048: b

どうだ、えへん。

intel コンパイラ優秀っす。MPL を余裕で通しやがった。 でも gcc との似てるのがどうにも気になるなあ。 少なくとも、「ソースを参考にする」レベルのことは絶対やってる。

02.10.15

[Update]: boost user

uBLASの解説、書きました。 何故か expression template 特集。ベンチマーク。 二個目の計算結果に小びっくりしました。

うーんそうかなあいやそれは無いだろう(02/10/14参照)。 なんか競合してそうで微妙にやっとることが違うのは確かかも。 うまく表現できないが。 いずれにせよ、date_time, format, multi_array の解説が 無いに等しいのはいかんなあ。 でもやっぱりあまり興味無いコンポーネントなので やっぱり書きませんすいません。 つうか二度と興味の無いことを書こうとしませんすいません。

02.10.12

[Update]: boost link

1.29.0 が来たので。 date_time と format はもうちょっと真面目に書きますすいません。

K.INABA. さんも更新されました。 私が適当に書く必要は無かったか。

02.10.10

[Update]: boost user

1_29_0 の新コンポーネントの解説を先走ってやってみました。 非常にいい加減。signals だけは結構真面目。

02.09.30

[Update]: 業平ネイティブ版

あなたの夢、三割減位で実現します。

なぜかバージョンアップ。 ぼんやり 斑鳩スレ見てたら面白いものが紹介されてたから。 でも到底避けられないと思いました。

02.09.26

[Update]: 白い弾幕くん

緋蜂。もうちょっと詳しい情報があればねえ。 つうか何故ゲームショウ行かなかったのか。 あと BulletML2SWF で Flash も作ろうと思ったのだが何故か失敗。 まあゆっくり考えてみよう。

それ関係ですが、 Windows100%とやらにも載るそうです。

02.09.25

[Update]: boost link

pythonだそうです。

boost memo も遅れまくりながら更新。 溜まると読むの雑になって良くないなあ。

02.09.13

[Update]: 白い弾幕くん

大往生4ボス5ボスをちょっと追加

最近大往生弾ばっかり。 でもそろそろ打ち止めか。

そろそろまとまった時間を取って整理しないと、 TODOが溜まっていくばかり。

02.09.05

[Update]: 白い弾幕くん

大往生四ボスの第一形態は全部揃った。 第二以降は再現が難しいし、 私はハイパーかボムで瞬殺するんで再現するかは不明。 次は五ボスにチャレンジするのでは無いでしょうか。

妄想緋蜂は果たして似ているのか否か。 たぶんちっとも似てないのだろう。

しかし80弾幕か。半分以上CAVE弾というのがなんとも。 目指せ100弾幕。

あと、 フラッシュ のスクリーンショットを追加。 ABAさん謹製 BulletML to SWF は使わないのはもったいなく感じつつも 容量の都合で公開しとらんかったのですが、 今回gzipで圧縮したフラッシュをcgiで展開するという、 最新技術(嘘)に気付き、なんとかなったのですよ。

linuxでもコンパイルできたのねってアンタ、 私はlinux上で開発しとるんですが。 正味のところ、一番やりたくない作業はWindows版のコンパイル。 自分の役に立たない作業は大嫌いなのですよ。 でも需要はWindows版しか無いと言ってよいからねえ。 とりあえず、なかなかおもろい、とのことでありがとうございます。

脳内にはまだまだ色々やりたいことがあるんですが、 最近あんまりコードには手をつけとらんなあ。

では、斑鳩買ってきます。

02.09.02

[Update]: boost link

K.INABA氏、すげえなあ。 本当に全部解説する気なんだろうなあ。 その内 boost link なんていらなくなるな。

02.08.30

[Update]: boost link

K.INABA さんの Let's boost が鬼のような勢いで更新されていたので、 boost link を追従させる。

boost link、すごい見にくいんですけど。 かといって書き直す気もおきない。 なんで XML で書き始めなかったのかと後悔。

私の方は今日はなんも書いとりません。 というか、正直もう書けるドメインが無い。 残ってるのは、 compatibility, config, graph, pool, preprocessor, property map, python, test, thread, tokenizer か。 内、compatibility, config はまあ、言ってみりゃ、どうでもいい。 graph, preprocessor, python, thread はちょっと書けそうにない。 書けるのは、pool, test, tokenizer か、食指が動くような動かんような。

property map、私もよくわかりません。 map って色んな種類があるのに、 標準ではロクにタグが打たれてないから、 色々打てるようにしちゃりましたよ、 って程度なんかなと思ってたんですが。 BGL でたくさん使われてるみたいですね。

02.08.29

[Update]: boost user

なんか誉めてもらった ので嬉しくて、 500円で1.8リットルのクズ日本酒かっ喰らいながら実装。 GameNum with MPL。 おお、あっさりできた。 MPL をいじくっていく素地は自分の脳内に既にできている気がする。 単純に自分の能力が上がっていることを実感するのは嬉しいなあ、と。 まあ、だらだらこんなことばっかりやってるんだから当然と言えば当然か。

MPLは強敵なので、こんな感じで ちょっとずつ切り崩していこうかと思います。

C++ は理解すればするほど、 いかに C++ が腑甲斐無いかどうかがわかってくる気がする。 どこだったか、 ああ、ここ。 現状の C++ ユーザの心境を適切に表している気がする。 「でもやっぱり当分は C++ が最強のツールだからがしがし使いましょ」 ああ適切。 MPLが一定の成果を上げれば、 言語レベルで MPL みたいなことができる言語が生まれてくるかも知れない。 それまで待つしか無いということか。もどかしい。

ついでに、 static_asserttype_traits も片付けときました。

さらについでに、 iterator_adaptors も。 結構便利な奴等です。

02.08.28

[Update]: boost 再編

トップを boost info として、 大幅再編。ああ疲れた。手が痺れた。 何やってんだか。

なんとなく boost link 作ったら、私の大好きな関数プログラミングががらがらだったのでさあ大変。 boost user を一晩かけてざっと書いたのですよ。 一夜ででっちあげただけあって雑。 誤字脱字、勘違い、意味不明記述などあれば気軽にご連絡を。

最近じょじょに template 盲信をやめつつある気がしてたのだがなあ。

02.08.27

[Update]: gamenum

久しぶりに 「template library を作る」 を更新。

随分前に作ったものなんですが、 白い弾幕くんには libbulletml をいじりたくない関係で 上手く組込めなかったので、 まあ、使ってないものを紹介するんもなあ、 と、公開してなかったものだったんですが、 いつになっても使いそうにないので、公開。

まあ、テンプレートメタプログラミングの一例、といいますか。 割と初歩的な例かと。

あと、c++ のインライン展開の偉大さを確認することもできます。

02.08.26

[Update]: 白い弾幕くん-1.1.4

大往生弾幕を二つ追加。 userディレクトリ関係の邪悪な仕様を修正。

02.08.26

[Update]: sdljump

まあ、完成かなあ、と。 リプレイとジョイスティックとを実装しました。 なんか600階とか行ける人いるそうなんですが、 是非リプレイ見してください。


home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h