>   >  現代のBASICでインディゲーム開発!? プログラミング言語「HSP」の現状と可能性
現代のBASICでインディゲーム開発!? プログラミング言語「HSP」の現状と可能性

現代のBASICでインディゲーム開発!? プログラミング言語「HSP」の現状と可能性

ネットゲーム、ロボット操作......HSPの可能性

2日目はプログラムの基本的な概念の1つ、「変数」についての説明から始まった。文字や数値などのデータを一時的に保存しておく「箱」といったイメージで、シューティングゲームでエネミーが移動する速度や、ドロップパズルゲームの制限時間などの調整は、全て対応する変数の値を変えることで行われる。授業ではポーカーゲームやジャンプアップゲームを遊びながら、コインの枚数やジャンプ力の強さなどに相当する変数を説明。子供たちは数値を変えながら、変化について確かめていた。

その後も「会場内に設置したイントラネットを用いて、みんなでネットゲームを遊んでみる」、「USBで外部デバイスを接続し、基板上のLEDを点滅させたり、ロボットアームを操作したりしてみる」、「HSPで3DCGゲームを遊んでみる」など、バラエティに富んだ演習が行われた。また、それと並行して、おにたま氏は条件分岐(IF文)について説明。西多摩プログラミングクラブから著作権に関する簡単な講義も行われた。最後に20分ほど自由にプログラムをする時間が設けられ、終了となった。

2日目タイムスケジュール

  • 1時間目
  • 1日目のおさらいと変数の説明&ポーカーゲーム、ジャンプアップゲームを遊ぶ
  • 2時間目
  • 著作権の説明と、ネットワークゲームをみんなでプレイ
  • 3時間目
  • 外部デバイスをHSPで操作
  • 4時間目
  • 条件分岐の説明と3DCGゲームの体験、自由にプログラムしてみる

もっとも驚かされたのは、HSPによる外部デバイスの操作だ。市販の教材用ロボットアームや自作の電子回路の制御が、簡単なプログラムで実現されていた。これを可能にしたのが、USB-IO規格のインターフェイスに対応する、HSPに同梱されたプラグインやモジュールだ。以下は簡単なプログラムの例で、"arm1"がロボットアームの指関節にあたり、パラメータが0か1かで開閉できる(ブログ「おにたま(オニオンソフト)のおぼえがき」)より。自分が知っているBASICを、はるかに凌駕する内容だった。

#include "usbio.as"

	usbinit
	mes "つかむ"
	arm1 0
	wait 2000
	mes "はなす"
	arm1 1
	wait 2000

	armstop
	mes "おわり"
	stop

おにたま氏

イベント終了後、おにたま氏に簡単なインタビューを行なった。1966年生まれで東京都出身。子どもの頃からパソコンショップに通いつめ、自然とプログラムを習得していく。中学生の頃から自作ゲームが秋葉原のショップで買い取られるなど、その筋では知られたパソコン少年だった。自主制作した麻雀ゲーム『まじべんちゃー』が1986年、製品化されたのを契機に、商業ゲーム開発者としての道を歩み始める。ゲーム業界の黎明期で、こうした例は珍しいものではなかった。

おにたま氏が非凡だったのは、仕事のかたわらプライベートでもBASICでプログラミングを続けていたことだ。しかしMS-DOSやWindowsの普及で、電源を入れるとBASICが自動的に立ち上がった時代はすぎさり、数万円もする開発言語を購入する必要があった。もっと気軽にプログラミングしたいという思いから、おにたま氏はBASICに近いプログラム言語をWindows向けに自主制作し、フリーソフトとして公開する。それがHSPだ。「自分で気軽にプログラムを楽しむために」つくったというわけだ。

今でこそUnityなどが無料で使えるが、当時は存在自体が珍しかったこともあり、HSPはオンラインソフトのコミュニティを中心に普及した(2001年のオンラインソフトウェア大賞にも選出)。そこから解説本の出版につながり、HSPプログラミングコンテストが始まった。その後もHSPコミュニティは拡大を続け、新ポータルサイトの「HSPTV!」立ち上げや、ソースコードのオープン化などを進めていく。2018年には教育向けシングルボードコンピュータのRaspberry Pi上で動作する「HSP3 for Linux/Raspberry Pi」を発表。さらなる発展が期待されている。

「子ども向けプログラミング教室」の開催も、こうしたながれで始まったものだ。学校や地域コミュニティに入り込むことが難しかったが、西多摩プログラミングクラブとの連携などで、夏の年中行事となった。2018年からは東京都・青梅市で開催されている「子どもIT未来塾」でも講師の1人として参加中だ。ソフト・ハードの双方からプログラミングが学べる内容で、RaspberryPiとHSPを用いたプログラミングの講師をつとめている。「子供たちがプログラミングに触れるきっかけつくりを行い、そこから次世代の人材を創り出したい」と、おにたま氏は取り組みの意図について語った。

子どもIT未来塾の概要(2018年度)

