«Прошло семь лет, но я вспоминаю о провале Elemental: War of Magic каждый день» Статьи редакции
Основатель студии Stardock Брэд Уорделл об ошибке, которая погубила амбициозную стратегию.
Когда в 2007 году создание Elemental: War of Magic только начиналось, у разработчиков были поистине грандиозные планы. Stardock планировали создать огромный живой мир, в котором невозможно было бы встретить двух одинаково выглядящих юнитов.
Игровые персонажи могли жениться и заводить детей, которые со временем вырастали бы и тоже приобретали уникальную внешность. Также разработчиками была придумана система создания городов, в которой можно было строить абсолютно уникальные поселения — «прямо как в Sim City».
Если увеличить масштаб, можно было увидеть горожан, прогуливающихся по улицам, причём каждый обладал бы уникальным оружием и одеждой.
В конце 2000-х годов 3D-графика уже массово использовалась в стратегиях. По словам Бреда Уорделла, это была «интересная эпоха»: игроки ждали от внешнего вида юнитов очень многого, но разработчикам приходилось создавать игры, ориентируясь на 32-битные операционные системы. Проблема заключалась в том, что компьютеры под управлением 32-битной версии Windows позволяли использовать только 2 ГБ оперативной памяти.
Примерно через год после начала разработки Elemental игра вдруг стала вылетать без всякой видимой причины.
Спустя два года разработки необъяснимые вылеты не прекратились. Плюс к этому, по словам Уорделла, с игрой стали происходить «странные вещи», которых разработчики не ожидали.
Предыдущий опыт подсказывал, что это могло происходить из-за утечки памяти или из-за любой другой проблемы, с которыми регулярно сталкивались разработчики.
В запущенном состоянии игра даже не приближалась к лимиту памяти — она использовала всего около 800 мегабайт. Несмотря на это, приложение постоянно вылетало.
Отказ от того или иного элемента снижал количество вылетов, но не предотвращал их полностью.
Уже после того, как Elemental отправилась на прилавки магазинов, Уорделл продолжал копаться в коде и пытался понять, что пошло не так. Он нашёл в интернете программу, отслеживающую фрагментацию памяти, запустил её, и наконец понял, в чём было дело.
После нескольких часов постоянного перераспределения память оказывалась настолько фрагментированной, что свободное место заканчивалось.
При этом оригинальный дизайн игры за долгие месяцы удаления контента изменился до неузнаваемости. По мнению Уорделла, при взгляде на финальный вариант Elemental у игрока мог бы возникнуть вопрос: «А где, собственно, игра?»
В конце концов, игра оказалась пустой, потому что разработчики убрали слишком много систем, пытаясь решить проблему. В результате им удалось выяснить только то, что таким способом решить проблему невозможно.
По мнению Уорделла, даже если бы у Stardock было в распоряжении больше времени на разработку, они могли бы сделать игру немного более стабильной, но не смогли бы решить проблему с вылетами. Единственным вариантом в этой ситуации было бы полностью переделывать игру с нуля.
Сиквел к Elemental под названием Fallen Enchantress разработчики отдали бесплатно каждому, кто купил первую часть. Движок был радикально переработан и в результате лишился проблемы, погубившей War of Magic.
Но это, по словам Уорделла, привело к фундаментальным изменениям в геймдизайне: оригинальная задумка Stardock так и не была реализована.
Комментарий удален модератором
Точно так же как вы, видимо, не дочитали статью. Тут явно сказано было, что проблема была не самая тривиальная требующая не самых тривиальных инструментов. Поэтому шутки про "C++ за неделю" тут неуместны.
Кто-то скажет: «Как они могли не знать про фрагментацию памяти?» Но если вы будете честны с собой, то признаете, что это не такое уж распространённое знание.Даже сейчас довольно трудно найти достойные программы для фрагментации памяти. С этим не так уж часто сталкиваются.
Они написали свой менеджер памяти, но не подумали про фрагментацию? Серьезно? Шутка про с++ за неделю более чем уместна.
Комментарий удален модератором
Брэд второй раз внимательно просмотрел код и понял, что программа написана индусами-аутсорсерами на PHP3. Кто-то скажет: «Как они могли не знать про такое?» Но если вы будете честны с собой, то признаете, что это не такое уж распространённое знание.
Серьезно?
Косяк, согласен. Поправил
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Да блин, какие? Прямо вот мистика и непознанное.
Страшно подумать, неужели у юнитов, которые расплачивались последней ОДНОЙ монетой за товар стоимостью в 2 монеты, - вдруг оказывалось 65 535 монет?
На DTF в комментах пишут, что "не знать" они явно не могли, т.к. проблема известная, и в принципе решаемая. А еще оригинальное видео интервью удалено с youtube, т.к. канал нарушал копирайт многократно.
Сама статья в vc версии, к сожалению, получилась совсем невнятной :(
Судя по стиму, вторую часть очень тепло встретили.
Среди системных требований - RAM 2 GB )
причём каждый обладал бы уникальным оружием и одеждой.
Ну допустим, уникальность оружия видимо состояла в сочетании скинов (как и одежды), но каков милитаристский замах - никогда в истории горожане не прогуливались по улицам, _поголовно_ вооруженные (видимо, включая мужчин и женщин, стариков и детей).
Скажем, в сенате Древнего Рима пробовали предложить одевать рабов как-то по особому - чтобы отличать от свободных людей - но сами же и передумали, потому что "тогда они будут знать как их много". И уж никто и никогда не собирался всех поголовно вооружать ... даже в осажденных городах на одного вооруженного защитника приходились десятки безоружных граждан.
Этот облом лишниий раз напоминание всем-не изобретайте колесо, тем более если сами не умеете
Комментарий удален модератором