Оффтоп Yaroslav Morgachyov
3 797

Как сделать три игры за год без опыта в геймдеве

21-летний разработчик Ярослав Моргачёв о годовом опыте игровой разработки и о том, как справиться с ней без опыта и не сойти с ума.

В закладки

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

Я хочу заметить что на момент этого эксперимента у меня было 3 месяца опыта разработки на Swift. Вы тоже так можете. Однако, эту прокачанную и вдохновляющую колонку не стоит воспринимать как инструкцию к действию – это больно.

Привет Siri, как делать игры?

Часть 1. Выбор движка, или история о том, как я не сделал Monument Valley.

Если у вас есть ~500,000 рублей чтобы содержать еще двух человек в команде, то первый пункт можно упустить.

За 2 месяца я научился писать на Swift, выпустил приложение и глаза мои горели от словосочетания "игровая разработка". В октябре прошлого года я задал Siri первые вопросы и выяснил, что сделать Monument Valley мне не светит из за обилия сложной трехмерной графики. Чтобы сделать Monument Valley не используя Unity потребуется продать обе почки, часть печени, продать дом и взять три кредита (еще можно найти инвестиции, но в России спорно какой вариант лучше).

Нужно было выбрать движок. Тогда наиболее рациональным решением было выбрать SpriteKit (игровой движок для 2D–игр от Apple) и стараться не плакать. Идея сделать что-то похожее на Monument Valley была разбита о реальность и заменена идеей сделать несколько (да, именно "несколько") простых игрушек ожидая что одна из них взлетит. Тогда я смотрел на французов из Ketchapp и восхищению не было предела. Не понимаете? Найдите их прибыль и офис (у него их нет).

Часть 2. Воровство, грабеж и другой разбой или история о том, откуда берутся идеи для игр.

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

  • Around the Fort (6 месяцев разработки). Оригинал – Corsairs в Telegram.
  • Panica (2 месяца разработки). Оригинал – Panic Run в App Store.
  • Fake News: Игра (2 дня разработки). Оригинал – Fake News в App Store.

И если свою последнюю игру я по большей части просто локализовал (она содрана с оригинала подчистую, кроме заголовков), то моя первая Around the Fort и последующая Panica были самым грязным разбоем.

Я настоятельно не советую вам начинать игровую разработку с собственных идей. До Around the Fort я около 2-х недель потратил на игру которую позже не выпустил. Затем я потратил еще месяц на другую игру и тоже её не выпустил. Так бы и продолжалось, если бы я не решил перенести Corsairs из Telegram в App Store.

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

Часть 3. Математика или как не сойти с ума, делая игры одному?

Самая классическая минимальная команда для разработки простой 2D-игры состоит из двух человек – это разработчик и художник. Художник будет заниматься тем, чтобы рисовать корабли для Around the Fort. А разработчик (это я) будет делать так, чтобы эти корабли двигались и взрывались.

Искать художника нужно так: заходите на Behance или Dribbble, вбиваете в поиск интересующую тематику (на Behance можно выбрать категорию "Игровой дизайн"), ищите работу которая понравилась, пишите художнику.

Искать разработчика нужно так: заходите на Upwork, размещаете заказ на разработку, смотрите цены, начинаете понимать что вам не так сильно нужна игра.

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

Теперь посмотрите на стоимость при том, что я успешно занимал одну позицию в команде и платить самому себе мне не приходилось.

Бьемся о скалы реальности, выпуская приложение.

Когда первая игра была дописана – эйфория. Вот и всё. Доделал. Теперь нужно выпустить её в App Store и наслаждаться. Однако на ней еще нужно зарабатывать. И ввиду того что я более менее проверил варианты, вот что вас ждет.

Free-to-play и реклама без издателя.

Ваша игра бесплатна и вам кажется что это даст вам огромный приток игроков – не даст. Вашу игру никто не найдет и искать не станет. Окей, тогда может быть её нужно продвинуть? Нужно, но продвижение только в Российском, не самом популярном App Store стоит 200 тысяч рублей.

Классно? Нет. Потому-что дальше вам нужно окупить эти 200 тысяч и в идеале наращивать это число с каждым переводом. Короче говоря – цена привлечения одного игрока должна быть ниже чем этот игрок вам принесет (гуглить "ROI"). Это невероятный хардкор.

Free-to-play и реклама с издателем.

Издатели мобильных игр прекрасно себя чувствуют, топовый издатель простых игр независимых разработчиков – французская компания Ketchapp (ныне принадлежащая Ubisoft). Однако если вы дождетесь от них ответа хотя-бы за год – вы победитель.

Вы просто срываете куш если вашу игру публикует Ketchapp. Но они вряд ли это сделают.

Прямая монетизация. Платная игра.

С выходом iOS 11 и нового App Store это, видимо, самый актуальный вариант. Apple наложила кучу ограничений на встроенные покупки и рекламу и активно продвигает платные игры. Здесь вам нужно писать письмо в Apple и рассказывать о том, чем вы вдохновлялись, о чем игра и вообще – история о игре должна быть в 2 раза лучше самой игры.

Писать здесь. Если напишите хорошо – так-же срываете куш, хоть и недолгий, пока не уйдете вниз в ленте нового App Store.