もっともHSPの主な対象は個人によるゲームやツール開発で、大規模開発には向いていない。「短時間で荒っぽくつくって、動けばOK」というわけだ。より大規模なゲームやリッチな表現、エレガントなプログラムが書きたければ、それに適した言語があるという。「子ども向けプログラミング教室」で、命令の説明とサンプルの改造を短時間で回しているのも、対象者や時間の制限ゆえだ(学校のクラブ活動などでは、「写経」も効果があるだろう)。試行錯誤のすえにこのスタイルに落ち着いたという。

HSPが蒔いた人材教育の種が成果を出し始めた

こうした人材育成の取り組みは、着実に成果を出し始めている。大手ゲーム会社で家庭用ゲームのタイトル開発に従事するMIA氏もその一人だ。HSPプログラミングコンテストが始まる前から自作プログラムをホームページ上で発表していた、HSPコミュニティ内では「知る人ぞ知る」敏腕プログラマー。中でも2008年に投稿し、優秀賞を得た『レイトレーシング』は審査員をあっと言わせた。タイトルどおり簡易的ながら、HSPでレイトレーシングによる静止画レンダリングを実現していたからだ。

『レイトレーシング』出力結果

1980年生まれで、おにたま氏とは一回り以上離れているが、ゲーム業界に入った経緯は似たようなものだ。小学1年生のとき、両親からパソコン(FM-77AV)を買い与えられ、3歳年上の兄とともに夢中になった。当時好きだったパソコンゲーム『DAIVA』の演出の一部を、自分で再現しようとしたのが、BASICでプログラミングをした初期の思い出だ。中学生でFM-TOWNSを買い与えられると、Towns OS上でF-BASIC386を動かし、プログラミングを楽しんだ。

「当時はパソコンにBASICが標準搭載されなくなり、一方でWindowsが動くわけでもない、エアポケットの時期でした。雑誌『Oh!FM』を愛読していましたが、マシン語がよくわからず、BASICしか使えませんでした」。その後もFM-TOWNSを愛用し(グラフィック機能やメモリで劣るPC-9801には興味がわかなかった)、都合3台ほど買い換えた。FM-TOWNS用のWindowsも発売された。HSPに出会ったのはその頃だ。フリーソフトを大量に収録したCD-ROMつきのムックがきっかけだった。

「BASICと同じ感覚でプログラムできたので、これこそ待ち望んでいたものだと思いました」。東京高専の電子科に進学し、授業で電子回路を学びつつ、趣味でプログラミングを続けたMIA氏。学校ではC言語も学んでいたが、就職活動ではHSPでつくった自作のゲーム群を動画キャプチャし、提出したところ、内定を得た。「ソースコードの提出は不要だったので、短期で開発できて使い慣れているHSPでプログラミングしました。おかげで書類選考後、面接までにもう1作品、デモをつくることができました」。

MIA氏にとってHSPでのプログラミングは「遊び感覚」だ。一人で書くので自由に書ける。HSPプログラミングコンテストが始まったときは社会人になっていたが、毎年ショートプログラム部門で投稿を続けていた。2008年にレイトレーシングをテーマとしたのも、HSPがバージョンアップして、浮動小数点演算がサポートされたからだ。『Oh!FM』の誌面で、基本的な原理は中学生の頃から知っていた。ネットで情報を集め、腕試しのつもりで応募したところ、衝撃をもって受け止められ、入選をはたした。

これに対して業務で使うことの多いC++は「仕事で書くもの」で、他人にソースコードを見せたり、共有したりすることが前提だ。そのためにはきちんと動作するだけでなく、可読性も重要になる。MIA氏はC++のメリットは「高速処理」でしかないと語った。そのためHSPむけの開発でも、高速処理が要求される自作ゲーム向けのプラグイン制作などは、Cで書いているほどだ。その上でゲームプログラムはHSPで書くというわけだ。

ただし、業務中でもHSPがひょっこり顔をのぞかせることがある。ゲームデザイナーとの打ち合わせなどで、事前につくったモックを見せて、動作を確認してもらうときなどだ。C++でガリガリと書くよりも、圧倒的に短時間で動くモノがつくれるからだ。実際に2010年代までのタイトル開発では、こうしたことが良くあったという。もっともゲーム機が現行世代になり、実機上に近い環境で開発が可能になると、こうした機会も減った。それでもHSPの気軽にプログラムが書ける良さは大きいとMIA氏は語る。

歴史的にみると、ゲーム業界は1980年代までアマチュアとプロの垣根が非常に低かった。これが1990年代の半ばから徐々に乖離が進み、ゲーム開発のブラックボックス化が進んだ。こうした中で数少ない、日本人が開発したプログラミング言語がHSPだ。そしてインディゲームの盛り上がりに伴い、アマチュアとプロの文化は再び交わりつつある。冒頭で触れた『テトラバスター』は、HSPで書かれたインディゲームの1つ。今後もこうした事例は増加すると予測される。

他にも処理が軽いことや、ソースコードが公開されていることなどから、アーケードゲームなど、思わぬシーンで使われることがあるという。もっとも、おにたま氏は「特に届け出などを求めてはいませんし、どこまで浸透しているかは不明です。ただ、たまに業界内で小耳に挟んだり、『使わせてもらっています』と話しかけられることがあります。そんなときは嬉しいですね」と笑う。もはや無視できない存在にまでなってきたHSP。今後どこまで可能性が広がっていくか楽しみだ。

特集