コーディングのプロであるゲーム デベロッパーには別の顔があります。この秘密をばらしていいものでしょうか。彼らはコード エヴァンゲリストでもあるのです。もし許されるのであれば、すぐにでもコーディングを教えるでしょう。コマンドが上手く実行された時の満足感や、クリエイターの期待以上に拡大したシステムへのプライドを理解してもらいのです。
イスタンブールを拠点とする Abyss Gameworks は、まさにそれを Tartarus で実現しました。ファーストパーソン サイファイ ゲーム Tartarus は、冥王星に接近中の宇宙船を衝突から救うために、唯一の手段である宇宙船システムのプログラミングを試みるゲームです。生き延びる方法はコーディングのみならば、コードについて少し学習しなければなりません。
では、デベロッパーはどのようにファーストパーソン ゲーム内で機能する端末をを埋め込むのでしょうか?また、プレイヤーにどの程度プログラミングを学習させるのでしょうか?
終端速度

「本物のオペレーション システムをコーディングしている気分でした」とリード プログラマー Sertac Ogan 氏は振り返ります。
実はこれは OS ではなく、非常によくできた幻想です。Tartarus の端末に表示されるすべてのファイルとディレクトリは、アンリアル エンジン 4 の単一ユニットに一緒に格納されたデータ群である配列です。

「キーボードからユーザー入力を 1 つ残らず把握し、それらをロジカル コンポーネントにパースして、これらのコンポーネントを処理します」と Ogan は説明します。「その後で、我々が作成したシステムがどれがコマンドでどれがパラメータかを決定します。これが幻想の裏にある主なトリックです。」
Abyss がプリセットした各コマンドが、システムの対応する部分で特定のイベントをトリガーします。入力が端末の期待するコマンドに一致しなければ、スタジオがそのシナリオ専用に作成した『エラーメッセージ』を表示します。
「ユニークなエラーも仕掛けられています」と Ogan 氏は付け加えます。「毎回同じエラーメッセージが出るとは限らないのです。」
コード内でのコード

「一度理解すれば簡単に使えるようなシステムです」と Ogan 氏は説明します。「ただし、多少のプログラミングの知識がなければ、理解するのはなかなか難しいです。」
ただし、とっかかりが少し難しいだけで、Tartarus がプログラマー向けでいうわけではありません。ゲームの主人公 Cooper もプログラマーではありませんが、土壇場でどうにか切り抜けます。
「字を読むことができない人に本を与えることを想像してください」と Ogan 氏は言います。「そのような感じです。そのくらいの曖昧さを求めました。その端末は友達ですが、彼らの言葉で話さないといけません。すべてを読まないといけません。複雑さと理解レベルの両方がちょうど良い、そんな仕上りになったと思います。」
空間の温かみ

「それがトラウマでした」と彼は言います。
しかし Gunel 氏はその後、その映画の驚異的な美しさの再生を追求し続けて映画セットの照明アーティストの世界に入り、現在 Tartarus の 3D アーティストとなりました。スクリーンショットとプレリリース フッテージには、Ridley Scott 氏のレトロフューチャー独特の温かい光があります。
「彼の映画からたくさんのトリックを学びました」と Gunel 氏は説明します。「通常、私はその領域のメインとなるライトを当ててジオメトリ全体を確認してから、徐々にシャドウを使って切り分けていきます。」

Tartarus のレトロ スタイルは、Gunel 氏特有の温かいオレンジと明るい青の組み合わせの光は、節電時代の前のまばゆく光るランプを思わせます。簡単なように聞こえますが、机、コンピューター、天井 1 つ 1 つ照らしては、時々シーン全体の見栄えの確認を忘れずに行う作業は非常に手がかかります。シンプルな作業ほど骨が折れるのです。
「コンピューターから 10 分間離れることが非常に重要です」と Gunel は言います。「違いが分からなくなってしまうからです。場所にも臭いにも慣れていれば、金属壁の錆びた文字も読めてしまいます。
「ジオメトリ、ライト、テクスチャは三位一体ということを理解しなければなりません」と彼は付け加えます。「1 つでも合っていなければ、すべてが台無しです。」
Tartarus は Steam に今夏登場します。
編集注記: PCGamesN は、長く続いている Making It in Unreal シリーズのためにアンリアル エンジンで制作された素晴らしいゲームを選んでそのデベロッパーにインタビューしています。エピック ゲームズは編集プロセスに関与していません。