eu_tomat
Модераторы-
Публикации
2 666 -
Зарегистрирован
-
Посещение
-
Победитель дней
331
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя eu_tomat
-
@ECS, несколько иного ответа я ожидал. Всё равно выходит, что популярный Майнкрафт-сервер – это одно, а ресурс о программировании в Майнкрафте – это другое. И одно дело, бесплатно заниматься тем, чем нравится, и совсем другое – следовать за клиентом, который платит. В общем, надо определяться, кто мы. Сейчас я не уверен, что кто-то из нас сможет совмещать оба направления. Да и ничто не мешает быть партнёром другого проекта с хорошим Майнкрафт-сервером, как мне кажется. Как только будут восстановлены старые страницы с правилами, так и обсудим их демократизацию, но не в этой теме. Что-то потеряло актуальность после обновления движка, что-то – после потери игрового сервера, а что-то и раньше вызывало сомнения.
-
Я спрашивал в надежде, что у @FluttyProger сохранилась инфа о тех ошибках. Ошибки-то сильно зависят от серверных плагинов. Кто же теперь вспомнит, что на том сервере было установлено, и какую ситуацию надо воспроизвести. А вот, сам текст ошибок мог оказаться где-то сохранённым, и по нему теоретически можно понять суть проблемы. Об этом я и спрашивал.
-
На скрине нет ошибок, там как раз всё понятно. Мне интересно понять, связаны ли лаги сервера и ошибки в консоли сервера с отсутствием источника воды, или они сыпались при любой попытке перемещения. Это позволило бы понять, можно ли сделать эту схему безвредной для сервера введением достаточной задержки.
-
Думаю, не имеет смысла. Я уже понял, что для максимальной производительности нужен один комп (или микроконтроллер) на транспозер. Да, в таком варианте будет брать по тысяче милливёдер. Единственное улучшение этого кода, которое я могу сделать, это сделать задержку 0.15 сек вместо нуля. Интересно узнать, что там за ошибки сыпались в консоль сервера.
-
Транспозер из источника не может взять меньше 1000 мл. Из бака билдкрафта можно взять меньше, но на соотношение выхода материи к сырью это не влияет. Поэтому нет смысла мельчить порции, это только создаст лишнюю нагрузку на сервер. По крайней мере, так выходит на текущих версиях OC, AE и BC.
-
А это как раз можно. Для этого не требуется одновременность, достаточно иллюзии. Например, есть экспериментальная операционная система WinOS от @RccHD.
- 5 ответов
-
- lua
- multithreading
- (и ещё 1 )
-
Согласен. Старожилы здесь специфические. И получается, что надо делать выбор. Либо мы развлекаемся в играх как программисты, одобряем похожих на нас новичков, а на других игроков смотрим свысока и даже с пренебрежением. Либо нацеливаемся на массовую аудиторию, и своё занятие начинаем рассматривать как работу. Сам я предпочитаю первый вариант, мне обычные игроки всё равно мало интересны. А непопулярность – вынужденная плата за такой выбор. Или ты имел в виду что-то другое? Если ты видишь возможность привлечь сюда до сих пор неохваченных проектом активных игроков-программистов, то мне интересно услышать твои предложения на этот счёт, ну, или хоть какое-то виденье ситуации.
-
Зависит от того, что считать действительно одновременным. Например, при выполнении двух потоков на одном ядре процессора об абсолютной одновременности не может быть и речи. Но переключение между потоками происходит столь быстро, что у человека создаётся иллюзия одновременности. И тогда возникает вопрос: а зачем требуется эта иллюзия? В некоторых случаях разделение программы на отдельные потоки упрощает код. В других случаях появляется возможность выполнять полезную нагрузку в ожидании ответа от медленной периферии. В третьем случае разделение на потоки позволяет использовать множество ядер и процессоров в системе. Тут выполнение и в самом деле может быть одновременным в физическом смысле этого слова. Что требуется в твоём случае? Второй вариант "одновременности" можно было использовать в ComputerCraft, там черепашки могли выполнять вычисления во время своего движения. В OpenComputers, насколько я знаю, подобное пока никому не удавалось.
- 5 ответов
-
- lua
- multithreading
- (и ещё 1 )
-
Ага: не бита, не крашена. Судя по тексту ошибки, на 182 строке должно быть упоминание scorePlayers. Но в тексте программы я этого не наблюдаю. Вывод: программа модифицирована. Есть два способа решения проблемы: показать скриншот экстрасенсам, или программистам показать ещё и актуальный код программы.
- 4 ответа
-
- 1
-
-
Я тоже почти не играю. Длительный интерес к Майнкрафту сохранился только благодаря компам. За два года я заинтересовался только Factorio, но не настолько, чтобы посвящать этой игре много времени. И пока что выходит так, что я не планирую не только создавать, но и поддерживать уже возникшую активность по другими играм кроме Майнкрафта. Играть на сервере я, скорее всего, не буду. Если только очень-очень редко. Думаю, у многих форумчан похожая ситуация, и любые наши игровые сервера не будут иметь большого онлайна без привлечения игроков со стороны. А привлечение других игроков, это уже рутина и маркетинг, и, как сказал бы @NEO, заниматься этим бесплатно длительное время никто не будет. Цель этого обсуждения я вижу не в том, чтобы любой ценой родить какую-то идею, которая вдруг соберёт толпы фанатов, а в том, чтобы поделиться какими-то собственными интересами, которые потенциально смогут заинтересовать уже сложившееся сообщество. Задача осложняется тем, что смежные интересы найтись могут, но обсуждать их окажется удобнее на других ресурсах. К примеру, я могу разработать какое-то несложное электронное устройство и уже давно подумываю начать что-то конструировать на AVR или хотя бы на Arduino для начала. Но для получения знаний я пойду на другие ресурсы и с большой долей вероятности публиковать свои наработки буду там. Просто потому, что там вероятнее получить конструктивную критику, которая поможет быстрее расти в этом направлении. Поэтому нет большого смысла в этой теме надрываться в поисках идеи. Можно просто расслабленно подумать о ней. А если нет идеи, тоже не страшно. В первую очередь мы развлекаем сами себя, а развлечение других оказывается вторичным эффектом. Если, конечно, это не бизнес-проект. Также в эту тему можно направлять всех вопрошающих: "чат умер?", "форум умер?", "вы тут живы?" и т.п. Кто хочет активности, тот пусть и создаёт её. Благо, площадка имеется.
-
Я ошибся. Успешная операция перемещения жидкости выполняется за 7 тиков, а неуспешная за 1 тик. Правильный алгоритм: выполнять перемещение жидкости и ждать 3 тика, чтобы по возможности не нагружать сервер бесполезными действиями. Но тут и вправду требуется отдельный компьютер на каждый транспозер. И ещё момент. Не помню уже, как это работало в старых версиях OC, но в новых транспозер можно поместить апргейдом в микроконтроллер. Это позволит избавиться от серверной стойки, самих серверов, а также цветных кабелей. А контроллеры стоят дешевле серверов.
-
Так он потому и беспощаден, что терпелив. Компилятор проглатывает самые безумные конструкции. Отсюда следует и лаконичность языка, что, конечно же, большой плюс; и возможность незначительной на взгляд неопытного программиста ошибки, которую свободно пропустит компилятор, но код при этом окажется нерабочим, что является для новичков огромным минусом.
-
Я как раз об этом и говорил. Компилятор Си очень терпелив к опечаткам в коде. Чего стоит, например, запись if(a=b) вместо if(a==b), для новичка разницы неочевидна, он не видит ошибки. Или, например, при записи *p++ для новичка тоже неочевидно, что именно тут инкрементируется, указатель, или данные. Слишком много тут граблей для новичка, из-за которых он, скорее всего, разочаруется в своих способностях к программированию.
-
Проверил. При непрерывной подаче команд три из четырёх выполняются вхолостую. Источник воды не успевает регенерироваться. Логичным будет использовать 4 транспозера на один компьютер. Всё же интересно узнать, что привело @FluttyProger к иному решению.
-
Си, конечно, имеет лаконичную запись, что весьма приятно. Но он беспощаден даже к элементарным опечаткам. Отладка кода на Си разрывает мозг начинающему программисту, что очень демотивирует. После Паскаля, когда уже есть хороший навык, можно и за Си взяться.
-
Я, возможно, не понимаю особенностей задачи, но зачем там 4 (!), да ещё и сервера? Попробую угадать, почему лагала эта машина. Все 4 сервера каждый тик выполняли transferFluid?
-
Снова у нас разгорелся спор, нужен ли кому-то Майнкрафт, или пора бы уже и соскочить с этого паровоза. Думаю, пора поднять эту древнюю тему. Предлагаю высказывать любые идеи, которые потенциально могут заинтересовать и оживить уже сложившееся сообщество computercraft.ru. На критике других идей и на критике критиков предлагаю особо не зацикливаться. Холивары не запрещаются, но будут время от времени удаляться. Особо приветствуются посты вида: у меня есть наработки в таком-то направлении, готов поделиться, если это будет кому-то интересно. А лайки к посту продемонстрируют, востребовано ли это направление. Конечно, сгодятся и посты вида: хотелось бы видеть на форуме то-то и то-то. Большого интереса они, скорее всего, не вызовут, но такая возможность тоже существует. Удачи в творчестве новых идей!
-
@BrightYC, а точно. Да, справедливо. Почему-то пишется не автор темы, а автор последнего поста. Я, кстати, предлагал вообще выбросить авторов из описания тем, но это не всем нравится. @cyber01 Если и оставлять авторов, то в списке тем логично было бы указывать топикстартера вместе с названием его темы. Зато в сайдбаре с последней активностью было бы удобнее видеть автора последнего поста. И, соответственно, дату и время.
-
На какой странице такое?
-
Точно не скажу. Как-то незаметно я забыл себя в 10-летнем возрасте. Многие начинают с изучения BASIC, т.к. этот язык создавался специально для непрограммистов, но он, мягко выражаясь, неудобен. Раньше я бы посоветовал начать с Pascal, но теперь думаю, что можно начать и с Lua. Многие ключевые слова и структуры кода в этих языках похожи, хотя языки и различны. Синтаксис обоих языков сравнительно прост. Оба позволяют быстро научиться писать простые программы, и постепенно осваивать более сложные темы в почти произвольном порядке. А изучение Lua совместно с OpenComputers поможет заодно и развлечься наглядными результатами своей работы. Приятно видеть, как роботы в Майнкрафте чётко выполняют поставленную задачу. Ну, или не чётко. Или вообще не выполняют. Главное, что даже сбои в движениях роботов помогают увидеть взаимосвязь между написанным кодом и его воздействием на мир Майнкрафта.
-
Да. Например: https://ru.wikipedia.org/wiki/Node.js
-
Обновление OpenComputers до версии 1.7.3
eu_tomat прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
Подтверждаю. При выполнении transposer.transferItem(1,5, 16, 2,2): 1.7.3 игнорирует номера слотов как источника, так и приемника, пересылая 16 предметов из первого слота в первый. Возвращает количество переданных предметов. 1.7.2 возвращает true, но зато перемещает предметы ровно в тот слот и из того слота, которые указаны. -
Нужна "обгатная" для полной гагмонии с еггогами в пгоггамме. И тему надо пегеименовать в "калькулятог". С ггафическим интегфейсом.
-
Вижу дублированное сообщение: _http://computercraft.ru/topic/2477-useradd/?do=findComment&comment=36390 Это случайность или глюк нового движка? Спрашиваю потому, что у меня самого с момента обновления форума несколько раз возникала ситуация подвисания страницы во время отправки сообщения. Страница могла находиться в состоянии отправки несколько минут. Но, открыв тему в соседней вкладке, можно было увидеть, что сообщение уже опубликовано.
-
Обновление OpenComputers до версии 1.7.3
eu_tomat прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
Скорость выполнения пока не тестировал, но частота прерываний по TLWY, непонятно, чем обусловленных, упала раз в 5 при переходе с версии 1.7.2 на 1.7.3. Проверялось на сборке OC+IC2exp в Майнкрафте версии 1.7.10. Абсолютные значения, наверное, не имеют большого смысла, т.к. эта частота сильно зависит от модпака. Например, на сборке EvilWorld прерывания по TLWY возникали раз в 10 чаще, чем на лёгкой сборке OC+IC2exp. Но если кому интересно, то на лёгкой сборке с OC 1.7.3 я получил TLWY всего три раза за 200'000 тиков (2.7 часа). Плотность непрерывной вычислительной нагрузки составляла около 3/4 тика. Оставшаяся четверть тика в обязательном порядке тратилась на вызов pullSignal() с целью избежать TLWY, что само по себе очень избыточно, но даже эта мера не обеспечила 100% гарантии успешного завершения кода.
