当たらなければどうということはない!、ポケコン、大戦略。

そいえば最初に触れたシミュレーションゲームはなんだっただろうか。
はてな。
ぼやんと記憶の糸を手繰ってみると、読者投稿のプログラムを手で入力したサッカーゲームあたりだったのかも。

その昔、パソコンが一般人に購入できるようなお値段ではなかった時代。
HDDが数百Mバイトで30万円とかしていた時代?

当時だから、個人向けのPCも、パソコンという単語よりもマイコン?という呼び名の方がメジャーでしたっけ。
マイ・コンピュータだからマイコンだったのかな?
あまり考えずにそうだよねって思ってましたが。

パソコンもキーボード一体型みたいな形のものがありましたよね。
Amigaとか、コモドールとか、ヒューレット・パッカードとか、あとはー、DECとか?
国内勢だとなんだろう。
FMシリーズ、MZシリーズ、PC88シリーズあたり?
ナショナルさんのJRシリーズも名機と名高いですよね。
ゲームに強そうなM5とかもありました。(ほしかったなー)

そいえばこれ、いいよね!

FM-TOWNSまで続けてほしいなー。
 
そんな時代にですね、電卓にフルキーボードを付けたポケコンというハードがありました。
ポケット・コンピュータだから、略してポケコンなんです。

思えばわたしはどうしてポケコンなんて手にしたのだろうか。
はて。

記憶が定かではないけれど、たぶん雑誌広告などで情報を入手していたのだと思います。
当時なかったですもんね。
本とテレビ以外の情報って。
ハイテクと未来の情報はテレビと書籍からって時代。
ショールームとかでキャプテン・システムとか展示していたのもあのころ?

当時だとIOさんとか、PIOさんかな?
あ、マイコンベーシックマガジンさんがスキだったんだ。

カゲさんとか、編さんとか、つぐみさん、ドクターの面々でしたっけ?
その後知ったのですが、マスコットキャラクターなどではなくて、実際に中の人がいらしたそうなんですよね。
ちょっとビビった思い出。

当時はプログラム掲載雑誌が当たり前のように書店で売っていて。
プログラムのソースコードが本に掲載されていて、みんなそれを見て自分で入力していましたっけ。

読者投稿のゲームとかもいっぱいあって。
毎月どんなゲームが掲載されているか楽しみだったな。
パッケージソフトも売っていたには売っていたのですが、お値段・・というよりも読者投稿のゲームの方が身近で、バラエティ豊かで楽しそうに見えたのかもです。

プログラムを打ち込むのがある種当たり前だったというか。
いや、お前それ以外パソコンの使い方しらないよね?みたいな感じ。

プリンターとかもお高かったし。
表計算?ワープロ?
どちらも実用的になるのはもうちょっと先だったような記憶が。

あ、当時はワープロって文字書き専用のハードがありましたよね。
文章書きさんはパソコンやマイコンではなくてワープロ使ってましたっけ。
文豪?とか。
書院とか?

あれ?なんか使ったことあるような、ないような。
FM-TOWNSでOASYSは少し触った記憶はある。うん。
フロッピーディスク版。
当時は文字に関しては手書きだったから、あまり使い込まなかったな。
 
雑誌に掲載されている読者投稿のプログラムとかを実際に打ち込んでみると。
これまた入力を打ち間違えてうまく動かないんです。
目で追うしかないから、なかなか間違いが見つからない。
実行するとシンタックスエラーとか怒られて。うへ。

ブラインドタッチという存在も知らなかったな。
マシン語のコードはまだ、チェックサムが付いていたから間違いを見つけやすかったのですが、BASICとかだと印刷の関係で間違いを見つけにくかったような思い出です。

チェックサムというのは、簡単にいうとその値の正当性を判別する小さな値のことです。
チェック、サムの名が示す通り、確認するための計算を行った値のことなんですね。

ちなみにマシン語というのは、
コンピュータにはコンピュータが理解できる言葉があるんですね。
けれどコンピュータの世界の言葉は0と1の世界の集合なので、人間には難しいのです。

