пятница, 1 мая 2015 г.

Пятничные факты #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 и так далее: