最終回まで
サンプルも作り終わって、ページ分割も完了しました。
次回更新予定日は4月の3日です。
それでは次回予告、どうぞ。(次回が少し面白くなかったので次の次の次の予告にしちゃいましたが)
画像として形が与えられ、奇妙なノイズをも振り切った主人公と敵に、対決のときが迫る。衝撃のクライマックス!!
サンプルも作り終わって、ページ分割も完了しました。
次回更新予定日は4月の3日です。
それでは次回予告、どうぞ。(次回が少し面白くなかったので次の次の次の予告にしちゃいましたが)
画像として形が与えられ、奇妙なノイズをも振り切った主人公と敵に、対決のときが迫る。衝撃のクライマックス!!
fffabのページ、文章は完成しましたよ。
あとは本体のプログラムを完成させれば。
実はいらないんですけどね。
流れ上作ったほうがいいだろうなと思って。
ページが結構でかくなっちゃったんで分割するかも。
fffabのページ作成中でごわす。
いろいろサンプルを多数作らなきゃいけないので大変なのでごわす。
ひとつのページに収めるつもりだったけど画像が多くて重くなりそうだからいつかページ分割する可能性があるでごわす。
今日学校に行く日だと思ってたら明日の間違いだったでごわす。
ふにゃさんのステージデータのフォーマットを考案中。
他人と競うものがない今作においてセーブデータはあまり重要ではなく、むしろ誰でも作れるステージデータのほうが捏造に強いものにしておかなければならならない。
しかも、手軽さという点では、ひとつのステージデータは基本的にひとつのファイルに収めておかくべきである。
理想を言えばマップチップも取り込めるようにしたいが、これについては他のステージでも流用する可能性が高いので却下。
スクリプトも仕込めるようにしたいけどスクリプト本位のものは前作で懲りた。
そして、マップチップ本位で、敵キャラクターなどの仕掛けを無数に設置できて、ゲームシステムの範囲内で拡張性の高いものを作るべき。
パネルγの隠しモード構築中。
fffabも構築中。
BM98'S ROOMつうにてシーン管理クラスの使い方考え方とe-maのど飴について調べてきました。
そしてふにゃさんで使うシーンを適当に作成。
もちろん実装はまだ。
パネルγのページ更新。
裏話ですよ裏話!
ふにゃさんの開発再開。
久しぶりにコード見てみたら自前シーンクラスが。
う~ん、これでも一応行けそうな気はするけどちょっと不安だなぁ。
まず、なんにでも使える変数を用意しているところが無駄。
クラスごとに違う変数を使うのが当たり前だからなんにでも使える変数は何にも使われない。
使う手もないわけではないけどそれはそれで無駄。
クラスの中にRun関数を作ってその中でメインループをまわしてるけどこれはパネルγで懲りた。
Alt+F4で強制終了されたときの動作が不定になるんですよ。
たまに終了してもプロセスが残ってしまうバグはおそらくこれが原因。
そんなわけで、シーン管理にはyaneSDK2ndについてるシーン管理クラスを利用。
描画エンジンも、DIBのことはよくわからないけどとにかく使ってみたいのでyaneSDKのものを利用。
サウンドはどうするかな。
ただ鳴らすだけじゃ芸がない。
効果音は作れないし、となれば音はBGMに組み込むことになるだろうと思うので、yaneSDKは…使うかも。
ゲーム内の物体はどっちみち結果が同じだと思うのでyaneSDKのCGameObjectを利用。
とりあえずパネルγのページを更新してみたり。
パネルγを作るにあたっていろいろ考えることもあったのでそういうのも掲載できたらいいなと思ったり。
一応完成しました。
プラクティス4は時間というよりは気力のほうが尽きまして、もうテキトーに。
その分3はきっちり作りましたから。
公式サイトがあまりできず。
後細かい調整なども。
今日になってギリギリで追加した要素は、まず同時消しボーナス。
これは、元々同時消しはたくさん消えてしまうのにもかかわらずより大きなパターンに一致しない限り時間差を付けてコンボにしたほうが得であり、ゲーム性や難易度から見て適正ではないと思い、同時消し≒連鎖>コンボ>普通、の関係になるように調整したものです。
ボーナスポイントは、(同時に消したパターン数)1.5で、たくさん消すと、コンボよりは効率よく点が入り、しかし法外に得点が入りまくることはないようになりました。
そして追加要素のもうひとつは、横連鎖。
本来連鎖は、パネルが重力に従って落ちることによって起きるのが普通ですが、最初のコンセプトからもわかるように、プレイヤーの意図とは無関係に動くことによって次の消去が起これば落ちようが飛ぼうが滑ろうがこけようが連鎖なのです。
だから、プレス機から逃げる行動によって起こるのも連鎖として扱うことにしたのです。
いや、これホント、テストプレイ中常々気にしていたんですよ。
まだ中途半端な部分がないわけじゃないけど、とりあえずやらなきゃ気がすまない部分はちゃんと入れられたかなー、と思います。
パネルパターンの部分を作成。
ここにきてメモリエラーを起こしていたことが発覚。
共通化の際に取り残されたコードがまだ開放しちゃいけないメモリを開放して、その後存在しない変数を読み出してありえない数値を記録。
もちろんしっかりきっちり共通クラスのほうに移動。
スクリーンショットも撮るには撮ったけどリニューアルの関係でアップせず。
明日まとめてアップします。
プラクティス3が途中。4が手付かず。
他いろいろ小さな演出なども。
プラクティス2完成。
ダウンロードページリニューアル中。
う~む、どうなんだろう。
とりあえずパネルγのゲーム的な部分は完成。
不完全な部分を隠せば今すぐでも公開できないことはないけどそれじゃ意味がないのでまだ公開しない。
例によって少し遅れてる。
でもなんとしてでも間に合わすぞ!!
ランキング、古いほうが価値が高いという意見も。
どうしようどうしようどうしよう。
まあ、とりあえずランキング間の移動もコンボでクリアのバグ修正もパターンごとの消した回数の記録も、そしてもちろんパズルモードもひとまず完成したので、あとは明日中にパネルパターンとプラクティスを作れば、あとはマニュアルと公式ページ作りだけとなります。
それでもまだ遅れてるんだけど。
パズルモードのプログラム部分はひとまず完成。
ステージは後2つ。
んで、ゲームクリアの音楽を追加。
ランキングの順位は新しいのを優先で記録すると良いらしい。
コンフィグもそれなりに。
やっぱりちょっと遅れてる!
パズルモード。
作ってますよぉ。
相変わらず遅れ気味。
スクリーンショット少々。
はてな、またはじめました。
http://d.hatena.ne.jp/mifumi323/
このサイトに置き場のない文章を載せていくつもりです。
日記は此処で充分間に合っているので。
ファイル記録に続きファイル読み込みにも対応。
(私にとって)ややっこしいアルゴリズムを組んだ割にはこれといった不具合もなく一発で成功したので、そのテスト用のデータがちょうど今回自己記録を更新したのもあわせて、とてもめでたいああめでたいの気分なのです。
しかし何度も言うように予定からは結構遅れている。
明日と明後日でパズルモードのプログラム部分とコンフィグの基本部分を完成させ、各ゲームのランキングの移動もできるようにする予定。
ランクデータ用構造体のサイズはちょうど24バイト。
8と3の最小公倍数で、偶然にも今回最も都合の良い数字だった。
将来的にはまたオンラインランキングにでも対応させようかと思っているのでセーブデータは暗号化しておいたほうがいい。
もっとも、パスワードや個人情報などの重要なデータは入らないのでまた簡易的な暗号化ではある。
あと、設定項目なんかには、「自由」という項目もつける予定。
まあこれはあくまでおまけなんで後回しなんだけれども、今後拡張できるようにだけはしてあります。
メテオス惑星コンプリート。
サウンドもとっくの昔にコンプリート。
アイテムももっと昔にコンプリート。
あとはレアメタルを合成にてニヤニヤするだけ。
メテオスのスタートリップのマルチの一番上のエンディングを見ましたよ。
攻撃メテオを75個以上溜めて、というミッションは苦手だったブビットで成功。
点火を繰り返すことで極端に上昇力が上がるところがここだったので(逆に繰り返し損ねるとすぐアウトになってしまう)。
ヘブンズドア×3=21賢さんのミッションは最初から最後までタイムアクセル状態のままで勝利。
幸いブレイク数はミッションには関係ないのでミッションクリア前に相手がやられそうだったらタイムアクセルでとっとと自滅。
多分これがベストエンディングだな。
ブランチの下から3番目がお気に入りだけど。
プラクティス1完成させました。
マウスの動きを作るのが予想以上に大変でした。
そのあたりをもっと簡略化するように便利関数を拡張したりもしました。
う~ん…ひとつに一日がかりか。厳しいな。
デモプレイに便利な関数修正。
マウスクリックで複数のシーンが飛んでしまうバグを修正。
パネルを入れ替える関数作成。
これもプログラムの簡略化のため。
チュートリアルの文面とか。
http://www.geocities.jp/stdmidi/
SMFの構造をわかりやすく解説。
MIDIAPの参考にさせてもらおう。
デモプレイを作るのにとても便利な関数作成。
明日fffを終わらせた後でチュートリアルを全部作り上げてしまいたい。
そうだな・・・メインは文章だから文面をさっさと考えてしまうか。
で、fffは敵が出てくるところまで。
解説したからといってどうなるわけでもない定型文がそろそろ増えてくる。
そこはサンプルコードだけをのせて、なるものはなると開き直る。
意味は後で各自が調べればよい。
fffの途中サンプルにドキュメント付属。
なんせバグってる状態のサンプルなんで説明が必須。
明日ゲームそのものは完成させてあさってに公開という形になります。
パネルγ、チュートリアル1を作り始めました。
それに伴いできるだけ作業を効率化させるためにいくつかの機能を共通化。
ちなみに、チュートリアルではそのとき説明している以外の操作をしようとすると怒られます。
パネルγの日本語表示の仕様変更。
目的はメモリの節約。
日本語を表示する領域は完全に固定なのでその方向に最適化しています。
サーフェスは全部ビデオメモリに入れてるはずなので足りなくなるとつらい。
ABのfff、こんなおかしな動きになるぞって言っておいて静止画しか見られないんじゃわかりにくいので途中版サンプルも作ってみました。
文字通り作りかけの状態でめちゃくちゃ不完全なのですがあえて。
メテオス、買っちゃいました。
ラスボス最高。あんなのやこんなのをバシュバシュ飛ばせるなんて!
見た目が好きなのはメックスとスターリア。
BGMが好きなのはレイヤーゼロとフロリアス。
ルールが好きなのはギガントガッシュとヒートヘッズ。
設定が好きなのはヘブンズドアとアーニマ。
メテオの柄が好きなのはメテオス!!
パズルモードのステージ制作中。
パズルモードはなんとボリュームちょっぴりの全10ステージ!!
で、10ステージ中6ステージまで作成。
一つ一つのステージが決してコンパクトではないし、全部消すまでに稼いだ点数を競うものであるという特性上解法が一通りではない(クリアするだけなら簡単だが高得点を狙うのは難しい)ので、ステージが増えても疲れるだけかと思ったので、切りよく1画面に表示できるメニュー数と同じ10個にしたわけです。
ActiveBasic版fffの開発半分ぐらい完了。
ゲーム作りとはルール作成・演出・データ作成がメインだと思っちょります。
そしてそれらは本来すべて作成者の個性であるため、ここで扱いたいのはあくまでこれらを作り始められるように準備する部分まで。
だからはっきり言って、ここから先のルール作成部分はほとんどおまけのようなものなのだ。
パネルγ、プラクティスにメニューを追加できるようにしました。
ここからチュートリアルに移動していろいろ試せるようになっています。
チュートリアルでは作っただけで今まで使い道のなかった2つ目のマウスカーソルが活躍しそうな予感。
今日はMicrosoft GS Wavetable SW SynthのMusic Studio Producer用の音色表を作っていました(参考:http://wiztext.bne.jp/~sakura_news/4neria/mgs.html)。
ドラムセットの入力は完了。普通の音色のほうは多すぎて終わらなかった。
パネルγ、画面下の情報表示にハイスコア追加。
なんとかできそうな気がしてきたのでひとまずパネルγはおいといて、fffの開発に行っていました。
画像の読み込みと表示の解説が面倒だったので描くのも解説するのも簡単な円に避難。
うちのパソコンにインストールされているQuickTimeとMidRadioPlayer、どっちもMIDIのソフト音源を持っているらしいのでいろいろ聞き比べ。
音化けでろくに聞こえなかったMIDIがばっちり聞こえるようになったのはうれしい限りです。
ドラムの音が音源によって全く違うことを身をもって痛感。
物によっては悲惨。
タイムアタックのランキング、さっさと作ってみました。
タイムアタックのBGM、昔作ったピンチの時用のBGMを流用したりエンドレスのBGMをアレンジしたり新しく1から作ったりしつつ全種類一気に作ってしまいました。
しかし、実際にゲームで使ってみると、残り時間1~2分のテーマと0~1分のテーマのとき、あまりにもテンポが速すぎて、消しBGMに切り替わったときにテンポ変更が追いつかず2~3倍速のスピードで半連鎖分ぐらいBGMがすっ飛んでしまい、ゲームとBGMが合わなくなってしまいました。
そこで、一つ一つの音の幅を狭くしてテンポを下げることで聞いた感じは同じのままテンポの狂いを抑えてみました。
実際にこれでゲームをやってみたらまあまあいい感じにできていた印象です。
1分を切ったときの曲なんか元々はたった4秒でループするものだったので、無理やり引き伸ばして引き伸ばして16秒まで延長したのですが、その割には違和感が少なくできたように思います。
「Bomber丸World」のシステムのひとつ、方向別エンカウント率。
基本的にBomber丸Worldでの敵との出会い方は一歩ごとランダム(1歩目で出会うかもしれないし100歩歩いても出会わないかもしれない)なんですが、歩く方向によって敵に出会う確率が偏ります。
多くの場所では、直進エンカウント率が低く、方向転換のときのエンカウント率が高くなります。
ある敵などは後ろを振り向いた瞬間にしか出なかったりもします。
パネルγ、日本語表示対応。改行は不可能。
これでプラクティスを本格的に作りはじめられる。
んで、ピンチのときテンポを上げる処理を実装。
でも高さじゃなく深さでテンポを変えたほうが良かった気がします。
タイムアタックのランキングもさっさと作らないと!
タイムアタック作成。
ほとんどエンドレスのコピー。
プレス機の移動速度はひたすらランダムで決まるのである程度運も必要。
まあエンドレスもある程度そうだけど。
ただ、時間制限がある分、圧縮によるゲームオーバーはできれば避けたいので、ピンチのときのプレスの速度はかなり遅くなるように設定してあります。
AB講座の続きも書いてます。
とにかくコンパイルを通して、見た目を先に作って、マイキャラを動かして、敵キャラを動かして、ほかいろいろやって、完成です。
GDI実装。DDrawでうまくいかない人は試すよろし。
ポーズ機能もちょい改良。いきなりゲームに戻ると動作に支障が出る。のでポーズから復帰時にちょっと間開け。
名前の記入は日記書いた後即行で実装。
AB講座、はじめました。
今日中に書き終わらなかったのよ。
あとついでに、ゲームのカテゴリが増えすぎていたのでシリーズ別にまとめました。
リファラ見てたらなんだかピンク玉がはねてる楽しそうなゲームを開発しているページを発見。
なんだか面白そう。
こっち方面に役に立ちそうなことを重点的に更新しつつ完成を楽しみに待っていようかなとも思っていたり。
パネルγ、ポーズ機能作成。
デバッグモードでコンパイルした場合のみ、ポーズ画面に100点追加とプレスリセットのメニューが登場します。
残念ながらランクへの名前の記入はまだ。
また遅れたっ!!
fffab開発開始ですよっ!
何って!ふわふわふにゃのActiveBasicバージョンですよ!!
あすかあさってあたりでプログラミングコーナーで取り扱うのじゃ!!
ふわふわふにゃはゲームプログラミングの典型的な手順のひとつに忠実に従っている(はずです)ので。
パネルγの開発、予定よりかなり遅れてるっぽいです。
まずいっす。ショートケーキに醤油と山葵付けて食べるぐらいまずいっす。食ったことありませんが。
一応ランキングに記録はできるようになりました。
これをファイルに保存できるようには1週間以内にしておこう。
ランクに名前を記入するのと日時の記録は明日中に終わらせられる。
サウンドテストとプレスブレイカはカットになる可能性が高くなってきました。
いずれもルールが複雑になる可能性が高いから。
とり急いで不足分のBGMを作成。
どうもコード進行を間違えたようだがひとまず保留。
ポーズ機能もつけなければ!