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

eu_tomat

Модераторы
  • Публикации

    2 666
  • Зарегистрирован

  • Посещение

  • Победитель дней

    331

Сообщения, опубликованные пользователем eu_tomat


  1. Только что, NEO сказал:

    К тому что "рандомное" время выгрузки зависит от скорости той самой выгрузки, в майне работает балансировщик выгрузки.

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

     

    Есть объяснение "случайному" времени выгрузки.

    Как мы можем использовать это знание, при этом не зная, сколько чанков ожидает выгрузки в данный момент?


  2. 6 минут назад, NEO сказал:

    Чанки выгружаются по 100 за один тик, а так они сразу попадают в список на выгрузку.

    Я уже начал терять цель, к которой ты пытаешься подвести. В чём твоё предложение?


  3. 4 минуты назад, Xytabich сказал:

    @eu_tomat это было просто продолжение поста ноо.... почему бы и нет)

    Зубы ещё не окрепли, поэтому и нет пока.

     

    А если метод транспозера жрёт оперативку, так ему же и положено жрать. Он сразу всю таблицу предметов возвращает. Тут приходится выбирать, что важнее: экономия памяти или быстродействие.


  4. 1 минуту назад, NEO сказал:

    Загрузка чанков... хм... чанклоадер так делает.

    А как ты чанклодер сможешь включать с точностью до тика? Пока чанклодер выключен, чанк не загрузен. Пока чанк не загружен, робот не примет сигнал на включение чанклодера.

     

    Робот с чанклодером тратит 8 тиков на выезд из чанка и 8 на въезд. На какой из этих 8 тиков произойдёт загрузка и выгрузка чанка, надо ещё проверять. А чтобы уменьшить временной зазор между загрузкой-выгрузкой, потребуются несколько роботов, чтобы один начиналл движение до того, как другой его закончил. Но и тут надо ещё проверять, прокатит ли этот трюк для уменьшения временного зазора.


  5. 8 минут назад, NEO сказал:

    Это был костыль разработчика не связанный с оской, оска любой метод синхронизирует с тиком.

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


  6. 2 часа назад, Xytabich сказал:

    заметил что через адаптер работает моментально, а через транспозер пол часа сканирует.

    Да, адаптер работает через драйверы OpenPeripheral, и чтение произвольного слота происходит очень быстро.

    Транспозер же на каждое обращение тратит по одному тику. И для ускорения программы обычно используется метод, возвращающий сразу всю таблицу содержимого сундука: component.transposer.getAllStacks(side).


  7. Только что, NEO сказал:

    Компы то работают, но функции-то синхронизированные с тиками.

    Просто ты обобщил так "всё". Не понятно было, к чему относилось утверждение.

     

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

     

    Но с загрузкой чанка мне всё кажется более-менее предсказуемым. А вот, когда он выгружается? Сразу или с какой-то задержкой? У меня сложилось впечатление, что есть какая-то задержка, размер которой мне показался случайным. Но это я игроком подгружал чанки.


  8. 7 часов назад, Doob сказал:

    Есть ведь механизмы, которые удаленно грузят чанки, вроде звездных врат, с ними никуда ездить не надо.

     Ну точно же! Я зациклился на перемещении игрока, а его же можно исключить из этой схемы. Наверное. Надо проверять. Но да, начинать лучше с простых схем. И если на то пошло, то и врата не нужны. Можно же робота с чанклодером в чанк закатывать и выкатывать.

     

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

    Есть 100% способ дюпать чанк на любой сборке модов или ванили, но я этот способ не дам, у вас документов нету. Способ гениально прост, до него может допереть кто угодно.

    В сингле этот 100% способ работает? Способ можешь пока не давать. Но и сам я допереть пока тоже не могу, т.к. не знаю особенностей Майнкрафта. Если только по наводящим вопросам пойму. Куда смотреть? И что там происходит с программной навигацией при откате чанка? Сбивается?

     

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

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

    Для этого мне придётся ещё и Java изучить. Это потом как-нибудь. Или кто-нибудь более опытный решится провернуть.

     

    7 минут назад, NEO сказал:

    Дык всё в одном потоке работает.

    А компы разве работают не в отдельном потоке?


  9. 1 минуту назад, Alex сказал:

    Было так, что если бахнуть ему цикл for на 10 движений вперед без слипа, или даже со слипом, но без вайл проверки на тру, что он успел совершить мув, в итоге могло получиться не 10 мувов вперед, а напримр 9 или даже 8.

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

     

    34 минуты назад, Alex сказал:

    Лучше всё на сервере проверяй

    На сервере обязательно. Мой вопрос был в том, стоит ли в сингле вообще пытаться тратить время на подобные эксперименты.

     

    3 часа назад, hohserg сказал:

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

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

     

    3 часа назад, hohserg сказал:

    Такой способ по идее лучше движения по кругу, ибо исключает двойную ошибку(когда две и больше ошибки исправляются эффекты друг друга)

    Да. Я сегодня долго не мог уснуть, пытаясь придумать какой-нибудь аналог песочных часов в Майнкрафте. И знаешь, что придумал? MFSU + самая дохлая солнечная панель. Девять с четвертью часов будут тикать эти часики.


  10. В давние времена у нас случались холивары о надёжности программной навигации. Я и @Doob утверждали, что программная навигация совершенна при правильной реализации, и сбоям не подвержена. @Alex утверждал, что программная навигация ненадёжна, и правильно реализовать её невозможно. Извините, если я кого-то забыл.

     

    Сегодня в чате мы обсуждали тему отката чанков из-за кривого Майнкрафта. И я подумал, а не могли ли те сбои, о которых говорил @Alex, возникать в результате отката чанков. И я понимаю, почему я мог не встречаться с такими сбоями. Обычно я ставлю несколько роботов-шахтёров, выдаю им работы примерно на час, чтобы не умереть с голода в ожидании, а сам в это время стою AFK и подгружаю чанки. Но если бы я в это время активно перемещался в мире или же телепортировался по варпам, то при выгрузках и загрузках чанков, в которых находились мои роботы, состояние чанков могло откатиться, а состояние роботов – остаться прежним. В этом случае мог бы произойти и сбой программной навигации, т.к. роботы хранят свои состояния независимо от чанков.

     

    Вопросы: Правильно ли я понял механизм возможного сбоя? И действительно ли возможны сбои программной навигации при активной выгрузке и загрузке чанков?

     

    Также я предлагаю эксперимент. Предлагайте, если у кого-то есть идея получше.

     

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

     

    Как считаете, насколько этот способ хорош для провокации отката чанка? Велик ли в этом случае шанс обнаружить сбой программной навигации?

     

    И ещё вопрос. Откаты чанков происходят только при игре на сервере, или в сингле они тоже возможны? Потому что в сингле я никогда не замечал такого явления. На сервере я замечал, но тогда сбоев навигации у меня не случалось, только стоящие на месте роботы иногда пропадали, когда я летал по варпам. И их точно не игроки воровали, так как рядом находились гораздо более ценные вещи типа алмазных сундуков полных разных ценностей. У некоторых игроков в подобных условиях роботы, наоборот, дюпались.

     


  11. @man_cubus, без примеров реализации эти разговоры пока останутся лишь разговорами. Я, например, хочу, чтобы игроки платили за нагрузку на сервер сверх бесплатного лимита, независимо от используемых ими механизмов. Но мы упираемся в наличие готовых решений и в свою способность их создавать.

     

    25 минут назад, man_cubus сказал:

    Если маньяков станет слишком много и настанут слишком мощные лаги - маньяки должны от них пострадать сильнее других. И при таких взрывах реакторов лаги начнут самоустраняться вместе с машинами их вызывающими.

    Где можно посмотреть примеры реализации такой механики?


  12. 1 час назад, man_cubus сказал:

    Но считаю справедливым чтобы  при взрыве реактора такие маньяки огребли бы сильнее не-маньяков.

    К примеру если в чанке два реактора, то разрушения от взрыва будут в квадрате, если три - в кубе. Или какой-то другой вариант экспоненты.

    И радиационное заражение на n*2 дней реального времени, где n - число реакторов, такое, чтоб и хазмат не спасал

    То же самое можно организовать со взрывом механизмов от неправильного вольтажа: чем больше механизмов на одном проводе тем сильнее рванёт.

    Да, интересная механика. С ней даже самим маньякам было бы интереснее играть. А что-то подобное в каких-то модах уже реализовано?

     

    1 час назад, Alex сказал:

    Поэтому единственный и  правильный  путь - не хардить рецепты и энергию, а ограничить именно кол-во машин.

    На данный момент, наверное, единственный. А правильным мне видится другой.

     

    Есть моды, которые поддерживают стабильность TPS за счёт переноса части вычислений на следующий тик. Но я не знаю, существуют ли подобные инструменты, ограничивающие вычисления внутри приватов, и переносящие вычисления в разбивке по приватам, или хотя бы по чанкам.

     

    Это позволило бы администраторам вообще не думать о содержимом приватов. Игрок бы сам думал, что ему нужнее, установить в приват десяток дробилок, один реактор, 20 кур, 200 солярок или спавнер с зомбями. А дополнительную нагрузку на сервер можно продавать за донат. По сути, мощности сервера это единственный товар, который имеет ценность. Каждому игровому слоту можно выделить какой-то небольшой объём бесплатных вычислений. Всё что свыше можно продавать. Цену можно изменять динамически, уменьшая её при низком онлайне или увеличивая при большом. В зависимости от текущего онлайна можно менять и бесплатные лимиты.

     

    Вот это была бы справедливая и полностью понятная система.

    • Одобряю 1

  13. 25 минут назад, Alex сказал:

    Прямо карго-культ какой-то ты себе создал

    Вот, взял, и весь пафос сломал. Ну какой же это карго-культ? Карго-культ побуждает людей слепо копировать непонятные им процессы для достижения понятных им целей.

     

    Если игроки будут ожидать от робота, распечатанного на 3D-принтере, что он начнёт сеять пшеницу, то это карго-культ. Или, например, игрок скрафтит робота, установит OpenOS, откроет редактор программы и начнёт писать какой-то случайный текст, перемежая его ключевыми словами Lua и надеясь, что этот текст как-то заставит робота рубить деревья в округе, то это тоже может быть разновидностью карго-культа. Грань может быть довольно тонкой. Можно даже писать хорошие, интересные программы для Майнкрафта, но если человек ставил целью прокормить свою семью программированием, то и это будет карго-культом.

     

    1 час назад, Alex сказал:

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

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

    • Одобряю 1

  14. 54 минуты назад, Alex сказал:

    Меня бы тут просто на тряпки порвали, если бы я рецепт корпуса компа за голосовалки и валюту сделал.:)

    Да и рвать бы не стали. Предали бы сразу анафеме.

     

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

     

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

    :diablo:

    • Одобряю 1

  15. 6 минут назад, Xytabich сказал:

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

    А каким плагином управляются такие ограничения?


  16. 1 минуту назад, whiskas сказал:

    А дрон может юзать лазер из ИК? Или дрон не может ничего юзать?

    У дрона даже слота под инструмент нет. Если только через place() может, но там мало что работает.


  17. 1 минуту назад, Alex сказал:

    агрейд работает сам по себе? что-то купить можно вообще у них?

    Работало, я проверял. Правда, давно это было, наверное, больше года назад. Сейчас не знаю.

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

    • Спасибо 1

  18. 1 час назад, Alex сказал:

    Тебе не мешала пушка, потому что ты любишь демагогию больше.

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

     

    1 час назад, Alex сказал:

    Не видел разве таких сообщений? Правильно, видел.

    Видел и не раз. Ты слишком близко к сердцу принимаешь эти вопли, т.к. сам топишь за то, что у игрока должен быть один универсальный робот со всеми возможными апргейдами на все случаи жизни. Реакция владельцев на потерю единственного и дорогого робота будет предсказуемой: пропало всё, нажитое непосильным трудом.

     

    Игроки же нашего сервера имеют замечательную возможность копать ресурсы роботами, возможность выполнять сложные крафты роботами, и при этом дешёвый робот-шахтёр окупает свою цену за 15 минут работы. Не смотря на наличие такой прекрасной альтернативы, никто не мешает игрокам копать ресурсы вручную, никто не мешает вручную крафтить, и никто не запрещает крафтить самых дорогих роботов. И тут вдруг неожиданно выясняется, что нужно помешать игроку уничтожить своего робота с помощью материальной пушки. Что поменялось в этом месте цепочки жизненного цикла робота?

     

    2 часа назад, Alex сказал:

    А называется это проще. Баги. И если их можно закрыть, почему не закрыть. Баг по идее нужно запретить или починиь как-то. Или вообще убрать из игры. При чем тут простреленная нога?

    Игрок имеет право стрелять себе в ногу, падать в лаву и терять роботов по неосторожности. Да, пушечка кривая, и в руках робота годится только для его самоаннигиляции. Так это же и прекрасно: есть недокументированная возможность уничтожить своего робота. Очень эффективный способ. Мне нравится.

     

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

    • Одобряю 1

  19. 17 минут назад, Alex сказал:

    Понимаешь всю глубину глубин? Просто запретим роботу юзать АЕ пушку, пока ее не пофиксят

    Нет, не понимаю. Пушка никому не мешала. Игру не крашила, сервер не залагивала, предметы не дюпала. Да, пушка работала неочевидным образом. Ну и пусть бы игроки своих роботов аннигилировали. Жалко что ли? У нас этого гуталина...

     

    Ты собираешься запретить всё, чем игрок может прострелить себе ногу?

     

    48 минут назад, Alex сказал:

    Запуск сервера был на грани срыва практически. На волоске висел фактически

    А с помощью OC вообще можно вызвать лаги сервера. Это, я понимаю, опасность. Но мы же живём как-то.

    • Одобряю 2

  20. 12 минуты назад, NEO сказал:

    По идеи можно вычислить погрешность из самого представления вещественных чисел в эвм.

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

     

    Вот, разделил ты какое-то число на 9, да округлил до двух знаков после запятой. Получилось, к примеру, 0.22. И как ты теперь узнаешь, какое из чисел было исходным? Может быть, 2.00, а может, и 1.99.


  21. 2 минуты назад, Alex сказал:

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

    Казалось бы, благоденствие наступило. Но нет же, что-то должно ему помешать:

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

    разрушены твои планы по добыче реса каменными или деревянными кирками... :)Теперь робот будет ругаться на деревянные инсты и будет требовать качественные и "правильные" инсты.

    Удивил! А как у нас дюпали каменные и деревяные кирки? Как они баговались? В чём проявлялась кривизна их работы?

    Очень интересно узнать.


  22. 1 час назад, hohserg сказал:

    Также, если приемлемо юзать интернет-карту, можно обращаться к апи scalc(если есть), чтобы получить НОД

    Моей сисадминской части сознания этот вариант кажется достойным внимания. Но программистская часть сознания требует более изящного решения.

    1 час назад, hohserg сказал:

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

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

     

    Можно доработать алгоритм. Чем плох базовый алгоритм Евклида? Он производит серию манипуляций с числами, накапливая погрешность с каждой итерацией вычислений. Для целых чисел, ясное дело, погрешность не накапливается, но нам нужны вещественные числа. Кроме базового алгоритма Евклида существует его расширенная версия, которая также не предназначена для вещественных чисел, но содержит в себе намёк на то, как не накапливать погрешность вычислений от итерации к итерации.

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