В итоге имеем...

Around the Fort: релиз в Новой Зеландии и Канаде. Продвижения небыло, за исключением двух появлений в категориях App Store. Почти не было интереса. Нет прибыли.

Panica: релиз во всем мире, 300+ раз зафичерили Apple (можете проверить через Appannie), более-менее зашла в Китае. Продвижения за исключением фичеринга Apple небыло, прибыли тоже.

Fake News: релиз в русско-говорящих странах, фичеринга небыло, продвижения тоже. Просто валяется в App Store.

Что теперь? Теперь я хочу продать эти проекты.

Я потратил на них год. Я научился разрабатывать 2D-игры и в общем для меня всё закончилось хорошо, даже несмотря на то что я плохо спал, плохо ел, потолстел и в один момент жизни мой график дня был просто чередованием работы со 3-х часовым сном.

Рекомендую ли я вам разрабатывать игры? Нет.

Рекомендую ли я вам заниматься играми? Только если у вас есть несколько свободных миллионов.

Если хотите купить один из проектов или просто задать мне вопросы – пишите в Telegram (@morgachev). Еще я отвечаю на комментарии.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
Статьи по теме
Кейс из России: Как за 3 месяца стать iOS-разработчиком и попасть в топ App Store
{ "author_name": "Yaroslav Morgachyov", "author_type": "self", "tags": [], "comments": 28, "likes": 32, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 26934, "is_wide": false }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15388' + '59599') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 26934, "author_id": 14942, "diff_limit": 1000, "urls": {"diff":"\/comments\/26934\/get","add":"\/comments\/26934\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/26934"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

28 комментариев 28 комм.

Популярные

По порядку

Написать комментарий...

Комментарий удален

1

Но не закидываю, т.к. мне жалко потраченного времени и репутации.

Наглая ложь. Вот пруфы:
https://play.google.com/store/apps/details?id=ru.twolamps.crystalball
https://play.google.com/store/apps/details?id=ru.twolamps.kidbuild

Ответить

Комментарий удален

1

Что и?

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

Т.е. первая фраза - ложь, о чем я вам и сообщил.

Ответить
0

См. Ketchapp.

Ответить

Комментарий удален

Комментарий удален

0

Игры с социальной составляющей приносят прибыль?

Ответить

Комментарий удален

2

Опыт так и прокачивается, на ошибках, страдалове и потере мотивации, но не целей.
Че дальше собрался делать?))

Ответить
1

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

Ответить
0

В основном нет денег на продвижение 😄

Ответить
0

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

Ответить
2

Спасибо за совет 😉

Ответить
0

Браузерки под мобайл или десктоп? Какие технологии использовать?

Ответить
0

Раньше писали текстовые на PHP, сейчас можно все на JS делать, красочные и функциональные.

Ответить
1

Спасибо за рассказ. Очень конкретно.
Я для пробы тоже сделал игру в режиме "с нуля за неделю" чтобы пощупать что это за рынок. Понял, что соваться не надо. Игры это не приложения.

Ответить
1

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

Ответить
0

Крутая работа!

Результаты то какие?
- Есть ли прибыль?
- Сколько людей играет? Как продвигаешь игры? Соцсети?
- Какие скилы скрываются в «научился разрабатывать 2D-игры»?

Какие планы? Поспать? :) Шутка — что далее делаешь?

Ответить
2

Стоило бы дописать, и правда. Игры я не продвигал по самым разным причинам, соответственно нет и прибыли.

Про скилы: научился писать под SpriteKit, полностью понимаю всю схему работы и в принципе могу воплотить многие идеи 2D игр в готовый продукт.

Panica, кстати, зашла в Китае и больше нигде :)

Ответить
0

Круто. Я решил заняться геймдевом тоже, но уделяю этому времени ненмого, не готов спать 3 часа в сутки. Пока вот создал клон Flappy Bird под андроид, начал делать Mario, потом думаю свою придумать игру, простую, 2d. Что посоветуешь? :)

Ответить
1

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

Ответить
0

А как так вышло, что панику 300+ раз фичерили, но с неё нет прибыли?

Ответить
0

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

Ответить
0

Парень просто не знает, что Collection List это не фичер.

Ответить
0

Ни смог ни одной ссылки даже открыть, под Российский рынок говорит закрыто, хых

Ответить
0

Panica по всему миру.
Fake News в России.
Закрыт для России только Arouns the Fort.

Ответить
0

А зачем было клонировать провальную Panic Run?

Ответить
0

В надежде сделать её не провальной.

Ответить
0

Ну, так себе план.

Ответить
0

Продолжай делать. В сторах почти несколько сотен тысяч игр, из них популярные может тысяча. Собственно статистика когда количество превращается в качество налицо) продолжай попытки, через 10-15 попыток может получится что-то немного приличное. А я вообще решил делать проекты в вебе, меня затрахало то самое чувство зависимости от администрации аппстора и их ревью.

Ответить
0

Или лучше так: просто ищи себя не только в гейме, но и в других направлениях. Keep on trying!

Ответить
0

Вы просто срываете куш если вашу игру публикует Ketchapp.

Но они вряд ли это сделают.

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

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления