一番下の息子と話をしていました。
私「父さんが高校生の時、ポケコンというのを授業で使っていて、化学科なのに、全然関係ない「プログラム」に一番情熱かけてがんばってたんだよ。RPGを作って、クラス内で流行らせたりしてたんだ」
息子「あ!それ前にもきいたことある。友達を見て笑ってた話もう一回教えて?」
ポケコンとは
ポケットコンピュータ(以下ポケコン)とは、工業高校とかでは授業で使う小さなパソコン。今からみたら信じられないぐらい低スペックではあります。
画像はウィキペディアより。
両手で収まるぐらいの高機能電卓で、関数計算やBASICと呼ばれるプログラム言語を走らせる事ができました。
今はもう生産されていないようです。
ポケコンとの付き合い
「工業数理」という授業で、おもに使ったのかな。普段の(工業系の授業の)計算でも使っていました。BASICプログラムは基礎の基礎を授業で習っただけです。情報技術科とかの人はもっとやってたんでしょうけど、私は化学薬品を取り扱う科だったので、すぐにプログラムは授業から離れました。が・・・。
可能性にはまりましてね。
独学で勉強しました。勉強というか、プログラムをいっぱい書きました。最初はゲームブックみたいな、選択肢によって話が分岐するというだけのものでしたが、最終的には三部作となるRPGや、落ちゲー、パズルゲームの「倉庫番」を完成させられました。
何かをお手本としてプログラムを書くという事はなく、すべて自分のひらめきで書いていました。「あ、この関数をこういう書き方したら、こういう風な処理ができそう!この処理が出来たらこういうゲーム作れそうじゃない?」とか「こういうゲームを作るなら、どういう処理をさせればいいのかな?」って感じで考えていました。
5859バイトしか保存容量が無いため、短く書く工夫とかもここで学びました。メガでもキロですらなく、ただの5859バイトです。
そのためRPGのキャラのセリフも、当初は例えば「コノミチヲイッテハナラナイ(この道を行ってはならない)」だったのを「ココヲイッテハナラヌ(ここを行ってはならぬ)」とかに短く書き換え、少しでも容量を浮かせていました。そのほうが敵キャラの数とか増やせますからね。
このテクノロジーは現在、ツイッターに短く書くときに応用されています(^^)
対人戦ゲームを作った
当時はスト2とかが流行っていて、対人戦の面白さはわかっていました。何とか対人戦のゲームを作りたいと考えます。
しかしこの機種、BASICプログラムでは同時キー入力を受け付けません。同時にキー入力すると、どちらも押していないと判定されてしまいます。
交代で入力するシミュレーションゲームや、将棋なんかみたいなゲームしかダメかという固定観念ができてしまいがちです。
若きしゃくとりむしはひらめきました!
陣地取りゲーム
私が作ったゲームはこんな感じでした。(コンピュータ上では色の概念はありませんが、わかりやすくするため。)
難しいのはプログラムを閃くまでで、実際にプログラムを書き込むのは数分でできました。そういうものです。
ルール
- 操作するボタンは左端と右端のふたつのボタンだけである
- どちらか片側のボタンが押されている状態だと赤いゲージが増える
- どちらのボタンも押されている、もしくはどちらのボタンも押されていないと赤いゲージが減る
- 赤いゲージが満タンになったらプレイヤー左の勝ち
- 赤いゲージが無くなったらプレイヤー右の勝ち
つまりプレイヤー左は相手が押したら離し、相手が離したら押せばゲージが増えます。
プレイヤー右は相手と同じ行動をとればゲージを減らせます。
ここで活かされたのが、同時入力を受け付けないという仕様。同時にボタンを押されていても、同時に離されていても、コンピュータとしては同じ認識をするわけです。その状態で同じ結果になれば、ゲームとして成立するのです。
一人プレイモード
ここまでは白しゃくとりむしですね。単純だけど楽しいゲームを作る事が出来ました。
次に考えたのはCPU戦です。ひとりでも遊べるように出来ないかな、と。
最初はコンピュータの行動パターンを最善のものにするようにしました。CPUはプレイヤー右なのですが、人間と同じ行動(ボタンを押す・離す)をとるようにしました。
人間が勝てるわけありません。当然ながらどうがんばっても一直線に決着します。
次に、若干のラグをつけるようにしました。こっちが押した(離した)一瞬の後、コンピュータが行動を変えるというパターンです。
リズムゲーの完成です。一定テンポで押す・離すを繰り返すと勝てるゲームになりました。
どちらもゲームの本質がずれてしまっています。
黒しゃくとりむし登場
陣取りゲームという本質を成立させるため、次はランダム要素を取り入れることにしました。最初はレスポンスのスピードをランダムにする予定だったとは思うのですが・・・。
コンピュータの動きを、完全ランダムにしてみました。押す・離すという行動がまったくのランダムで入れ替わります。
そうするとゲージの動きもランダムなんですよね。激しく増えたり減ったりします。
黒しゃくとりむしはひらめきました!
「これ人間が操作しなくても、ほとんど一緒の結果だよな」
思い切って、人間のボタン入力を受け付けるプログラム部分を削り取りました。プログラム上では、ゲージが運によって増減するというプログラムの完成です。
プレイヤーが介入できる部分が、プログラム上に存在しません。
しかしクラスの友達に「CPU戦ができるようになったんだけど」と、やらせてみたところ「おお、いいね!相手の反応がわからない分難しいな!」と一生懸命プレイして楽しんでくれました。
その姿を見てたらおかしくておかしくて仕方ありませんでした。黙ってましたけど。
その時点で対人戦ゲームへの情熱はすっかり満たされ、それ以上のプログラムの改善を施されることもなく、あの陣地取りゲームは最終形となったのです。
今になって思うこと
あのゲームってパチンコと本質がそっくりだよな・・・。
彼は今でもきっとパチンコを楽しんでいるんだろうなぁ・・・(遠い目)。