2013年2月9日土曜日

プログラミングとの出会い

私のプログラミング初体験は、小学生時代の友達宅でした。
ガチョンというあだ名の半ズボンばっかり履いている友達の家にあったMSXというマシーン。



電源オン、起動してしばらくすると真っ黒一色、プログラムの入力画面が表示されたのを記憶している。友達の家ならファミコンできるかな?と期待して訪問したので、ちょっと毛色の違うマシーンを前にワクワクというよりもガッカリしたのを覚えている。

ガチョンはクラスでも成績優秀、ベーシックマガジンを小学生なのに購読しており、ページいっぱいに掲載されている投稿プログラムを打ち込んでミニゲームが起動するまでの流れを退屈そうな私に披露してくれた。

30分位かかった末に起動したそれは、「金」という文字が自機となり、画面上からカクカク降ってくる「木」という文字を避けていくゲームだった。

最初に遊んだら敵機の数が少なくていつまでたってもゲームオーバーにならない。すぐにガチョンはある数値をチョイといじって、敵機の数を倍ほどに増やしてみせた。

(ゲームって自分で作れるんだ。しかも思ったよりも短い文章入力で!)

当時はガチョンの作業を見ていただけで、自分からキーボードに触れることはなかったと記憶しています。が、上記カッコ内の衝撃が、後のグラボクや実ボクを作ろう!と思わせてくれたキッカケだったと確信しています。(ガチョンは地域で一番優秀な学校に進学し、疎遠になってしまったけれど…。今頃、どっかの社長さんかもね♪)


次に自分の人生の中でプログラミングと関わるのは…、なんだろう…。あ、きっとこれだ。アドベンチャーゲームブックってご存知でしょうか?

ゲームブックに興味がなければ12へ進め

ま、説明するのも大変なので、ちょっとしたミニゲームを作ってみました。

1.君は洞窟の入口に立っている。中を覗くなら2へ進め。大きな声をだすなら3へ進め。
2.中は真っ暗だが、入口付近に落とし穴を発見。すり足だと危険だろう。4へ。
3.「おーい!」君の声は虚しく響き渡るだけだ。返事はない。4へ。
4.君は中に踏み込むことにした。大股で歩くなら5へ。すり足で入るなら6へ。
5.君は洞窟を進む。…行き止まりだ。壁を調べるなら7へ。戻るなら8へ。
6.慎重に入る…。「うわ~っ」落とし穴だ! 君は空中で思う。(もうすぐ死ぬんだな…)と。- END -
7.(むむっ?)レバーのような突起物がある。倒してみるなら9へ。回すなら10へ。
8.君は洞窟を出る。さあ冒険を止めて日常に戻ろう。きっと家族が待っている。- END -
9.レバーを倒すと周囲の壁が崩れ始める。洞窟を出るなら8へ。その場に伏せるなら11へ。
10.レバーを回すと洞窟全体が回転する。君は思わずその場に伏せる。11へ。
11.伏せたので、降り注ぐ岩石に当たらずに済んだ。ビクビクしたまま目を開けた君の目の前にはボクシングのリングが! なにかが始まる!- END -

こんな感じで進展していくちょいと変わったタイプの小説(文庫本)で、主人公の行動を読者自身が決定できるという革新的なシステムでした。
魅惑的な中世ファンタジーの世界観に触れた私は夢中になり、生まれてはじめて「好きな物をコレクションする」というアクションを取りました。イギリスのイアン・リビングストンやスティーブジャクソン(初めて覚えた外人の名前かも!)の作品が翻訳される度に購入し、最終的には20冊以上になったかな…

ただし、友達に同様の趣味の者はおらず、全くもって個人的な趣味でした。逆に言うと、友達も同じ趣味だとしたら、もっとドップリとハマって 集団で遊ぶタイプのテーブルトークRPGとか、そっちへ発展していくんでしょうが、私はとにかく全部読んでしまって分岐の仕組みを解析することを楽しむタイプでした。

残念ながらゲームブックの市場は数年で終わってしまいました。コンピューターゲームの登場が原因かと思われます。

海外でゲームブックの新刊が発売された情報があっても、待てども待てども翻訳されない…。なら自分で作ってしまえ!と自作のゲームブックを二本作った記憶があります。(あのフロッピーディスクはまだ読めるのだろうか、誰かに発見される前に消去したい♪)

12.

ゲームブックの「5へ進め」とかのページ指定が、後にコンピュータープログラムでやたらと使うgoto命令そのもの。難しいとされるプログラミングの世界にすんなり入れたのは、このアドベンチャーゲームブックに親しんだからなんだろうな~と思っています。


で、実際にプログラミングを体験するのは、…結婚してからでした。パソコンに興味がありつつもそれを購入する財力がない日々、ふとセガサターンベーシックという、ものすっごいマイナーなソフトの存在を知る。

第一印象は「縦に長い」


(ベーシックって、ガチョンがいじっていたあれか!?)

