Страница 1 из 1

Патч 37а8.7

Добавлено: 02 май 2013, 00:05
Gorlum
Я тут вижу, что люди не понимают, что произошло с последним мегапатчем. И почему оно так произошло. Разъясняю

Сейчас я полностью переделываю систему хранения юнитов. Это нужно для введения новых фишек в игру. Поскольку система хранения юнитов - это одна из основополагающих подсистем в игре, по ходу приходится переделывать и всё, что с этим связано. Т.е. фактически - ВСЁ, кроме обвязки: экономику, очереди, флоты итд итп. Обвязка - это система "друзей", "заметки", "чат" и прочее, что не связано с юнитами. Работа огромнейшая, длительная, слабоподъемная - поэтому выполняется в несколько этапов.

В частности - я переписал систему расчёта пополнения ресурсов - патч 37a7. В ходе переписывание было выявлены некоторые баги, математические просчёты, а так же изменён алгоритм применения бонусов к добыче. В частности:
1. Изменен алгоритм применения бонусов - теперь нет разницы между ресурсами - бонусы на добычу (напр. хм... Технолог) увеличивают добычу всех ресурсов равномерно.
2. Математический просчёт - при увеличении добычи шахт бонусами (напр. Технолог) их потребления ресурсов не увеличивалось. Это принципиально неверно. Исправлено - теперь Технолог так же увеличивает потребление шахт. Отсюда берёт свои корни нынешний энергетический кризис. При чем - чем больше скорость сервера, тем хуже кризис
3. Баг: термоядерная электростанция продолжала работать даже при отсутствии дейтерия на планете! Исправлено: при недостаточном количестве дейтерия на планете ТЭ не дает энергии. Как следствие, её "выхлоп" равен нулю. Неочевидное следствие - теперь запустить добычу на планете, на котором электричество добывается только на ТЭ и отсутствует дейтерий, просто так невозможно. Самый простой вариант - привести дейтерия, достаточного для покрытия энергобаланса ТЭ. Более сложный вариант - потихоньку "раскочегаривать" ТЭ в ручном режиме: установить добычу всего на 0%, затем добычу ТЭ и дейтериевой шахты по 10%. Далее возможны варианты:
а) Запуск "с толчка" - привести чутку дейтерия для покрытия энергобаланса ТЭ
б) Дать "прикурить" - построить спутников или СЭС в минимальном объеме для старта добычи дейтерия
в) Поставить "на зарядку" - ждать, пока естественным образом не накопится дейтерий за счет базовой добычи
4. По ходу выплыл старый фичебаг - неправильный расчет производства ресурсов ПРИ ОТОБРАЖЕНИИ. Т.е. отображение "запаздывает" на одно обновление. ПОДЧЕРКИВАЮ - эта фичебага затрагивает ИСКЛЮЧИТЕЛЬНО отображение производства. Сам расчёт происходит нормально. Корни этой фичебаги тянутся еще с давних пор. Нельзя даже сказать, что это - бага, поскольку это было сделано намеренно, что бы не нагружать комп дополнительными расчётами. С тех пор движок прошел большой путь и стал заметно быстрее работать - поэтому переделка такого поведения в ближайших планах
5. Сюда же наложилось своеобразная работа Глюкобага с обновлением страниц - иногда могут наблюдаться "скачки" в отображении. С этими проблемами - к разработчикам Глюкобага. Я их решить не могу

Следующий патч 37а8.7 добавил написанную с нуля очередь исследований. В будущем этот код будет постепенно дописан и распространен на все очереди. Почему так?
1. Новая система хранения юнитов требует совершенно другого кода для очереди
2. Планируется введение дополнительных очередей: разделение очереди Верфи на очередь Верфи и очередь Обороны. Возможно - и на очередь Ракет. Не вижу никакого смысла писать разный код для, по сути, одного и того же
3. Будет реализована очередь исследований - посредством дополнительного модуля. Возможно будут добавлены настройки очередей в админку - я пока над этим думаю

Почему я вылил все эти изменения сразу на живой сервер? Да потому, что тестовый сервер - мертвый. За редчайшим исключением никто не ходит на него тестировать новые обновления. Например - недавно я просил протестировать патч 37а8.7 и отписаться. Сделал это ОДИН человек!

Отдельные личности писали, что они, бедняги, страдают и уходят в РО, "пока всё не нормализируется". Это крайне странный и глупый шаг в свете вышесказанного - уходя в РО и не помогая тестировать обновления они лишь сами отодвигают момент, когда "все нормализируется". Самое смешное, что в данном конкретном варианте они наказали себя сами - тщательная проверка кода показало отсутствие ошибок в расчете начисления ресурсов! Т.е. такая матмодель и будет впредь.

Это всё, что я хотел сказать. Обсудить новость можно в теме viewtopic.php?f=4&t=2475

Патч 37а8.16

Добавлено: 07 май 2013, 03:30
Gorlum
Идя на встречу пожеланиям трудящихся, патч внёс очередные модификации в работе ТЭС. Сохраняя общий подход - невозможность работы ТЭС без дейтерия - изменен алгоритм отключения ТЭС: теперь ТЭС отключается при отрицательном балансе производства дейтерия ИЛИ энергии. Другими словами - ТЭС работает только если одновременно И баланс добычи дейтерия И баланс генерации электроэненгии положителен. Таким образом заметно облегчен своз ресурсов с планет, на которых энергия производится только на ТЭС (как правило - холодные планеты)

ТЭС теперь НЕ ИСПОЛЬЗУЕТ дейтерий со склада. Вариант был опробован и отвергнут - если оставить такую ТЭС без внимания, то она со временем выжирает весь дейтерий - самый ценный из генерируемых ресурсов в игре. Согласен, в некоторых случаях это может доставить неудобство - но в общем случае лучше так, чем наоборот

Соответственным образом изменилась процедура запуска ТЭС при отрицательном балансе энергии (п.3. в предыдущем посте). Бесполезно привозить дейтерий на такую планету или ждать его накопления. Теперь нужно добиться положительного баланса добычи энергии и дейтерия - и ТЭС запуститься сама. Сделать это можно манипулируя процентом загрузки строений на странице "Ресурсы" или достраивая другие генераторы эненргии. Помощь в этом окажет новая фишка страницы: если реальное производство ресурса отличается от рассчетного, то в соответствующей ячейке дополнительно в скобочках выводится еще и рассчетная добыча. В общем - проще посмотреть самому, чем объяснять

Так же см. чейнджлог патча viewtopic.php?f=2&t=2431&p=32981#p32981