ビットバーナー:初期のゲームガイド(ネタバレなし)

チュートリアルを終了し、どのように進めるか疑問に思っていますか? ハッキングスクリプトを改善したいですか、それともゲームの他の部分の自動化を開始したいですか?

これはあなたを正しい方向に向けるネタバレのないガイドです。

 

スクリプトのハッキング:改善する方法

1:チュートリアルに従ってください

ゲーム内チュートリアルに加えて、適切なハッキングスクリプトを開始する方法に関する優れたガイドがあります。 オンラインドキュメント[bitburner.readthedocs.io].

この時点で、特定のサーバーを継続的に弱体化、成長、ハッキングするスクリプトができました。 あなたはそれが遅いと思うかもしれません(そしてあなたは正しいでしょう)そしてそれはあなたがすることができるいくつかの改善があるからです。

最初のステップは、使用を開始することです ネットスクリプト2[bitburner.readthedocs.io]。 チュートリアルで使用されているNetscript1または.scriptファイルは、機能が遅く、機能が不足しています。 Netscript2は最新のjavascriptに非常に近く、速度はコンピューターによってのみ制限されます。 ここでの速度とは、weaken()grow()およびhack()関数の実行速度ではなく、実行時間を指すことに注意してください。これは、ハッキングスキルによって決まります。

スクリプトを作成するとき、ns関数を使用するにつれて、RAM要件が増加することに気付くかもしれません。 weaken()grow()とhack()のみが追加のスレッドを使用することでメリットが得られるため、それらを他のすべてから分離すると、より多くのスレッドを実行できるようになり、より高い見返りが得られます。

この時点でそれは持つ価値があります APIドキュメント[bitburner.readthedocs.io] ハンディ。

RAMの使用を最適化するためにハッキングスクリプトを分離する

重要な関数をできるだけ多くのスレッドで実行できるようにするには、実行する最も単純なスクリプトを作成する方法を見つけてください。  引数で指定されたターゲットのweaken()とそれ以上のものはありません。 次に、チュートリアルからハッキングスクリプトを取得し、weaken()を直接実行する代わりに、free ramが許可する限り多くのスレッドを使用して、weakenスクリプトを実行し、ターゲットを引数として渡す方法を見つけます。 次に、終了するまで待つ方法を見つけます。 grow()とhack()に対してこのプロセスを繰り返します。

現在、RAMのごく一部を1つのスレッドで制御するために使用しているため、RAMの残り全体を、できるだけ多くのスレッドで実際にスレッドを処理する関数の実行に費やすことができます。 これはあなたの収入をXNUMX倍以上にすることができます。

集中管理

このハッキングスクリプトをルートしている各サーバーにデプロイすると、かなり順調に進んでいるはずです。 しかし、ルートサーバーでのRAMの使用状況を分析すると、制御スクリプトがかなりの量を占めるため、実際のweaken.ns、grow.ns、およびhack.nsスクリプトが使用可能なすべてのRAMを使用しているわけではないことがわかります。 しかし、とにかくこれらすべてのサーバーで最も収益性の高いターゲットを攻撃している場合は、XNUMXつのサーバー上の単一の制御スクリプトに固執し、他のサーバーを制御させてはどうでしょうか。

ここでの目標は、自宅のコンピューターで実行する制御スクリプトを作成することです。このスクリプトは、weaken.nsgrow.nsとhack.nsを生成できます。 他のサーバー –重要な仕事をするためにすべての記憶を解放してくれます。 制御スクリプトがweaken.ns、grow.ns、またはhack.nsの単一スレッドの約2倍のRAMを使用する場合、この手法を使用して、ルートサーバーのそれぞれにXNUMXつの追加スレッドを無料で取得します。 あなたのRAMのほとんどがあなたが応援したランダムなサーバーから来ている初期のゲームでは、これはかなりの増加を数えることができます。

同時実行

一般に、最適化では、アルゴリズムのどの部分がパフォーマンスに最も長い影響を与えるかを測定することが重要です。 サーバーが準備され(最小のセキュリティと最大のお金に達した)、ループがほぼ弱くなる->成長する->弱くなる->ハックするところまで来たとしましょう。

