Bitburner – Основы игрового процесса и пошаговое руководство – Руководство для новичков 1 – steamlists.com

Завершили обучение и хотите знать, как продолжить? Хотите улучшить свой сценарий взлома или, может быть, вы хотите начать автоматизировать другие части игры?

Это руководство без спойлеров, которое укажет вам правильное направление.

В дополнение к игровому руководству, в онлайн-документации есть хорошее руководство о том, как запустить достойный сценарий взлома – [readthedocs.io] .

На данный момент у вас есть сценарий, который будет постоянно ослаблять, расти и взламывать данный сервер. Вы можете подумать, что это медленно (и будете правы), потому что есть несколько улучшений, которые вы можете сделать.

Первый шаг – начать использовать netscript2 – [readthedocs.io] . Файлы Netscript 1 или .script, которые используются в учебном пособии, медленны и имеют мало функций. Netscript2 очень близок к современному javascript, и их скорость ограничена только вашим компьютером. Обратите внимание, что скорость здесь относится ко времени выполнения, а не к тому, как быстро работают ваши функции weaken () grow () и hack () – это определяется навыком взлома.

При написании скриптов вы можете заметить, что их требования к оперативной памяти возрастают по мере того, как вы используете больше ns-функций. Поскольку только weaken () grow () и hack () выигрывают от использования дополнительных потоков, размещение каждого из них в отдельном скрипте снизит затраты на использование дополнительных потоков и, таким образом, значительно увеличит наши преимущества от взлома.

На этом этапе стоит иметь документацию по API – [readthedocs.io] удобно.

Разделение наших сценариев взлома для оптимизации использования оперативной памяти

Чтобы позволить нам запускать наши важные функции с максимально возможным количеством потоков, выясните, как сделать простейший сценарий, который будет запускать weaken () для цели, заданной аргументом, и ничего более. Затем возьмите свой сценарий взлома из учебника и вместо прямого запуска weaken () найдите способ запустить сценарий ослабления и передать ему цель в качестве аргумента, используя столько потоков, сколько позволяет свободный барабан. Затем найдите способ дождаться завершения. Повторите этот процесс для grow () и hack ().

Поскольку количество потоков умножает затраты на оперативную память сценария, за счет уменьшения объема оперативной памяти в сценариях, которые нам нужны для многопоточности, вы, вероятно, удвоите свой доход от взлома и опыт.

Централизованное управление

Если вы развернете этот сценарий взлома на каждом сервере, на котором есть root, у вас все будет хорошо. Но если мы проанализируем использование оперативной памяти на наших корневых серверах, мы увидим, что фактические сценарии weaken.ns, grow.ns и hack.ns не используют всю доступную оперативную память, потому что сценарий управления занимает довольно большой кусок. Но если мы посмотрим, что делает сценарий управления, становится очевидным, что мы можем централизовать его.

Цель здесь – написать управляющий скрипт, который мы запускаем на нашем домашнем компьютере, который может порождать weaken.ns grow.ns и hack.ns на других серверах, оставляя нам всю свою память свободной для выполнения важных задач. Если сценарий управления занимает примерно в два раза больше оперативной памяти, чем один поток из weaken.ns, grow.ns или hack.ns, мы получаем 2 дополнительных потока на каждом из наших корневых серверов бесплатно, используя этот метод.

Одновременное исполнение

В общем, для оптимизации важно измерить, какие части наших алгоритмов имеют наибольшее влияние на производительность. Предположим, мы дошли до точки, когда сервер подготовлен (достигнут минимальный уровень безопасности и максимальное количество денег), так что наш цикл примерно ослаблен -> расти -> ослабить -> взломать.

Начните с печати, чтобы записать время, потраченное на каждый шаг. В моем случае очевидным стоком времени было ослабление сразу после роста, потому что рост значительно повысил безопасность. Что, если бы мы могли начать слабеть в процессе роста, таким образом выполняя задачи параллельно? Мы действительно можем:

Время, затрачиваемое на weaken (), grow () и hack (), рассчитывается сервером и статусом игрока в начале операции. Эффект наступает в конце. Таким образом, если мы начнем ослаблять до того, как закончится рост, это будет намного быстрее. Найдите способ узнать, сколько времени займет weaken () и grow () (подсказка: документация – [github.com] есть функции для этого). Затем вместо использования всей доступной памяти для начала роста используйте половину. Затем начните ослаблять с другой половинки. Если weaken будет работать быстрее, вам нужно немного засыпать свой скрипт, прежде чем запускать weaken.

Обратите внимание, что оптимальное разделение, вероятно, далеко от 50/50. Вы можете либо поэкспериментировать с соотношением, либо использовать функции анализа из документации – [github.com] чтобы рассчитать оптимальное разделение, чтобы у ослабленного было достаточно силы, чтобы противодействовать эффекту роста.

Дальнейшая оптимизация

Grow () увеличивает сервер на определенный% от его текущих денег. В идеале мы хотим быть уверены, что один метод grow () полностью вернет его. Найдите способ подсчитать, сколько потоков взлома и роста вам нужно, чтобы цикл был коротким.

Последняя и самая сложная оптимизация, которую следует учитывать, – это объединить весь цикл и запустить их одновременно, чтобы hack () grow () и weaken () сработали в течение короткого времени после каждого из них. Если вы справитесь с этим, вы сможете воспользоваться преимуществами более крупных серверов в более поздней игре, потому что один полнопоточный взлом удалит все деньги, и у вас останется много времени, чтобы восстановить его тайник. Если вместо этого вы поставите в очередь несколько пакетов сценариев, которые все запускают один за другим и украдут меньший% денег, вы со временем получите намного больше денег на 1 ГБ оперативной памяти, чем в противном случае.

Однако эта последняя оптимизация представляет собой нетривиальную проблему и требует тщательного планирования, анализа и рефакторинга, чтобы решить ее.

Скоро: руководства по взлому, фондовому рынку, автоматическому сканированию и взлому серверов и многому другому.

Надеюсь, вам понравится Руководство по Bitburner, которое мы публикуем – Основы игрового процесса и пошаговое руководство – Руководство для новых игроков; если вы думаете, что мы забыли добавить или нам нужно добавить дополнительную информацию, сообщите нам об этом, оставив комментарий ниже! До скорой встречи!