「メテオス」に関する日記(5)

<前 次>

初期メテオ

メテオスもどき、メテオ降下割合を実装して初期メテオを配置するところまでできました。
もちろん初期点火防止措置もきっちりできていますよ。
プログラミングコーナーに書いてあるランダムセレクトのアルゴリズムが役に立ちました。
そしてこれで初めて気付いたのが、どの惑星にも、割合はどうあれ必ず5種類以上のメテオが降らなければいけないこと。
なぜかというと、燃えカスが還元した瞬間まわり4方向に繋がる可能性があるため、4方向が全て異なる種類でリーチであったとしても置けるメテオがあるように、5種類目のメテオが必要というわけなのです。
画面の比率とかはメテオスオンラインのをそのまま使っています。
今度はメテオをドラッグでずらす処理とシュートを作る予定です。
カタマリが絡んでややこしい点火関連は後回し…。

惑星パラメータ

で、惑星パラメータ設定画面がいつでも作れるような状態、すなわち、骨組みができていつでも設定するパラメータを増やすことができる状態にまで持ってくることができました。
で、手っ取り早く惑星列幅と高さと降下割合を実装して、画面を出してみました。
それに伴って、惑星パラメータを色々調べたりもしています。
ひそレポに書いてあったのよりやっぱりパラメータはかなり多いですね。

キー&マウス入力処理

メテオスもどき、リソースを読み込んで表示するところまでできたので、今日はキー&マウス入力処理を作りました。
Javaには現在のキー&マウスの状態を直接的に得る方法はないので、イベントを拾ってそれで状態を検出しています。
このあたりは昔VisualBasicでAPIに頼らずゲームを作っていた頃の知識を使っています。

メディアトラッカー

メテオスもどき、効率の良いリソースの読み込みを考え中なのです。
ロード時間を体感的にゼロにしたいんですよね。
なので、最初に画像を必要としない画面を表示して、その裏で別スレッドでMediaTrackerを動かして読み込むことにしました。
あと、メインスレッドの動作をアプレットのクラスに組み込んで全体をすっきりさせたり、後々に響きそうな部分の最適化とかをしていました。

再コンパイル

アプレットテスト用のPHPを改良して更新されていないクラスは再コンパイルしないようにしました。
クラスファイルの最終更新日時とソースファイルの最終更新日時を調べてソースのほうが新しければ再コンパイルします。
で、それで作っているメテオスもどきのほうは実はほとんど進んでません。
画像を出すぐらいは作りたかったんですけどね。

ミフミンソフト(嘘)

メテオスもどき作成中であります。
現在はフレームレート一定化と基本的な描画機能を作ったところで、最新版はアキヤメにアップしてあります。
まあ、こんな状態だから、ゲームとして遊ぶどころか、何も動いてもいないんですけどね。

標準エラー出力

メテオスもどき作り始めました。
eclipseが重いのとアプレットビューアでは実際的な動作テストができないことから、ブラウザ上で効率よくデバッグできる方法を考えていました。
ブラウザ上でのデバッグの大きな問題点としては、ミディビのときにJavaのクラスローダキャッシュのせいでアプレットが最新版に更新されないという問題に直面していたので、今回はそのことを中心に対策しました。
まず考えたのが、URL単位でキャッシュを保存していることは知っていたので、JARファイルを返すアドレスの後ろに毎回異なる文字列をつけるというものでしたが、後半の文字列を無視して同じファイルと認識したり、ファイルとは別のものと認識してエラーを起こしたりしたため失敗でした。
そして最終的に考えたのが、ミディビを作るときに行っていた、ディレクトリ名を変える方法を自動化するやり方です。
要するに、アプレットをテストするページにアクセスすると、PHPスクリプトによって毎回違う値でディレクトリを作り、その場所にJARファイルのコピーを置くというもので、これは非常にうまく働いてくれました。
そうすると欲が出てくるもので、どうせ常に最新版に保つんだからコンパイルもアクセス時に同時にしてしまおうということになりました。
それはそれで、コンパイルするだけならバッチファイルに入れていたものをPHPに移植するだけで簡単だったのですが、ここで思わぬ問題が出ました。
エラーメッセージが出力されなかったんです。
バッチファイルでコンパイルしていたときも、コマンドプロンプトが瞬時に消えてしまっていたために見えなかったのですが、今回は標準出力をページに表示するなりファイルに出力するなりすれば簡単に見られると思っていました。
ところが、エラーの出力先は標準出力ではなく標準エラー出力であったため、標準出力には何もないという状態になっていたのでした。
最終的に、「2>&1」とすることで、標準エラー出力2に出たエラーを標準出力1にリダイレクトして、その結果をPHPで拾うことで無事表示させることができました。

そうそう、明日から二泊三日で旅行に行きます。
海で泳ぎます。

メテオスもどき

そんなわけで、アニメーションやリソース管理システムをいじりました。
これでマップを表示するときにアニメーションをコピーしまくってもメモリエラーを起こさないのです。
マップ表示自体は一から作り直すことになったのですが、流用を考えて中身をチェックしていたおかげで問題点がいち早く見つけられたように思います。
そんなわけで、明日からはマップ表示を一から作り直します。

こっそりメテオスもどきを作ってやろうかと画策中です。
遠からず終わってしまうメテオスオンラインに最後の光を与えることができるか、それともQに喧嘩を売ることになるのか、はたまた燃えカス1個ほども影響がないのか、わかりませんが、何か思い出に作っておきたいんです。

コピーコンストラクタ

う~む、マップシステム、アニメーションの扱いが根本的に変わっているので以前と同じアルゴリズムではうまく動いてくれなさそうです。
それどころかまたアニメーションやリソース管理システムもいじらなければならないような気がしてきましたよ。

メテオンのページのほうは料金のページに画像を追加しました。
どこでどのようにお金がかかるかなどですね。

マップ処理開発開始

まぁ、それでもメテオスオンライン初心者向けガイドは続けるわけです。
サービス終了まであと3ヶ月あるわけですし。
とりあえず金がかかりそうという不安を解消するためのページを作ってきました。

メテオスオンラインのことであまり沈んでいても仕方がないので、他にBomber丸Worldの開発なども再開しました。
とりあえずアニメーションを完成させて、マップ処理に取り掛かったところですが、やっぱり以前と変わっている部分は結構変わっているので、前のを流用せずマップシステム構築しなおすべきか、考えています。
そうするとまた少し時間がかかってしまうんですけどね…。

全消しを体験してみよう!

爆ボンのページのトップにあるコンテンツ一覧のツリーをJavaScriptで開閉できるようにしてみました。
日記の左メニューの応用、というかコピーです。
よく使われる項目は最初から開くようにしてみました。

で、メテオスオンラインのページも一つ更新しました。
やっぱり全消しができるのとできないのとでは楽しさが全然違うので、とりあえず全消ししたことない人には一度体験してもらおうということで作りました。
ついでっぽくですが、公式のお手本ムービーにもリンクしてあります。

メテオスオンライン初心者向けガイド

突然ですが、メテオスオンライン初心者向けガイドのページを作りました。
他の人を誘い込むときに、その人たちが驚くほどメテオスというゲームについて無知だったこと、そしてそういう人たちにメテオスの楽しさを伝える立場のサイトがろくに存在しないこと、このあたりが非常に気にかかったので作ることになりました。
せっかくうまい人たちが人並み外れた腕前の動画を公開しても、玄人・神レベルを目指す攻略サイトを作っても、「惑星って何?」「お金かかるんだったらやらないよ。」「パズルゲーム苦手だし…。」という人を引き込むことはほとんどできませんし、攻撃メテオを見て「ぎゃー!なんか1個ふってきたー!」とパニックに陥る人などにメテオスをより深く楽しんでもらうことはできないのです。
ということで、勝っても負けても、プレイしているだけで楽しい、そんな気持ちになるようなサイトを目指してみました。
ゲーム記からいけますので興味のある方はどうぞ。

