えいのうにっき

むかしのじぶんのために書いています

僕のプログラミングのルーツはRPGツクールです。

なんとも恥ずかしいタイトルですが。
プログラムを読み書きできるようになるために必要なエッセンス - 探神を見て、プログラムとは切っても切れない間柄である「SE」である自分の「プログラミングのルーツ」についてふと、10数分間思い耽ってしまったので、この機会に書き留めておこうと思います。

出会い

プログラムに、というか、コンピュータに興味を持ち始めたのは小学校5年生(今から15〜6年前)くらいのころ。なにかの映画で外人が「カタカタカタッ」とキーボードを入力しまくってるのに、単純に「カ、カッコいい・・・!」と思ったのが最初だったと思います。
その後、金持ちの友達の家に置いてあったMSXで遊ばせてもらったり、中古のパソコンを買い与えられたりして(ブロックでポン!(通称ぶろぽん)とかしてたなぁ)、徐々に僕とコンピュータとの距離は順調に縮まって行ってはいました。ですが、まだその頃の僕にとってのパソコンは「ファミコンの延長線上」にあるもので、「既にあるモノ」で遊んで楽しむことはあっても、「誰かが遊べるモノを作る側に回る」ということは、まだありませんでした。
この頃は、別にコンピュータで何かを作ることに特別な思い込みもなにもなかったと記憶しています。「プログラムなんて、自分にはできっこない!」とは思っていなかったけれど、「うおおおっ、なんでもいいから作りたいんジャーッ!」というわけでもなかった。ただ、ゲームであろうが何であろうが、キーボードをカタカタいわせている自分に満足しきっていましたね。

BASICは「暗号」そのものだった

当時、中学校の図書館には、ベーシックマガジン(だったと思う)が置いてありまして。表紙にパソコンが描かれていたかなんだったかで手に取ったのが始まりで、パラパラ読んでみてもちっともわからない。「つまんないの・・・」とページをめくるのを止めようとしたそのとき、巻末のプログラムソースが目に入りまして。ソースの横に掲載されている画面を見ると、ぶろぽんみたいなゲームもちらほらある。「ゲェッ、ぶろぽん、おれでも作れるんか?!」と思うが早いか、本を手に技術の先生のところへ行って、「先生、これ、おれんちのパソコンでもつくれる?!」なんて食ってかかったのを、今でも覚えています。笑

もちろん、ぶろぽんのような完成度の高いものが作れるわけもなく、そもそもソースコードのセーブ(保存)からして1週間ぐらい苦戦してた気がします(笑)。それでもいろいろ作りましたねー。あ、もちろん作ったっていっても、巻末のソースコードの丸写しでしたけどね。
丸写しをして、エラーを直して、少し遊ぶ。で、その後になってやっと、「なんでこの暗号みたいな文字の羅列が動くんじゃ・・・?」と、ソースコードとにらめっこ。小テストの紙の裏に、順番に処理を追って書いていってみたりもした。でも、さーっぱりわからない。今読んでもわからない自信あります。(笑・・・えない)

そんな少年が、一生を左右するようなモノと出会ってしまったワケです。それこそが、RPGツクール・Dante98。そう、その少年はRPG大好きっ子だったのです。

いくらでも手に入る伝説の武器、旅立ちと帰宅の無限ループ

出会いは、街の本屋さん(かなり大きめ)。父の買い物に付き合って同行したのですが、「RPGツクール」という単純明快なタイトルに目を奪われ、導かれるように本を開いて心を奪われました。
さてここからはハイパーおねだりタイム。「お父さん!これ買って!!」「お父さん主人公にしてあげるから!」「一生のお願い!ねえ!」と、その時点で人生何度目かの「最後の切り札」を巧みに使い、なんとか買ってもらえた記憶があります。
家に帰ってからはもう、中学生ながらにしてデスマーチ状態でPCの画面に首っ丈。僕がそれほどまでにのめりこんでしまった、RPGツクールの特徴のひとつに、「即テストプレイ可能」があります。


