Мета закинута
Автор не відписував в цілі 3 року 2 месяця 17 днів
Написать "решатель" для Dyson Sphere Program
Я стал играть в первую свою игру про автоматизацию - Dyson Sphere Program. И мне сразу захотелось строить такие производственные цепочки, которые будут максимально эффективно преобразовывать стартовые ресурсы в конечные продукты.
В самой игре порядка 100 вариантов переработки ресурсов и материалов, которые отличаются по времени, количеству этих материалов и зданию, в котором это преобразование делается. Это делает весьма затруднительным запоминание и расчёт оптимального количества тех или иных зданий, потоков ресурсов и т.д.
Ну и чтобы мне было комфортно играть захотелось для себя сделать сервис-подсказчик, который будет говорить "если хочешь производить X в одном здании, то тебе потребуется Y, Z и T ресурсов и зданий".
При этом сам решатель хочу снабдить фичами и нормально сверстать.
Критерій завершення
Решатель написан, опубликован и работает онлайн
-
Построение дерева рецептов
На данном этапе нужно по входному материалу построить дерево необходимых рецептов вплоть до базовых ресурсов.
-
Использование редких ресурсов в дереве рецептов
В самой игре есть редкие ресурсы, которые упрощают получение некоторых материалов. Если строить дерево рецептов с ними, то путь до сложных материалов становится проще и дешевле.
-
Исключение отдельных редких ресурсов в дереве рецептов
Не все редкие ресурсы могут применяться игроками, и тогда для построения дерева стоит их исключить. В этом случае отдельные части дерева будут идти через имеющиеся редкие ресурсы, а другие - до базовых
-
Упрощение дерева (схлопывание)
В первой версии расчета дерева рецептов производство некоторых материалов становится избыточным, т.к. бывают ситуации, когда 2 ветки в дереве требуют по "полтора материала в секунду". Расчет для каждой из веток дает по 2 материала в секунду, т.к. производство кратно одному. В этом случае получается, что мой "решатель" предлагает производить 4 материала вместо 3-х необходимых. Нужно оптимизировать эту часть
-
Верстка
Название говорит само за себя. Текущая верстка может "уехать" за пределы экрана и это не позволяет посмотреть все дерево целиком. Я нашёл хороший референс здесь: https://calc.dsp-wiki.com/#belt=belt-2&items=rocket:f:1
-
Расчёт потребляемого схемой электричества
-
Расчёт нужных вариантов сортеров
В игре есть 3 вида "погрузчиков", которые с разной скоростью загружают ресурсы в здания и разгружают их. В силу особенностей игры для непрерывной работы по отдельным рецептам требуются разные виды этих погрузчиков.
Соответственно, и материалы должны подъезжать к зданию на разном расстоянии - чем ближе к зданию, тем быстрее они загружаются.
-
Учёт типа ленты
В игре есть три вида ленты, по которым ресурсы доставляются от здания к зданию - по 6, 12 и 30 единиц в секунду.
Некоторые конечные материалы могут потреблять (в пересчете на базовый материал) по 19-20 и больше некоторых ресурсов, что накладывает ограничения на то, как должны доставляться материалы от одних зданий к другим.
-
Генерация шаблонов
Это отдельный максимально сложный этап, который собирает в себе всё предыдущее. Сам формат шаблонов (чертежей) в игре и так не прост, но основная сложность не в кодировании, а в размещении зданий. Нужно учитывать их размеры, положение креплений для погрузчиков/лент.
- 1111
- 03 жовтня 2021, 16:13
Не пропустіть нові записи!
Підпишіться на ціль і стежте за її досягненням