DM積んでみた

今日はBomber丸WorldのBGMシステムを作るためにMIDIを調整していました。
とりあえず2つの曲についてデータ内容がばらばらだったのを統一しました。
それでもまだまだデータ自体は流動的なんですけどね。

で、タイトルのことですが、メテオスオンラインでみんなからダークマターを贈ってもらいました。
私は17個でしたがこれでも悪いほうで、40個が二人、55個が一人いました。

1182005576.png

チュートリアル記念撮影

今日はメテオンキャプターをアップしました。
連続撮影を防止するフラグを立ててなかったために連続撮影し続けてしまうバグの解消と、先日実装されたチュートリアルへの対応の2つです。
で、そのための設定も新たに追加したのですが、最初「チュートリアル記念撮影」だったのを「チュートリアル証拠写真」にファイル名を変更しました。
もしかしたらまた変則的なランキングが出てくるかなと思って証拠写真フォーマットで。

TGBBSをどうすべきか忘れた

MeteonCaptorをバージョンアップしました。
先日見つけたキー操作での記録のみにしていると動作しなくなるバグの修正、手を抜いて全部全角ファイル名にしていたのを全角に変換するのを最小限にとどめる拡張、連続写真を撮ったときに同じファイルに上書きしてしまう現象の回避のためにファイル名に秒数まで含める仕様変更、の3つが変更点です。

久々にTGscriptをさわってみたのですが、かなり忘れてしまっていますね…。
何をやっているのかは今までのソースを読めばわかることとして、これから何をやっていこうかという具体的な方針がどうしても思い出せないのがつらいところです。
削除がしたくても出来ない現在のGBBSの教訓を踏まえて何かをやろうとしてたんですが…。

おまえがゆく道

やぁ。メテオスの全惑星のBGM録音し終えましたよ。

・ブラーボ(ジオライト).wma
最初はやっぱりコイツでしょう。
オンラインでは二千円もするため買ってないんですが、どう変わっているのでしょう。

・ファンキ~ホ~ン(ビュウブーム).wma
ジオライトに負けず劣らず陽気なヤツです。
嫌でも常時アクセルになってしまいます。

・自然の楽園(サボン).wma
ゲーム音楽に聞こえない、というかそもそも音楽にすらなっていません。
これ流すと飼ってる鳥たちが大騒ぎします。

・異星人(ギガントガッシュ).wma
逆に誰が聞いてもゲーム音楽と思いそうなものを。
スーパーロケット最高。

・ユーロピアン(レイヤーゼロ).wma
全消しできそうで失敗しやすい惑星でした。
粘りすぎは自滅のもと!

・電磁色(グランネスト).wma
地味だが着実に打ちあげ続けるメカペット。
危ないときは嫌な音が出ます。

・ナンバー5(ヒュージィ).wma
001番のBGMが好きなんですがメテオ数の調整が難しいですね。
ごぉぉ~ん!ぼわぁ~ん!

・体内バブル(アーニマ).wma
初めて聞いたときは生々しいサウンドを気味悪がったものでした。
すーほっ、はーっ。すーほっ、はーっ。すーはーすーはー…

・ファミコミック(メックス).wma
代表的なピストン惑星です。
ファミコンっぽい曲名ですがファミコンには出せない音が大半です。

・メイジャー(メガドーム).wma
メテオスオンラインでピストンができるようになった惑星です。
メガドーム球場へようこそ!

・大地のリズム(ウドー).wma
たった一度のピストンをいかに長く続けるかが鍵となる惑星です。
レアメタルが来て死に掛けました。

・アラーラー(ダウナス).wma
一番ピストンに成功しやすい惑星ですね。
私はこれで500万点出しました。

・メタリア(グラビトール).wma
二次点火以降でないと飛ばない変則的な惑星。
3分以降、二次点火する暇がなくなるんですけどね。

・荒野のカウボーイ(アナサジ).wma
攻撃力に優れた惑星らしいです。
個人的にはオンラインのほうが曲は好きかな。