印刷して、各ステップに費やされた時間をログに記録することから始めます。 私の場合、成長によってセキュリティが大幅に向上したため、成長直後の明らかなタイムシンクは弱まりました。 成長の進行中に弱体化を開始して、タスクを並行して実行できるとしたらどうでしょうか。 実際にできること:

weaken()、grow()、およびhack()にかかる時間は、サーバーとプレーヤーのステータスによって計算されます。 start 操作の。 効果はで起こります end。 したがって、成長が終了する前に弱体化を開始すると、はるかに速くなります。 weaken()とgrow()にかかる時間を確認する方法を見つけてください(ヒント: ドキュメント[github.com] このための機能があります)。 次に、growを開始するために使用可能なすべてのメモリを使用する代わりに、半分を使用します。 次に、残りの半分で弱体化し始めます。 weakenの実行速度が速くなる場合は、weakenを実行する前にスクリプトを少しスリープ状態にする必要があります。

最適な分割は50/50からはほど遠い可能性があることに注意してください。 比率を試してみるか、からの分析関数を使用することができます ドキュメント[github.com] 弱体化が成長の影響を打ち消すのにちょうど十分な力を持つように、最適な分割を計算します。

さらなる最適化

grow()は、サーバーを現在の金額の特定の%だけ成長させます。 理想的には、単一のgrow()がそれを完全に戻すことを確認したいと思います。 サイクルを短くするために必要なハッキングと成長のスレッドの数を計算する方法を見つけてください。

考慮すべき最後の最も難しい最適化は、サイクル全体をバッチ処理して同時に起動することです。これにより、hack()grow()とweaken()がすべて各oterの短時間でヒットします。 これを管理すれば、後のゲームでより大きなサーバーを大いに活用できます。これは、XNUMX回のフルスレッドハックですべてのお金が削除され、隠し場所を再構築するのに長い時間がかかるためです。 代わりに、すべてが次々にヒットするスクリプトのいくつかのバッチをキューに入れて、お金のより少ない%を盗む場合、GB RAMごとに、それ以外の場合よりもはるかに多くのお金を得ることができます。

ただし、この最後の最適化は重要な問題であり、正しく行うには、広範な計画、分析、およびリファクタリングが必要です。

サーバーの検索とクラッキング:攻撃用のRAMまたはよりジューシーなターゲットを取得します

チュートリアルに従った場合、ハードコードされたいくつかのサーバーをチェックしてそれらをクラックするスクリプトがあります。 ハードコードされたリストに依存する代わりに、実行するスクリプトを作成します スキャン()[github.com] そして、 幅優先探索[en.wikipedia.org] ゲーム内のすべてのサーバーのリストを生成します。 次に、次のコマンドで継続的にループできます(たとえば、XNUMX秒にXNUMX回)。 睡眠()[github.com]、リストをループし、可能な場合は利用可能なポートオープナーとNUKE.exeを実行します–チェックする機能があります 十分なポートがある場合[github.com] & ハッキングスキル[github.com].

サーバーがクラックされたら、それをどうするかを決めることができます。

  • 簡単な最初のステップは ns.tprint()[github.com] あなたが知っているようにサーバーの名前。
  • もう一つは copy[github.com] & ラン[github.com] スクリプトをハッキングして、すぐにお金を稼ぎ始めることができるようにします。
  • XNUMXつ目は、考えられるすべてのハッキングターゲットのランキングを作成し、それらをメトリックで並べ替えて結果を出力するか、すべてのサーバーをリダイレクトして、古いターゲットよりも優れている場合は新しいターゲットをハッキングすることです。 単純なヒューリスティックは 最大のお金[github.com] で割った値 最小セキュリティ[github.com]。 より正確なものは、最大金額をハッキング、成長、弱体化にかかる時間で割ったものです。この機能は、 ドキュメント[github.com].

 

その他のメカニズム

近日公開:ハックネット、株式市場などのガイド。

その他のガイド:

コメント

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish