「ふにゃふにゃ」に関する日記(2)

<前 次>

中止

なんだか「ふにゃふにゃ」のエリア関連の処理を作ってビルドしていたらビルド中止できなくなって候。
リビルドすることもならず強制終了せり。
ああもう、そうゆうことでエリア関連処理はまだ途中だということでよろしく奥さん。
そうですよ。ダメージエリアに入ったらダメージを受けてダメージエリア侵入フラグが立ってフラグが倒れるまではダメージエリアが無効になるから連続でダメージは受けたりしないんですよ。
嘘です。嘘だけどある意味本当です。とある比較式をフラグと考えれば本当なんですよおねーさん。
やっぱこーゆうじゅーなんなはっそーがないとね、にいさん。
うぐぅ。そんなこんなで私は間違ってはいない。

掲示板のシステムやら何やらそういったいろいろな物事を研究して今後のCGI開発の参考にするためいろんなところからいろんなジャンルのCGIをダウンロードしてるトカしてないトカ・・・・い、いや、したトカ!
トリップやらキャップやらはいらないな、現状では。

「ふにゃふにゃ」のダメージエリアを汎用エリアに移行しました。
変数名変える→コンパイル→エラー箇所確認→コンパイル→エラー箇所確認・・・
・・・見る人が見たら怒り出しそうなやり方ですね。
ともかく、汎用ということで、何にでも使える変数を用意してみたりしています。
「ふにゃさん」で初めて正式な対応にする予定だった風の処理もこれの応用で作れそうな気がしてきました!

DirectMusic、半分ほど書けました。
明日更新しますよ。

特殊エリア

f2s1+フォーマットの読み込みを作りました。
ダメージエリアの読み込みを追加したわけですが、今考えてみると、特定の領域に特別な効果を持たせるというアイディアにはもうひとつ、ワープエリアというのもありまして、さらに思いつきでもっと増える可能性を考えれば、ダメージエリアはダメージエリア、ワープエリアはワープエリアというふうに分けて作ると、そのたびにセーブデータが膨らんでいき、そのたびに似たようなコードが量産され、そのたびにエディタのウィンドウが増えるのです。
そうなっちゃったら仕様変更とかデバッグが結構大変になるので、これらを全部ひっくるめて特殊エリアという概念で統一しようと思っています。
ゲーム本体のほうでも幸か不幸かまだダメージエリアのデータを直接扱う部分はほとんど作っていないので、新しいデータ形式が決まればすぐにでも変更できると思います。
んで、昨日言っていた氷の息最大数のことですが、デバッグしてみて明らかにおかしい挙動があったので調べてみたら、設定でどんなにたくさん設定しても、ただメモリを浪費するだけで実際には最初の20個までしか使えないというバグがありましたので、修正しておきました。

f2s1+フォーマット

「ふにゃふにゃ」のダメージエリアを作っています。
今日はデータ形式を決めて、一応使える状態にまではしておきました。
読み込み処理はまだ作っていませんが、今から作ります。
エディタのほうでも対応しなければなりませんが、それなりに面倒臭そうな気がします。
新しい要素を追加するのでデータ形式も変えなければなりませんが、単純なf2s1フォーマットの拡張で事足りそうです。
これを同じf2s1フォーマットとして実装すると下位互換性が得られますが、旧バージョンでは挙動が変わる可能性があります。
あと、画像でメモリ何メガバイトも使ってるのにたかが数キロバイトをケチるのもどうかと思ったので、'氷の息'の最大数を100個にまで増やして、「攻撃が不発!」なんて事がなくなるようにしました。
100個という数字に特に根拠はありません。

むつかしいことをかんがえよう

WindowsXPのサービスパック2をインストールしました。
大幅にセキュリティアップされるってことだけど、裏を返せばこれまでが穴だらけだったということでしょうか。
それより、実際のところまだまだ穴だらけなんじゃないでしょうか。
どうでもいいけどインストール終了後「再起動しますか?」のメッセージが出たので「はい」にしたら再起動せずに、また同じメッセージが出てきて、今度こそ確実に「再起動する」にしても再起動せず、タスクバーの隅っこで「まだ再起動されていません」という実に歯痒いメッセージが。
3度目でやっと再起動に成功したと思いきや、「設定を保存しています」でフリーズ。
もしかしたらかえって悪くなったんじゃなかろうか。

「Bomber丸World」のシステムについて考えてみました。
例えば、関数は終了しなければならないのです。クラスは破棄されなければならないのです。

ゲーム起動→ゲームがタイトルを呼び出す→タイトルがマップ画面を呼び出す→マップがイベントを呼び出す→なんだかんだあってゲームオーバーになり再びタイトルが呼び出される・・・・
という構成にしていれば、結局のところ間接的にタイトルがタイトルを呼び出すことになり、長期的に見ればかなりまずいことになっているわけです。
かといって、
ゲーム起動→ゲームがタイトルを呼び出す→タイトルがマップ画面を呼び出すようゲームに通知する→ゲームがマップ画面を呼び出す・・・・
なんてことをすると全てをゲームの中枢部分が管理することになり、シーン同士の直接のつながりがなくなってしまいます。
この場合、
…タイトルがマップ画面を呼び出す→タイトルは不要なので消えてもらう→マップがイベントを呼び出す→イベントが終わったらマップに戻るのでマップは消さない→なんだかんだでタイトルへ→マップその他はもう用済みなので消えてもらう…
これを実現するためには、次のシーンの初期化が済んだら前のシーンを消すという処理が必要なわけですが、これは各シーンをクラスという形で用意して、次のシーンの初期化処理で前のシーンをdeleteするという方法で。
あるいは、
…タイトルを中断してマップ画面を呼び出す→マップがイベントを呼び出す→なんだかんだでゲームオーバーになったらタイトル意外は全部消す→タイトルがまた動き出す…
というのは…よくわからくなってきた…

「ふにゃふにゃ」の反射属性を持つラインのことも考えていたのですが、どう計算してみても複雑な式が出てきてしまい、とても実装する気にはなれません。

家にただ一人

「ふにゃふにゃ」のページをリニューアルしました。
以前のはどう考えたって見た人が遊んでみたいと思えるようなページではなかったので。
内容のページに何故かこだわりが書かれていて、内容になっていなかったので、見て楽しそうだと思わせることをコンセプトに全面的に書き直しました。
特殊な操作性込みで説明したので随分と改善されたと思います。

ホームアローンは1が好きだけど3をもう一度見てみたい。
主人公が何回キスされたか映画館では数え切れなかったので。

暴走注意

「ふにゃふにゃ」をやっていたら、右キャラを操作しているのに左キャラが動き出す現象に出会いました。
この現象は、左キャラの操作が方向キーとShiftキー、右キャラの操作がテンキーで行われていたのが原因だったようです。
テンキーの2468はShiftキーと共に使うと方向キーと同じ役割をするので、そのせいで右キャラに伝わるはずのキーイベントが左キャラのほうに伝わり、左キャラが暴走したのです。
次回バージョンアップ時にヘルプに記載しておきます。

直リン排除研究JavaScript編ができました。
HTMLファイルにしか適用できませんが、たった5行(タグ・コメント行込みで7行)、実際の内容は3行、場合によっては2行で終わりです。
意外と簡単ですね。

ダメージを受けたときのリアクションについて

「ふにゃふにゃ」のダメージを受けたときの跳ねる方向を変える処理を作っていました。
とりあえずキー入力があれば一律で20ずつスピードを変えるようにしてみましたが、今後地上と空中、そしてダメージエリアで挙動を変えるようにするかもしれません。
ダメージエリアの場合、基本的には動かないし消えないので、移動量をもっと多くすべきかと考えています。

野球の日

ハードディスクのデータのバックアップを取りました。
数日前のものですけど、DVD-RWに。
多分このバックアップが役に立つ日はないと思うけど、思いたいけど、やっぱりそう思ってるときに限って必要になってくるようなものなのだから一応しておく必要はあるというものです。

「ふにゃ」の追加ステージ2を作っていました。
1面は、本当に何のテクニックもいらない、バナナを取るだけのステージ。
2面は、一度やってみたかった最小サイズのステージ。
3面は、ジャンプの高さ調整がテーマのステージ。
4面は、急に難度を上げてジャンプの応用ステージ。
5面は、ひたすら長く嫌がらせのような罠だらけのステージ。
氷のステージよりは難しく、追加ステージ1よりはまともな線で行こうと思います。