そこで、コンピュータの世界で扱われる言葉に名前をつけたのです。
それが機械語であったり、マシン語と呼ばれるもの。
たしかマシン語の命令に名前を付けたものをアセンブル言語や、ニーモニック言語とも呼ばれるのでしたっけ?
ただ、コンピュータの世界はコンピュータがいかに効率よく動くかを目指して作られています。
そのため、使われる言葉も無駄がなく、人間の世界の言葉のようには使えません。
それに加えハードウェアの構成によって使われるマシン語もさまざまでした。

そこで、頭の良い方が考えたのです。

もういっこ上に別の言葉をかぶせて、その言葉をコンピュータが使うときに翻訳させよう。
これが高給言語ですとか、プログラミング言語と呼ばれるものです。
そこにもカテゴリーが沢山あるのですが、
大体ここに所属すると考えていて意味は通じるかな。
Javaですとか、c言語ですとかはここに属します。

うん。プログラムとかはそのくらいの経緯で大体知識としては十分。
決して難しいものではなくて、参考書を買って実践すれば誰でも数週間で書けるようになります。
大変なのは、何を書くのか?の方ですので、あまり難しくとらえないのがよいのです。

さて続き。
 
 
当時パソコンを入手する方法など当然持ち合わせていません。
もう飛び出した目玉が帰ってくるのを忘れるようなお値段でしたし。
当時のパソコンさん達は。

そんな中だったと思います。
カシオさん、シャープさんからポケコンが発売されました。
外見はやたらキーの多い電卓そのままです。
ですが中身はれっきとしたパソコンです。

えー、でも電卓にキーボード付けたって、画面はどうするのー?って。
その疑問はズバっと解決。

潔いですよね。
何も特別な装置を一切用意せずに電卓のままだという。

きゃー素敵ぃー!結婚してー!

と思った方がいるかは置いておいて。
カシオさんのPBシリーズはBASICでしたが高速だったんでしたっけ。
人気がありましたよね。
雑誌の投稿プログラムもポケコンでは一番人気だった気がしますし。

シャープさんのPC12系のシリーズもBASICは内蔵していたのですが、モニタコマンドというものを使うと、なんとマシン語がそのまま打ち込めました。
画面に表示する文字もドット単位で操作でき、ブザーを操作してドレミファって音が出せて。
もちろんBASICよりも高速に動きました。

たのしかったな。
マッピーとか、ドルアーガの塔とかを耳コピして再生させて遊んでたり。
アクションRPGとか作ったり。

思えばわたしはPC12系のマシン語でプログラムを学んだのだと思います。

ぼやんと作りたいものを決めたらアセンブル言語(アセンブラ)で紙にプログラムを書くんです。
紙っていうのは何でもよくて、ごくごく普通の大学ノートみたいなのでOKです。
で、それを更にマシン語に置き換えて紙に書き直し、そこからポケコンに手で入力する。
変換はニーモニック表とか使います。(対応表というか、辞書?みたいなものです)

手でアセンブルするという意味でハンド・アセンブルと呼ばれる手法だったみたいです。
普通はアセンブラと呼ばれる翻訳ソフトに変換させるんですが、無ければ作りなさいという時代だった。
だから欲しいものはみんな、じぶんで作っていた時代。
(世間一般ではビンホーだったともいうよネ)

ゲームも、スキも。
じぶんで作る時代だったのかなって思います。
 
  
さてそろそろ本題。
その当時の読者投稿のゲームの中で、サッカーのゲームがあったんですよ。
先ほどから話題にしているポケコン向け。
いってみれば電卓でサッカーしようよ!っていう感じのゲームです。

えーっと。
ものすごいシンプルだったんですよ。
確かルールはこんな感じだったかな?

互いのゴールの間でプレイヤーはコマンドを選ぶんです。
自チームがボールを持っていると「ドリブル、パス、シュート」の3つだったかな?
相手チームがボールを持っていると「カット、スライディング」の2つ?
で、うまくいくと相手のゴールポストに近づいて行って、ゴールが決まったら自チームの得点。
逆にボールを取るのに失敗し続けると相手チームの得点になる。
タイムアップまでそれを繰り返して言って自チームの得点が高ければ次の難易度に進む。

