11/10/2021

"Из шажков складываются километры пройденного пути"

"Из шажков складываются километры пройденного пути"

Олег Антипов — один из тех соло инди-разработчиков, кто делает игры в одну каску, лишь изредка прибегая к помощи аутсорсеров. Мы связались с Олегом, обсудили, как он преодолевает трудности, совмещает геймдев с работой учителем и как «Матрица» повлияла на Hard Glide.

Олег и игры

Компьютер в семье Олега появился в начале 90-х годов, тогда он и познакомился с компьютерными играми. Где-то в 5-6 классе будущий инди-разработчик начал интересоваться программированием, а далее — уже и разработкой игр. В то время (2001–2002 гг) с информацией было очень туго: нужные книжки было найти сложно, интернет был очень медленным и дорогим, а тематических сайтов было крайне мало. Поэтому многое приходилось долго и упорно изучать методом проб и ошибок — не самый оптимальный путь обучения.

Олег Антипов: "Разработка игр всегда была для меня чем-то волшебным, некой божественной искрой и актом творения: ты создаёшь новый мир, населяешь его персонажами, пишешь правила его функционирования, и он начинает жить своей жизнью."

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

Работает Олег в университете, то есть у него нет «офисного графика». Преподаёт предметы, связанные с программированием, в том числе и компьютерную графику. В зависимости от расписания, бывают свободные дни в рабочей неделе, а ещё может быть свободно утро или вечер — периодически получается выделить время на работу над своими проектами.

Олег Антипов: "Я стараюсь использовать любое свободное время эффективно, и, если у меня выпадает свободная минутка и нет других неотложных дел, могу обдумывать разные аспекты проекта, заносить в телефон заметки, изучать технические статьи по нужной тематике и т.д."

Балансируя между инди-разработкой и всем остальным

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

Олег Антипов: "Я знаю много людей, у которых есть существенные перекосы в данных областях, но это путь в никуда. В жизни всегда должна быть гармония, и даже если ты сильно увлеченный чем-то человек, ты всё равно не должен отсекать себя от других аспектов жизни."

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

Олег Антипов: "Я считаю, что если в день ты сделал что-то для проекта, сдвинул его хоть на шажок, это уже неплохо. Из шажков складываются километры пройденного пути."

В этом Олегу помогают различные таск-трекеры. Куча вычеркнутых задач из списка будут мотивировать на дальнейшие свершения и покажут уже пройдённый путь. Жёстких таймингов наш гость себе не ставит, работает по вдохновению: лежит сегодня душа к программированию — пишет код, хочет заняться музыкальным оформлением — делает музыку, хочет сделать новую модельку врага — делает модельку. 

Что Олег умеет, как себя мотивирует и преодолевает трудности

По диплому и основной профессии Олег — программист, и всегда позиционирует себя именно так. Он умеет делать некоторые виды арта (в основном 3d) и музыку. Хотя и не считает себя в этом большим специалистом. Овладевал всеми этими направлениями по мере работы над своими проектами. Им двигало желание всегда контролировать каждый аспект разработки, чтобы достичь задуманного результата. В итоге все проекты Олега получаются авторскими, потому что целиком созданы одним человеком.

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

Трудностей много. Ужаснее и стрессовее всего, когда, загрузив финальный билд, понимаешь, что где-то проблема, а живые пользователи уже сетуют в комментариях и ставят единички. Нужно экстренно искать и исправлять ошибки. Пару раз внезапно удаляли релизную версию игры в Google Play, из-за, как оказывалось, нарушенных каких-то там их правил, и приходилось срочно разбираться — каких именно. Иногда бывало, что чужие рекламные объявления во флеш-играх начинали совсем ломать игру. Приходилось срочно писать в саппорт.

Один раз хостинг, где располагался сайт с играми Олега, из-за отказа оборудования потерял все его данные. Программист порадовался, что делал автоматические бэкапы, хотя последние две недели пришлось восстанавливать вручную.

Олег Антипов: "По сравнению с этими ситуациями, рабочие проблемы при разработке в принципе воспринимаются обычной рутиной, которая решается стандартными методами: тестирование, отладчик, логи, профайлер. Главное, если ошибку можно повторить, воспроизводить раз за разом, то её всегда можно и исправить."

Вдохновение другими играми и разработка без команды

В начале нашего гостя вдохновляли другие игры — хотелось сделать что-то похожее, но со своим видением.

Олег Антипов: "Я начинал делать и квесты, и РПГ, и стратегии, но из этого мало что дожило хоть до какого-то законченного уровня."

Работает один. В 2007-2008 годах пытался собрать команду и работать над проектом вместе с другими людьми, причём собирал как удалённо, так и офлайн. Однако всё неизменно сводилось к тому, что кто-то забывал-забивал, кто-то делал не то, что нужно, и в конечном итоге автору приходилось дорабатывать многое самому. Деньгами же людей заинтересовать не было возможности, только интересной идеей.

Олег Антипов: "Таким образом, все мои доведенные до релиза проекты были сделаны мной в одиночку, либо с небольшой помощью со стороны. Например, моя супруга — художник — помогала мне над графической частью некоторых проектов: так, все противники из игр Utilizer и Utilizer Deluxe были нарисованы ей."

Иногда программист использовал чужие бесплатные ассеты, о чём обычно всегда написано в титрах игр: например, в некоторых флеш играх использовал музыку Kevin MacLeod, который публикует её по лицензии Creative Commons. Иногда Олег пользовался услугами фрилансеров, в основном, для локализации на английский язык. 

Чужие проекты инди-разработчика никогда не интересовали.

Олег Антипов: "Возможно, потому что я пришёл в геймдев реализовывать свои идеи или просто не встречал действительно стоящего проекта, который бы меня невероятно вдохновил."

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

Какие игры Олег делает

Одна из первых более-менее готовых игр, которую инди-разработчик выложил в 2005 году, тогда ещё на файлообменники, была космическая реал-тайм стратегия «Конфедерация». В ней был сюжет, пара играбельных рас, строительство на планетах, массовые космические баталии. Сейчас её найти не получится.

В последующем на основе её идей программист сделал флеш-игру Star Squadrons (2013 год), частично использовав старую графику и наработки по сюжету. До сих пор игроки периодически просят сиквел. Но это довольно масштабный проект, и Олег до сих пор на него не решился.

Олег Антипов: "Возможно, когда я получше изучу Unreal Engine, сделаю продолжение."

Ещё несколько раз автор пытался создать большие проекты, даже команду пытался под них собрать, однако все они так и остались на уровне демок и прототипов.

Олег Антипов: "Возможно, замах был слишком большим, возможно, опыта и компетенций было маловато."

Где-то с конца 2009 года и по 2017 инди-разработчик делал браузерные флеш-игры. Большинство из них доступны на сайте Олега: своего предыдущего творчества он не стыдится. Тогда программист делал простые, короткие (от получаса до 2 часов), но увлекательные игры. Чаще всего — аркады.

Олег Антипов: "Если говорить строго, у меня были и паззлы (Smart Dicer 3d, Move on Green), и шутеры (Stark Raving Ted, Tripod Attack, Madness on Wheels, Combatants), и даже стратегии (уже упоминавшийся Star Squadrons)."

Бывали у автора и более казуальные проекты, вроде Toy Tales и Escaped. В общем, в тот период инди-разработчик, как он сам считает, начал более разумно оценивать свои силы, стремился не затягивать разработку (как бывало ранее), выбирал именно такие игры и жанры. Также на жанр и сеттинг сильно влияло то, насколько сложную графику мог осилить Олег. Например, космос и космические корабли он мог сделать, а анимированных рыцарей — нет. Значит, будет игра про космос.

Олег Антипов: "В каждой игре я хотел привнести что-то новое, своего рода изюминку, чего не было или я не видел в других играх."

Например, игра Move on Green — сокобан наоборот, ящики там надо не толкать, они сами прилипают к персонажу. В игре Utilizer и её улучшенной мобильной версии Utilizer Deluxe наш гость старался подружить казалось бы два абсолютно разных жанра игр — match-3 и скролл-шутер.

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

С 2017 года, после окончательной «смерти» флеш-плагина и браузерных игр в целом Олег пытался перейти на мобильные игры, создав Move on Green, Utilizer Deluxe и ещё один замороженный проект, однако на данной платформе с распространением проектов выделиться оказалось гораздо тяжелей.

Во времена флеш-игр распространением заниматься не было нужно: залил нормального качества игру на сайты вроде kongregate и newgrounds, получил нормальные оценки пользователей — и всё: другие сайты начинали разбирать игры к себе, тем самым дальше распространяя. С мобильными играми, к сожалению, так не работает: приходится упорно заниматься распространением вручную, и это очень непростая задача без маркетингового бюджета.

Так что тут Олега ждало разочарование: трафик с флеш-игр очень плохо конвертировался в мобильный трафик. Ручное распространение было неэффективным, а попытки свести экономику по закупке трафика и отбить его рекламой и внутриигровыми покупками, к сожалению, ни к чему хорошему не привели. В какой-то момент он начал понимать, что, если хочет отбивать хотя бы затраты на трафик, придётся сделать из геймплея игры геймплей по просмотру рекламных баннеров, покупки бустеров и сундучков с монетами.

