Вообще мои обязанности варьировались от программиста до владельца проекта, но больше всего я работал как технический директор или как технический консультант.
Я так же владел несколькими компаниями и помогал другим с бизнесом, так что, как я надеюсь, у меня есть достаточно ясная картина всего процесса разработки.
Я не стал богатым (пока :D), создавая игры, но в процессе я многое узнал… и сейчас я получаю огромное удовольствие от разработки Godot, большее чем от чего-либо ещё.
Я уверен что многие писали на подобные темы, но эта статья основана на моем собственном опыте и я надеюсь она будет полезной.
После выпуска Godot, я видел множество разработчиков, работавших над потрясающими проектами с использованием моего движка. Самое большое преимущество Godot’a заключается в его устройстве, он разработан так, что позволяет вам погрузиться в написание кода, который «просто работает» (и масштабируется до большего проекта) без необходимости беспокоиться за архитектуру игры. Многие игры были выпущены, но еще больше были заброшены.
Я пытался связаться со многими разработчиками, чтобы спросить их о причинах закрытия проектов, и в большинстве случаев они оказались не техническими, а были связаны с масштабами проекта, которым становилось трудно управлять.
Создавать игры очень весело, но очень сложно
Разработка игры — сложный процесс. Он включает множество дисциплин, но не может многого перенять из их стандартных методик работы.
С точки зрения искусства, творческие люди (художники, музыканты, писатели) вначале обычно создают базовую концепцию своего творения и позже прорабатывают детали, добавляют ей глубины. В разработке же игры ваша начальная реализация игрового процесса по умолчанию не работает, и требует нескольких итераций для улучшения. Во многих ситуациях просто невозможно заставить игру работать, и тогда бывает очень сложно отказаться от неё в пользу другого проекта.
С технической же стороны методы, изученные в университете, в основном не применяются в разработке игр. Инженеры программного обеспечения, на основе полученного тех. задания, разрабатывают так называемые сценарии использования. После создания данных сценариев все взаимодействия с пользователем становятся строго формализованными. Это не работает в программировании для игр, так как вы более сосредоточены на ощущениях, которые испытывает игрок, нежели на том, что он будет делать.
Шаблоны проектирования или отсутствие таковых
Даже применение шаблонов программирования не гарантирует работу программы. Снова и снова, как консультант, я сталкиваюсь с программистами, которые лгут себе об успешном использовании MVC в архитектурах их игр (и в результате создают полную тарелку со спагетти и фрикадельками). Другой пример, когда программисты утверждают, что успешно работают, не используя ООП дизайн (хотя они всё же его используют, не понимая или не признавая этого). Пальцев обеих рук не хватит, чтобы сосчитать, как часто я с этим сталкивался.
Эти примеры пересекаются с другой ситуацией, которую я видел бесчисленное количество раз, когда программисты слишком беспокоятся о «наиболее правильной реализации» и «хороших практиках в программировании». Это часто приводит к тому, что код содержит избыточные инкапсуляции, а последние приводят к кодовым базам, которые при изменении спецификаций, очень тяжело редактировать.
Если вы пишите игру, просто пишите код настолько быстро и настолько просто насколько вы можете. Не беспокойтесь за дизайн. Не применяйте шаблоны проектирования и инкапсуляцию ради них самих. Сделайте код игры быстро и грязно и просто заставьте её работать. Если в дальнейшем с кодом становится трудно работать, сделать его чище. Если нет — не трогайте код.
Стандартным аргументом для написания вылизанного кода является командная работа и множество программистов, работающих над игрой. Главные программисты требуют аккуратный и организованный код, который является причиной очень медленной разработки. Обоснование такое: «Мы должны быть способны заменить программистов в любое время, так что код должен быть читабелен и пригоден для поддержки». В действительности такой способ отнимает гораздо больше времени разработки, и он вряд ли дешевле в долгосрочной перспективе.
Сделайте так, чтобы каждый программист в команде имел конкретную роль и область ответственности. Дайте им работать так, как им нравится, быстро и грязно, просто убедитесь, что они создают понятные API для коммуникации с другими программистами. То что вы потеряете в организации, вы на порядок выиграете в скорости разработки.
Когда я работаю над Godot, я убеждаюсь что дизайн и архитектура настолько безупречны насколько возможно. Когда я работаю над игрой, я хочу получить результат настолько быстро насколько возможно.
Многие читатели наверное уже обратили внимание, что Godot был создан для разработки игр именно таким способом. Он стимулирует рост производительности прежде всего в дизайне. Работа системы сцен позволяет применять в разработке игр подход «разделяй и властвуй» (вместо того чтобы беспокоиться о таких бессмысленных вещах, как MVC, разбиение на компоненты и т.д.). Простота GDScript позволяет писать большие куски кода которые «просто работают», и, как только они будут завершены, вы больше не будете к ним прикасаться. Достижение «ощущения», что вещи находятся на своих местах, было задачей, над который мы совместно с Ariel Manzur работали на протяжении многих лет, до того, как Godot стал open source разработкой.
Несмотря на то что в движке многого ещё не хватает, у нас есть нечто особенное, что никто до нас никогда не создавал.
Движка не достаточно, важен правильный подход к разработке
Один из самых частых вопросов в социальных сетях: «Я хочу сделать игру типа X, какой движок лучше использовать для разработки?». Насколько движок может помочь в конкретном случае, правда в том, что успех зависит прежде всего от того насколько правильный ваш процесс разработки.
Большинство разработчиков совершают первую большую ошибку, когда начинают разработку с финального арта, создавая простой прототип и рассчитывая что разработка оставшейся части игры пройдет так же. Весьма вероятно, что со временем они попадут в одну из следующих ситуаций:
- Ресурсы игры ХОРОШИ, но игровой процесс ПЛОХОЙ. Кажется, что лучше начать с начала, но из-за потраченного времени это слишком демотивирует.
- Игровой процесс ХОРОШ, но появляется осознание, что ресурсы могли быть сделаны лучше, а необходимость их переделки демотивирует.
- Игровой процесс ХОРОШ, но заметно как много идей еще не реализовано. Однако создание новых ресурсов для их реализации в данный момент воспринимается как препятствие, что сильно демотивирует.
- Для завершения игры требуются дополнительные инвестиции из-за неожиданной сложности разработки.
Это стандартные сценарии при которых многие проекты проваливаются. Я уверен некоторые из них звучат очень знакомо. Давайте начнем процесс сначала и на этот раз сделаем всё правильно, соту идеи игры до её издания!
Начало. Является ли разработка коммерчески оправданной?
Подождите, ведь сначала нужно сделать прототип! После того, как появилась хорошая идея, естественным желанием будет её запрототипировать...
Не совсем. Именно здесь, 99.9% инди-разработчиков совершают свою главную и самую фатальную ошибку.
И нет, это не масштаб проекта определяет его жизнеспособность. Множество статей о разработке успешной игры, которые вы прочтете, будут рекомендовать сохранять масштаб игры небольшим, чтобы снизить риски. Это плохой и непрофессиональный совет. Не следуйте ему. В этом мире без риска нет прибыли. Ключевым должно быть понимание, как управлять рисками.
Просто делайте игру такого масштаба, какого хотите. Это будет саморегулирующийся процесс разработки, в котором ваши силы и ограничения, выявят пределы ваших возможностей. Амбиции необходимы для успеха, не подрезайте себе крылья в самом начале.
До прототипирования вы должны быть в состоянии ответить на следующие вопросы:
1. Ваша целевая аудитория?
2. Как вы достигнете своей целевой аудитории?
3. Как разработка будет финансироваться?
4. Что делает вашу игру уникальной?
Ответим на эти вопросы:
1. Ваша целевая аудитория? Это первый вопрос, который вы должны себе задать. Просто попытайтесь представить себе, кто будет играть в вашу игру. Распространенные ответы:
- Все игроки. Это прекрасная головоломка, tower defense, casual и т.д.
- Традиционная mainstream аудитория. Это RPG, FPS или стратегия.
- Нишевая аудитория. Это приключенческая игра, пошаговая стратегия и т.д.
- Инди игроки. Люди, предпочитающие небольшие классные игры всех типов.
- Прочее.
Просто попытайтесь уяснить это для себя очень хорошо, до того как перейдёте к следующему вопросу...
2. Как вы достигнете своей целевой аудитории? Здесь начинаются сложности. Давайте рассмотрим варианты, перечисленные выше:
- Казуальная игра. В простые казуальные игры (как Angry Birds, 2048, runners и прочее) обычно играют все. Да этот рынок большой и биллионы игроков ваши потенциальные пользователи... Так что вам остается просто сделать и опубликовать игру... и вуаля? Не совсем, онлайн-площадки настолько перенасыщены, что все опубликованное вами сразу останется незамеченным.
Издательство мобильных игр это отдельный вопрос, это слишком дорого. Вы можете получить издателя, но многие «мобильные» издатели — мошенники. Если они говорят, что с удовольствием опубликуют вашу игру, не верьте им! Они просто запустят вашу игру с баннерами и ссылками на свои проекты (которые приносят прибыль) через перекрёстное продвижение. Да они выпустят вашу игру, но используют её для своей выгоды, а не вашей.
Серьёзный мобильный издатель спросит у вас: «Какой у вас KPI?», или «Каковы коэффициенты конверсии и удержания игроков у вашей игры?». Это настоящий издатель! Это тот, кто будет инвестировать деньги в вашу игру.
К сожалению, на этот данные вопросы очень сложно дать позитивный ответ. Самый популярный способ зарабатывать на мобильных играх — это free-to-play модель. Все остальное не работает. Платные игры не приносят доход, а баннеры в бесплатных зарабатывают так мало денег, что этого не хватит для вашего выживания (даже если у игры будут миллионы загрузок). Да, единственный путь к финансовому успеху, это сделать вашу игру free-to-play, что подразумевает бесплатную загрузку игры, но платное наполнение, которое: а) помогает игроку в продвижении, б) дает интересные возможности по внутриигровым опциям персонализации.
Это довольно сложно объяснить и выходит за рамки статьи, но идея в том, что во free-to-play модели игроки (называемые в индустрии «пользователями») должны быть закуплены. Есть компании, которые, скажем за 5$, приведут одного пользователя для вашей игры. Это не шутка и обычно стоимость еще выше. Большинство пользователей не потратят и цента в вашей игре, но некоторые (называемые «китами») будут отдавать гораздо больше, чем 5$. Из-за чего средний доход на одного пользователя значительно возрастет.
Термин «конверсия» означает — сколько в среднем вы имеете с игрока за сумму потраченную на него. Если вы в среднем тратите 5$ на игрока, а получаете 8$, значит у вас позитивный коэффициент конверсии 1.6. Если вы имеете положительный коэффициент конверсии ваша игра становится буквально машинкой печатающей деньги.
Именно в этот момент вы можете легко найти издателя, который инвестирует в UA (User Acquisition, то есть просто купит для вас пользователей за определенный %). Не стоит говорить, что без достаточных инвестиций достигнуть этого невероятно сложно, такие игры требуют годы работы в убыток, пока после многих доделок коэффициент конверсии не станет позитивным.
Короче говоря, ваши шансы стать успешным на мобильных устройствах с казуальными играми чуть меньше, чем никакие (хотя чудеса случаются). Просто не делайте их, кроме как для удовольствия и/или обучения.
Специалисты по маркетингу всегда расскажут вам, что вопреки здравому смыслу, чем больше рынок, тем сложнее на него попасть.
- Традиционная mainstream игра. Эти игры продаются и находят своих пользователей с помощью больших инвестиций в продвижение (а также в саму разработку). Если у вас есть достаточный опыт в создании игр, вы можете попробовать пойти этим путём.
- Нишевая игра. Обычно занимать ниши проще. Таким играм посвящены спец. сайты, форумы и т.д. В данных жанрах специализируются некоторые издатели, которые смогут многое вам рассказать о своей сфере, если спросите.
- Инди / экспериментальная игра: Steam, GOG и т.д. все ещё являются хорошими площадками для таких проектов, если последние достаточно интересны (более подробно про это см. в вопросе 4). Запомните, большинство игр либо продаются хорошо, либо вообще не продаются, здесь нет золотой середины.
3. Как разработка будет финансироваться?
Ниже я рассмотрю стандартные способы поиска финансирования:
- Издатель. Вы можете относительно легко получить финансирование от издателя, если выполните нужные шаги (этого почти никто не делает, но уверяю вас, все будет рассмотрено ниже). Скорее всего издатели дадут вам прирост в продажах и заберут свой процент. Вы увидите деньги только после того, как издатель вернёт себе advance (это типичный возврат инвестиций). При поиске издателя, найдите игры похожие на вашу и выясните, кто их издаёт. Как правило эти люди лучше знают рынок и могут точнее оценить риски по вашей игре.
- Crowdfunding. На таких сайтах, как Kikstarter, Indiegogo или Patreon, в настоящее время значительнее труднее получить финансирование. Одна из распространённых стратегий, заключается в том, чтобы запросить гораздо меньшую сумму (и заявить меньшую по масштабу игру) и в случае успеха обратиться к издателю или частному инвестору, показать им своё достижение (аудиторию заинтересованную в игре) и получить недостающие деньги на разработку.
- Субсидии. Узнайте про программы гос. поддержки. Многие страны заинтересованы в росте игровой индустрии на своей территории, поэтому они могут предлагать субсидии для разработки игры.
- Инвесторы. Некоторые специализируются на играх, но большинство заинтересованы в получении доли вашей компании или вашей интеллектуальной собственности. Самый распространённый тип — это инвесторы стартового капитала.
- Ранние продажи и разработка совместно с сообществом. Я считаю, что это один из лучших путей финансирования разработки, но он должен быть пройден правильно. Идея в том, чтобы в течении разработки сформировать вокруг вашей игры лояльное сообщество. Вовлекайте его в процесс разработки и прислушивайтесь к нему. С ростом сообщества, вплоть до окончания разработки, всё больше и больше людей будут предзаказывать вашу игру. Сообщество также будет бесплатно распространять информацию об игре и таким образом самостоятельно расти.
Наконец самый важный и самый сложный вопрос:
4. Что делает вашу игру уникальной?
Если ваша игра не отличается в достаточной степени от своих аналогов она провалится. Люди не будут в неё играть, она не заинтересует издателей, и никакого сообщества не сформируется вокруг неё.
В чем ценность вашей игры? Вы должны уметь с лёгкостью донести это отличие с помощью одной фразы, картинки или короткого видеоролика. Если у вас не получиться зацепить этим, игра скорее всего провалится. Если она слишком похожа на другие игры, игра скорее всего провалится. Она должна отличаться.
Отличие может заключаться в инновационной концепции игрового процесса, или в невиданном визуальном стиле. Уникальный дизайн персонажей также вызывает интерес. Для RPG и приключенческих игр ключевыми являются история и иллюстрации.
Страницы:
1 2 Следующая »
#Godot, #движки
4 марта 2019
(Обновление: 17 июня 2019)
Комментарии [105]