当時、自分の中で最もやりがいを感じていたボクシングは、若気の至りでジムに迷惑をかけて辞めてしまった。仕方なく時間をつぶしたゲームも一通り遊び、新しいジャンルに出会うっていうのも、これから先しばらくないんじゃないかな…と行き詰まりを感じていた時期。

宣伝もあまり熱心にしていなかっただろうし、奇跡的に目に留まったとしか言いようがないソフト。ゲーム屋に足を運び製品を実際に確認すると、恐ろしく分厚い説明書に圧倒された。店員に閲覧許可をもらって中身を確認すると、はっきし言って意味すら理解できなかった。ただ、やたらと気になった。意味が分からないからこそ、恐ろしいほどの可能性を感じた。

少年の頃、テレビで見ていたボクシング。(自分にもできるのかな…!) 自分の価値を知りたくて挑戦してみたら、考えていた以上にできた。思えばあの時、俺は人生で初めて自信を得ることができたんだなぁ。

(きっと世の中にできないことなんてない。要はやるかやらないかだ! …俺はやるぜ!)

「これ、買います!」

当時、不明点をいっくらでも調べられる魔法の道具「インターネット」はまだなく、周囲にベーシックに詳しい友人もいない。(ガチョンの消息も不明)

得体の知れないモノにお金を使ってしまった不安、得体の知れないモノに挑戦するワクワク感。果たしてこれが自分に使いこなすことができるブツなのかどうか、これらの混在に戸惑いながらの帰り道を今でも覚えています。

起動すると真っ黒な入力画面が表示される。タイトル画面なんてものはない、いきなりの入力待ち状態。あの時、ガチョンの家で見た画面と同じだ。

説明書を片手に print "あああああ" と入力、命令を実行させてみると、画面の左上に"あああああ"と表示された。色を赤くするために color 255,0,0 と上段に追加すると、"あああああ"が赤く表示された。

(…イケる!)

根拠の無い自信が本物の自信に変わっていく。

自分の命令に従うセガサターン。
これからは誰かが作ったゲームを遊ぶんじゃない、自分でデザインしたゲームを自分で作って自分がそれを遊ぶんだ!(まだ自分以外の人が遊ぶとは考えもしなかった)

プログラミングとは、簡単にいえば命令の組み合わせである。性格的にも自分は長男のせいか命令を与えるのが元々好きだったのかも知れない。

トイレや風呂場にも持ち込んだ説明書はすぐにボロボロになり、ゲーム機であるはずのセガサターンが完全にプログラミング専用機となった。

やがて私は「ボクシング」という名前の自作ゲームを完成させる。


サターン環境で処女作を開発、当時の私が覚えた事は…

  • 自作品を完成させる喜び
  • 納期がないので納得できるまで無限に微調整できるという自作の強み
  • バグを発見するためのコツ(小刻みにstop、調査)
  • 自分なりに見やすいソースの書き方を習得(メッセージを残す)
  • ボクシングゲームの基本システム(ジャッジ・体力ゲージ等)
  • 効果音の重要性
  • 説明書で不明点を調べる癖(当時はインターネットがない)
  • プログラミング作業における休憩の重要性

なんとサターンベーシックから得た事の多いことか…、今更ながら驚かされる。
あの充実した説明書、初心者にも分かりやすい同梱サンプルの数々が今の私の根源になったと改めて確信できました。(感謝!)


のちに私は念願のWindowsパソコンを購入し、HSPというセガサターンベーシックに似た言語を勉強、グラフでボクシング実写でボクシングという作品をライフワークとして開発し続けることとなる。


グラボクも実ボクも多くのユーザーに遊ばれて、コンテストで最優秀賞を受賞したり100円ショップダイソーで販売されたりして、個人作品としては大いに盛り上がった(と思う)。

HSPでの開発を通じて、私が覚えた事は…

  • 自作品を世界中に公開できるインターネットの素晴らしさ
  • 不明点があってもインターネット上に必ず先人がいる
  • 言語自体の不具合もゼロではない
  • エディタなど各種ツールで自分好みの開発環境を構築する楽しみ
  • 言語自体のバージョンアップによる拡張が楽しみ
  • ユーザーからの不具合報告・要望から得られるパワー
  • ユーザーの環境に起因する不具合への対処が大変
  • 他の開発者との仲間意識、カンパを頂けた時の感動
  • ユーザー間の争い、クレーム対処の難しさ、辛さ、無力感

プログラミングで自作品を公開するという、一生の趣味と出会えた幸運、自分は幸せ者だと思う…。
(勇気を出してサターンベーシックを買ったあの日がスタート!)
(今ではプチコンがこの役目を果たしていると思う)


関連記事
実写でボクシングの原型!
ルーツオブ「実ボク」
HSPプログラミングの勧め

1 件のコメント:

  1. 私はMSX2でプログラムデビューしました。デビューと言っても雑誌のコードを打ち込むだけ…全く理解せずでした。その後、PC-9801(NEC)でBASICを理解して簡単なアドベンチャーゲームを自作したのを思い出しました。似てますね。

    返信削除