Перейти к содержимому
demongts1998

Доработка программы для переработки руды

Рекомендуемые сообщения

  • Описание: Требуется программа для переработки руды, чтобы рубила очень быстро, доработка\написание, играю на модах с дракоником, руды приходится перерабатывать по 60к+ минимум, и крайне долго это все делается обычными роботами ( приходится на ночь в афк вставать )
  • Награда: огромное спасибо, не играю на проекте
  • Оборудование: роботы, сервомеханизмы\поисковики
  • Требования к ПО: очень быстрая переработка руды
  • Связь: Писать в этот топик. либо в вк https://vk.com/dmitry_kravec

 

доп.материалы:

 

ссыль на ориг гайд ( не подходит, слишком медленные ) в комментах писали про допиливание кода
https://mcskill.net/mcforum/index.php?/topic/77337-open-computersроботы-для-переработки-руды/

 

ссыли пастебина:
ставит руду:
https://pastebin.com/6D3ZqeXf

ломает руду:
https://pastebin.com/G7DWmXXe

Изменено пользователем eu_tomat
возврат ссылки на гайд

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, demongts1998 сказал:

очень быстрая переработка руды

Насколько очень? Какие имеются ресурсы для построения схемы? Сколько роботов допустимо задействовать в этой схеме? Насколько дорог инструмент для рубки руды в сравнении с роботами? Какова доступная для реализации схемы площадь или объём?

 

Схема перерубки руды на двух роботах имеет смысл лишь в случаях использования очень дорогих или редких кирок. В противном случае предложенная схема оказывается неэффективной, и появляется смысл реализовать схему на одном роботе. Или на двух, но с одинаковой программой. Или даже на сотне или тысяче одинаковых роботов, если сервер справляется с нагрузкой, и другие игроки не возражают.

 

11 час назад, demongts1998 сказал:

