連載
ハロー!Steam広場 第136回:我がプログラムを見よ! こだわりのアセンブリで製品を動かす電子回路シミュレーション「SHENZHEN I/O」
「すちーむ」ってなぁに?というよい子のみんな集まれー! 「ハロー! Steam広場」は,PCゲームのダウンロード販売サイトSteamでリリースされた気になるタイトルやニュースを,筆者が独断と偏見でピックアップして紹介する,とっても有意義なコーナーだ。毎週欠かさずチェックすれば,家計簿の教育費にゲーム購入資金を書き込む上級Steamerにジョブチェンジできるかも。
ハロー!Steam広場 第136回では,クライアントの要求どおりに製品が動作するよう,マニュアルとにらめっこしながらマイコンにアセンブリを書き込んで動かしていくシミュレーションゲーム「SHENZHEN I/O」をメインに紹介しよう。このほか,ロボット騎兵同士がハイスピードでぶつかり合う「Merkava Avalanche」もお見逃しなく。
アセンブリを工夫して,ほかのプレイヤーよりも優れた製品の完成を目指す電子回路シミュレーション「SHENZHEN I/O」
今回はアメリカのゲームデベロッパ,Zachtronicsが手掛ける「SHENZHEN I/O」を紹介しよう。本作は,中国の深セン市にある電機会社「Shenzhen Longteng Electronics」に就職したプレイヤーが,上司から送りつけられてくる要望書に沿うように電子機器が動くよう,マイコンやアセンブリ言語を駆使して,回路を組み立てていくというシミュレーションゲームだ。
上司からの指示は,「ダミー監視カメラのLEDを交互に点灯させてほしい」だとか,「3パターンのネオンを順番に光らせて,アニメーションにしてほしい」だとか,そのほとんどがアバウトなものばかり。逆にいうと,要望を満たしたうえで製品が動きさえすれば,なんのパーツを使ってどういったアセンブリを書くかは完全にプレイヤーの自由というわけである。
そして本作には,プログラムがちゃんと動いて製品が完成すると,そこに掛かったコストや,動作で消費するパワーなどがスコア化され,ほかのプレイヤーと比較できるという面白い仕掛けも用意されている。
プログラミングの上級者で,本作のルールもすぐに理解できてしまうような人達は,ほかのプレイヤーよりも低コストで回路が組めるよう試行錯誤したり,無駄に複雑なアセンブリを書いてどれだけコストを膨らませられるかといった「俺的最強システム」を模索して楽しんでいる様子だ。
プログラミングの素人には取っつきづらそうに思えるが,マニュアルを読んで基本的な命令文の仕組みさえ理解できてしまえば,自分で試行錯誤してプログラムを完走させられるはずだ。製品が動いている要素もちゃんと映し出されるので,プログラミングの醍醐味もしっかりと味わえる。
現に,プログラミングの入門ともいえる「Hello world」すら理解できなかった筆者も,ステージ6くらいまでは(マニュアルとはにらめっこしたが)なんとかなったし,試行錯誤でいろいろな命令を書き込み,やっとのことで製品が完動したときの感動は,十分に味わえた。完動だけに感動ってね。えへへ。
では,実際にどんな感じでマイコンにプログラムしていくのかを,ステージ1の「FAKE SURVEILANCE CAMER」(ダミーの監視カメラ)を例に紹介してみよう。実際にプログラムする画面に入ったら,まずINFORMATIONタブに目をとおして,製品をどのように動作させるのかを確認していく。ステージ1の内容を要約すると,赤と青のLEDをそれぞれ一定のリズムで点灯させるといった感じだ。
次にプレイヤーが確認するのは,VERIFICATION(検証)タブ。ここには,どのように処理してほしいのかが,あらかじめ薄い線でグラフ化されており,自分の書いたプログラムの処理内容は,シミュレートしたときに濃い線で書き込まれていく。要するに,薄い線の上の完璧になぞることができれば,完成である。
ステージ1に関しては,赤いLEDを点灯させるプログラムがすでに書かれているので,まずは検証タブでシミュレートして,マイコンに書き込まれたアセンブリがどのようにグラフ化されていくのかを見れば,その仕組みが理解できるはず。赤いLEDのプログラムを書き出してみると以下のような感じだ。それぞれの解説もプログラミングっぽくコメントアウトで記述してみる。
mov 0 p0 #アウトプットにつながっているp0ピンに0を出力
slp 6 #上の命令を6ステップ維持
mov 100 p0 #アウトプットにつながっているp0ピンに100を出力
slp 6 #上の命令を6ステップ維持
グラフ化されるとこうなる。画像内の注釈は,それぞれの命令語がどこに指しているのか分かるよう,筆者が書き込んだもの
上述した赤いLEDのプログラムを参考に,青いLEDのグラフを見ながらプログラムを書くと,以下のような感じだ。
これが指示されているグラフ
mov 0 p0
slp 4
mov 100 p0
slp 2
mov 0 p0
slp 1
mov 100 p0
slp 1
アセンブリに問題がなければ,このように黄色線がグラフをなぞっていく
これをシミュレートして動作に問題がなければ,納品してクリアとなる。この流れだけを見ると簡単に思えるかもしれないが,もっと先のステージに行くと,ラベルだったり条件分岐だったりを駆使しなければならない製品も出てくるので,なかなか一筋縄ではいかない。
「SHENZHEN I/O」は,人を選ぶゲームのように見えるが,やる気(マニュアルと格闘する気)さえあれば,プログラミングに明るくない人でも楽しめるはずなので,興味のある人はぜひ挑戦してみてほしい。
「SHENZHEN I/O」Steamストア(1480円)
「SHENZHEN I/O」Steamストア(クライアントが立ち上がります)
ロボット騎兵同士がハイスピードでぶつかり合うアクションゲーム「Merkava Avalanche」
「こんなゲームをリリースしたい」という開発者に対して,ユーザーが賛成か反対かを投票できるサービスがGREENLIGHTだ。今回は日本のインディーズ系デベロッパ,winter crown worksが手掛ける「Merkava Avalanche」を紹介しよう。
本作は,異世界の呪われた半島「di=Bounce(ジ=バウンス)」で開発された巨人騎兵「merkava(メルカバ)」に乗り込み,広大な戦場で敵軍と戦うロボットアクションゲームだ。プレイヤーは傭兵となり,敵を倒して得た賞金で機体を強化し,さらなる強敵に挑戦しながら階級を上げていくことになる。
開発者の話によると本作は,セガサターンの名作「ガングリフォン」が発売されて以降,自分達の満足できる3Dロボットアクションゲームが出てこないことに対して,「それならば自分達の手で作ってしまおう」という考えが出発点となって,開発が進められている作品だという。
開発を始めたのが今年の3月という話だが,公開されているムービーを見ると,この短期間で2人で作っているとは思えないクオリティのゲームプレイが確認できる。なお,開発に使用しているゲームエンジンは,Unreal Engine 4とのこと。
そんな本作は,すでにGREENLIGHTを通過しており,2017年後期のリリースが予定されている。ロボット好きで本作に惹かれた人は,フォローボタンを押しつつ,今後の動向に注目しておこう。
「Merkava Avalanche」GREENLIGHTページ
- 関連タイトル:
Steam
- この記事のURL:
キーワード
(C)2019 Valve Corporation.All rights reserved.