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

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

日本人が開発した、初心者向けのプログラミング言語「HSP」。子供でも理解しやすいプログラム言語として、一定の評価を獲得している。一方で1996年のリリース以来、HSPはさまざまな機能拡張が行われ、近年ではインディゲーム開発でも使用されるようになってきた。HSPの魅力や特長とはなにか。「子どもゲームプログラミング教室」の体験取材などを通して関係者に話を聞いた。

TEXT&PHOTO_小野憲史 / Kenji Ono
EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada

現代のBASICでインディゲーム開発

2019年4月6日・7日にベルサール秋葉原で開催された「東京サンドボックス2019」。120タイトル以上が出展された、インディゲームの祭典だ。この会場を取材しながら、思わず目をみはった。横スクロールのアクションパズルゲーム『テトラバッシュ』と、マップエディター『KEPIX_EDITOR』が、プログラム言語のHSPで開発されていたからだ。本作を開発したチームグリグリオガワコウサク氏は、古くからHSPを愛用する一人。Unity製のゲームが大半を占める中で、異彩を放っていた。

東京サンドボックス2019

テトラバッシュ

KEPIX_EDITOR

HSP(Hot Soup Processor)と聞いても、大半の読者には聞き覚えがないかもしれない。1980年代の8ビットパソコンに標準搭載されたBASIC言語に似た、個人開発者向けのプログラム言語だからだ。「ONION software」代表のおにたま(武田 寧)氏によって開発され、1996年にフリーウェアとして初公開。最新版のVer. 3.5ではiOS&Android向けのビルドや、C++言語やWeb(HTML5)といった異なる環境へのコード変換など、さまざまな拡張がなされている。

もっとも、筆者のHSPに関する知識といえば、2003年から毎年ホビープログラマーを対象とした「HSPプログラミングコンテスト」を開催していることくらいだ(2019年度の応募締切は10月31日)。累計5500本もの応募作品が寄せられており、プロから小学生まで参加者層も幅広い。とはいえ、あくまでもHSPは初心者向けという印象があった(公式サイトでも「子供でも理解し易いプログラム言語」を掲げている)。それがインディゲーム開発で使われていることに驚きを禁じ得なかったのだ。

HSPの生みの親であるおにたま氏は、ツェナワークス技術開発責任者として商業ゲーム開発にたずさわる一方、HSPむけのコミュニティ活動や、自身が主催する「OBS(おにたま放送局)」で動画配信などを展開。その合間をぬって毎年、プログラミングの教育活動を進めている人物だ。はたしてHSPの魅力はどこにあるのか。2019年8月17日・18日に東京都羽村市で開催された「子どもゲームプログラミング教室」を取材し、あらためて現状や特性に迫ってみた。

小・中学生と保護者7組が参加

子どもゲームプログラミング教室の主宰は、地域コミュニティの西多摩プログラミングクラブで、おにたま氏は外部講師という扱いだ。学校の夏休み期間にあわせて2012年から年に2回ずつ、合計4日間開催しており、小学4年生から中学3年生を対象としている。つきそいの保護者も含めると、毎年30名前後が集まる人気講座だが、今年度は告知期間が短かったこともあり、12名に留まった。そのうち子どもは7名で、男子5名、女子2名という内訳だ。筆者も会場の一角で受講させてもらうことになった。

授業は参加者が持参したノートPCにUSBメモリでHSPをインストールするところから始まった。おにたま氏の指示に従って子供たちが作業を進め、わかりにくいところは保護者がサポートしていく。インストールが終了すると、チュートリアルをかねてゲームプログラムを読み込み、遊んでみることに。シューティングゲーム、ドロップパズルゲーム、ブロック崩しなどを楽しんだ。ゲームがプログラムで記述されていることを、自然とわからせるしくみだ。

続いて簡単なプログラム遊びが始まった。HSPスクリプトエディタを開き、自分の名前を画面上に表示したり、文字の大きさや色、背景などを変えて、オリジナルのメッセージカードを作成したりと、徐々に複雑になっていく。それが終わると、最初に遊んだゲームの改造だ。Windowsに附属のペイントツールを用いて、キャラクターの見た目を修正したり、パラメータを変更してエネミーの数を増やしたり、攻撃の度合いを変えたりしながら、ゲームがどのように変わるか、実際に遊びながら確かめていく。

このようにワークショップは50分の授業と10分の休憩を繰り返しながら、1日につき4セットが行われた(もっとも、休憩時間でも子供たちは喜んでPCに向かっていたが......)。その中で単元ごとにテーマが設定され、サンプルプログラムやゲームの改造を行いながら、新しく習った命令の意味がすぐに体験できるように工夫されていた。学習と応用のサイクルを短時間で回すしくみだ。中には学んだ命令を自分なりに応用して、ゲームの体験が大きく変わるような改造をする子どもの姿もみられた。

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

  • 1時間目
  • HSPをインストール後、サンプルゲームを遊ぶ
  • 2時間目
  • 画面に文字を表示する&オリジナルのメッセージカードをつくる
  • 3時間目
  • ドロップパズルゲームのキャラクターをエディットする、シューティングゲームのキャラクターをエディットする&パラメータを変更する
  • 4時間目
  • ラベルを用いた繰り返し処理と、ボタンの表示を行う、カードバトルゲーム、ミニサッカーゲームを改造する

1971年生まれの筆者にとって、BASICは小学生の頃に遊んだ「玩具」の1つだ。HSPもまた、想像以上にBASICに似た特性があることに驚いた。HSPスクリプトエディタ上でプログラムを入力し、メニューから実行を選択するか、「F5」キーを押すと(BASICのアナロジーだ)、別ウィンドウが開いて処理が実行される。入力内容が間違っていればエラーが表示されるので、プログラムリストを見ながら間違いを探していく。全体が1つのプログラムで構成されるため、処理のながれもわかりやすい。

これに対して近年多くの企業や自治体などで開催されているプログラム教室では、ビジュアルプログラミング言語のScratchが用いられることが多い。米MITで開発された初心者用の言語で、マウス操作でブロックを並べていくことで、子どもでも容易にプログラミングが楽しめる。その一方で個別の機能ごとにプログラムが分割され、同時に実行されるため、処理のながれがつかみにくい。各々の処理がぶつかることで、不具合が発生するデメリットもある。イベント駆動型とフロー駆動型プログラミングのちがいだ。

もっとも、BASICでプログラムを組むには(BASICに限らず、大半のプログラム言語で同様だが)、キーボードで実際に文字を入力する必要がある。タイピングのスキルは子どもによって大きな差があるため、演習でもパラメータを書き替える程度に留められていた。取材前はマニュアルを片手にプログラムを入力させる、いわゆる「写経」が中心になるのかと思っていたが、ちがっていた。あくまで「プログラムと処理の対応関係を直感的に理解させる」点に焦点がおかれていたのだ。

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

特集