今日のファミリーべシックJava

Javaでファミべと同じように遊べるゲームエンジンを作っちゃおうという計画が始まりました。初日は根を詰めてやりだしたのですがプログラマーは精神が追い詰められる仕事で、ざっくり書くほどバグが多く、自分で書いたプログラムのエラーやバグに自分で苛立って破滅への道を歩まぬように、休みながら少しずつ進める予定です。

今日のファミリーベーシックJava

今日はコントローラでキャラが滞りなくなめらかに進むところまで。

ファミべは作曲機能も付いているようで、ドレミの文字で音階を書いて、8分音符か4分音符刻みのテンポで三和音まで出せるようです。ドラクエすぎやまこういち先生はファミコンが4和音だと仰っていましたが、おそらく効果音のプログラムを改造して4和音を作ったんだろうな。じゃあ戦闘は三和音なのか?それとも会心の一撃の時とか曲消してんのかな。

プロジェクトはファミべの容量をとっくに超えて16キロバイトまで増えました。

プログラム言語がJavaなのでプログラミングにクラスが利用できるのは大規模な開発には向いてるかもだよ。って、それじゃ小回りがきかないからファミべエンジン作り出したんだけどな!

とはいえ、8かけ7の56スプライトでも余裕で動くのはファミコン以上のスペック。

特段ファミべのスペックに合わせる必要は無いんだけど、自分でドット絵書くのが面倒でウインドウズマシンが壊れてからMacBookでどうやってゲーム書こうかとObjectiveCの勉強を始めたら気が狂いそうになったのでJavaにしたって話。

ファミコンソフト「ナッツアンドミルク」とか「ロードランナー」の面エディットでゲーム画面を作ったの思い出したな。


ファミベJavaグラディウス的ピーチ姫

時間とやる気が余ったので作った。

グラディウスのオプションが如く付いてくるピーチ姫と、あとマリオのジャンプ。順序が逆だ。ジャンプ作ってピーチが付いてくるようにだ。ジャンプの物理方程式は重力gをいかにゲームが気持ち良い値にするか、みたいなとこあるよな。

オプションもグラディウスの前にツインビーオプションがあって、止まってるときは付いてこないグラディウス式に変更。しかし操作系が自由移動じゃないからジャンプ中に空中でピーチ姫が止まって待つのは不自然であり、飛んでるときはマリオが動いていなくても着地まで移動などの処理が入っている。ひと手間。

サンソフトのメタファイトやギミックの凝っている感じが好きだが、凝ったドット絵と丁寧なプログラムの絡みの成せる技であって、絵だけでもプログラムだけでもないのよね。色々出来る人がエゴイスティックに引っ張って「これが良い」と思ったものを作った感がある。ファミコンソフトは素人目に大半が同じに見えるけど、ソフト1本にひとつは何か工夫があって、そのために買い集めたもんだけど、今から考えると親から買ってもらえなくてもバイトしてあれだけゲーム買ったならファミべでもパソコンでも貯金すれば早くに自分で買えたんじゃないかと。

その無駄がゲームに対する憧れを生み出し、様々なことを学ぶ原動力になってる。

子供の頃にファミコングラディウスのオプションとスピードを取りまくってどれだけ速くグルグル回せるかと試して遊んだりしたなぁ。今も自分が作ったマリオとピーチでピーチを追跡型にしてから、走って振り向いてジャンプしてマリオでピーチを飛び越して付いてきたピーチが飛ぶところをマリオで走ってくぐるという遊びを猿のように何分か遊んでしまった。

けど、そういう風に制作3時間プレイ5分くらいのサイクルで昔買った色々なゲームのいわゆる「おいしいトコロ」を真似て作って飽きてを繰り返すよな。ファミコンの容量ゆえひとつのゲームに複数の要素が入らなかっただけで、スーファミ星のカービィ持ってりゃ大抵のアクションの面白いところはコピーで体験できる。

あー、語った語った。今日はおしまい。氷結飲んでテレビ見て寝る。