Пятничные факты #84 от команды factorio. Подготовка к свадьбе.

Это перевод статьи с официального сайта. Вот тут Вы можете прочитать оригинал.

Привет, строители!

Случились волнения по поводу платных модов в стиме (сейчас уже вроде прекратились). Я понимаю, что реализация получилась далекой от оптимальной, потому что люди вдруг были вынуждены платить за то, что до этого было бесплатным. Печально также то, что создатели модов будут получать только 25% от суммы. Но лично я считаю, что в идее как таковой нет ничего плохого. Разумный ценник на большой мод позволяет его создателю развивать проект и уделять ему весь день. Тогда он будет создавать профессиональный контент и люди будут готовы платить за него деньги. В итоге в выигрыше будут все. Бесплатные моды также будут существовать и это дело игроков — что выбрать. Я НЕ говорю, что мы собираемся вводить платные моды в factorio в ближайшее время, но не отрицаю такой возможности в будущем.

Версия 0.12 — наша свадьба.

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

Оптимизация №2 (технические подробности).

Две недели назад мы рассказали кое-что об оптимизации. Я обезумел и продолжил работать над улучшениями и вот результаты:

Оптимизация дыма.

Оптимизация дыма основана на простой, но очень эффективной идее. Для начала позвольте мне объяснить как работает дым.

Частицы дыма двигаются каждый тик (60 раз в секунду). Движение описывается его вектором (а). Скорость дыма замедляется каждый тик путем умножения на модификатор (q = 0.995).

Если я захочу вычислить позицию частицы дыма через n тиков в будущем, то положение в первый тик равно а (вектору передвижения), во второй тик оно равно a + a*q (движение замедляется), в третий тик a + a*q + (a*q)*q и так далее:

Те, кто учился в школе, должны знать формулу:

Использование этой формулы позволяет знать позицию дыма в любой момент без необходимости обновлять ее каждый тик. Также для этих расчетов нужно учитывать ветер и анимацию передвижения, но это проще. Таким образом в текущей версии 0.12 позиция дыма рассчитывается один раз в 120 тиков (2 секунды), но когда Вы смотрите на движение дыма, оно по прежнему выглядит гладко. Это помогло значительно увеличить производительность игры в таких вещах как поезда, бойлеры, генераторы, печи и вообще везде, где используется дым.

Оптимизация электросети.

Солнечные панели и аккумуляторы объединены в электросеть, так что отпадает необходимость их отдельной симуляции. Это очень сильно упрощает расчеты сети. В основном это означает, что большое количество солнечных батарей и аккумуляторов теперь не будут оказывать влияния на скорость обновления других строений.

Оптимизация врагов.

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

Мы сделали довольно прагматичную оптимизацию. Мы добавили 4-й уровень монстров (Behemoth biter/ Behemoth spitter), которые будут очень сильными. Таким образом, вместо отправки 20 монстров 3-го уровня, можно будет отправить в атаку троих монстров 4-го уровня. Сила атаки при этом примерно такая же, а требующиеся вычисления значительно меньше.

Завершение оптимизации.

Фаза оптимизации версии 0.12 завершена. В результате время обновления factorio версии 0.12 в три раза меньше, чем в версии 0.11. Это значит, что можно построить втрое больше заводов! Имейте в виду, что в зависимости от Ваших построек эти цифры могут отличаться.

Боевые роботы.

Мы показали новую анимацию для боевых роботов уже давно. Этого нет в версии 0.11, но мы не забыли и в 0.12 появится точно! Причина задержки — мы хотели, чтобы анимация была по настоящему крутой. Одна из атак представляет собой удар электрическим лучом. Чтобы сделать ее по красиво, мы решили сделать луч из анимированных тайлов. Это дает нам больше свободы, если мы захотим использовать ее в других местах игры.

 

Обсуждение этого всего на официальном форуме: http://www.factorioforums.com/forum/viewtopic.php?t=10218


Комментарии:

Добавить комментарий