「SQLを書いて事件を解く」。そんな一見すると冗談のような推理ゲーム「Ghost in the SQL Data」が登場する。ここで使うのは、それらしいキーワードを入力するだけの疑似SQLではない。実際のデータベースにクエリを投げ、返ってきた「行」から真相を追うという。
推理ゲームと言えば、登場人物への尋問やアイテムの探索、パズルを解いて事件の謎に迫るものが定番だ。ところが、そんなお約束を捨て、SQLを武器に事件を捜査するゲームが登場する。
それが、Isaac MENARD氏が開発したゲームタイトル「Ghost in the SQL Data」だ。「Steam」では現在「近日登場」とされており、無料プレイのタイトルとして公開されている。
ゲームの舞台となるのは、火災や死亡事故、金銭の消失、そして「うそをついた機械」などが絡む事件だ。
例えば、ゲームの紹介文には「火災が発生する14分前に、その発生を報告した人物がいる」という事件が提示されている。ただ、プレイヤーがすべきことは、会話の選択肢から怪しい人物を選ぶことでも、部屋を歩き回って証拠品を探すことでもない。
SQLを書き、データベースに問い掛け、その結果を手掛かりに事件に追るのだ。
このゲームの最大の特徴は、SQLを単なるゲーム内の演出として扱っていないことだ。
プレイヤーが入力するクエリは、事件資料から構築されたデータベースに対して実行される。SQL文法を知っているだけでは足りず、何を条件にし、どの列を見て、どのデータを組み合わせるのかなどデータベースを相手に普段やっていることそのものが、事件捜査になる。
ただ、SQL初心者を想定した設計も用意されている。クエリがエラーになった場合には、何が間違っているのかを説明し、問題となった箇所を示してくれる。単に「不正解」と突き返すのではなく、SQLをデバッグしながら事件を進める設計だ。これによって捜査を進めながらSQLを段階的に学習できる。
開発者にとって面白いのは、ここで身に付けた知識がゲームの中だけで完結しない点だろう。開発者のIsaac MENARD氏も、ゲームで扱うSQLについて「仕事で使うものと同じ句」を学べることを特徴として挙げている。
もう一つ興味深いのが、クエリの結果を単なるクリア判定として消費しないことだ。ゲームでは取得した結果を読み、グラフ化し、重要なデータを捜査ボードに残していくことができる。証言やタイムスタンプなどを並べ、データベースから得た情報と照らし合わせながら、自分自身で事件のストーリーを組み立てるという。
ここには、開発者にとって見逃せないポイントがある。SQLはデータを取得するための言語だが、取得したデータをどう解釈するかは別問題だ。
大量のログやテーブルから必要な情報を抽出し、時系列に並べ、別の情報と突き合わせて原因を探る。これはゲームの捜査だけでなく、障害調査やセキュリティインシデントの分析にも通じるだろう。
Ghost in the SQL Dataは、その作業をミステリーという形に置き換えたゲームタイトルと言える。
SQLを「勉強する」のではなく、SQLを書かなければ先に進めない状況をゲームにしてしまう。開発者にとっては、普段意識せずに書いているSELECT文やWHERE句が、いつもとは少し違って見えてくるかもしれない。
「CTFはAIによって終わりました」 現役ハッカーが見た「人間の敗北」
さくらインターネットで583アカウントに不正ログイン 「顧客領域」まで到達
ゼロトラストの壁は「製品」ではなかった トヨタが4年以上かけて見直したもの
「サイバー攻撃は日々高度化・複雑化」は聞き飽きた? 企業が陥る「複雑化のわな」Copyright © ITmedia, Inc. All Rights Reserved.