
Помните эпоху, когда мобильный интернет тарифицировался по мегабайтам, а Apple только начинала осваивать перспективный рынок игровых ферм? Начало 2010-х стало временем смелых экспериментов: студии пытались адаптировать масштабные десктопные концепции под скромные возможности смартфонов, сталкиваясь с инженерными вызовами, от которых у классических разработчиков опускались руки. В компании EA решили рискнуть: взять монументальные франшизы SimCity и The Sims с их колоссальными объемами контента и сложной логистикой дорожного трафика и «упаковать» их в мобильный формат.
Типичный смартфон того времени, например iPhone 4 или 5, располагал крайне ограниченным объемом оперативной памяти (всего 100–300 МБ). Тем не менее, именно владельцы «яблочных» устройств считались самой платежеспособной аудиторией. Чтобы избежать перегрева девайса и критических ошибок нехватки памяти (OOM), разработчикам пришлось пойти на радикальные меры: отказаться от честной симуляции в пользу конечных автоматов, а город превратить в визуальную декорацию, управляемую текстурными атласами и серверными таймерами. В этом материале я приоткрою техническую «изнанку» разработки SimCity BuildIt, а в завершение поделюсь воспоминаниями о работе российского подразделения EA и памятными снимками в честь его закрытия в 2016 году.
Вклад питерского офиса EA SPB
Несмотря на то что в титрах мобильных SimCity и The Sims значились такие гиганты, как EA Tracktwenty или Maxis, львиная доля сложной инженерной работы была выполнена специалистами российской студии EA SPB (Electronic Arts Saint Petersburg).
Если зарубежные команды фокусировались на игровом дизайне и продуктовой аналитике, то на плечи российских инженеров легла задача по глубокой оптимизации движка и адаптации сложной архитектуры под слабые мобильные процессоры.
Команда из Санкт-Петербурга разрабатывала внутренние инструменты (Internal Tools) для обработки и преобразования «тяжелого» контента от художников со всего мира в форматы, оптимизированные под iOS и огромное многообразие Android-устройств.
Еще одним важнейшим направлением было создание гибридных моделей данных, которые позволяли мобильному приложению работать плавно, обеспечивать офлайн-кэширование и при этом синхронизироваться с сервером для защиты от манипуляций с данными.
Технически сложной задачей стала оптимизация графики: нужно было добиться стабильного FPS не только на топовых смартфонах, но и на планшетах с высоким разрешением, притом что объем памяти оставался критически малым. Инженеры EA SPB вручную перерабатывали шейдеры и буквально сражались за каждый килобайт ОЗУ. Именно благодаря их усилиям удалось «подружить» масштабную стратегию с мобильной платформой.
Иллюзия живого мегаполиса
Первоначальная попытка прямого переноса ПК-версии SimCity 2013 года оказалась провальной: движок пытался имитировать поведение каждого отдельного жителя и производственную цепочку в реальном времени. На смартфоне такой подход приводил к падению частоты кадров до двух в секунду и превращал гаджет в раскаленный кирпич.
В итоге архитектуру кардинально пересмотрели, разделив игру на два уровня, чтобы снизить нагрузку на железо.
SimCity для ПК (GlassBox):
[Персонаж] -> [Поиск пути] -> [Логика] -> [Рендеринг]
SimCity BuildIt (Мобильная версия):
[Серверный таймер] -> [Валидация условий] -> [Визуальная анимация]
Сегодня server-authoritative дизайн — индустриальный стандарт, но в 2010-х годах это было передовым решением. Перенос 99% вычислений на серверы позволил не только разгрузить мобильные устройства, но и эффективно бороться с читерством, что оказалось гораздо выгоднее, чем постоянная правка багов на стороне клиента.

Экономика на серверных мощностях
Вся математическая модель была перенесена на сервер, где «экономика города» представляет собой набор конфигурационных таблиц (JSON или key-value). Клиентская часть выступает лишь в роли высококлассного терминала, который отправляет запрос на выполнение действия (например, «начать производство») и визуализирует ответ сервера. Смартфону не нужно высчитывать логику цепочек — он лишь отображает 3D-модели и элементы интерфейса, используя локальный кэш для обеспечения стабильности при нестабильном соединении.
[КЛИЕНТ: Нажатие кнопки "Крафт"]
|
v (Запрос: "Хочу изготовить товар")
[СЕРВЕР: Проверка наличия ресурсов] ---> [Запись в базу: Старт процесса] ---> [Запуск таймера]
|
[КЛИЕНТ: Обновление интерфейса] <--- (Ответ: "Операция принята, ожидайте") <---+
Техники рендеринга
Чтобы обеспечить приемлемый FPS на ранних мобильных GPU, разработчики использовали тайловую архитектуру (TBDR). Город делился на пространственные блоки, для которых создавались упрощенные превью-текстуры. И только при приближении камеры движок подгружал полноценную геометрию зданий.
Для экономии памяти применялись агрессивные методы батчинга (объединения вызовов отрисовки). Вместо того чтобы рисовать каждое здание отдельно, движок собирал группы объектов в один массив вершин, при условии, что они использовали общий графический материал (текстурный атлас). Это позволяло отрисовать целый район одним вызовом видеокарты.

В эпоху OpenGL ES 2.0/3.0 о динамическом освещении и тенях не могло быть и речи. Все световые эффекты «запекались» в текстуры заранее, а имитация смены времени суток достигалась простым блендингом: при наступлении ночи движок плавно смешивал дневную текстуру с ночной, где были нарисованы светящиеся окна.

Деконструкция симуляции
В отличие от десктопных версий, где каждая пожарная машина или житель влияли на общегородской баланс, в мобильной версии этот процесс был полностью абстрагирован. Пробки на дорогах стали лишь визуальными спрайтами, следующими по заданным маршрутам, а пожарные станции — статичными «зонами влияния». Электричество и вода превратились в простейшую арифметику вычитания из общего пула, исключив необходимость моделирования физических сетей.

Память о команде
Российские подразделения EA — в Санкт-Петербурге, Москве и Таганроге — были невероятно талантливыми коллективами. Студия в Таганроге, выросшая из компании «Спира», стала уникальным примером развития регионального IT-сектора. К сожалению, в середине 2010-х EA приняла решение о реструктуризации, что привело к закрытию внутренних студий разработки в России.
Работу над SimCity BuildIt и другими проектами мы вспоминаем с теплотой — это было время настоящей инженерной магии, когда ограниченные ресурсы заставляли нас находить по-настоящему элегантные решения. Ниже представлены архивные кадры из жизни нашей команды.