7月分の開発日記を移行しました。
おもに「ふにゃふにゃ」です。

そうそう、今日ドラクエ7でカジノのスロットをやっていたら、いきなりホンダラ(周りの評判は悪いけど主人公に対してはいろいろ役に立ってくれるおじさん)が現れてゴールデンスライム(揃うと掛け金x100&回数+10)で止めてくれて、その後のボーナスゲームをやっているといきなり見ず知らずの剣士が現れて、ハズレで止まったスロットをドラゴスライム(揃うと掛け金x5)まで回してくれて、結局100,000コイン以上たまってしまいました。

過去ログ

日記の過去ログのうち、プログラムの開発関係の部分をダウンロードのページに写し始めました。
本当はTscripBBSを作ろうと思っていたのですが、記号の意味を忘れてしまい、過去の日記を見て調べようと思ったのですが、なかなか見つからず、また、以前からやろうとも思っていたので、これを機に開発日記を作り始めたのです。
とりあえず最初の2か月分、2002年の5月と6月の分を移行しました。
「ふにゃふにゃ」、「ふわふわふにゃ」、「パネルα」、「MusicPlayer4」、「MusicPlayer5」、「Bomber丸World」、がでています。
今更言うのもなんですけど、日記の過去ログから関係する部分を抜粋してきただけなんで、抜け漏れがあったり、現在と文体が違っていたり、前後の文脈がない関係で少し意味不明だったり、明らかにいい加減にしか語られていなかったりしますが、まあ気にしないでください。

椰子の日

旧HPMを可能な限り縮小しました。
502バイトまで小さくしましたけど、見に行かないでください。
見ている人がいるとファイル削除できませんので。
ちなみに、トップページ以外にはもう用はないので完全に削除しました。

「ByteEdit」をバージョンアップしました。
クリップボードもどきを加えてみました。
結局クリップボードは実装できませんでした。
DDEを使ったデータ共有もできませんでした。
なぜなら、面倒だったからです。
そこで、ローカルなクリップボードを使いました。
それは一つのプログラム内でのみ通用するものです。
今回はこれで妥協しました。
そこで、もうひとつ問題を発見しました。
それは、データサイズに関する問題です。
問題の原因はスクロールバーにありました。
スクロールバーのプロパティには32767までしか指定できないものがあります。
それはMaxプロパティです。
その値は計算式で表されます。
計算式は、「データサイズ÷一行の桁数」の整数部分です。
よって、エラーが起こります。
エラーが起きるのは「データサイズ÷一行の桁数」が大きくなったときです。
そのときの値は32768以上です。
エラーを起こさないためには必要なことがあります。
それは、計算式の値を32768以上にしないことです。
つまり、データサイズを「一行の桁数×32768」未満にすることです。
言い換えれば、上限が定まります。
それは、データサイズの上限です。

「ふにゃふにゃ」の改良案を更新予定に追加しました。
昔から考えていたことなのですが、今日思い出したので書いてみました。

スクリプトで作るステージ

日記の8月分の過去ログを作りました。
当時FFCCをやっていたのを懐かしく思い出し・・・ってまだやってるんだった。
ギガースロードをいぢめて遊んでます。

「ふにゃふにゃ」の講座更新のためにf2s0フォーマット関連の機能を強化していたのですが、そのついでにちょっと遊んでいたら、オプションでつけなければ強くならないはずの攻撃力がジャンプ中には勝手に強くなってしまうバグがあったので、直してみました。
ゲームバランスを崩す結構重大なバグなのですぐに直してアップしました。
どうやらバージョン1.03でBGM処理を加えたときに狂ってしまったようです。

投稿掲示板にて

「ふにゃgba」は、任天堂が特許を取ってエミュレータがどうのこうのとややこしいことになっているため、開発を中止することにしました。
エミュレータを使わずGBA実機に転送して遊べば問題なしなのですが、いろいろと大変なのでもうやめます。
ん?待てよ、GBA用のJavaVMを作って、動作テストはWebブラウザのJavaアプレットで行って、完成したらVMごとGBAに転送してみるとか?
要は、GBAのエミュレータをパソコンで動かすのではなく、パソコンのエミュレータをGBAで動かすということです。

