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

eu_tomat

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

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

  • Посещение

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

    331

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


  1. Конечно, нет. Десятичный вид хранения лишь упрощает функцию tostring.

    Ффу-ухх... Я думал, это для наглядности и удобства пользователя, как учебный пример.

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

    Похоже, зря. Сейчас один символ кодирует 10 значений, хотя в пределе способен кодировать все 256. Потребление памяти и количество операций отличается о предельного в 25,6 раз! Это действительно лучше таблиц?

    Кроме того, число в таблице более, чем 8-битное.


  2. Подумайте как их реализовать наиболее эффективным способом, если метачисло хранит свою мантису в виде строки.

    @@Zer0Galaxy, а мантисса обязательно должна храниться в десятичном виде?

    @@Fingercomp, а насколько критично быстродействие в твоем проекте?

     

    Если оба ответа «да», то придется написать другую библиотеку. Иначе потребуется как минимум одна промежуточная строка и три дополнительных преобразования.


  3. Порой чтобы ответит на свой вопрос нужно просто прочитать что ты писал ранее

    dases, почему ты считаешь это значительной трудностью? У развившегося игрока есть роботы, способные быстро свернуть постройку внутрь привата, есть возможность переместиться в окрестности второго привата, и даже есть возможность устроить засаду.

     

    Я понимаю печаль нуба, потно копающего золото на свой первый комп. Но папке, богатство которого не помещается в куб 16x16x16, точно не за что проклинать админа.


  4. Шифт-кликни процессор. Магическим образом получается "В OpenOS используется Lua5.3. Там даже /lib/bit32.lua служит лишь для обратной совместимости с Lua5.2, внесение изменений в этот файл даёт некоторый эффект".

    Осилил магию методом тыка. Оказалось, нужно сделать ШПКМ, держа процессор в руке.

  5. Может стоит вообще приваты убрать? Зачем они нужны если от них столько проблем?

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

     

    Игра без приватов – это постоянный риск потерять всё. Преимущество будет иметь тот, кто играет с начала открытия сервера и играет много. Не успевшего развиться новичка можно будет грабить неограниченно. Сервер для PvP-шников, а не программистов.

     

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

     

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

     

    По-моему, хорошее сочетание безопасности и динамичности. Объясни, dases, почему игроки проклянут админа, рискнувшего ограничить объем приватов.

    • Нравится 2

  6. Все будут бегать по карте в поиске халявных солнечных панелей поставленными от безысходности игроками постарше. Отсюда куча нытья вроде "Админы!!! Караул!!! Он украл мой ветряк!!!" И.тд  И.т.п

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

    А игроки постарше не ставят гектары солярок. У них на каждой кухне стоит ядерный реактор, дающий и свет, и тепло, и поле для экспериментов.

    • Нравится 1

  7. Всё классно в новом робике кроме двух моментов:

    1) Труднодоступность золота, которое наряду с железом и редстоуном является незаменимым сырьем в производстве роботов. Без алмазов поначалу обойтись можно, без золота – никак. Пустыню же еще потребуется найти, а роботов хочется использовать как можно раньше и независимо от точки спавна.

    2) Единственный приват делает рискованным переезд на новое место. Два привата и, например, квантовый мост смогут значительно облегчить переезд в новый дом.

     

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

     

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

     

    Короче, все мои хотелки:

    * Спавн золотой руды не ограничивать;

    * Разрешить два привата;

    * Суммарный объем приватов игрока ограничить 4096 блоками.

    • Нравится 2

  8. Шифровать что то? И смысл? Напишут шифратор и будут им пользоваться всем сервером.

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

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

  9. @@Doob,

    Подготовленный к сжатию Lua код не содержит табуляций и переносов. Тут я беспокоюсь о конечных пользователях, которые скопируют сжатый текст CTRL+C>CTRL+V и скажут "НИРАБОТАИТ11!". Для исходников хватит диапазона 20-7E (символы 09 0A можно перенести на 24 и 7F, соответственно.

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

     

    deflate догоняет этот алгоритм на исходных текстах более 1 КБ

    Что-то я еще более запутался. В чем смысл жать исходники начальным размером менее 1КБ? Проблема, как правило, впихнуть в BIOS код более 4КБ. Давай разберем на примере.

     

    Есть библиотека filesystem из OpenOS:

    http://pastebin.com/xfM5yrsu оригинал filesystem.lua, 13457 байт

    http://pastebin.com/S1uscQ8t результат работы минификатора, 8615 байт

    До какого размера жмет твой компрессор оба этих кода, и каков размер декомпрессора?


  10. А если для этого использовать не конкатенацию а функцию gsub?

    Точно. gsub в твоем алгоритме эффективен. Зациклился на классических алгоритмах. Кстати, они мне кажутся более уместыми, как по причине большего объема словаря, так и по всеядности. Ну, ладно, твой выбор понятен.

     

    Мне непонятны условия задачи.

    1. Сначала ты говоришь об ASCII, потом говоришь, что не используешь управляющие символы ASCII, т.к. они повреждают текст. При этом перевод строки и табуляция текст не повреждают, хотя и являются управляющими символами. Какие символы во входящем потоке являются допустимыми для твоего алгоритма? Определившись с ними, можно будет еще до сжатия проверить поток на запрещенные символы.

    2. Также не ясно, какие символы допустимы в исходящем потоке.

    3. Ты сравниваешь сжатие своим алгоритмом с deflate. На каких данных проводилось тестирование? Насколько объемен входящий код? Насколько я понимаю, степень сжатия заметно уменьшится при недостаточном объеме словаря.


  11. сo скoрoстью у меня прoблемы

    Потому что

    Заменить в исхoднoм тексте слoва на симвoл с кoдoм

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

     

     

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

     

    К примеру, нужно склеить символы 1 2 3 4 5 6 7 8. Имеем строки:

    1, 12, 123, 1234, 12345, 123456, 1234567, 12345678 при линейной конкатенации и

    12, 34, 56, 78, 1234, 5678, 12345678 при двоичной.

    Разница в длинах заметна на глаз даже для итоговой строки длиной в 8 символов.

     

    Код, выполнявшийся на двух планках памяти T3.5, говорит сам за себя:

    -- тестирование конкатенации строк
    
    local time = require("computer").uptime
    
    -- линейная конкатенация
    local time0 = time()
    local s=""
    for i=1,1024*32 do s=s.."." end
    print(string.format("time: %.2f sec", time()-time0 ))
    -- 8k: 0.15-0.25sec, 16k: 0.55-1.05sec, 32k: 1.5-2.95sec, 64k: TLWY
    
    os.sleep(0) -- для избежания TLWY
    
    -- двоичная конкатенация
    local time0 = time()
    local tbl={}
    for i=1,1024*128 do tbl[#tbl+1]="." end
    while #tbl>1 do local tb_={} for i=1,#tbl-1,2 do tb_[#tb_+1]=tbl[i]..tbl[i+1] end tbl=tb_ end
    local s=tbl[1]
    print(string.format("time: %.2f sec", time()-time0 ))
    -- 128k: 0.30 sec, 256: not enough memory

  12. Интересная сборочка. Смущает лишь отсутствие приватов. Возможно, это вообще не помеха, если разберусь с этим:

    Эндер пространство по адресу ник[0-4096] неприкосновенно. Ни частичные ни полные вайпы миров его не затрагивают

    ...

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

    ...

    Личное пространство на хардкрафте - это только ник-эндер-пространство и ваниль-эндер-пространство.

    Что такое "именное эндер пространство"? Как что-то отправить в него и взять из него? Как пользоваться адресами "ник[0-4096]"? Что за цветные эндер-сундуки?

    Какими модами всё это реализовано?


  13. Контроллер инвентаря нужен как минимум для перемещения предмета в слот инструмента (inventory_controller.equip()).

    Кроме того он позволяет не вытаскивать всё содержимое сундука, которое, кстати, может и не поместиться в инвентарь робота, в поисках нужного предмета, а проверить слоты сундука (inventory_controller.getStackInSlot(side,slot)) и взять из него нужный предмет (inventory_controller.suckFromSlot(side,slot,count)).

    • Нравится 1

  14. Весь код в спойлеры надо добавить.

    В этом коде комментариев больше, чем самого кода. Хорошее оформление, полезная информация - годная статья

     

    Существование штатного механизма для написания сервисов в OpenOS тоже радует.


  15. Опасаясь дальнейшего развития дефолтофобии, поддержу оффтоп:

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

    Есть множество оттенков дефолтофилии. К примеру, я тоже хочу видеть собственный генератор в OpenComputers, чтобы сыграть в ваниль + OC. Но такие сборки как раз и являются редким исключением из правил. Возможно, их распространение сможет убедить Сангара добавить в мод собственный генератор, чему я был бы рад. Но не сильно, т. к. меня устраивает IC2 в качестве компромисса.

     

    OC без энергии вполне играбелен, хотя и становится более скучным. Но точно так же становятся скучными и роботы, апнутые в 100 раз по энергии. Дефолт хорош не потому, что он идеален, а потому, что в большинстве своем правки конфигов не решают противоречий, а либо отодвигают их, либо порождают новые. Классические примеры:

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

    2) Робот кажется какашкой, т. к. быстро теряет заряд при пользовании геосканером. Но робот, занимающийся геологоразведкой, не обязан быть вдобавок ко всему еще и рудокопом. Проблему можно решить, забив все слоты аккумуляторами и вовремя подзаряжаясь. Но можно подкрутить конфиг, совместить геолога с шахтером и не парить себе мозг согласованием их работы. Но тогда зачем нужен OpenComputers, если BuildCraft позволяет вообще не заморачиваться?

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

    4) Какашкой могут показаться и wi-fi карты, не позволяющие отправлять сигналы на дальние расстояния. И я бы понял отклонение от конфига, если бы применение wi-fi карт на сервере ограничилось лишь имитацией радио. Но на обычном шахтерском сервере такая беспроводная связь превратится в чит, а OpenNet выродится до банального роутера на весь сервер.

    5) Какашкой кажутся дроны, теряющие заряд через несколько минут работы. Это, конечно, проблема для свинолёта, и при отсутствии иного транспорта правка конфига оправдана. Но долголетающий дрон переводил гриферство из разряда искусства в простую забаву, а также способствовал расширению дроноферм без усложнения программ для них.

     

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

    • Нравится 2

  16. Тихо... Слышишь? Орден "Дефолтофилов" уже начинает злиться.

    Дефолтность или кастомность конфигов – тема для обсуждения. Но предложение в обязательном порядке выдавать информацию о прослушиваемых портах – вредительство.

     

    Нужна стандартизация, например на ping ответ.  В реальных сетях всё проще, в операционную систему заложен ответ на ping , можно попросить Сангара добавить обработчик на modem_message, если сообщение ping, отправить на адрес отправителя pong.

    Это не стандартизация, а дыра в безопасности. В реальных сетях ping не дает информации об открытых портах. А то, с каких адресов доступен открытый порт, решает фаервол.

     

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

    Фаервол разберется, чей ping-запрос достоин ответа, а чей нет, и операционка не откликнется даже на «стандартный ping», не стоит так уповать на него. И сниффер тоже не нужен: всё тот же фаервол залогирует, если твой запрос так важен.

  17. Воду можно будет добыть только во время дождя в бочонках (иначе смысл от них). А реген воды будет отключен, ибо читерно.

    Как обычно и случается, 100500 бочонков закроют проблему водоснабжения. Интересно, насколько сильно они будут лагать во время дождя.

     

    Разговаривать с другими игроками в радиусе более 20 блоков будет нельзя (но будет квест на постройку радиопередатчика)

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

     

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

    • Нравится 1

  18. Вот вам пример подобного квеста придуманного на коленке за 5 минут

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

     

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

     

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

    • Нравится 1

  19. А что из себя представляет страшное и загадочное слово "квест"? Что это по сути? Что-то скрафти и получи сумку с подарком в виде алмазика или раздолбай коблу и получи флинт, занеси его на спавн в блок обмена и получи слаймбольчик?

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

    Всё так, и всё есть квест. Но если я верно понял задумку newbie, эти квесты должны будут побуждать игрока к использованию компов и роботов, постепенно обучая их использованию. Создание таких квестов – первичная задача, а использование конкретных модов вторично. Также вторично, хард это будет, или лайт.

     

    А вообще все идет к обычной флудо теме, зря ток начал клепать квесты))

    Может, и зря. Но лично мне интересно посмотреть на результаты, даже если идея провалится.
    • Нравится 2

  20. Честно говоря, вообще геймплея не вижу интересного

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

     

    И вообще поставить какие нибудь там хардкорные моды чтобы воду нужно было пить время от времени, чтобы вещей много не унести было и прочее. Иначе без хардкора там быстро наскучит играть в ванилу + ОС.

    Любая игра рано или поздно наскучит. Кто-то пройдет ее быстрее, а кто-то медленнее. Более того, чистый Майнкрафт не имеет определенной цели. А вот, квесты могут и цель задать, и сделать игру интересной. Но в этом я уже плохой советчик, тут надо уметь создавать игры, да еще и с уклоном в обучение программированию. А предложить прохождение лабиринтов из бедрока все могут.
×
×
  • Создать...