Цена одной ошибки — история провала Elemental: War of Magic

Основатель студии Stardock о том, что погубило амбициозную стратегию.

Брэд Уорделл, основатель и руководитель студии Stardock, рассказал порталу Ars Technica о самом неприятном опыте в его карьере — создании провалившейся Elemental: War of Magic. Как выяснилось, у игры, вызвавшей гнев у критиков и игроков, изначально не было ни единого шанса оказаться «играбельной» — из-за одной фундаментальной ошибки разработчиков.

Цена одной ошибки — история провала Elemental: War of Magic

Когда разработка Elemental: War of Magic только начиналась, у разработчиков были поистине грандиозные планы. Stardock планировали создать огромный живой мир, в котором невозможно было бы встретить двух одинаково выглядящих юнитов. Юниты могли жениться и заводить детей, которые бы со временем вырастали и тоже приобретали уникальную внешность. Также разработчиками была придумана система создания городов, в которой можно было строить абсолютно уникальные поселения — «прямо как в Sim City». Если увеличить масштаб, можно было увидеть горожан, прогуливающихся по улицам — каждый со своим уникальным оружием и одеждой.

Цена одной ошибки — история провала Elemental: War of Magic

В те времена 3D-графика уже массово использовалась в стратегиях. По словам Уорделла, это была «интересная эпоха» — игроки ждали от внешнего вида юнитов очень многого, но разработчикам приходилось создавать игры, ориентируясь на 32-битные системы. Проблема заключалась в том, что компьютеры под управлением 32-битной версии Windows позволяли использовать только 2 гигабайта оперативной памяти.

Примерно через год после начала разработки Elemental игра вдруг стала вылетать безо всякой видимой причины.

Мы заранее знали, что то, что мы собираемся сделать, не уместится в 2 гигабайта памяти, так что мы создали крайне сложную систему, позволяющую очень быстро распределять память прямо на ходу так, чтобы она никогда не заканчивалась.

Брэд Уорделл, основатель Stardock
Цена одной ошибки — история провала Elemental: War of Magic

Спустя два года разработки необъяснимые вылеты не прекращались. Плюс к этому, по словам Уорделла, с игрой «стали происходить странные вещи, которых мы не ожидали». Предыдущий опыт подсказывал разработчикам, что причиной этого могла быть утечка памяти, или любая другая из многочисленных проблем, с которыми регулярно сталкиваются разработчики.

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

Брэд Уорделл, основатель Stardock
Цена одной ошибки — история провала Elemental: War of Magic

В запущенном состоянии игра даже не приближалась к лимиту памяти — она использовала всего около 800 мегабайт. Несмотря на это, она постоянно вылетала. Отказ от того или иного элемента мог заставить игру делать это реже, но через некоторое время она всё равно вылетала со стопроцентной вероятностью.

Для меня, как для инженера, это было техническим вопросом. Игра вылетает, значит, можно сделать только одно: потратить достаточно времени и отыскать этот баг в коде. Вот только это не было багом в коде.

Брэд Уорделл, основатель Stardock

Уже после того, как Elemental отправилась на прилавки магазинов, Уорделл продолжал копаться в коде и пытался понять, что пошло не так. Он нашёл в интернете программу, отслеживающую фрагментацию памяти, запустил её, и наконец понял, в чём было дело. После нескольких часов постоянного перераспределения памяти она оказывалась настолько фрагментированной, что через некоторое время игры свободной памяти просто не оставалось.

Это невозможно было пофиксить. И это наводило ужас, — ты осознаёшь, что корень проблемы лежит в самом основании движка, над которым ты работал долгие годы

Брэд Уорделл, основатель Stardock
Цена одной ошибки — история провала Elemental: War of Magic

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

Когда игра вышла, она вызвала жуткую отрицательную реакцию. Мы раньше никогда не выпускали плохих игр. Это был огромный удар по морали в коллективе, и продажи были просто ужасными. Был даже один фанат, который делал фанатские футболки — он был поклонником Master of Magic, — и прислал нам грязную футболку в знак протеста. Мы были так расстроены, просто раздавлены. Прошло семь лет, но я вспоминаю об этой игре практически каждый день.

Кто-то скажет: как они могли не знать про фрагментацию памяти? Но если вы будете честны с собой, то признаете, что это не такое уж распространённое знание. Даже сейчас довольно трудно найти достойные программы для фрагментации памяти. С этим не так уж часто сталкиваются.

Брэд Уорделл, основатель Stardock

По мнению Уорделла, даже если бы у Stardock было в распоряжении больше времени на разработку, они могли бы сделать игру немного более стабильной, но не смогли бы решить проблему с вылетами. Единственным вариантом в этой ситуации было бы полностью переделывать игру с нуля.

Цена одной ошибки — история провала Elemental: War of Magic

Сиквел к Elemental под названием Fallen Enchantress разработчики отдали бесплатно каждому, кто купил первую часть. Движок был радикально переработан и в результате лишился проблемы, погубившей War of Magic. При этом, по словам Уорделла, это привело к фундаментальным изменениям в геймдизайне: оригинальная задумка Stardock так и не была реализована.

5858
58 комментариев

Если я все правильно понял, они зарелизили игру, зная, что она вылетает в 100% случаев. Браво! *slow clap*

29
Ответить

Она вылетает, только если в неё играть какое-то время.

34
Ответить

Вылетает - не вылетает, деньги в разработку уже вложены, и хоть что-нибудь зарелизить надо. лучше продать плохую игру и окупиться на 80%, чем ничего не продать и не окупиться совсем.

11
Ответить

Велком в реальный мир, мальчик. Интересное чувство, когда понимаешь что не все должно быть идеально, не правда ли?

2
Ответить

достаточно длительное время, отмечу.

впрочем, варианты?

Ответить

Нужно было не останавливаться на достигнутом и написать дефрагментатор свободной памяти.

9
Ответить

И получить игру, которая каждые пять минут делает паузу на дефрагментацию.

3
Ответить