1.まず、見よう見真似で主人公(父)の住む家(ここから旅立つわけです)を作る。
  →即テストプレイ。
  →主人公(父)は海のド真ん中で足踏み。カーソルキーをいじっても、
   上下左右に振り向きはするものの動けない。
  →デバッグ(?)開始、「主人公の初期位置」を設定しなければならないことに気づくのに2時間。


2.さて、ゲームが主人公(父)の家から始まるようにはなった。よし、いよいよ旅立ちだ!
  →扉を模した壁の割れ目へ移動
  →何も起こらない
  →デバッグ(?)開始、壁の割れ目に「主人公が触れたら場所移動」の
   透明イベントを配置するという高等テクニックを習得するのに1日半。


3.壁の割れ目に主人公を移動させると、旅立ちはできる(大陸マップに出る)ようになった。
  →よし、とりあえずもっかい家に戻ろう!
  →戻れない
  →村のグラフィックに「主人公が触れたら(以下略)。


4.ヨッシャー、これで家と大陸を往復できるはず!と旅立ってみる
  →一瞬大陸に切り替わり、即帰宅
  →一瞬家の中に切り替わり、即旅立ち
  →一瞬大陸に(以下略)。透明イベントを配置しているところに移動先を持ってきたため、
   主人公(父)が無限ループしてた。


5.これ以降、しばらくはつまづくことなくツクールに没頭。勢いにのって最初の洞窟を作る
  →その洞窟内に伝説の12武器の一つ、「トールハンマーが入った宝箱を配置、
   透明イベントをセット。ふっ、チョロいもんだぜとテストプレイ開始
  →トールハンマーがいくらでも手に入るよ!
  →デバッグ開始、トールハンマーを手に入れた後に、
   プレイヤーが感知し得ない「スイッチ」なるものをONにしておき、
   宝箱イベントの開始条件に「スイッチがOFFのとき」「ONのとき」のふたつを作っておく
、という
   高等テクニックを習得するのに1日。


・・・とまぁ、「悪戦苦闘」を絵に描いたよう、とは、当時の僕のこと。とにかくがむしゃらに、僕はRPGらしきものを作っていきました。
まぁ、製作に2週間以上も要したこのRPGは、幼馴染の手によってものの2時間でクリアされてしまったわけですが、上に挙げたような「僕が陥ってしまったこと」は、今こうして振り返ってみると、プログラミングの根っこに関わることだったなぁと思えてきて仕方がありません。


1.は・・・う〜ん、なんでしょう。ちゃんと初期化しようぜ!ってこと、かな。。

2.は・・・処理をある点から別の点に移したいのなら、そのこともロジックとして表現しなければならないってことで・・・それがなんだっていうんだ・・・?

3.は・・・一つの問題点から、他所に潜む問題点にも敏感になろう、ってことで・・・、、これはプログラミングに限った話じゃないわけで・・・。。

4.は典型的な無限ループですよね。ある処理の終了点が、別の処理(しかもこれが、元の処理に行くための処理)の開始点になってしまっていた、という。

5.は、いわゆるフラグの活用とif文による条件分岐ですね。


五点目まで引っかかり終えたら、その後は大して迷うことはなかった気がします。

なんだかよくわかんなくなってしまいましたが

なんだかよくわかんなくなってしまいましたが、僕のプログラミングのルーツに、このRPGツクールがあると思える・思い込んでいるからこそ、僕は今でもプログラミングが好きだし、「なにか作りたい!」という気持ちを強く持っていられるのかなぁ。と思いました。
ただ、これ以降、僕のRPGを見る目が少し変わったのは間違いないでしょうね。笑 裏でどういう処理・判定をしているのかなっと、無意識に思い馳せるようになりました。

僕にもし息子ができたら、RPGツクールを与えてみたいと思います。でも、最新のRPGツクールを、ではなくって、僕がやったのと同じ、RPGツクールDante98を。笑