・キララ(ラスタル).wma
なんというか、細かくて硬いいろんなもの、そんなイメージ。
カタマリ降下と着地の音が好きなんですよ。

・マジカルスピード(ワイヤロン).wma
初遭遇時、あまりに飛ばなかったのでシュートで後押ししたものでした。
カタマリが崩れるバグはここが特にひどかったように思います。

・ブービー(ブビット).wma
たたったたったたぶぁーぶぁー。
燃えカスを溜めすぎないことが大切ですね。

・ふゆのゆきづれ(フリーザム).wma
惑星防衛力ナンバー1、雪と氷の惑星です。
なんというか和風。

・ステッピン(フォルテ).wma
タテだとむちゃくちゃぶっ飛ぶ星です。
感じのいいジャズですね。

・よみがえれ!(コロニオン).wma
ピョンピョン跳ねる系の惑星ですね。
元のコロニオン星はどうだったんでしょうね。

・恐怖の館(ゲルゲル).wma
粘度の高いマグマの惑星です。
なぜかホラー仕立ての寂しげな曲です。

・ロック魂(ファイアム).wma
サラサラ溶岩の炎の惑星です。
いかしたロックです。

・トランスペース(ヒートヘッズ).wma
白熱しすぎて湯気が出そうです。
「臭い」という声が聞こえるとの噂です。

・カフェでボッサ(サードノヴァ).wma
白熱どころか蒸発どころかプラズマ化しちゃってます。
生まれたばかりのこの星にはボサノバです。

・ボンゴ(ジャゴンボ).wma
ジオライトいじめ常連さんの一人でした。
この音楽はケチャというそうです。

・シャイニング(オレアナ).wma
ゆったりとした挙動の水中惑星です。
明るい曲はいいですな。

・ガララン(ケイビオス).wma
安くしてよ少しぐらい。安くしてよ少しぐらい…
もう少し負けて。もう少し負けて。ただでくれ。ただでくれ…

・独音楽隊(フロリアス).wma
ファンファーレらしいファンファーレはいいですね。
花の惑星なのに結構な攻撃派です。

・スクラッチショー!(ルナ=ルナ).wma
落ちる途中のメテオで画面が埋まる変わった惑星です。
塊の落下も遅く傍から見るより難しい惑星でした。

・休日の歌声(スターリア).wma
女神スターリアの住む巫女さんの星。
いや、ほんと真面目ねー。嫁さんにほしいよ。

・時空空間(ヘブンズドア).wma
宇宙最強七賢さんのテーマ。
わけのわからない呪文でメテオを消し飛ばします。

・惑星メテオス(メテオス).wma
宇宙の災厄全ての元凶、つまりラスボス。
一番一般的なゲームに近い音の使い方をしています。

今日は誕生日!

ランダムバナーリンク集公開しました。
サンプルデータとしてうちへのリンクが入っていますが削除してかまいません。

メテオンキャプターをまた更新しました。
今回はキー操作での手動保存と設定の記録です。
どちらも時間の都合上ややいい加減なつくりになっていますがとりあえず使えます。

みほん

今日はDSのメテオスで曲の録音とメテオスオンラインでダークマターがイレイザーで消えるか実験してました。

それはそうとして、MeteonCaptorの画面写真、ソフト自体の画面写真ですが、本物のウィンドウと極めて紛らわしい画像であるため、薄く「みほん」の文字を重ねることにしました。
これのために、久しく使っていなかったPixiaを使ってみたのですが、全然思ったように動かず悪戦苦闘。
もっと簡単に文字を入れられるソフトとかないですかねぇ。
さすがに文字を入れるためにだけPixiaというのは大げさですし。
そのあたりさえ何とかなれば他のソフトの画面写真にもどんどん「みほん」の文字を入れていきたいのですが。

メテオンキャプター終わり

というわけで、フォルダ指定と表示も出来上がったので、これでもうメンテナンスにあわせた変更以外については終わりといえそうです。
設定の保存とかは要望があればその都度、ということで。
ダウンロードページに多少書き加えればもういいかな。

<前 次>