shiroi danmakukun ver.1.5.7

・概要

シューティングの弾避けの練習にと思って作ったものです。
300種類以上の弾幕が楽しめます。
弾幕定義言語BulletMLで簡単なスクリプトを書けば自分で弾幕を作れます。

・コンパイル、インストール

Windows の場合

実行ファイルは sdmkun.exe です。
ダブルクリックして下さい。

setup.exe を実行すると拡張子が .bml となっているファイルを
ダブルクリックするなり、ブラウザから直接実行すると、
すぐにその弾幕がプレイできるようになります。
その際 user ディレクトリ以下にそのファイルはコピーされているので、
次回以降普通に実行した場合もメニューに現れます。

ちなみに setup.exe は関連付けを行なっているだけです。
解除は適宜手動でやって下さい。

Unix系の場合

> make
でコンパイルできると思います。
src ディレクトリが圧縮されてますが、
bzip2 が入っていれば勝手に解凍します。
> ./sdmkun [xml or bml or lua file]
で実行できます。

・操作方法

カーソルキーの上下左右で移動。
z キーで移動速度をダウン・決定。
x キーでキャンセル。
エスケープキーでリセット。
PageUp と PageDown でカーソルがたくさん動きます。

ジョイスティックは、
一個目のボタンが z に、二個目が x 、
三個目が ESC にそれぞれ対応してます。
あと、七個目と八個目でページアップダウンです。

キーバインドは save/key.conf を変更すれば変更できます。
んなもんわからんわ、っていう人は下記に設定ツールがあるんでお試しあれ。

パッケージ内の mkconf.html
http://user.ecc.u-tokyo.ac.jp/~g940455/wp/sdmkun/mkconf.cgi

・設定項目

たくさん設定項目を設けました。
いろいろいじって遊んでみて下さい。
わかりにくいところを少し説明します。

処理が遅い人は fps を落とすか、文字飾りを off にして下さい。

スペシャルってのは適切な名前が思いつかなかったんですが、
だんだんレベルが上がっていくモードです。
セレクト-メインモード-スペシャルon でランキング右がわに記載されます。
こいつを選択すると他の弾幕ごとのオプションは無効化されます。

画面サイズが変わるのが欝陶しければ大きい画面で固定できます。

スクリーンショットの先読みを on にすると、
メモリ使用量が増えますが、セレクトモードの動作が速くなると思います。

・オリジナル弾幕の作りかた

user ディレクトリに入れた拡張子が ".xml" または ".bml" のファイルは
セレクトモードの項目に現われるようにしました。
BulletMLの書き方は、BulletMLの本家、
http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/
がチュートリアルになっています。
その他 bosses.d 内のファイルもサンプルになるでしょう。
まあ、HTMLが書ける位の人で、
シューティング好きならぜひ書いてみて下さい。

bml ファイルというのは弾幕名などの情報を
弾幕自身に埋めこむためにでっちあげた形式です。
最初の行がグループ名です。
とりあえず user って書けば大丈夫です。
data/groups.dat を見てなんのことか想像できる方は
他の指定をして下さっても構いません。
次の行がタイトル、解説、攻略、と続き、
その次の行から BulletML を記述していく、
というすさまじくひどい形式です。
暫定的な仕様なんで、将来的にどう変化するかは想像できません。
具体例は user/test.bml をどうぞ。

LuaBullet という新しい弾幕記述言語が参戦しました。
詳しくは LuaBullet.txt にて。

・いろいろ

CPU負荷の関係で収録してあるけどメインモードに現れない弾幕もあります。

CPUについては README.cpu を参照のこと。

こんな機能が欲しいとかあればメールお願いします。

このパッケージ内の私のもの全てGPLです。

弾幕を作って下さい。できれば送ってください。

なんか再現リクエストがあれば受けつけます。

弾幕の名前など見ていただければわかりますが、
ESP-RADE など CAVE 作品の弾幕を非常にたくさん使っています。
CAVE に感謝です。

BulletML は良いです。
長健太(ABA."Saba") さんに感謝です。
http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/

STGと弾幕美を語ろう (http://www.h5.dion.ne.jp/~tamainu/stg1.htm)
を色々と参考にさせて頂いています。

紫月飴さん (http://hc2.seikyou.ne.jp/home/flammie/)
に頂いた弾幕を用いています。

・使っているもの紹介。

Bulletsmorph
ABAさん作の弾幕生成エンジン。
なかなか面白い弾幕を作ってくれますが、
弾が多すぎになりがちなのが少し残念。
弾幕作成者のブレインストーミングには良いかと。

SDL
クロスプラットフォームなゲームライブラリ。
とにかく抜群の信頼性。自分のプログラムに集中できます。
低レベル過ぎるのがちと最初は酷だけど、
慣れるとサブライブラリの選択が楽しいのもまた魅力。

SDL_kanji_f1b
SDL_ttf は大袈裟すぎるので。
詳しくはこれの中の README を参照。

libbulletml
BulletML 流行ってほしいなあと作ってみたライブラリ。

tinyxml
XMLパーサ。Xerces はおおげさ過ぎ。他にもいろいろあるけど、
これが一番ちっちゃくてお手軽な感じでしたのでセレクト。

Lua
プログラムの中に組込まれることを想定してデザインされている
プログラミング言語。一晩で弾幕記述言語ができました。

boost
c++ 準標準ライブラリ。
java みたいな Object.toString が無いと不便？
boost::lexical_cast<std::string>
で終わりじゃん？という感じ。
全部挿入すると巨大なので使うものだけ置いています。

なんかサブライブラリがんがんなのがいい感じ。
再利用度高そうな雰囲気を醸しだしている、気がする。

shinichiro.h
 s31552@mail.ecc.u-tokyo.ac.jp
 http://user.ecc.u-tokyo.ac.jp/~s31552/wp/
