История создания Factorio — уникальной игры об автоматизации, преодолении кризисов и страсти двух программистов из Чехии.
Key Takeaways
- Страсть и одержимость могут привести к созданию уникального продукта, несмотря на все трудности.
- Оптимизация и техническая глубина — ключевые элементы успеха Factorio.
- Независимость и отказ от трендов индустрии позволили сохранить уникальность игры.
- Краудфандинг и финансовые кризисы — обычные этапы в разработке инди-игр.
- Factorio — не просто игра, а пример инженерного подхода к автоматизации и масштабированию.
What the video covers
- Factorio — игра, которая противостоит современным трендам игровой индустрии, без микротранзакций и лутбоксов.
- Создатели — два чешских программиста, которые рисковали всем, включая карьеру и финансы, чтобы реализовать свою идею.
- Разработка началась в 2011 году, вдохновлённая модом Industrial Craft для Minecraft.
- Игра строится на сложной системе автоматизации и логистики, требующей оптимизации и балансировки нагрузки.
- Разработчики столкнулись с финансовыми трудностями, провалами краудфандинга и психологическим давлением во время кранча.
- Factorio способна обрабатывать десятки тысяч объектов одновременно с минимальной нагрузкой на сеть.
- Для достижения высокой производительности игра была переписана с Java на C++.
- Разработчики сохранили независимость, отказавшись от инвесторов и упрощения игры ради прибыли.
- Игра получила огромный коммерческий успех: более 8 млн копий и 98% положительных отзывов на Steam.
- Видео также содержит рекламный блок о VPN-сервисе Bastion VPN с промокодом автора.
Chapters
- 00:00Введение: Что такое Factorio и компьютерные науки
- 01:50Начало истории: Вдохновение модом Industrial Craft
- 03:23Запуск разработки и первые трудности
- 04:59Реклама Bastion VPN
- 06:47Кранч и психологические испытания
- 08:46Финансовые кризисы и борьба за выживание
- 10:28Технические особенности и оптимизация игры
- 12:21Особенности сетевой архитектуры и мультиплеера
- 14:03Независимость команды и философия разработки
Full Transcript — Download SRT & Markdown
Speaker A
Что такое компьютерные науки? Это изучение вычислений, потоки данных или просто место, где люди учатся решать бесконечные задачи? А что такое Factorio? Просто игра про автоматизацию или что-то намного больше? 180 млн долларов выручки, 98% положительных отзывов Steam и более 8 млн проданных
Speaker A
копий. По всем законам индустрии эта игра вообще не должна была появиться. Это проект, который идёт против современных трендов. В нём нет ни микротранзакций, ни лутбоксов, а выглядит он так, будто он был создан ещё в девяностых. Более того, для двух
Speaker A
людей, стоящих за его разработкой, он едва не стал концом карьеры. История Factorio — это не просто история успеха, а настоящая хроника одержимости.
Speaker A
Здесь были и четырнадцатичасовые рабочие дни, которые разрушили дружбу, и краудфандинговая кампания, провалившаяся настолько сильно, что разработчики уже были готовы всё бросить. И банковский счёт, который дважды опускался до нуля.
Speaker A
Но самое интересное даже не это. Пока большинство игр борется с лагами и синхронизацией, Factorio способно обрабатывать десятки тысяч объектов одновременно и почти не нагружая сеть.
Speaker A
Пока вы просто строите конвейеры, на самом деле вы решаете те же задачи, что и программисты. Оптимизация, масштабирование, балансировка нагрузки — и всё это не случайность. У разработчиков было то, чего не было у других. Подход, который игровая индустрия долгое время
Speaker A
игнорировала. Что же, устраивайтесь поудобнее, берите чаёчек или кофеёчек, потому что это история о том, как одержимость одного чешского программиста идеей эффективности привела к созданию одной из самых высокооценённых игр в истории.
Speaker A
И, кстати, у меня ещё появился Telegram, так что можете подписаться, я буду вам крайне признателен.
Speaker A
История Factorio начинается в 2011 году. Чешский инженер-программист Михал Коварик работал обычным разработчиком в компании, пока однажды не наткнулся на мод для Minecraft под названием Industrial Craft. Это был один из самых влиятельных модов в истории игры. Он позволял создавать машины и прокладывать
Speaker A
трубы и выстраивать целые производственные цепочки, автоматизируя практически всё. Для большинства игроков это было просто интересное дополнение, но для Коварика настоящая идея. Он сразу увидел в этом огромный потенциал,
Speaker A
загорелся настолько, что начал постоянно говорить друзьям о том, что однажды сделает собственную игру.
Speaker A
Параллельно с основной работой он начал писать первые прототипы в свободное время. Но довольно быстро стало ясно, что так долго продолжаться не может.
Speaker A
Разработка игр оказалась куда сложнее, чем он ожидал. К тому же в те годы и движки вроде Unity и Unreal Engine были ещё далеки от современных стандартов, и многие вещи приходилось делать вручную.
Speaker A
Была и ещё одна проблема. У Коварика был сильный гиперфикс. Он не мог эффективно переключаться между задачами и предпочитал полностью погружаться во что-то одно на протяжении недель. Его даже раздражало то, что в школах приходилось заниматься сразу несколькими предметами в течение дня, а теперь ему
Speaker A
приходилось совмещать работу и разработку игры. Тем временем ситуация на основной работе ухудшалась. После конфликта с коллегой он достиг точки, после которой отступать было уже некуда. И тогда он принял рискованное решение: уволиться и полностью посвятить себя разработке. Он убедил своего друга
Speaker A
Томаша, тоже программиста, рискнуть вместе с ним. Они объединили свои сбережения и сняли небольшую квартиру.
Speaker A
Денег у них было примерно на год скромной жизни. Так началась разработка Factorio. План был прост, слишком прост.
Speaker A
Четыре месяца на прототип, релиз, деньги, готовая игра к Рождеству. Но они ещё не знали, что до этого Рождества придётся идти почти 7 лет.
Speaker A
И раз уж мы говорим про проект, где всё держится на стабильной работе систем, в повседневной жизни тоже есть вещи, которые хочется один раз настроить и потом просто спокойно пользоваться.
Speaker A
Наверняка вы сталкивались с ситуацией: один сайт не открывается, другой сервис тормозит, привычные приложения работают нестабильно, и ты сидишь и не понимаешь, проблема у тебя, у провайдера или ещё где-то. И в такие моменты очень выручает VPN, который не нужно долго настраивать.
Speaker A
Открыл, подключил меньше чем за минуту и спокойно пользуешься. Поэтому партнёр этого ролика — Bastion VPN. Здесь всё сделано максимально просто. Открываешь Bastion VPN бот в Телеграме, получаешь ссылку для подключения, затем открываешь или скачиваешь приложение, вставляешь эту ссылку, и VPN уже работает. Без
Speaker A
долгих инструкций, сложных настроек и лишней возни. Также у Bastion VPN есть пробный период на 24 часа. Можно без риска проверить, как сервис работает именно у вас. Трафик без ограничений. Не нужно докупать отдельный гигабайт или постоянно следить за лимитом. Оформляйте
Speaker A
подписку и просто пользуйтесь. Ещё можно подключить до десяти устройств: телефон, компьютер, планшет. Хватит и для себя, и для семьи. А подпиской удобно управлять через Telegram или через сайт. И важный момент, VPN не нужно постоянно включать и выключать. YouTube, Instagram,
Speaker A
ВКонтакте — всё работает с включённым VPN без постоянного переключения туда-сюда. Удобнее всего начать с Telegram-бота. А если Telegram недоступен или вы им не пользуетесь, всё то же самое можно сделать через сайт Bastion VPN.
Speaker A
Переходите в Bastion VPN бот, проверяйте сервис и пользуйтесь. А по моему персональному промокоду ZARGO получите тридцатипроцентную скидку на подписку.
Speaker A
Все ссылки будут в описании и в закреплённом комментарии. Вдохновившись ноч создателем Minecraft, Коварик начал писать первую версию игры на Java, но уже через 10 дней он всё удалил. Java оказалась слишком медленной. Он быстро понял, для такой игры потребуется колоссальное количество
Speaker A
вычислений, миллионы операций каждую секунду. А значит, нужна максимальная производительность, нужен C++. К тому же почти весь его опыт был связан именно с этим языком. Это был единственный шанс достичь того масштаба, о котором он мечтал. Именно в этот период они нащупали главный игровой
Speaker A
цикл. В играх на выживание он обычно выглядит так: ты собираешь ресурсы, строишь базу и пытаешься выжить.
Speaker A
В Factorio всё работало иначе. Ты добываешь ресурсы, строишь машину, машина начинает работать за тебя, но ей нужна энергия. Ты строишь электростанцию, ей нужен уголь. Значит, ты прокладываешь логистику. Появляются поезда, рельсы, новые цепочки. Каждое решение порождало ещё больше задач. Это
Speaker A
была бесконечная система роста. Они не просто создали игру, они сами попали в её цикл.
Speaker A
Мы могли играть в прототип по 2-3 дня подряд, забывая есть и спать. А затем, вдохновлённые этим, неделями писали код, чтобы исправить всё то, что нас раздражало. Этот процесс был естественным. Он работал, но была одна проблема. Страсть не оплачивает аренду.
Speaker A
Четырёх месяцев не хватило, потом не хватило и шести. Сбережения стремительно заканчивались. Чтобы довести демо до конца, они перешли в режим кранча. 14 часов в день без выходных в течение 3 месяцев. Это было уже не просто усталость, это была психологическая
Speaker A
нагрузка. Когда ты так долго работаешь в изоляции, ты начинаешь сомневаться во всём. А вообще это весело или это просто странный проект двух программистов, которые тратят свою жизнь впустую? Они создавали новый жанр: без опыта, без анализа рынка, без каких-либо гарантий.
Speaker A
Это была ставка вслепую. Им срочно нужны были деньги, и они решили попробовать краудфандинг. Цель — 17 000 евро. Они сделали страницу, выложили скриншот и стали ждать. Им казалось, что интернет просто найдёт их сам. Но этого не произошло. Через 2 недели всего около 500 евро и большая
Speaker A
часть друзей. Это был провал. Посыл был очевиден. Никому не нужна ваша игра Factorio. И тут произошло странное.
Speaker A
Они почувствовали облегчение. Давление исчезло и всё закончилось. Можно было перестать работать по 14 часов в день, и они решили всё бросить. За 2 дня нашли обычную работу и просто ждали, пока компания окончательно закончится. Но перед этим сделали одно последнее
Speaker A
действие. Решение, которое изменило всё. Раз проект всё равно был мёртв, не сказали. Просто заберите. Они начали отправлять прототип всем, кто писал им на почту: бесп...
Speaker A
играть. Да, игра выглядела плохо, да, в ней были баги, но внутри было что-то другое: потенциал. Затем о них написал Natтан Адамs, разработчик Minecraft.
Speaker A
Историю подхватили крупные игровые сайты, и всё резко изменилось. От почти нуля они пришли к 1.000 евро в день. Они сидели в квартире и не могли поверить в происходящее. Кричали, смеялись. Теперь мы можем всё. Нас уже ничто не остановит. К концу компании не собрали
Speaker A
22.000 евро, больше, чем планировали. Они снова были в игре или просто так казалось? Потому что краудфадинг - это всплеск и он заканчивается. Через несколько месяцев всё снова начало рушиться. Продажи на сайте упали почти до нуля. Деньги уходили на сервера и на
Speaker A
жизнь. И они снова оказались там же, на грани банкротства. Это был уже второй финансовый кризис.
Speaker A
Решение пришло совершенно неожиданно. Однажды к ним в гости с ночёвкой зашёл друг, никак не связанный с игровой индустрией. Мия попросил показать, над чем они работают. Посмотрев на игру, он без лишних церемоний сказал: "Выглядит ужасно". Именно эта фраза всё изменила.
Speaker A
Они наконец поняли, что проблема не в отдельных деталях вроде маленького спрайта персонажа. Проблема была в визуальном восприятии игры. В целом нужно было полностью переосмыслить графику. Они запланировали серьёзное визуальное обновление, и результат оказался неожиданным. Продажи сразу выросли примерно в три раза. Это был
Speaker A
переломный момент. После обновления игра впервые начала приносить достаточно денег, чтобы на них можно было жить.
Speaker A
Скромно, без излишеств, но стабильно. Шаг за шагом проект перестал быть выживанием и превращался в полноценную работу. Именно в этот период к команде присоединился Альберт, будущий ардиректор Факториio. Визуальный стиль игры - это одна из самых интересных аспектов её разработки. То, что на
Speaker A
первый взгляд кажется простой 2D графикой, на деле является результатом сложного и продуманного процесса, который Альберт совершенствовал годами.
Speaker A
Его цель была не просто сделать красиво, важно было найти баланс между эстетикой и удобством восприятия. Подобный подход можно было увидеть в классических стратегиях вроде Command at от Conquer, где визуальные решения подчинены геймплею. Но в случае Фактурио это стало
Speaker A
осознанным выбором. Взять принципы, которые когда-то использовались ради оптимизации, и превратить их в часть художественного стиля. С самого начала команда выбрала диаметрическую проекцию под углом 45°. По сути, изометрический вид сверху. И это было не только вопросом внешнего вида. Когда ты
Speaker A
управляешь огромной фабрикой с сотнями конвейеров, машины и манипуляторов, тебе нужно видеть всю систему целиком. Такой ракурс позволяет замечать узкие места, умея эффективно планировать логику. При этом у игры есть ещё один скрытый уровень сложности. Хотя визуально фактория выглядит как джы объект не
Speaker A
начинается как полноценная 3D-модель, созданная в блендер. Сначала Альбер делает концепты, затем моделирует их в 3D, а уже потом превращает их в спрайты.
Speaker A
Именно поэтому анимации выглядят настолько детализированными, даже если игрок этого не осознаёт. Хороший пример нефтяная качка. В целом стиль игры можно описать как индустриальный и утилитарный. Никакой вычурности, никакого футуризма ради футуризма. Всё выглядит тяжёлым, функциональным, как настоящее промышленное оборудование.
Speaker A
Альберт сформировал для Factorio целый визуальный язык. В одном из постов Frid Effects он описывает его так: "Игра не является ни стимпанком, ни дизельком, но заимствует лучшие элементы из разных направлений, формируя собственную идентичность своего рода Factorial Pun".
Speaker A
Эта целостность стала одной из ключевых черт игры. Достаточно одного скриншота, и сразу понятно, что это Фактурио.
Speaker A
Разработчики не пытались подражать A проектом или следовать трендом. Они сделали что-то своё. Изначально в команде был всего один дизайнер, но по мере роста проекта и увеличения продаж команда расширялась. Чтобы ускорить работу и сохранить единый стиль, Альберт создал библиотеку материалов и объектов.
Speaker A
Он стремился стандартизировать процесс, чтобы не создавать одни и те же элементы заново. В какой-то момент он сам задал себе вопрос: "Сколько раз я делал зубчатое колесо?" Ответ оказался прост.
Speaker A
Тысячи. Создание библиотеки решило эту проблему. Теперь базовые элементы можно было переиспользовать, экономя время и сохраняя единообразие. Со временем в игре появились новые системы, которые делали геймплей глубже и удобнее. Одна из самых важных система чертежей Blueprint System. Интересно, что
Speaker A
изначально она появилась не в самой игре, а как мод от сообщества. Коварик настолько оценил эту идею, что решил добавить её в официальную версию. Если спросить обычного игрока, в чём секрет успеха фактурио, он, скорее всего, ответит: конвейеры. Но если задать тот
Speaker A
же вопрос опытному игроку, ответ будет другим. Модинг. Большинство студий рассматривает модинг как дополнительную опцию. Приятный бонус, если сообщество захочет с этим разбираться. Вб пошла по совершенно другому пути. Коварик изначально спроектировал движок так, чтобы он был максимально устойчивым и
Speaker A
гибким. Более того, сама базовая версия Factorio со всеми механиками, предметами и врагами по сути является мотом, работающим поверх собственного движка. А это значит, что модеры получают почти тот же уровень контроля, что и сами разработчики. Но дело было не только в
Speaker A
технологиях. Поддержка модинга выходила далеко за рамки стандартного подхода. Есть случаи, когда разработчики выпускали обновления специально для того, чтобы исправить баги, возникшие исключительно в модах. По сути, они относились к модерам как части своей команды, пусть и не официальной. Это
Speaker A
полностью изменило жизненный цикл игры. Когда игроки проходили основной контент, они не уходили. Они устанавливали моды и получали ещё десятки, иногда и сотни часов нового геймплея. Сообщество продолжало развивать игру даже в те периоды, когда официальных обновлений становилось меньше. Эта синергия
Speaker A
работала в обе стороны. По мере роста продаж стало ясно, вдвоём они уже не справляются. Коварик одновременно писал код, управлял процессами, отвечал на письма и проектировал новые механики.
Speaker A
Долго так продолжаться не могло. Они начали постепенно расширять команду. Делали это только тогда, когда это было действительно необходимо. и позволяли финансы. К началу 2014 года в одной комнате уже работали пять человек, к 2015 девять. Появился первый офис, и
Speaker A
проект начал ощущаться как настоящая студия. Подход при этом оставался простым: находить людей, которые хорошо делают свою работу, и не мешать им. Без лишней бюрократии только фокус на результате. Но вместе с ростом пришла новая проблема. Игра была слишком сложной. Многие игроки заходили, не
Speaker A
понимали, что происходит, ми возвращали деньги. И тогда Коврик сосредоточился на самом важном первых минутах игры. Он начал тестировать, сажал за факторией людей далёких от жанра и просто наблюдал с блокнотом в руках снова и снова, снова и снова. И оказалось, что даже очевидные
Speaker A
вещи для игроков вовсе не очевидны. Слишком много информации, слишком быстро, и человек просто теряется.
Speaker A
Интерфейс, который вы видите сегодня - это результат сотен таких итераций. В процессе они поняли ещё одну важную вещь. У игры есть только один шанс.
Speaker A
Релиз в Steam - это одна основная волна интереса. Если упустить этот момент, второго может не быть. Поэтому они не спешили, откладывали запуск снова и снова, доводя игру до нужного состояния.
Speaker A
И это сработало. В 2016 году Фактория вышла в Steam и стала одной из самых успешных проектов на платформе.
Speaker A
Ура! Ура! Ура! Ну всё. 180 млн долларов выручки и более 8 млн копий и 98% положительных отзывов. В результате фактория перестала быть икрой про добычу ресурсов и кликания по объектам. Она превратилась в инструмент для проектирования систем. Ты больше не
Speaker A
выживаешь, ты проектируешь, ты строишь, ты становишься архитектором. Программная инженерия - это про создание систем, которые обрабатывают потоки данных. Это могут быть сайты вроде Instagram, приложения или даже игры. И здесь появляется ключевая параллель.
Speaker A
Факторио ресурсы проходят через цепочки переработки, точно так же, как информация проходит через программные системы. В основе и там, и там одно и то же: автоматизация. Именно поэтому между факторий и программированием так много общего. И первое, с чем сталкиваются
Speaker A
все- спагетти. Начнём с самого простого и наглядного примера. Если вы играли в Факториio или писали код, вы уже знакомы с термином спагетти. Если нет, то сейчас станет понятно.
Speaker A
Представьте, вы соединяете два элемента простой линией, потом добавляется третий. Вы просто подключаете его к существующей системе, затем четвёртый, пятый, шестой. И вместо того, чтобы всё перестроить правильно, вы просто продолжаете тянуть линии, изгибать их, накладывать друг на друга. Система
Speaker A
растёт, но становится всё менее понятной, и в какой-то момент вы уже сами не понимаете, как она работает. Это и есть спагет. Факриioо это выглядит как хаотичная сеть конвейеров в программировании, как запутанная архитектура, где всё связано со всем.
Speaker A
Интересно, что и разработчики, и игроки независимо пришли к одному и тому же слову для описания этого явления, потому что суть одна и та же. Когда система создаётся без структуры, она неизбежно превращается в хаос.
Speaker A
Допустим, у тебя проблема. Ты замечаешь, что не хватает синих микросхем. Пытаешься понять, в чём дело, ми оказывается, не хватает красных. Идёшь дальше, не хватает зелёных. Ещё глубже, не хватает железных пластин. И в этот момент становится ясно. Проблема была не
Speaker A
там, где ты её заметил. Это и есть трассировка. Программирование это называется по-разному: отладка, поиск ошибок, разбор цепочки вызовов. Но суть одна. Ты идёшь по системе назад, шаг за шагом, пока не находишь источник проблемы. Чем сложнее ей запутание системы, тем труднее это сделать. Если
Speaker A
всё построено хаотично, без структуры, каждая такая проверка превращается в мучение. Но если система понятная и аккуратно организована, ошибки находятся намного быстрее. И здесь появляется важный принцип: читаемость. Система должна быть не просто эффективной, она должна быть понятной, потому что рано
Speaker A
или поздно тебе придётся в ней разбираться. Если ты сам не понимаешь, как она работает, то никто другой тоже не поймёт. Именно поэтому иногда простое и понятное решение лучше, чем сложно и умноя. А теперь главный вопрос. Если проблема в том, что система не
Speaker A
справляется, что с этим делать? И это подводит нас к следующему этапу: масштабированию. В какой-то момент ты понимаешь, проблема не в ошибке. Система просто не справляется с нагрузкой. И тогда возникает вопрос: а как её усилить? Программной инженергии и факторио ответ один и тот же.
Speaker A
Масштабирование. Представь, что одна производственная линия - это как один компьютер. И если мощности не хватает, есть несколько способов это исправить.
Speaker A
Первый, сделать её мощнее. Добавить больше машин, ускорить процессы, увеличить производительность. Программирование это называется вертикальным масштабированием, когда ты усиливаешь один сервер. Второй способ - создать больше таких линий.
Speaker A
Распараллелить производство. Это уже горизонтальное масштабирование, когда ты добавляешь новые сервера и распределяешь нагрузку между ними. Есть и третий вариант. не увеличивать количество, а ускорить сами элементы системы. Factorio - это модули скорости, программирование, более быстрые процессы и или оптимизация. И самое интересное - это
Speaker A
одни и те же принципы. Ты просто играешь, но на практике используешь те же подходы, которые позволяют существовать огромным системам вроде Google, Amazon или Facebook. И как только ты это понимаешь, возникает следующий вопрос. Если система растёт, то как управлять потоками внутри неё?
Speaker A
Когда система начинает расти, одной мощности уже недостаточно. Важна не только увеличить ресурсы, нужно правильно управлять потоком. Здесь появляется два ключевых принципа: автоматическое масштабирование и балансировка нагрузки. Начнём с первого.
Speaker A
Автоскелинг - это когда система сама решает, когда ей нужно больше ресурсов. Факториio - это похоже на автоматизацию фабрики. Ты настраиваешь условия, при которых добавляются новые машины. В программировании происходит то же самое.
Speaker A
Когда нагрузка растёт, система автоматически добавляет новые сервера. Когда падает, выбирает лишнее без участия человека. Но этого недостаточно.
Speaker A
Даже если у тебя много ресурсов, важно правильно их использовать. И здесь появляется второй принцип - балансировка нагрузки. В Факториioо ты распределяешь ресурсы по линиям так, чтобы ни одна часть системы не простаивала и не перегружалась. В программной инженерии это выглядит так же. Входящий трафик
Speaker A
распределяется между серверами, чтобы нагрузка была равномерной. Именно благодаря этим двум принципам огромные системы остаются стабильными. И самое интересное - это не какая-то скрытая магия. Это те же идеи, которые ты уже используешь в факторе, просто в другом масштабе. Есть ещё один ключевой
Speaker A
принцип, без которого невозможно понять, как работают большие системы зависимости. Факторио всё построено в виде цепочек. Сырьё превращается в промежуточные ресурсы, те в более сложные компоненты, а затем в конечные продукты. Это поток. И тот же принцип лежит в основе программных систем.
Speaker A
Данные проходят через сервисы, обрабатываются, передаются дальше и на выходе превращаются в результат. Но тут есть один важный нюанс. Если ты усиливаешь одну часть системы, это влияет на всё, что идёт после неё.
Speaker A
Например, ты увеличил производство железа, теперь следующая часть цепочки получает больше ресурсов. Но готова ли она к этому? Если нет, возникает перегрузка, очереди растут, система начинает тормозить. Фактуре это ещё можно пережить. В реальных системах это уже проблема, потому что все элементы
Speaker A
связаны. Один сервис зависит от другого, и если один из них перестаёт справляться, это отражается на всей системе. Именно поэтому сайты иногда падают. Не потому, что всё сломалось, а потому, что одна часть не выдержала нагрузки и потянула за собой остальные.
Speaker A
Если собрать всё вместе, масштабирование, балансировку нагрузки и зависимости, становится понятно, как устроены современные системы. И самое интересное, если ты играл в Factorio, то ты уже интуитивно всё это понимаешь. А теперь давайте перейдём к мультиплееру.
Speaker A
Факриio работает совсем не так, как большинство онлайныг. Вместо того, чтобы постоянно передавать состояние мира, она передаёт только ваши действия, клики и команды. А всё остальное каждый участник сессии рассчитывает самостоятельно. Это называется детерминированная симуляция.
Speaker A
Все игроки получают одинаковые вводы и воспроизводят один и тот же мир у себя на компьютере, почти не накружая сеть.
Speaker A
Но у такого подхода есть цена. Перед каждым шагом симуляции игре нужно собирать все действия игроков и синхронизировать их. Из-за этого появляется небольшая задержка. Мир всегда отстаёт от последнего вывода.
Speaker A
Зато есть ключевое преимущество. Даже в базе с десятками тысяч машин игре не нужно передавать их в состояние по сети.
Speaker A
Ей важны только ваши действия. Вся остальная работа перекладывается на ваш процессор. Именно поэтому факторио способна работать в таком масштабе. Но чтобы это вообще было возможно, нужно выполнить одно жёсткое условие: детерминизм. Главное требование здесь - это абсолютная точность. Каждый
Speaker A
компьютер в игре должен получать одинаковый результат на каждом шаге. Если вот одинаковый, если где-то возникает даже минимальное отличие, симуляции расходятся, и игроки начинают видеть разные версии мира. И вот тут начинается настоящая проблема.
Speaker A
Большинство игр используют числа с плавающей точкой, но такие вычисления могут давать немного разные результаты на разных процессорах и платформах.
Speaker A
Иногда разница в тысячных долях, но для синхронной симуляции этого достаточно, чтобы всё сломалось. Даже порядок вычисления имеет значение. Компиляторы могут оптимизировать код, менять последовательность операций, использовать разные инструкции, итог будет чуть-чуть отличаться. А чуть-чуть здесь это катастрофа. Есть простой
Speaker A
способ решить эту проблему. Перейти на фиксированную арифметику. Так делали очень многие стратегии в своё время, но у этого подхода есть минусы: меньшая точность и ограниченный диапазон.
Speaker A
Разработчики Factorio выбрали более сложный путь. Они оставили числа с плавающей точкой, но взяли под контроль каждое вычисление. Свои математические функции, строго фиксированный порядок операций, одинаковое поведение на всех платформах. Это значит, что независимо от того, играешь ты на Windows, Linux
Speaker A
или Mac, результат будет побитого идентичным. Такой подход требует огромных усилий, но именно он делает возможным то, о чём мы говорили ранее.
Speaker A
Огромные симуляции, синхронные для всех игроков, и без перекрузки сети. Ещё один источник недодетерминизма - случайность.
Speaker A
Компьютеры не генерируют по-настоящему случайные числа. Они используют псевдослучайные генераторы. Это, по сути, последовательность чисел, которые выглядит случайной, но на самом деле полностью предсказуема. Если генератор у всех запускается с одинакового состояния, он выдаёт одинаковую последовательность чисел. Но даже этого
Speaker A
недостаточно. Проблема в деталях. Во многих языках порядок вычисления аргументов не фиксирован. Если оба аргумента зависят от генератора случайных чисел, одна система может вызвать его сначала слева на другая справа. И этого уже достаточно, чтобы последовательности разошлись, а значит, сломалась синхронизация. КСЕП
Speaker A
архитектура накладывает ещё одно ограничение, фиксированный ред. Факториio - это 60 обновлений в секунду. Даже если ваше железо способно на большее, игра сознательно ограничивает частоту. Это компромисс для стабильной, но и непредсказуемой симуляции. Но тогда возникает другой вопрос: как игра
Speaker A
справляется с задержкой ввода? Решение локальное предсказание. Игра сразу применяет ваши действия на вашей стороне, пока остальные участники догоняют симуляцию. Фактически создаётся временная копия состояния, в которую применяются ваши воды. Если система не успевает, буфер начинает переполняться.
Speaker A
Ми - это сигнал. Либо процесс не справляется, либо сеть не успевает синхронизироваться. Изначально речь шла про Ртупир модель, но со временем разработчики перешли к серверной архитектуре, хотя она всё ещё частично сохраняет идеи P2P. Проблема P2P в том, что он быстро становится слишком
Speaker A
сложным. Нужно соединять игроков между собой, обходить ограничения сети, обрабатывать подключение и отключение и поддерживать всю эту топологию. Код разрастается, а сложный код - это всегда больше багов. Сервер упрощает всё. Он хранит в состояние игры, отправляет его новым игрокам и собирает все действия,
Speaker A
пока не догоняют сессии. Главное, он убирает хаоссоединений. Вместо того, чтобы каждый игрок общался с каждым, все общаются только с сервером. Сервер собирает действия всех игроков за один шаг, объединяет их в один пакет и рассылает всем. Это превращает сети из
Speaker A
набора случайных соединений в синхронный ритм. Но даже этого недостаточно. Игра должна постоянно проверять, что у всех участников одинаковое состояние. Для этого используется контрольная сумма.
Speaker A
Каждый клиент вычисляет отпечаток своей симуляции. Если он отличается, значит, что-то пошло не так. В таком случае игрок просто заново загружает состояние, как при подключении. В итоге получается очень необычная система. Factorio не передаёт огромные объёмы данных, она передаёт только действия игроков, а всё
Speaker A
остальное восстанавливается локально. И именно благодаря этому игра может обрабатывать тысячи объектов без перегрузки сети.
Speaker A
Чем же всё-таки закончилась история? Имея миллионы на счету, большинство студий продались бы. Их бы купила крупная компания, и мы бы уже увидели анонс Factorio 2. Но W выбрала другой путь. Они просто продолжили работать.
Speaker A
Без громких анонсов, без хайпа. Только еженедельные Friday Facts с деталями оптимизации и разработки. Сегодня целый жанр обязан есть своим существованием. И что особенно интересно, всё началось с мода для Minecraft. В итоге сама игра стала основой для нового витка идей. Но
Speaker A
самое важное в этой истории не технология, а выбор. Коварик и Томаш не пытались построить огромную корпорацию.
Speaker A
Они сохранили маленькую команду без лишней бюрократии, без давления инвестору. Они не гнались за трендами, не упрощали игру ради продаж, не продавали контроль. Они просто продолжали строить шаг за шагом. И именно поэтому Факториio - это не просто игра. Это доказательство того, что
Speaker A
иногда самый сложный путь оказывается верным. И что, если продолжать двигаться вперёд, фабрика действительно может расти бесконечно. Что ж, а на этом у меня всё. Всем огромное спасибо за просмотр. Можете посмотреть вот эти два видео, которые вы видите на экране. И
Speaker A
всем пока.
Topics:Factorioавтоматизацияинди-играразработка игрпрограммированиекраудфандингигровая индустрияоптимизациялогистикачешские разработчики




![Йозеф Менгеле – ДОКТОР СМЕРТЬ из ОСВЕНЦИМА [История в Личностях] — Transcript](https://i.ytimg.com/vi/3yDnGk7DVCo/maxresdefault.jpg)