руды приходится перерабатывать по 60к+ минимум, и крайне долго это все делается обычными роботами ( приходится на ночь в афк вставать

За какое время требуется перерабатывать такое количество руды? Также возникает вопрос, зачем копить такое количество руды, и затем стоять AFK, если руду можно перерабатывать постепенно, по мере её накопления, параллельно занимаясь другими задачами? Или даже по мере добычи руды, поставив такую схему рядом с буровой установкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, eu_tomat сказал:

Насколько очень? Какие имеются ресурсы для построения схемы? Сколько роботов допустимо задействовать в этой схеме? Насколько дорог инструмент для рубки руды в сравнении с роботами? Какова доступная для реализации схемы площадь или объём?

 

Схема перерубки руды на двух роботах имеет смысл лишь в случаях использования очень дорогих или редких кирок. В противном случае предложенная схема оказывается неэффективной, и появляется смысл реализовать схему на одном роботе. Или на двух, но с одинаковой программой. Или даже на сотне или тысяче одинаковых роботов, если сервер справляется с нагрузкой, и другие игроки не возражают.

 

За какое время требуется перерабатывать такое количество руды? Также возникает вопрос, зачем копить такое количество руды, и затем стоять AFK, если руду можно перерабатывать постепенно, по мере её накопления, параллельно занимаясь другими задачами? Или даже по мере добычи руды, поставив такую схему рядом с буровой установкой.

ресурсы условно безграничны, т.к. на роботов я готов потратить достаточно много, обычно юзали 2 и я видел как афигенный програмист на серве написал прогу и показал это мне ( роботы рубили порядка 20 руды за секунду мб поменьше )
мы не копим руду, просто нас много ( 15 человек и руды аля драконьевой, алмазов, перидота, рубинов, сапфиров крайне много роботы не успевают перестукивать )
про кол-во роботов: от них высокая нагрузка, да и реализация так себе, но на руду они нужны
+ основная задача - нужны роботы для варпа, а с учетом того что человек может принести 10к+ руды нужна скорость
роботы копали ваджрой на эфективность5+удача5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, demongts1998 сказал:

ресурсы условно безграничны, т.к. на роботов я готов потратить достаточно много, обычно юзали 2 и я видел как афигенный програмист на серве написал прогу и показал это мне ( роботы рубили порядка 20 руды за секунду мб поменьше )
мы не копим руду, просто нас много ( 15 человек и руды аля драконьевой, алмазов, перидота, рубинов, сапфиров крайне много роботы не успевают перестукивать )
про кол-во роботов: от них высокая нагрузка, да и реализация так себе, но на руду они нужны
+ основная задача - нужны роботы для варпа, а с учетом того что человек может принести 10к+ руды нужна скорость
роботы копали ваджрой на эфективность5+удача5

Ваджра из Gravitation Suite? Робот с её помощью вроде бы рубит руду за три тика независимо от чар эффективности. Установка руды выполняется за восемь тиков. Всего требуется 11 тиков на полный цикл переработки руды. Получается, что скорость переработки руды в 20 блок/сек достигается с помощью 11 роботов. Кстати, а сколько роботов задействовал "афигенный програмист"?

 

Для достижения скорости переработки 20 блок/сек при использовании иридиевого бура потребуется 13 роботов. Конечно же, без учёта времени презарядки инструмента.

 

Я провёл эксперимент:

  • В слот инструмента робота поместил полностью заряженный иридиевый бур.
  • Над роботом установил сундук и поместил в него 48 стаков алмазной руды (3072 блока).
  • Под роботом установил пустой алмазный сундук на 108 слотов.
  • Слева от робота установил зарядное устройство.
  • Запустил простой скрипт:
robot.select(1)
while robot.suckUp() do
  for i=1,64 do
    robot.place()
    robot.swing()
  end
  for slot=4,1,-1 do
    robot.select(slot)
    robot.dropDown()
  end 
end

За 36 минут робот переработал все 48 стаков алмазной руды из верхнего сундука и поместил полученные алмазы в нижний сундук. Свободными оказались два последних его слота. Остаток заряда в буре: 54.2 из 300 kEU.

 

Как можно ускорить этот процесс?

  • Использование ваджры позволит сэкономить 5 минут на ускорении рубки, и, возможно несколько секунд на перезарядке инструмента, что не очень много на фоне 36 минут.
  • Можно оптимизировать алгоритм очистки инвентаря робота, что позволит выиграть около 20 секунд, что тоже немного.
  • Масштабировать схему на несколько роботов. В этом случае скорость возрастёт кратно.

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

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

Но в условиях задачи про систему хранения ничего не сказано. А здесь вообще что-то непонятное:

21 час назад, demongts1998 сказал:

Оборудование: роботы, сервомеханизмы\поисковики

Что такое сервомеханизмы и поисковики?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, eu_tomat сказал:

Что такое сервомеханизмы и поисковики?

вещи аналогичные шине импорта\экспорта 
мод Thermal Dynamics 
как правило игроки приносят более 54 стаков точно
потому надо как то решить проблему скорости переработки, а вот уже то как извлечь\хранить\доставить это другой, менее важный вопрос

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, demongts1998 сказал:

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

Скорость переработки как раз самая банальная задача. Приведённый мной скрипт рубит руду с максимально возможной для робота скоростью. Там только алгоритм выгрузки не очень эффективен. Поэтому следующий вопрос связан именно с логистикой.

 

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

3 минуты назад, demongts1998 сказал:

вот как выглядит сборка 2 роботов

Это очень избыточно для такой задачи. Для чего так дорого?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, eu_tomat сказал:

Там только алгоритм выгрузки не очень эффективен. Поэтому следующий вопрос связан именно с логистикой.

так сервомехи тырят руду прямо из робота, причем быстрее шин с картами

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, eu_tomat сказал:

Это очень избыточно для такой задачи. Для чего так дорого?

крафт роботов дешевый, 2 чтобы быстрее работали: 1й ставит, 2й рубит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
33 минуты назад, eu_tomat сказал:

Кстати, а сколько роботов задействовал "афигенный програмист"?

как раз 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я так понимаю что можно добавить еще 1 робота который ставит руду

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, demongts1998 сказал:

крафт роботов дешевый, 2 чтобы быстрее работали: 1й ставит, 2й рубит

Можно сделать гораздо дешевле. Для работы программы нужен корпус второго уровня, процессор первого, самая дешёвая планка памяти, EEPROM, инвентарь и контроллер инвентаря.

 

2 минуты назад, demongts1998 сказал:

как раз 2

 

7 часов назад, demongts1998 сказал:

обычно юзали 2 и я видел как афигенный програмист на серве написал прогу и показал это мне ( роботы рубили порядка 20 руды за секунду мб поменьше )

На стандартном конфиге OpenComputers схема с двумя роботами, один из которых вспомогательный, не позволит даже приблизиться к скорости переработки в 20 блок/сек. Скорость установки блоков ограничена значением 2.5 блок/сек. Это потолок. Даже если предположить, что операции установки и срубания блока могут выполняться полностью параллельно, то выше этой скорости всё равно не прыгнуть. А это предположение вряд ли верно. Возможно, частичное наложение операций и присутствует, но оно точно не полное. Реальная скорость будет меньше.

 

Схема без вспомогательного робота перерабатывает руду со скоростью 1.8 блок/сек при использовании ваджры. А два таких робота будут перерабатывать руду со скоростью 3.6 блок/сек, что уже получается в 1.44 раза быстрее схемы со вспомогательным роботом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, eu_tomat сказал:

Схема без вспомогательного робота перерабатывает руду со скоростью 1.8 блок/сек при использовании ваджры. А два таких робота будут перерабатывать руду со скоростью 3.6 блок/сек, что уже получается в 1.44 раза быстрее схемы со вспомогательным роботом.

итого:
если поставить 2 робота которые ставят руду и 1 который рубит, насколько это ускорит процесс?
также нужно ускорить роботов программно
( допилить код, сохранив все функции в нем - это основная задача )
 

 

6 минут назад, eu_tomat сказал:

На стандартном конфиге OpenComputers схема с двумя роботами, один из которых вспомогательный, не позволит даже приблизиться к скорости переработки в 20 блок/сек

возможно, тяжко оценить когда вместо привычного стука идет непрерывное жужжание ( звук ломания руды )
тикрейт сервера: 16 тиков


вот еще :
немного ускоренная прога для робота который рубит
https://pastebin.com/WxxiDqcH

главная задача - заставить роботов все делать быстрее за счет программы, сохранив все ее функции ( аля рарядки и прочего )

Изменено пользователем demongts1998

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что, если сделать такую схему: красный робот ставит зеленые блоки перед собой и под собой, а синий ломает перед собой и над собой?

pz2MswP.png

В то время, как синий ломает один блок, красный будет занят установкой другого. Таким образом, время процессинга двух блоков будет сокращено до max(placeTime*2, digTime*2), что лучше, чем в схеме с одним местом установки блока - 2*(placeTime+digTime)

Изменено пользователем hohserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
24 минуты назад, demongts1998 сказал:

тикрейт сервера: 16 тиков

Стандартное значение 20 TPS. При 16 TPS сервер будет работать медленнее стандартного. Но если тикрейт составит 160 TPS, то и вправду скорость с заданных 2.5 блок/сек возрастёт до 20 блок/сек. Но это уже не имеет отношения ни к программированию, ни к оптимизации.

 

27 минут назад, demongts1998 сказал:

если поставить 2 робота которые ставят руду и 1 который рубит, насколько это ускорит процесс?

Я провёл эксперимент. Действительно, операции полностью распараллеливаются при использовании достаточно быстрого инструмента. Робот-установщик установил 64 блока за 25.6 секунд, затрачивая на каждую операцию стандартно отведённые для этого 8 тиков. Скорость переработки руды в этой схеме составляет 2.5 блок/сек. Получается, что нет смысла в использовании ваджры, достаточно даже скорости иридиевого бура.

 

Но всё равно два независимых робота смогут перерабатывать руду со скоростью 3.6 блок/сек при использовании ваджры в каждом из них, что лучше в 1.44 раза в сравнеии с изначальной схемой. При использовании иридиевого бура результат улучшается всего в 1.2 раза.

 

3 минуты назад, hohserg сказал:

А что, если сделать такую схему: красный робот ставит зеленые блоки перед собой и под собой, а синий ломает перед собой и над собой?

Хорошая идея, но запоздалая. Если описанный выше эксперимент воспроизводится, то схема с двумя точками установки блоков лишается смысла.

Впрочем, схема со вспомогательным роботом всегда имела смысл только по причине экономии на дорогом инструменте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, eu_tomat сказал:

Хорошая идея, но запоздалая. Если описанный выше эксперимент воспроизводится, то схема с двумя точками установки блоков лишается смысла.

Впрочем, схема со вспомогательным роботом всегда имела смысл только по причине экономии на дорогом инструменте.

возможно я смогу поизголятся и запихать 3х роботов и 2 з\у ( ограничение зарядки, 1 на чанк )
и лучше использовать 1 рубящего робота, т.к. ваджра очень дорогая в крафте на проекте в который я играю

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, demongts1998 сказал:

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

Два робота с иридиевыми бурами перерабатывают руду быстрее, чем пара из робота-установщика и робота, оснащённого ваджрой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

предлагаю выйти на связь в дискорде, иначе решение проблемы будет затруднительно
Psichodelik#6200

Изменено пользователем demongts1998

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот схема для роботов которую я использовал ранее, вид сверху

2131231423534565212342131231234435.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
31 минуту назад, demongts1998 сказал:

вот схема для роботов которую я использовал ранее, вид сверху

А обязательно придерживаться именно этой схемы? Что мешает использовать несколько зарядников и MFSU по количеству использованных роботов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...