「ふにゃふにゃ」用のステージをアップしました。
本当はステージ内部に潜り込めるバグがあったのですが、ほったらかしでアップしてみました。
本当はゲーム本体を改良してステージももっとよいものにしようと思っていたのですが、そのままでアップしました。
どこに?あの場所に。

「アクセス解析」で、結果表示中に途中で中断する機能を入れてみました。
ループ中にDoEventsを入れたのですけど、元々の処理が非効率的で非常識なほどに遅かったので、DoEventsを入れても以前に比べての遅さはほとんど気になりませんでした。

プレイステーション2用のメモリーカードを買いました。
これでドラクエ5が勧められそうです。
その前にドラクエ7をクリアしなければなりませんが…
ちなみに、ドラクエ7は、いつでもラスボス戦に行けるようになっていて、今は天地雷鳴師を目指して修行中です。

ねたねた

FFCCのサントラを買いました。
ゲームで聞いていたときから、録音した音声をBGMに使っていたということは気付いていましたが、打ち込みではなく生演奏だったんですね。
「マギーがすべて」や「融合、降臨」などは実際の楽器での演奏は無理だと思っていたのに、本当は昔の楽器でできてしまうんですね。
とりあえず、PCに取り込んだものをMusicPlayer3に入れたらバグを見つけたので直しておきました。
明日の更新はこれで決まりです。

「ふにゃふにゃ」のBGMの前半に違和感があると思っていたら、ベースの音が変でした。
これも更新のネタになりそうですね。

それはそうと、先生からカンニングがいけないわけというものを聞きました。
詐欺師の大半はカンニングの経験があるということで(非詐欺師と比較してもらわないと充分にわかりませんが)、カンニングで味を占めて詐欺に手を出さないように、厳しく取り締まっているのだそうです。
自分で解いたものと偽って点数を騙し取る行為、錯誤を招いて金品を騙し取る行為・・・・

ゼニス王の存在

あるサイトで見たんですが、『2月29日は4年に1度のうるう年の日。そして申年の今年は「サル」が「去る」にかかっているらしく、贈り物をすると病が去るなどの風習があるとのこと。特に赤い肌着を送るのがいいらしく、4年に1度のうるう年、赤い日曜日、そして大安というめでたい日がそろっているとのこと』とのことで、今日はめでたい日とのことです。

「ふにゃふにゃ」のステージ制作講座の番外編をやってみようと思います。
最初にして最強、最も難しくありながら同時に最も単純な、f2s0フォーマットのステージファイルの作り方です。
なんと、ステージエディタが要りません。
なんせエディタができる前に作られた形式ですから、エディタいらずのテキストオンリーのステージファイルです。
内容はといいますと、"f2s0"とステージファイル名を記載しただけのファイルと、スクリプトファイルだけです。
そして、全ての設定をスクリプト内で行います。

ゲームのページの「ドラゴンクエスト6」を開放しました。
私の歪んだドラクエ6観が思う存分見られます。

リンク集に「林道の鬼」を追加しました。
「簡易アクセス解析」で使ったURLデコード関連の関数を公開されているけるべさんのサイトです。
はっきりいって林道と釣りについてはさっぱりわからんのですよ(ixi)。

個人的リンク集を改良してみました。
特別リンク集が見られるようになりました。
さらに、管理画面から全てのリンクが見られるようにもなりました。

氷山登り

ゲーム紹介の、アイスクライマーのページを作りました。
スクリーンショットらしき画像がありますが、あれはゲーム画面を見てパーツをちまちまと作っていき、それを並べて作った画像です。
あんなシーン、実際のアイスクライマーにありませんって!
ちなみに、63面までいったのは、数年前の話です。

「ふにゃふにゃ」の追加ステージ「不倫した神父」のテストをしていました。
実質遊んでいたわけですが。
前にもここに書いたことがあるかもしれませんが、このステージは「大乱闘スマッシュブラザーズDX」の隠しステージ「ブリンスタ深部」をモチーフにしたものです。
つまり、回ります。

