Кафе «Ядерная пустошь»: беседа с создателем «Новой земли»

Не знаю, каким оружием будут сражаться в третьей мировой войне, но в четвертой в ход пойдут камни и дубинки.
Альберт Эйнштейн
Разъезжая по сети Интернет на воображаемом багги под музыку со станции «Новости галактики», я наткнулся на «Новую землю». Вначале она показалось отличным пристанищем одинокому путнику. Но спустя какое-то время выяснилось, что «Новая земля» – это ядерная пустошь, где остатки человечества ищут воду, вкалывают на заводах и в мире, выжженном дотла, продолжают кормить друг друга ракетами земля-воздух. Но давайте синхронизируемся с наручным КПК.
Место дислокации: НОВАЯ ЗЕМЛЯ/NEW GROUND
Разработчик: illusiveartgames
Платформа: PC
Требования к системе: Windows XP/7 (86/64), процессор 2.0 ГГц, 1 Гб ОЗУ, видеокарта со 128 Мб памяти и поддержкой DX 9.0, 150 Мб на жестком диске.
Сайт: illusiveartgames.blogspot.com
Доступ
Итак, 2059 год. Время больших возможностей закончилось. Почему? Три великие силы, Россия, КНР и НАТО, начали дележку Южного и Северного полюсов. Китайская подлодка «случайно» всплывает, где ей не следует, НАТО бомбит, КНР отвечает, люди бегут в Россию. КНР нападает на Россию и уничтожает практически каждый административный центр страны. Русские успевают «сказать прощай». Оставшиеся в живых умирают от нехватки воды и пищи, от радиации и морозов. Об этом нам рассказывает заставочный ролик «Новой земли», предостерегая человечество: лучше сохранить старый мир, чем иметь такой новый.
«Новая земля» – стратегическая игра, состоящая из четырех взаимодополняющих частей. Первая – глобальная карта. Здесь есть точка опоры – город Петропавловск-Камчатский и передвижная база, которой мы и управляем. В городах, а в дальнейшем все не ограничивается первоначальной «цитаделью», люди работают во имя наивысшего блага: создают детали, требующиеся для прокачки войск. На карте встречаются убежища, где доживают свое несчастные выжившие. С помощью передвижной базы их можно спасти и превратить в рабочую силу. Для защиты городов разрешено выставлять ракетную оборону. Для притока ресурсов – строить сборщик запчастей. Он будет разъезжать по близлежащей местности и собирать детали, например, от поверженных врагов, попавших под вашу систему обороны. Города развиваются по-разному. Постройка НИИ уменьшает рабочий цикл, следовательно, детали производятся быстрее. Жилые районы способствуют увеличению максимального количества жителей, что тоже важно. Используя передвижную базу, можно и нужно пополнять запас воды. Незараженная вода – редкость, но без нее никуда. Она и в производстве нужна, для охлаждения манипуляторов, и в повседневной жизни – без нее люди начнут гибнуть. Для сканирования местности на передвижной базе есть радар. Есть датчик радиации и химический сенсор. Путешествие без оных может обернуться трагедией и экраном «Поражение».
Вторая часть – бои. При нападении на город «Новая земля» становится аркадой, но без прямого управления. Чаще всего суть заключается в следующем. Слева находится наша база, справа – база противника. И там и там идет непрерывное производство военной техники. Цель – задавить врага любыми способами. Здесь также выстраивается оборона, но основная задача – это понять, какие танки производить, и координировать ракетные удары. Иногда под управление попадает летательный аппарат. Включается эдакая мини-игра. После боя вызывается меню прокачки. Танки становятся мощнее, а ракеты бьют больнее. Меню доступно и на глобальной карте.
Третья часть – взлом сетей. Иногда перед штурмом города бывает полезно взломать защиту, тем самым ослабив его оборону. Включается очередная мини-игра по взлому, где приходится захватывать узлы.
Четвертая часть – текст. К каждому убежищу, к каждой мисси, к каждому городу прикреплено описание. Порой эти истории ничего в себе не несут, а порой бывают довольно интересными. Главное, все работает на атмосферу: приводится статистика, кто жив, кто умер, чем постройка примечательна, что будет на задании, различные координаты.
Новый пролог
Красноярск был крупнейшим экономическим и культурным центром Центральной и Восточной Сибири. Население до инцидента: 972,8 тысяч. Уцелели только те, кто смог добраться до убежища КРАСНОЯРСК-04. Мы заберем этих людей. Среди них есть ученые и военные. Однако огорчает тот факт, что большую часть жителей убежища составляют бывшие чиновники, которые совершенно бесполезны.
Приблизительно такими описаниями пестрит «Новая земля». Создана она силами студии illusiveartgames. А силы студии illusiveartgames – это силы одного человека. Его зовут Маринин Олег Валерьевич. Путешествуя по «Новой земле», я наткнулся на радиосообщение. Сигнал шел из одного убежища...
ВР: Здравствуй, Олег! Расскажи, пожалуйста, немного о себе: место учебы, работы, из какого ты города, как и когда начал заниматься разработкой своей игры.
Здравствуйте! Я из города Бобруйска, работа в данный момент никак не связана с разработкой игр, и про это рассказывать не особо интересно. А вот в те времена, когда я разрабатывал игру, это период с 2010 по 2012 год, я работал фотографом и занимался параллельно веб-дизайном. Программирование для меня – просто хобби, но я не считаю себя программистом, хоть мне и пришлось написать большое количество строчек кода для игры. Я скорее дизайнер. Люблю собирать игру, меня мало интересует низкоуровневое программирование, например, я не хочу программировать шейдеры, я в этом не разбираюсь, но я знаю, как применить готовый эффект так, чтобы он был эффектно подан в игре.
ВР: Хочется сразу начать с музыки. Треки в «Новой земле» за твоим авторством невероятны! Скажи, какие программы ты использовал при написании композиций? У тебя был опыт в этой сфере?
Музыка полностью создавалась в программе FL Studio. В ней использовались бесплатные звуковые сэмплы с одного из сайтов. Музыкант из меня не очень хороший, потому написать что-то более сложное, чем dark ambient, мне не удалось. В то время мне также не удалось найти музыканта, желающего поделиться своей музыкой, а так как проект изначально был бесплатным, то и платить за музыку я не хотел.
ВР: Как записывал и обрабатывал звук? С какими сталкивался трудностями?
Весь звук – это бесплатные семплы, обработанные в программе Adobe Audition, а голос был синтезирован голосовым движком с последующей обработкой. Со звуком было очень сложно работать, многие семплы просто не подходили по длительности и громкости, приходилось вырезать все лишнее, выравнивать громкость, убирать посторонние шумы и прочее.
ВР: На чем программировал?
Игра написана на GML. Данный язык очень похож на Delphi. Это встроенный язык программирования в игровом движке Game Maker. Выбор на него пал, потому что это готовый удобный игровой движок, на котором легко и просто делать подобные игры. Некоторые ошибочно думают, что это несерьезная среда разработки, но множество вполне успешных сейчас игр сделаны на этом движке. Например, недавняя Hotline Miami и Gunpoint.
ВР: Картинка в игре ничуть не хуже звука. Ты сам рисовал игру от карты до моделей юнитов?
Да, все полностью сделано мной. Рисовал в Adobe Photoshop и частично во встроенном редакторе спрайтов Game Maker, причем юниты и здания нарисованы фактически по пикселям. Разнообразные фоновые картинки – это коллаж из фотографий.
ВР: Что больше всего «съедало» кадры в секунду? Пришлось от чего-то отказываться во благо производительности?
Оптимизация игры заняла примерно 60% времени всей разработки. Пришлось придумать особый алгоритм, который выгружает все объекты из памяти за границей видимой области, причем визуально объекты не прорисовываются, но физически остаются в памяти и работают. Многие эффекты и частицы просто-напросто не появляются за границей. И если вы услышали взрыв, то визуально его нет, это только звук и информация об уничтоженном объекте. Кадры съедало огромное количество осколков во время взрыва. Я просто установил количество осколков относительно кадров в секунду. Если игра видит, что кадров мало, а объектов много, то она решает убрать излишки. И так со всеми эффектами. Однако алгоритм не идеальный, и все же встречаются ситуации, когда объектов слишком много, а удалить их нельзя. Ведь удалять объекты нужно красиво, то есть незаметно для глаза. Мне не нравится, когда в играх объекты исчезают моментально, потому я сделал плавное «растворение» частиц.
ВР: Уровень сложности влияет лишь на «скорость реагирования» искусственного интеллекта, или на каждой сложности у него своя модель поведения со своими особенностями? Что AI ставит в приоритет (захват, развитие, наращивание сил)?
Уровень сложности влияет на множество параметров AI, например, скорость принятия решения, вероятность ошибки выбора, использование тактических ударов и их точность. На глобальной карте игроку куда проще выживать на низкой сложности. Чаще встречаются ресурсы и прочее и прочее. Там более сотни разных параметров.
ВР: С каждой новой версией Новой земли ты правил баланс. Если взять релиз и версию 1.09 – что за это время ты убрал, пересмотрел, переработал?
Последняя версия является экспериментальной, она более оптимизированная и быстрая, значительная часть эффектов улучшена. Была проделанная огромная работа по улучшению исполнения кода, убраны часто повторяющиеся скрипты. Но есть и изменения в геймплее, появилась возможность строить поселения и заводы, есть и визуальные изменения, чуть другой дым, другие погодные эффекты, более быстрая физика.
ВР: На протяжении всего срока разработки ты сталкивался с множеством проблем. Какие баги были самыми надоедливыми? Как ты с ними боролся?
Много багов вылезло во время релиза игры. У меня не было никакого бета-теста, и в первый день мне на почту сыпалось немало писем с отчетами об ошибках. Часто не работали сохранения, игра «падала» с ошибкой. Были такие баги, которые мне приходилось очень долго вылавливать. Но большинство ошибок были чисто из-за синтаксиса в коде, например, опечатки или где-то была лишняя точка, или значение переменной было положительным, а должно быть отрицательным, или не была закрыта скобка. В итоге, когда событие случалось, игра «крашилась», потому что движок не мог обработать переменную, в которой случайно указано генерировать бесконечное число частиц в секунду.
ВР: Механика одиночной игры не подходила под режим скирмиш, добавленного гораздо позже. Что переписывал?
Игра изначально разрабатывалась как скирмиш, просто стандартный бой без глобальной карты и сюжета, этакий набор уровней. Но все это нечем было объединить, и я решил сделать глобальную карту. В итоге все превратилось вот в такую игру. А уже потом восстановил режим скирмиш, переписывать ничего не пришлось, нужно было просто сделать меню настроек и запуск этого режима, ну и баланс немного подредактировать.
ВР: В убежищах и городах всплывают интересные описания: сколько в каждом человек, какой профессии, кто умер, кто остался, а кто пошел с нами. Это собственное сочинение с примесью истории?
Ближайший ориентир – это игра Warzone 2100, одна из лучших стратегий на моей памяти.
Мой сюжет и история – это самая слабая часть игры, я плохой писатель, и все получилось примитивно. Частично сюжет игры придуман под влиянием финала техно-оперы Виктора Аргонова «2032: Легенда о несбывшемся грядущем». Советую всем послушать. Многие ругали меня за то, что я не нанял корректора текстов, который исправил бы все ошибки. Я печатал текст сразу же налету внутри кода, из-за чего перевод игры на английский и другие языки стал нереален – так делать нельзя. Текст всегда нужно помещать в отдельный файл.
ВР: Сколько в «Новой земле» строк кода?
Хочется сказать over 9000 и это так и есть, примерно 10.000 или чуть больше 12.000, на самом деле я уже давно не смотрел в исходники.
ВР: Как происходит оптимизация кода?
Сначала делаю скрипт, чтобы он просто работал, вижу, что в игре он работает. Потом открываю скрипт, в котором, например, 100 строчек кода, и пытаюсь урезать его, то есть исполнить его за 80 строчек. Чем меньше строчек, а результат такой же, тем более оптимально и быстрее выполняется код, а значит, игра работает быстрей. Но тут еще важно знать, какими методами ты оперируешь. Например, у нас есть пушка, которая стреляет по врагу слева от себя, а еще есть враг справа, но чуть дальше. Нам нужно рассчитать, как она будет поворачивать башню к ближайшему врагу. А что если враг слева будет уничтожен, а следующий враг находится справа? Как быстро повернуть башню, но сделать это плавно. Ведь можно моментально развернуть картинку спрайта, но это некрасиво, зато быстро с точки зрения исполнения кода. Значит, когда игрок не смотрит на пушку, и она находится за экраном, она вообще не поворачивает башню в направлении врага и не рассчитывает сложный код плавного поворота. Просто выжидает то время плавного разворота и моментально поворачивается и стреляет, код на 10-20 строчек короче и быстрей в этот момент. А вот когда игрок смотрит на пушку, она исполняет сложный код поворота, и игрок видит, что пушка плавно повернулась и нацелилась на врага. Вот так и выглядит оптимизация, и она касается всех объектов.
ВР: Что не получилось реализовать в финальной версии и почему?
Очень многое. Например свободное конструирование юнитов, как это было в Warzone 2100. Зуммирование глобальной карты и больший ее масштаб, хороший сюжет с персонажами, нормальную и красивую справку по игре, локализацию на другие языки.
ВР: Игра хоть и проходится быстро, но по количеству элементов она довольно большая. Сколько времени прошло с момента начала работы до релиза?
Демо-версия режима скирмиш была готова в течение первых трех месяцев. А так разработка заняла примерно 1,5 года с момента идеи до рабочей версии 1.0, это если не считать время доработки и выпуска патчей.
ВР: Чем вдохновлялся до, во время и после создания «Новой земли»?
Из игр в первую очередь это, конечно же, стратегии: Warzone 2100, Z, Soldiers of Anarchy, также частично Defcon. Фильмы, такие как: «Нити», «На последнем берегу», «Сталкер». Из книг на тематику постапокалипсиса ничего не читал, а то, что читал, это Sci-Fi, и он был совсем о другом.
ВР: Где впервые вышла «Новая земля»? Занимался ли ты продвижением?
Игра вышла на всем известном российском торренте, уже через день она была по всему рунету. Несколько сайтов писали про мою игру, все получилось само по себе, никакого особого пиара и не было.
ВР: Не могу не спросить о планах на будущее. Работа над «Новой землей» будет продолжена или ты планируешься взяться за что-то новое?
В планах продолжение, хотелось бы сделать в 3d, но в одиночку это уже нереально. Есть еще пара прототипов других игр, жанр пока не определен, но возможно, это будет квест или хоррор.
Новый эпилог
ВР: Раньше ты читал «Виртуальные радости», а теперь сообщество «Виртуальных радостей» читает о тебе. Хочешь что-нибудь им сказать?
Мне говорили, что я никогда не смогу сделать игру один, так вот я доказал, что это вполне реально. Стремитесь всегда к своей мечте, дело не в таланте, совершенствуйте свои навыки. Если есть стремление, то вы сможете сделать все что захотите.
***
Примечания редакции:
1. Полный саундтрек Новой земли находится по следующему адресу: Имя диска:\НОВАЯ ЗЕМЛЯ\sound\music\sountrack
2. Warzone 2100 – стратегия в реальном времени от студии Pumpkin Studios, вышедшая в 1999 году для PC и PSone под крылом издателя Eidos Interactive. Это первая и последняя игра студии Pumpkin Studios. Одной из ключевых особенностей игры является возможность создания разнообразных юнитов из имеющихся в распоряжении деталей. Число комбинаций деталей, а следовательно, число юнитов с трудом поддается исчислению.
3. Техно-опера Виктора Аргонова «2032: Легенда о несбывшемся грядущем» – первая электронная опера Виктора Аргонова, музыканта и ученого из Владивостока. Длится полтора часа. Относится к жанру альтернативной истории. Распространяется бесплатно. Имеет открытый исходный материал.
4. В «Новой земле» на глобальной карте можно найти Беларусь, а именно – город Бобруйск, где не обитают бобры. Впрочем, я вам этого не говорил.
Александр Демидов

