どうも、まさとらん(@0310lan)です!
今回は、ブラウザ上からリアルなハッカー気分を疑似体験できるユニークな無料Webゲームをご紹介します!
PCゲームとしてSteamからもリリースされていますが、今回ご紹介するブラウザ版は手軽に遊べるのでオススメです。ターミナル風のゲーム画面が特徴で、実際にJavaScriptを使ってプログラミングもできます。
ハッキングやセキュリティなどにご興味ある方も含めて、ぜひ参考にしてください!
【 Bitburner 】
■「Bitburner」の遊び方
「Bitburner」は、西暦2077年のサイバーパンクをテーマにしたディストピアな世界を舞台にしています。
ゲーム画面は3Dグラフィックや派手な演出があるわけではなく、世界観にピッタリなCLIベースのターミナルを忠実に再現しているのが大きな特徴です。
遊び方ですが、面倒なユーザー登録などは必要ありません。サイトにアクセスするだけですぐにでも遊び始めることができます。
今回は、初回に表示されるチュートリアルをベースにしながら、ゲームの基本的な遊び方について解説をしていきます。
画面左側にはさまざまなメニューが並んでいるのですが、例えば【Stats】を選択してください。
現在のプレイヤースキル、所持金、各種能力値などをまとめて確認できるようになります。
各種パラメータはハッキングの成功率にも影響するので、自分の能力を把握しておくためにも適度にチェックしておくようにしましょう。
次に【Terminal】を選択してください。
この画面では、実際にコマンドを入力して実行できます。試しに「help」コマンドを入力してエンターキーを押してみましょう!
このターミナルを使って実行できるコマンドの一覧が表示されます。
実際のLinuxとは異なりますが、よく似たコマンドもいくつかあるので操作をイメージしやすいと思います。
ゲームを始める前に、どのようなコマンドが用意されているのか一通りチェックしておくといいでしょう。
■ハッキングを体験してみよう!
「Bitburner」では、さまざまな仕事(タスク)をして収入を得る仕組みが用意されています。
しかし、「Bitburner」の世界を本当に楽しむのであれば、ハッキングをして大きな収益を得る方法を覚えましょう。
そこで、まずはターミナルから「scan」コマンドを実行してください。
プレイヤーのターミナルから接続できるサーバのリストが表示されます。
ただし、これだけだとハッキングできるかどうか分からないので、もう少し詳細な情報を知る必要があります。
そのため、次は「scan-analyze」コマンドを実行してみましょう。
各サーバごとに、ハッキングに必要なスキルレベルやポートの開放が必要かどうかの情報が表示されます。
そこで、ポートの開放が不要でスキルレベルも低い「n00dles」というサーバをハッキングしてみましょう。
「Bitburner」での一般的なハッキング手順としては以下のとおりです。
- 対象のサーバに接続する
- 必要であればポートを開放する
- ウィルスを実行する
- ルートアクセスを取得する
- ハッキングコマンドを実行する
上記の流れが成功すると、大きな収益を得ることができます。
まずは対象となる「n00dles」サーバに接続します。「connect」コマンドの引数にサーバの名称を付与して実行します。
コマンドは以下のようになります。
[home ~/] > connect n00dles
接続するとサーバの名称が「home」から「n00dles」に変更されていることも確認しておきましょう。
次に、接続したサーバの詳細な情報を調べるため、「analyze」コマンドを実行してみます。
いくつか重要な情報を入手できますが、「Chance to hack」の項目にある数字はハッキングの成功率を意味しています。今回の場合だと「42.43%」の確率でハッキングができるという意味になります。
これはプレイヤーのスキルレベルや能力値によっても変化するので、成長していけば簡単にハッキングできるようになるというわけです。あと、サーバから得られる現在の総資金も確認しておきましょう(資金は増やすことも可能)。
このサーバではポートの開放が不要なので、このまま独自のウィルスプログラムを実行してルートアクセスを取得できます。
プログラムはプレイヤーが最初から持っている「NUKE.exe」という名称のファイルです。以下のコマンドを実行してみましょう!
[n00dles ~/] > run NUKE.exe
ウィルスプログラムが成功すると、プレイヤーはルートアクセスを取得できます。するとこのサーバを自由に制御できるようになるわけです。
最後にハッキングコマンドを実行しましょう。
これは「hack」という専用のコマンドが用意されており、実行するだけで自動的に処理されます。
失敗する場合もありますが、何度か繰り返し実行するとハッキングできるようになります。
コマンドが成功すると、その瞬間にサーバの総資金から一部のお金を得ることができて経験値も一緒に獲得できます。ちなみに「home」コマンドを実行すると、サーバから退出して最初のターミナル画面に戻ります。
ここまでが基本的なハッキングの流れになります。
スキルを上げていけば、さまざまなサーバをハッキングしていくことが可能になります。ただし、1つずつコマンドを手入力してハッキングするのは少し面倒ですよね?
そこで「Bitburner」では、実際にハッキング用のプログラムを書ける機能が提供されています。そして、このプログラミングこそがこのゲームにおける一番の醍醐味でもあるわけです。
■プログラムを作ってみよう!
「Bitburner」の世界では、Netscriptと呼ばれるプログラミング言語が存在しています。基本的にはJavaScriptをベースにしており、便利な関数などが多数提供されているのが特徴です。
さらに上位版となるNetscript2.0も提供されており、こちらは通常のJavaScriptとほとんど同じプログラムが作れるように設計されています。
プログラムの作成方法ですが、ターミナルから利用できるテキストエディタとして「nano」を使います。
例えば、「n00dles.script」というファイル名のプログラムを作る場合は以下のようなコマンドを実行します。
[home ~/] > nano n00dles.script
テキストエディタに切り替わるので、簡単なプログラムを書いてみましょう。
ひとまず「hack」コマンドを実行し続ける場合は次のようになります。
while(true) { hack('n00dles'); // n00dlesサーバをハッキング }
あまりよいプログラムとは言えませんが、先ほどハッキングに成功したサーバで実行するとバックグラウンドでハッキング処理を続けてくれます。つまり、何もしなくても継続的にお金が増えていくわけです。
作成したプログラムを実行するコマンドは次のとおりです。
[home ~/] > run n00dles.script
これでプログラムはバックグラウンドで実行を続けてくれます。
実行中のプログラムを確認するには、画面左メニューの【Active Scripts】を選択するとチェックできます。
さらに、プログラム名をクリックして【LOG】ボタンをクリックすると、進捗状況が確認できるウィンドウが表示されます。
「kill」ボタンをクリックするとプログラムを停止させることも可能です。
現状のプログラムだとハッキングに成功したサーバでしか機能しません。しかし、提供されている関数などを活用すれば、接続可能なサーバを探したりウィルスプログラムを実行してハッキングしたりなどをすべて自動化させることも可能です。
プレイヤースキルに合わせてハッキングを分岐させたり、サーバを拡張してみたり、資金を増やしたりなど、プログラムで実現できることは何でもできるのが大きな魅力でしょう。
■「Bitburner」のユニークな楽しみ方
「Bitburner」では、ハッキング以外にもゲームを楽しくするための仕組みがたくさん提供されているので、いくつかピックアップしてご紹介しておきます。
まず最初に「Hacknet」について解説しておきます。
「Bitburner」の世界には、自分を含めてさまざまなハッカーが利用するHacknet(ハックネット)と呼ばれる分散型ネットワークがあります。このネットワークを構築するための専用マシンを購入すると、ハッカーが利用するたびに一定数の利益を得ることができます。
つまり、専用マシンを持っておくだけで受動的にお金が増えていくというわけです。
マシンは複数購入できるうえ、RAMやコアなどを拡張して収益性をアップさせることも可能なので、自分好みにカスタマイズしていくといいでしょう。
【City】メニューでは、街を探索できる機能が提供されています。
各地点をクリックすると詳細画面が表示されます(旅行会社を通して海外旅行も可能です)。
例えば、「Rothman University」をクリックするといくつかの受業を受けることができます。
授業を受けるとハッキングスキルのレベルが上昇するので、ときどき立ち寄って自身のレベルを上げておくようにしましょう。
他にも、ジムを訪問して各能力値をアップさせたり、スラム街へ行って犯罪に手を貸すことも可能です。また、企業やお店などで働くとお金や経験値を得ることもできます。
このようにレベルを上げたりお金を得たりしながら、自作のプログラムでハッキング活動を続けていると謎のハッカー集団から招待を受けます。
加入の条件として、任意のサーバを見つけてハッキングすることが求められます。
しかし、手順はこれまで通りと同じなので、ターミナルからスキャンを実行してサーバを見つけさえすればハッキングはそれほど難しくありません。
そして、「Bitburner」の壮大なストーリーはここから始まるわけです。
■「Bitburner」の保存機能とオプションについて
ゲームの進捗を保存するための機能として、JSON形式のファイルに書き出すことができます。
これは左メニューにある【Options】を選択して、専用のオプション画面から実行できるように設計されています。
【Export Game】ボタンをクリックすると、現在の状態をJSONファイルとして書き出すことができます。
逆に【Import Game】ボタンをクリックしてJSONファイルを読み込むと、続きからゲームを開始できるというわけです。
他にも、ゲームUIを自分好みのカラーに変更できるエディタも提供されています。
オリジナルのテーマカラーを作成すれば、ゲームに個性を持たせて遊べるのでさらに没入感が増すかもしれません。
■おまけ
最後に、「Bitburner」のゲームを通してセキュリティに興味が湧いた方に最適なWebサイトをご紹介します。
【 Learn to Hack 】
このサイトでは、さまざまな脆弱性を悪用したハッキング手法を、インタラクティブに学習できるリソースが無料で公開されています。
例えば、「クロスサイトスクリプティング」とはどのような攻撃なのかを分かりやすいデモで実際に確認できます。そのあとに、防御する方法について詳しいガイドを読むことができ、最後にミニテストで理解を深められる構成になっています。
また、「Bitburner」とよく似たWebゲームとして、VS Code風のエディタ上でプレイできるMMORPGもあります。テキストベースのゲームですが、マルチプレイに対応しているのでグローバルなチャットを楽しんだり、友人と一緒に敵を倒しに行ったりなどができます。
以下の記事でも詳細を解説しているので、合わせて参考にしてください(※一部の情報は旧バージョンになります)。
攻撃手法から学ぶハッカー入門(Webセキュリティ入門編)
paizaラーニングの「攻撃手法から学ぶハッカー入門(Webセキュリティ入門編)」は、誰もがホワイトハッカー(善意のハッカー)になれるよう、クラッカー(悪いハッカー)の攻撃手法を実際に試しながら学べるセキュリティ講座です。PHPで作られたサイトを使いながら、ハッキングとその対策方法を実践できます。
講座の動画ナレーションは声優の内田真礼さんが担当しています。
攻撃手法から学ぶハッカー入門(Webセキュリティ入門編)について詳しくはこちら
■まとめ
今回は、JavaScriptでハッキングを疑似体験できるWebゲームをご紹介しました。
まだリリースされたばかりなので、今後も機能改善などのアップデートが行われていく予定です。ゲームとはいえ、遊びながらプログラミングも楽しく学習できるので、実践的な練習をしたい方にも最適だと思います。
ぜひみなさんも、独自のハッキングコードを考案してゲームの世界を楽しんでみてください!
<参考リンク>
paizaラーニングでは、ほかにもJava、C#、Ruby、C言語、PHP、SQL、JavaScript、HTML/CSSなど、人気言語の動画レッスンを公開しています。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら