はやいもので今年も,もう師走。あと数カ月で高校受験を迎えるこうしろうはさすがに毎日勉強するようになった。といっても自室で机に向かっている時間よりもパソコンでインターネットに向かっている時間の方が長いようであるが。「もっと勉強しなくていいのか」とハラハラする気持ちは基本情報技術者試験の時に十分に味わったので(91話あたりを参照),気にしないことにしている。

 気になるのは,来春,中学生になるはずの次男かずである。こうしろうやほのちゃんに言わせると,かずは学校から帰ってきたら「まず,パソコンでゲーム」をして夕食が終わると,また「パソコンでゲーム」をして,こうしろうが勉強をしている間も「また,パソコンでゲーム」をしているらしい。
 休日はMindStormsでロボットを作ったり,ホームページを充実させようとFlash MXでアニメーションを作ったりもしているのであるが ,平日はゲーム三昧。

 クルッとまわって出てくる犬が「とやまけん」。かずがFlashで作ったキャラクタである(toyamaken.htm,表示にはMacromedia Flash Player6が必要です)。なぜ,とやまけんかと言うと顔の形が富山県なのだ。頭の上が,ブリが回遊している富山湾で,右耳が能登半島だ。こうしろう一家は右目のあたり住んでいる。Flashによるアニメーション作りも「たのしい」らしいのだが,夢中になるほどではない。かといってMindStormsは準備や後片付けが大変なので平日には無理だ。

 何か,かずをゲームより夢中にさせるものはないだろうか?「ゲーム好きにはゲーム・プログラミングが一番かな。Flashでゲームを作ることもできるのだが(こうしろうの作ったシューティングゲーム122話参照),かっこいいものにしようとすると,デザインというか絵を描いたりするのに時間が掛かり過ぎるしなあ」などと考えていた。

 11月22日に発売になった日経ソフトウエア2004年1月号にフリーソフトの特集が載っていた。記事だけでなく,フリーソフトが入ったCDも付属している。何か面白いものがないかなと「コンパイラ/開発環境50連発」を眺めていた。Windows向けのPerl,ActivePerlやオブジェクト指向のRubyに「定番」や「お薦めします」マークが付いている。どちらもひまな時に勉強してみようとPCにダウンロードして,ずっとそのまま積読状態にしているソフトである。

 次ページにHot Soup Processor(略称HSP)が出ていた。「お薦めします」マークも付いている。もちろん,筆者,職業柄Hot Soup Processorという開発環境があることは知っていた。開発元のオニオンソフトウェアのページもざっと読んだ記憶がある。「ちょこちょこっと,見栄えの良いものが作れそうだな。でも自分には関係ないか」と思っていた。

言語仕様はBASICに似ています。
命令セットは強力でわかりやすいのが特徴です。
・・・
実際には,ゲームのプログラミングによく利用されているようです。

 という矢崎記者の解説にのせられ,これでかずをゲーム・プログラミングの世界に誘い込んでやろうと,CDからPCにインストールした。ゲーム・プログラミングというとマニアックな感じがするかもしれないが,アルゴリズムの勉強に向いていると筆者は思う。

 かずに声を掛ける前に少し予習しておこうと,数日前からHTML形式で提供されるマニュアルを参考に,小さなプログラムを作ってはテストしている。専用のHSPスクリプトエディターからF5キーを押すだけでコンパイルと実行ができ,デバッグウィンドウを表示させ,変数の値を確認することもできる優れた開発環境である。マニュアルは丁寧であるが,サンプルプログラムがもっと用意されていれば四十過ぎの私でも,もう少しはやく習得できるかもしれない。

 今まで勉強したことを少しまとめてみる。

・HSPではexe(実行形式)ファイルとスクリーンセイバーモジュールを作ることができる。
・画像の表示やサウンドの再生が簡単にできるので,ビジュアル・ノベルやゲーム作成に向いている。
・文法はBasicに似ているが,C言語の良いところも取り入れている。gotoやgosubでラベルにジャンプするのは「うーん,今どき,ちょっとな」と思うのだが,a += 1で変数aに1を加算できたり,C++のように//でコメントを開始できる。
・スクリプト言語なので,変数は宣言せずに使える。変数のみならず配列も宣言しないで,いきなりarray.0=1のように使える。「なんでだろう」と調べてみるとa=1と変数を使った場合でもaはa.0からa.15までの16個の要素を持つ配列として作成され,値1はa.0に入っていた。
・ボタンの定義が簡単である。button “PUSH”,*ラベル名と書くと,キャプションがPUSHのボタンが作成され,クリックするとラベル名にジャンプする。
・繰り返しはrepeat~loop命令で行う。ループ中にはシステム変数cntに回数が自動的にカウントアップされる。ループの中では,何回目かを数えなくていけないことが多いので,これはありがたい仕様だ。
・getkey命令でマウスのクリックとキー入力を取得できる。別々に取得しなくていいので便利だ。

 まだまだ,勉強しなくてはいけないことが多いが,年内には「ホットスープはいかが」とかずを誘ってみたい。