Олег Антипов: "А это меня совершенно не устраивало, поэтому я с лета прошлого года принял решение попробовать себя в новой для меня нише — создании Standalone PC игр."

В случае успеха автор готов их портировать на мобильные устройства.

Unreal и другой софт

Олег начал искать инструменты для работы, и остановился на Unreal Engine, который ему сразу приглянулся. Там используется знакомый нашему гостю С++, а ещё именно этот движок кажется ему более взрослым продуктом.

До Unreal инди-разработчик не пользовался настолько комплексным решением, обычно прибегая лишь к некоторым библиотекам. Как и многие программисты, Олег даже несколько раз пытался писать собственный движок.

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

Олег Антипов: "Я уже не раз обжигался на том, что использовал мало распространённые — и следовательно, недостаточно протестированные и слабо поддерживаемые — библиотеки."

Движок Unreal — как полагает наш инди-разработчик — почти стандарт индустрии, имеет огромную поддержку и в него вложены миллионы человеко-часов работы. Очень помогает хорошая документация и тысячи обучающих материалов в интернете. В общем, разобраться оказалось не очень сложно, хватило желания и упорства. А ещё Epic в прошлому году выгодно изменила условия лицензирования: теперь роялти будут выплачиваться только при достижении 1 миллиона долларов выручки на каждый тайтл.

Олег Антипов: "Для инди-разработчиков вроде меня теперь движок можно считать абсолютно бесплатным."

Уже на стартовых проектах UE4 существенно превосходит конкурентов качеством картинки. Кроме того, исследуя его возможности, Олег пришёл к выводу, что почти всё необходимое для разработки присутствует в движке изначально. А ещё с Unreal Engine 4 поставляется огромная библиотека Megascans и дополнительные инструменты, вроде Quixel Mixer.

Олег Антипов: "Когда я уже начал делать на Unreal Engine свою первую игру, я начал замечать такую особенность движка — как только я задумываюсь «вот неплохо бы такую функцию тут иметь», начинаю искать в интернете — и оказывается, она там действительно уже есть. Сразу видно, что инструмент полировался на сотнях, если не тысячах коммерческих проектов."

Скользим с трудом

Сейчас Олег делает Hard Glide — ремейк и переосмысление своей старой игры Technozes 2007 года. Уже там существовала концепция «арен и труб-порталов». В проекте Hard Glide инди-разработчик решил оставить данную концепцию, попутно развив её, размышляя над тем, каким образом данный мир может существовать и что он собой представляет.

Hard Glide — аркадная игра в жанре авоидер, где игрок, используя инерционное управление (мышкой либо геймпадом) должен собрать все кристаллы на уровне, избегать столкновения с различными препятствиями и врагами, попутно собирая бонусы, которые дают дополнительные возможности (например, дополнительная жизнь, щит или временная стрельба по врагам). Тест геймплея Hard Glide.

Использует программист связку Blender — для 3д моделлинга и развёртки, Quixel Mixer — для текстурирования, Unreal Engine — как фреймворк для самой игры, Visual Studio — как редактор кода.

Олег Антипов: "Использую их, потому что они имеют довольно хорошую интеграцию друг с другом, а также условия их лицензий мне вполне подходят."

А ещё применяет уже упоминавшуюся библиотеку Megascans как базовый набор текстур для текстурирования в Quixel Mixer, которые можно комбинировать между собой, создавая собственные. Ещё собирается использовать некоторые 3D-объекты из неё, вроде растительности, камней и прочего. Хотя всё приходится оптимизировать и дорабатывать для использования в самой игре.

При этом Олег противоречиво относится к готовым библиотекам. С одной стороны, вроде бы заманчиво: можно одной кнопкой импортировать нужный контент и сразу использовать в игре. Но с другой — его приходится оптимизировать и дорабатывать: например, в стандартном материале Megascans нет текстуры эмиссии.

Олег использует некоторые наборы звуков из библиотек, комбинируя их между собой, чтобы достичь нужных звуковых эффектов.

Олег Антипов: "Стараюсь использовать всё, что поможет достичь задумки более быстрым способом. Когда ты разрабатываешь игры в одиночку, не стоит, наверно, делать вручную каждый байт контента — можно использовать некоторые готовые вещи, адаптируя их по необходимости."

Впрочем, особых технологических фичей программист пока не использует. На проекте Hard Glide он поставил себе основную задачу — изучить движок Unreal на хорошем уровне. По графике это стандартное PBR-освещение, постэффекты, партиклы, физические объекты, возможно, будет тесселяция на некоторых поверхностях (хотя Олег пока сомневается в её целесообразности). 

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

