2018年10月14日

プチコンゲームプログラミング講座~第0回「ゲームプログラミングを始めてみよう

文 プチ太郎 氏
=-=-=-=-=-=-=-=-=-=-
 皆さんはじめまして。プチ太郎と申します。私の事は皆さんご存知でないと思われるので、自己紹介と、こちらに書き込むことになったきっかけを、簡単に。


 私がホビーとしてのパソコンを知ったのは、1980年頃からで、当時はパソコンでなくマイコンと呼ばれていたため、ここではマイコンと書きます。前後に何度か押し寄せた、ホビー向けパソコンブームですが、前年の1979年に「スペースインベーダー」が大ヒットした事で、多少大きな波が来ました。

 この頃の人気機種は、シャープのMZ-80K/Cと、後を追うように発売された、NECのPC-8001。そう、X68000やPC-9801はまだ、出ていなかったのです。

 この頃はコンピュータネットというものも、日本にはなく(アメリカには既にあったようですが)、情報交換はマイコン雑誌で、ゲームの入手方法も買うより、雑誌に載ったリストを手打ちで入力するという手段が、かなりの比率を占めていました。初代プチコンやIchigoJamなどを使った人はわかると思いますが、リストの手打ちは、過去の原点回帰なのですよ!w

 で主なマイコン雑誌ですがは、日本最古で何と現在も続いている「I/O」と、そこからのれん分けした「アスキー」、そして「マイコン」「RAM」が四大雑誌。「I/O」や「アスキー」を読み返すと、その後日本のTVゲーム界で大活躍する大御所の皆さんが、まだ学生時代のうちから、いろいろなゲームを投稿していました。「マイコン」の弟分である「マイコンBASICマガジン」が登場するのは、もう少し後の話です。この当時、自分でゲームを自作する方法は、大別して三つ。

1. BASIC(ベーシック)という、初心者向けの簡単なプログラミング言語で作る。ただし実行速度が非常に遅く、動かすための命令"RUN"が、「『走れ』じゃない、『歩け』だ!」なんて言われましたw

2. BASICよりコンピュータ側が素早く解釈しやすい、機械語(マシン語)とかアセンブラ(アセンブリ言語)で作る。こちらは速度は早いものの、人間の目で見ると非常にわかりにくかったため、当時のマイコン雑誌には、「BASICの遅さにたえかね、機械語を勉強し始めたものの、むずかしくて訳がわからん」なんての読者の投稿が、よくありました。

3. BASICやそれによく似た言語(こういうのを高級言語と言います)を、機械語に変換して保存し、実行する方法で、コンパイラと言います。しかし当時ホビーマイコンで使えるコンパイラは、MZ-80K/Cを除けば、あまり多くありませんでした。

 ちなみ今これを書いている私も、機械語はサッパリで、当時からBASICしか使えませんでしたが、自宅や高校やマイコンショップでいろんなマイコンをいじりながら、BASICでもメチャクチャ遅くならないようにごまかせるwゲームをぼちぼち作って、皆に遊んでもらった事もありました。

 高校を卒業すると、燃え尽き症候群と言うのでしょうか、なぜか意味もなくパソコンに触れなくなり(この頃はもうマイコンと言わなくなっていた)、今も根強い人気のあるMSXやX68000といった、独自規格パソコンではもっとも面白いと言われた世代は、リアルタイムで触れていません。


 それでもコンピュータとプログラミングの事が忘れられず、大学を卒業してソフトウェア業界に就職しましたが、当時まだ主流だったCOBOL(コボルと読み、事務処理に使う言語。BASICの兄貴分である)には、むしろ苦戦しました…wこのプログラマー時代、MS-C(C言語)やVB(Visual Basic)を覚えた事は、現在のプチコンにも役立っています。

 そして時代は変わり、コンピュータの性能が日進月歩どころか、秒進分歩になった事で、BASICなどの高級言語もVBの頃にはもう、驚くほどの高速で動くようになりました。昔のBASICの早さを三輪車とすると、昔の機械語は自動車ぐらいでしたが、今のBASICは…ジェット戦闘機より上でしょう!w

そしてコンピュータ業界から転職して別の仕事をしていた2011年3月、プチコンが発売された事で、あの頃の懐かしい記憶がムラムラと沸き起こって買ってしまい(なんか男子中学生がエロい事想像してたような書き方w)、その後いくつかのゲームを発表できた事で支持をもらいまして、現在は本業の傍ら、休憩時間や帰りの電車の中で、プチコンをいじっております。今回B-Magaさんからブログ上での連載を頂いたのも、その実績です。


 さてたわごとだけでは、連載初回としてアレなので、最後にこの連載の目的である「プログラミングと言えば、『PRINT "Hello World"』ぐらいし書けないよ~(^^;」という初心者の皆さんの、復習と予習のため、すごーく簡単なプログラムを紹介しておきましょう。以下の内容を打ち込んで、実行モードから「RUN」するか、3DSやWiiUの「START」ボタンを押してみましょう。

教材プログラム 0-1(ファイル名「KOZA00-1」)
KOZ00_1.jpg

 どうです? 画面の左から右へ、"*"印が動きましたか? 感動しました? それとも「それぐらいだったら、知っていますけど…」と思いました? 私は現役時代、自力でこれが出来ただけで、すごく感動した事を覚えています。

KOZ00_1B.jpg

 プログラムというのもいろいろあり、機械を動かすとか、中には銀行の貯金とか飛行機のチケットとか、プログラムを作っている人からは、目に見えないようなプログラムもあります(実はそういう、プログラミングで目に見えない部分が、プログラムをする人にとっては一番つまらなく、バグも見つかりにくいので、嫌われるのです)。

 それでは最後に、上のプログラムをもうちょっとだけ、複雑にしてみましょう。

教材プログラム 0-2(ファイル名「KOZA00-2」)
KOZ00_2.jpg

 どうです? ただ画面の中央に、"*"印が止まっているだけ…と思われたでしょうが、十字ボタンの、左か右を動かしてください。"*"印が左や右に動きます! そう、ものすごく簡単なアクションゲームの、原形です! あっ、画面があまりに簡単なので、教材プログラム0-1と区別がつかないや!(^^;orz

KOZ00_1B.jpg

 あと注意しておくと、「画面の端まで行ったか?」という判定は入れていないので、画面の左端や右端まで行くと、プログラムの実行結果がおかしくなります。既にある程度実力があり、IF命令を知っている人は、IF命令を組み込んで、画面の端から外へは、絶対動けないように改良してみて下さい。

 TVゲームのプログラムというのは、これをもっともっと複雑にしたプログラムの集まりで、作られています。

 では、自力でキャラクターを動かせて、ワクワクした人は(え?俺だけ?w)、次にどうしたらいいか? それは次回のお楽しみとしましょう。

(第一回につづく)

★今回の教材プログラムがうまく打ち込めなかった方のために、同じ教材プログラムを、サーバにアップしてあります。必要な方はサーバからダウンロードして、どこが間違っているかなどを、見比べてみて下さい。

公開キー  :EZENN3ZJ(連載が進んで新しい教材プログラムが追加されると、公開キーも変わります。この公開キーでダウンロード出来ない場合は、連載の一番新しい回の公開キーをご利用下さい)
プロジェクト:KOZA
ファイル名 :上の教材プログラムの見出しをご覧下さい。



※次の更新は、10月18日、フリーゲームレビューの予定です。お楽しみに!