これをプログラムにすると、んーっと。
こんなかんじ?
ゲーム画面

トワナナさんアレンジ版。Windowsのコンソールアプリ。
SOCCERミニ

BASICのソースコードは流石に覚えていないため、C++で。
ルールや演出などオリジナルになってしまっていますが、数字を入力してからエンターボタンを押すことでゲームは進みます。
当時の雰囲気を味わってもらえれば。(こんな時代だったんですよ)
確率計算とリアクションのバランスをうまくまとめると、十分楽しそうですよね。

ダウンロード先はさくらインターネットさんサーバーなので大丈夫だと思いますが、実行前にウイルスチェックとかかけておくと安心かもです。
ちなみにめちゃめちゃ小さい(16,384バイト)ですが、ソースコード200行チョイなのでそれであっています。
 
アレンジ版のルールはこんな感じ。

< ルール >
・30ターンで1試合、相手チームよりもスコアが高い場合次ステージに進む
・positionは0がセンター
・positionはプラス・マイナス3の範囲が移動可能(自チームはプラス方向に攻める)

・Attack Turn(自チームの攻撃時)
1. チャンス対象の判定。どのアクションに入るかを乱数で決定
2. ベースの防御値をgameLevelが30以下なら50+gameLevel、30以上なら80で設定
3. チャンス対象アクションの防御値を3分の1に、それ以外はベースの防御値に
4. 攻撃値を乱数で取得
5. 攻撃値が選択したアクションの防御値を上回れば成功(ポジションが1つ上がる)
6. シュート時はゴールに近いほど判定回数が増える(最大3回)

・Attack Turnで自チームのアクションが失敗した場合
1. シュートを失敗した場合、ポジションが1つ下がる
2. 2分の1の確率でボールが奪われる

・Defence Turn(相手チームの攻撃時にアクションが成功した)
1. ボールを奪うことができる

・Defence Turn(相手チームの攻撃時にアクションが失敗した)
1. ポジションが1つ下がる
2. 攻撃値を乱数で取得
3. 防御値をgameLevelが30以下なら50-gameLevel、30以上なら20で設定
4. 攻撃値が防御値を上回れば相手チームのゴールが成功になる

たぶん。
このポケコンで遊んだサッカーゲームが初めて触れたシミュレーションゲームだったのかも。
なんて思います。
 
  
その後大戦略を遊ぶ機会に恵まれるのですが。
ゲームでのプレイにはとても苦しみました。

ルールはそんなに難しいものではないんですね。
大戦略の基本ルールはマス目が書かれたボード上でユニットを動かして相手を倒しながら相手の首都を占領すれば勝ち。

ユニットには行動力があって、その行動力の数だけ移動ができて、射程内の相手に攻撃をしかけることができる。
攻撃を仕掛けた際には相手とのステータス比較を行い、乱数を加えて勝敗を決定する。
また、占領後の工場ではユニットを新規で生産することが可能。

くらい?

いや、ルールはわかるんです。
隣接するとZOCと呼ばれる相手ユニットの回避性能を落とす効果ですとか、地形ごとに戦闘時の有利不利がパラメータに影響するなど。
よくまとまっていますよね。
よくできているのです。

なのですがその。
ね。

とどのつまりですね、相手が攻撃できない距離から攻撃するですとか。
弱っている相手を複数ユニットで囲んで袋叩きにするのが最適解っぽい流れになっちゃうのです。
決して英雄譚のような、心意気などでは勝利などつかめないルールなのです。

わたしはこれが苦手で。
ついつい、単騎で突貫とか夢見がちなことをしでかして全滅したりしちゃうわけです。
戦争っていうテーマであれば、それは至極リアルなわけですが。
ううーん。

もうちょろっとでいいのでロマンが欲しいのです。

でも直さなきゃなって思う気持ちもあって。
だってほら、ファイアーエムブレムとか遊びたいじゃないですか!


楽しそうなシミュレーションゲームいっぱいあるから。
見方や考えを変えられるようになって、「たのしいよね」って語り合いたいな。
 
 
でもいつか、心持ちで戦うシミュレーションゲームを作ろう。
ロマンがめいっぱい詰まったもの。