プログラミングコーナーの次の更新は、速度比較に関するものにしようと思っています。
速度比較そのものはいろんなサイトでやっていますが、理屈ばっかりで結局大して速度が変わらなかったり、たくさん速度比較のデータはあるけど自分の使うものがなかったり、整理されていなくてどれを使うと有効なのかよく分からなかったりすることが多いのが現状だと思います。
「そんなことはない、うちの速度比較のデータは完璧だぞ!」
という人はご連絡ください。
プログラミングを更新する代わりにそちらにリンクします。
というわけで、そういう連絡がなければ次の更新は速度比較にする予定です。
速度比較したものを、速度差(遅い方が速い方の何倍の時間がかかるか)順に並べて、そのそれぞれに、差が出る理由や考察などへのリンクを付けてみようと思っています。

気が向けばもっと作るかも

うむ、やっぱ微分方程式を解くときは定数変化法だな。
未定係数法もいいけど。
今日は講義が早めに終わりました。

「ふにゃふにゃ」のステージを作っていました。
「不倫した神父」はほぼ完成だけど「ビーチ城」はまだまだ。
「不倫した神父」は回りまくり、「ビーチ城」はアイス砲が飛んできたりスイッチで床が現れたりします。
他に予定しているステージは、「始点」、「ブラックゾーン」、「アイスシックマウンテン」、「バカモン亜空間」、「いけにえの帝国」、などなど・・・・
って! 本当にこんなにやるわけじゃありませんよ!
ただ名前を思いついただけです。

自己紹介とか、掲示板とか、微妙に変わりました。
あとダウンロードも。
その他も。

負荷音楽説明

「ふにゃふにゃ」を更新しました。
ゲームプレイ中の負荷を極めて小さくしました。
高性能なCPUほどその効果が実感できるはずです。
また、BGMを改良しました。
今まで思いっきり貧相に聞こえて、自分でもBGMを切ってしまうほどだったのですが、ベースを付けることで何とか聞けるようになりました。
でも、音楽そのものは良くなったのですが、なんとなくゲームに合っていない気が・・・・
本当は「まちかどバトル」のストーリーも入れたかったのですが、それに使う表情を作るだけで終わってしまいました。
これについては次の機会にということになりそうです。

ゲームについていろいろと

「ふにゃふにゃ」、負荷を減らすためにSleep命令使ったんですよ。
でね、ちゃんとスリープしたんですよ。
ええ、そりゃもう限りなく!
永眠です。
ご冥福をお祈り・・・・ってそんなこと言ってる場合じゃない!
というわけで、永眠しそうになったら起こすようにしてなんとか解決しました。

それと、やっと、今更、こんなときになって、「ふにゃふにゃ」のストーリー解説デモを作り始めました。
文章によるストーリー説明よりも動きが多いです。

「ふにゃ」のシークレット3の条件が間違っていたので、修正しました。
シークレット3はノーミスクリアじゃなくて・・・・あとは自分で探してください。

「Bomber丸World」のスタッフをついに募集し始めました。
今回はタイトル画像の募集です。
とはいえ、提供しても実際にゲームで使われるかどうかはまったくもって管理人の気分次第!
ということで、それでも描いてくれるという人がいらっしゃったらよろしくお願いします。

「自分に100質」を更新しました。
寒いのは苦手です。
特に夏冷房の効き過ぎで寒いのには耐えられません。

「ふにゃふにゃ」、プレイ中の負荷も軽減

「ふにゃふにゃ」で、ポーズ中CPUに高負荷がかかっていたので、直したのがバージョン1.03なのですが、よく考えたら、いや考えなくても、プレイ中にはもっと高い負荷がかかっていました。
プレイ中は他の作業をしているはずがないので問題ないと思っていましたが、考えてもみたらユーザーがそのつもりはなくてもパソコンが自動的に作業していることが少なくありませんでした。
つまり、プレイ中は常にパソコンのゲーム以外の動作が不安定になるのです。
MusicPlayer3での演奏に支障をきたしたので直しました。
20日ごろに修正版をアップします。

しかしまぁ、それでも「ふにゃふにゃ」は結構CPUパワーを使います。
パソコンやステージによっては処理落ちしまくるんじゃないかな?

<前 次>