注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。
今回は2017年6月8日よりNintendo Switch向けに配信されているゲームソフト『ヒューマン・リソース・マシーン』のレビューを行いたい。このゲームは元々はSteam及びスマートフォンアプリ向けに配信されているゲームの移植版にあたり、初の日本語対応のようである。
ヒューマン・リソース・マシーンでは、プレイヤーは社畜となって、様々な処理を組み合わせて、上司からの指示をこなすという、ビジュアルプログラミング言語ゲームである。ビジュアルプログラミング言語ということから、一見子供向けのプログラミングゲームのように見えるが、その指示の内容とコマンドの少なさを考えるとなかなか難易度の高いゲームでもある。
このゲームでは、以下のコマンドを組み合わせて上司からの指示をこなせるように処理を作り上げる必要がある。
- inbox: 左のレーンからデータを取り出す。既にデータを持っている場合はそれを破棄してから取り出す。
- outbox: 現在のデータを右のレーンにデータを渡す。データを持っていない場合はエラーになる。
- copyfrom: 指定されたカーペットのデータをコピーして取り出す。指定されたカーペットのデータが空の場合はエラーになる。ゲーム終盤になると指定されたカーペットの数値をデータの数値をデータを取り出すカーペットの参照先として使えるようになる。その場合は参照元のデータが空白またはアルファベットの場合もエラーになる。
- copyto: 現在持っているデータを指定したカーペットにコピーする。
- add: 現在持っているデータと指定したカーペットのデータの足し算を行い、結果のデータを持つ。
- sub: 現在持っているデータと指定したカーペットのデータの引き算を行い、結果のデータを持つ。
- bump+: 指定したカーペットのデータの数値を1増やして、その結果のデータを持つ。
- bump-: 指定したカーペットのデータの数値を1減らして、その結果のデータを持つ。
- jump: 指定した矢印の先まで処理を移動する。
- jump if zero: 現在持っているデータの数値が0なら、指定した矢印の先まで処理を移動する。それ以外の場合は一つ下に進む。
- jump if neg: 現在持っているデータの数値がマイナスの数値なら、指定した矢印の先まで処理を移動する。それ以外の場合は一つ下に進む。
これらのコマンドを組み合わせることによって、ミッションをこなしていくことになる。
従って、このゲームでは一般的なプログラミング言語で使われている掛け算や割り算、比較演算などをそのままの形で行うことはできず、どうやったらそれをできるのかというお題もわざわざ登場しているほどである。
こういったプログラム上の制約と、プログラムの最適化(より短いコード、より少ないステップで処理を完成させる)といった要素もあり、極めれば極めるほど奥の深いゲームに仕上がっている。
実務でプログラミングをやっててもなかなか難しいが、学習にも暇つぶしにも是非やってみてはいかがだろうか?
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。