В данном случае Hard переводится как «сложное» или «тяжелое», а Glide — скольжение. Игра больше нацелена на хардкорную аудиторию, тех, кто любит игры вроде Super Meat Boy, и это сразу отражено в названии.

Олег Антипов: "Я заметил, что если игрока сразу предупредить о хардкорности игры, он это воспринимает как особенность геймплея. У меня была игра Frustra Bit с похожим подходом."

Нейминг — сложное и в то же время очень важное дело: ведь название игрок увидит раньше всего, и оно сильно повлияет на впечатление. Название должно быть более-менее уникальным, не заезженным, но запоминающимся, желательно — без разночтений. Ещё в названии важно вынести главную идею игры. Hard Glide — быстрая аркада про скользящий по аренам девайс, бросающая вызов мастерству игроков. Сочетание слов имеет некоторое созвучие, что также должно способствовать его запоминанию.

Сеттинг игры пока придумывается, но уже сейчас есть The Pipeline. Это мегаструктура, огромное самонесущее искусственное сооружение, являющаяся одновременно фундаментом данного мира и средством перемещения по нему внутри себя. Она соединяет не очень многочисленные островки (арены), на которых всё ещё можно встретить остатки прежнего мира. И на которых собственно игрок будет выполнять игровые задачи.

Олег Антипов: "Идею я немного подсмотрел в кинофильме «Матрица», где в реальном мире герои путешествуют по лабиринту сервисных туннелей, оставшихся после войны с машинами."

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

Как и для большинства своих игр, Олег прорабатывает сюжет и сеттинг мира, который объясняет творящиеся в ней геймплейные события. Однако часто он остаётся только в тексте описания игры на сайте и в саму игру не попадает.

Например, для его предыдущей игры Utilizer Deluxe был написан сюжет, но с ним можно ознакомиться только в описании игры в Google Play, потому что на ранее придуманные сюжетные вставки и реплики персонажей у инди-разработчика не хватило времени и сил.

Такая беда, по мнению Олега, может случится и с Hard Glide. Сюжет, объясняющий как мир вокруг игрока, так и его происхождение, и глобальные цели, прорабатывается. Но всё это рискует остаться на бумаге.

Олег Антипов: "Но всё же я надеюсь, что мои наработки по сюжету найдут отражение в самой игре в запланированном объеме."

Разные уровни будут отличаться различной формой и конфигурацией, на них будут разные препятствия и разные типы противников. Также будет различаться оформление арен. Но обязательно останется плоская структура.

В будущем, если игра будет интересна аудитории, инди-разработчик планирует добавить редактор уровней, запись «демок»-прохождений и различные режимы игры.

Основа геймплея Hard Glide

В Hard Glide автоматизированные боты остались без присмотра создателей и путешествуют по бесконечным сервисным туннелям, пытаясь выполнять кем-то давно поставленные задачи.

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

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

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

На релизе ожидается 5 арен. Потом, если игра будет интересна игрокам, их станет больше.

Олег Антипов: "Честно говоря, о новых видах арен я пока не задумывался, этот вопрос ещё буду прорабатывать."

Главное, чего хочет добиться в Hard Glide наш инди-разработчик — чтобы все активные объекты игры на ней были хорошо читаемы и различимы. Различаться арены будут типами препятствий и наборами врагов. 

Что дальше

Сейчас Олег хочет сделать первую публичную демку Hard Glide. Если публике понравится задумка и он увидит положительную обратную связь, то сделает полноценную игру со всем задуманным контентом и функционалом.

Олег Антипов: "У меня есть ещё несколько идей проектов, которые можно реализовать на базе движка Unreal, в частности, сделать уже третью итерацию моего проекта Star Squadrons. Про это говорить ещё рано, а я не люблю кидаться пустыми словами, не подкрепленными чем-то уже осязаемым."

Геймплей оригинальной Star Squadrons

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

Олег Антипов: "Говорят, человек только тогда счастлив по-настоящему, когда чувствует, что приносит пользу обществу."

Недавние статьи

Оптимизация через уменьшение DrawCalls в материалах

11/10/2021
Рассказываем про один из способов снизить количество DrawCalls в Unreal Engine — “Custom primitive data”.

Что-то пошло не так

22/09/2021
The Mortal Tai — шутер про Россию в недалёком будущем. Зомби и киборги: сразу эдакий киберпанк и постапокалипсис.

От ненависти игроков до фичеринга в Steam

22/09/2021
Автор мокбастеров делится своей стратегией выпуска коротких малобюджетных игр, которая в итоге сыграла ему на руку.