はじめに
プログラマのスキル向上に役に立つゲーム、と言われて思い浮かぶものはあるでしょうか。
古くはカルネージハート(ロボットをビジュアルプログラミングして対戦する)とか
Factorio(工場を作りロケットの射出を目指す。設計・モジュール化・デバッグを適切に行わないと大変なことになる)とか言われていたと思います。
今回はその流れでOxygenNotIncludedというゲームをサーバサイドエンジニアに約だとと無理やり強弁してみます。
Oxygen Not Included というゲーム
細かいゲーム内容自体は公式を見ていただくとして
https://store.steampowered.com/app/457140/Oxygen_Not_Included/?l=japanese
OxygenNotIncludeはいきなり惑星の地下に飛ばされてしまったデュプリカント(複製人間)たちを導いて生き延びるコロニーシムというジャンルのゲームです。
基本的には生存のための酸素・食料を毎日用意しながら、酸素や食料を手に入れるための資源・設備を構築し、研究を進め宇宙への脱出や提示された目標をクリアしていきます。
この設備の構築と自動化についてお話をします
設備の構築
設備には稼働に必要な電力、入力する資源、発生する熱量、出力される資源が定められています。
設備で生成されたものを更に別の設備で使う、というケースも非常に多く、最終的に必要な資源の量から用意すべき設備の数を検討する必要があります。
そう、パフォーマンスチューニングですね。
最終的に必要なスペックはどの程度なのか、ボトルネックになりうる箇所はないか、単一障害点はないか、といった基本的なアレソレを学ぶことができます。
論理回路による自動化
研究を進めていくと、自動化が解禁されます。
これは、自動化可能な設備にグリーンシグナルを送ると設備が稼働し、レッドシグナルを送ると設備を止める、というような制御が可能になります。
つまり、箱に入った資源が不足したらその資源を生成するように設備を動かしたり、発電設備を必要なとき・必要なだけ動かす制御が可能になります。
そして、このゲーム論理回路がやたら充実しています。
基本のAND,OR,NOTはもちろんのこと、XORやFILTER,BUFFER、メモリスイッチなどのちょっと応用的な回路まで存在します。
論理回路はもちろんエンジニアの基礎基本ですし、自動化をうまく使ってコロニーを効率よく運営するのはツール類を活用したり作ったりしてインフラを適切に運用できる素敵エンジニアになることうけあい(適当)
そしてコロニー全体の効率よく安全な運用
設備は様々な要因で機能不全を起こしたり、作った自動化や輸送ルートに不具合があって止まったりします。
そういうときにすぐに修復可能な状態になっているか、とか、主環境との切り離しが容易な状態か、とか
トラブルに対応している間生存に問題がない(サービス提供に問題がおきない)か、とか
ゲーム内で直面する様々な問題はサーバエンジニアが直面する課題とよく似ています。
きっと楽しくお勉強できるとおもいます
免責事項
- コロニーシムとしてみても高難易度の部類です。強く生きてください
- コロニーシムというジャンル自体が好みが強めにでます。
- ハマるとプレイ時間が恐ろしいことになります。責任は一切取りません。