初めに本書のタイトルを目にしたとき、「ゲーム」と「シェルスクリプト」の2つがまったく結びつかず、シェルスクリプトで何をしようとしているのだろうという感覚があった。

筆者がシェルスクリプトから連想するものは、ファイルの検索だったり、インストーラだったり、とにかく実利的でそれほど複雑でない処理を行うものという程度である。つまり、それほどシェルスクリプトに詳しいわけではなかったので、著者が本書で伝えたいことをタイトルからすぐに類推できなかったのだ。

そのことは、本書を読み進めていくうちに認識させられることになった。なるほど、と思うと同時に自らの無知を恥じなければならなかったのだ。

エスケープシーケンスで画面制御

タイトルからは、本書の全編がゲームで覆い尽くされているようにも受け取れるのだが、実際はそうではない。全10章のうち前の7章までは一般的なシェルスクリプトの入門書だ。ただ、その中にもゲームのにおいは少しずつ感じ取れる。

たとえば3章には画面に色を付けたり、ビープ音(「ピーッ」あるいは「プッ」という音)を発生させたり、カーソルを移動させたりする方法が書かれている。これらに共通して用いられるのものが何か分かるだろうか。それは「エスケープシーケンス」だ。

この単語を筆者が目にしたのは、何年ぶりだろう。おそらくWindowsより前にメジャーなOSだったMS-DOSをメインの実行環境としていたとき以来だろう。このあたりからようやく著者の意図を少しずつ理解し始めることができた。

シェルスクリプトの実行環境はCUI(Character-based User Interface : 文字だけのインタフェース)のみである。その環境にあってゲームのプログラミングを行うとなると、エスケープシーケンスを使って画面を制御するしか方法がない。すっかりGUIに慣れきった感覚をCUIの世界に引き戻すのに少し時間がかかった。

本書ではエスケープシーケンスを多用するので、章末か巻末に一覧表がほしいと感じた。ゲーム本体のプログラムの中では、事前に定義済みのエスケープシーケンスを実行する関数が用いられているので、そこから処理を類推することはできるようになっている。しかし、読者が自分で何かプログラミングしたいと思ったときには、独立した一覧表があったほうが良いのではないかという理由からだ。エスケープ文字の一覧は第2章に、シグナル番号の一覧は第4章に掲載されているだけに、エスケープシーケンスの一覧も欲しいと感じずにはいられなかった。

シェルスクリプトは高機能な言語だった

ゲームに必要な要素はほかにもある。たとえば、キー入力には機敏に反応してほしい。時間制限(タイムアウト)を設けてプレーヤーにスリルを感じさせたい。それから乱数を使ってゲームの局面にばらつきを持たせたい。[Ctrl]+[C]で急にスクリプトが止まってしまうと都合が悪いこともある。

これらについても、本書にはそれに対処する方法が述べられているので、興味のある読者は一読されたい。すでにこれらのことは知っているという方も、改めて知識を再確認してもらいたい。ふだんは実利的なことばかりをさせているシェルスクリプトの新たな世界を知ることになり、読者のシェルスクリプトに対する別の見方を新たに発見することになると思うからだ。

シェルスクリプトのTips本としても便利

ゲームのことをいったん脇に置くと、本書はシェルスクリプトのTips本として見ることができる。本文は260ページほどあるが、A5サイズで厚みは1センチ程度のソフトカバーで、それほどかさばらない。いつも使っている作業用マシンの近くに置いておき、「この処理はシェルスクリプトではどう書けばいいんだっけ」と思ったときに手にとってパッと開く、というシーンが想像できる。

長いソースリストが掲載されている箇所を除くと、1項目は2~4ページ程度で説明され、項目ごとに説明のポイントや短い用例、そして解説が並ぶ。項目によってはOS(Linux、FreeBSD、Solaris)やシェルの種類(Bourne Shell、bash)ごとの移植性を考慮した書き方などを示す注意点や、さらなる応用にも触れており、どのようなときに、どのようなコードを書けばよいのかが端的に示されている。

そのため、分厚い専門書を開くときにありがちな、探している内容がなかなか見つからないという事態に陥ることは少ないのではないかと思う。とはいえ、一度は通読しておかないと、注意点はどうしても見落としてしまうかもしれない。

CUI環境でのプログラミングは、筆者にとっては、もう遠い昔のことになっていた。しかし本書と向き合ったことで、がむしゃらにROM BASICやMS-DOSにかじりついていたころの記憶がよみがえり、初心に帰ったような気持ちになった。

8ビットPCやMSXの復刻本が話題になったことがあったが、その時と似た感覚を味わうことができ、なんだか嬉しくなってしまった。もうソースコードからは遠ざかっているという方も、本書を通じてそんな郷愁を味わえるのではないだろうか。

『ゲームで極めるシェルスクリプトスーパーテクニック』

山森丈範著
技術評論社発行
2007年9月6日発売
A5判 / 272ページ
ISBN978-4-7741-3202-0
定価2,499円(本体2380円)

本稿で取り上げた書籍『ゲームで極めるシェルスクリプトスーパーテクニック』を3名様にプレゼントいたします。ご希望の方はこちらからお申し込みください(応募締切:2007年10月7日)。