Дневник разработки игры Монстер хантер.
9 постов
А вот за неделю руки доходят уже у 75% пользователей.
Я тот, кто недавно успешно завалил тестовое задание, но выпустил его на гугл плей.
В этом посте будет совсем немножко показавшейся мне интересной инфы, и немного смысловой нагрузки.
Использовал я в игре Unity Ads - штука это довольно простая. Включаешь в сервисах и оно работает. Правда во время разработки постоянно происходит логаут и просьба снова ввести логин-пароль. Немного бесит. Главным минусом считаю отсутствие всяческих баннеров. Т.е. для такой игры как эта, где игра длится от 3 до 30 секунд, просматривать 20-30 секундные ролики людям откровенно влом. Да даже отрубать всплывающий ролик (а он пока загрузится, пока слабенький телефон поймёт, что тут надо видео показать.. уже пройдёт секунды 3) людей напрягает. А ведь если пользователь сразу же отрубил ролик, то и денег вам не дадут. В общем я бы сказал юнити адс - для более нагруженных игр.
Интересная инфа:
в среднем пользователи набирают 300 очков.
за сессию в среднем пользователи играют 6 игр.
Ещё некоторая проблема с юнити адс - они не могут сразу же сказать сколько ты заработал. Это был бы имхо весьма интересный факт для аудитории, но спустя неделю система всё ещё не подсчитала доход. В интернете читал, что в среднем за 1000 показов 6-12$ в зависимости от страны и прочих условий. У меня показов 120.. ну а что вы хотели? :D
Интересная инфа:
менее 5% досматривают рекламу до конца. возможно это видео с вознаграждением, но я забыл туда аналитику засунуть, так что этого мы никогда не узнаем.
при регистрации в гугле надо оформить мерчант аккаунт. В форме стоит "данные юр. лица", на практике туда можно записывать физ лицо. Инфа получена от суппорта гугла, акк я себе создал, но ИАП (in app purchases) ещё не делал. Продавать-то нечего)
согласано интернету продавать в подобных приложениях отсутствие рекламы за 1$ не выгодно, т.к. с просмотров рекламы пользователь может набить тебе куда больше.
Юнити аналитика с другой стороны мне наоборот очень понравилась. Включается она так же как реклама - в сервисах. Можно генерировать свои события, что бы отслеживать определённые действия и достижения юзеров. В общем-то тут даже рассказать особенно нечего. На графике зелёный взрыв - это прошлый пост. Он принёс 60 установок. Если кто-то думает, что подобные посты являются хорошим пиаром - нет) Ну по крайней мере, если писать их только на пикабу. мб если б я залил на всевозможные ресурсы, набралось бы под 500, но такой цели, честно признаться, и не было.
Интересная инфа:
Когда выкладываете приложение в гугл плей, лучше сразу же набивайте его скрин шотами к телефону и обоим плашнетам. Иначе система потом скажет, мол ваше приложение не поддерживает планшеты и будет сложновато доказать обратное.
Только что закончил писать ещё одно тестовое задание - типа диггера, и получил ещё одно - клон баттлсити. Надеюсь не придётся писать пост "как я провалил собеседование №2")
Ну а теперь новость:
Я выкинул обновление гравити скроллера. Чуть подправил баланс, это не важно. Главное я задумался над вопросом рекламы: как сделать так, что бы пользователь с одной стороны смотрел рекламу, с другой, что б у него не было дикой ненависти по этому поводу?
Вы заметили что-нибудь новое в первом скрине этого поста? Скорее всего нет :D В общем раньше вознаграждением за просмотр рекламы было +1 очко к макс счёту. В общем-то забавно - можно сделать себе красивый счёт 1234, если набрал 1233. Но бесполезно. Едва ли кто-то это реально кликал - легче попытаться сыграть хорошо и побить свой рекорд. И интереснее к тому же.
Сейчас вознаграждением я поставил отключение рекламы на 30 минут. Как помним из интересной инфы, в среднем люди играют 6 "партий" за сессию, первая реклама идёт после 4го проигрыша и не менее, чем 2 минуты после начала сессии. Т.е. большинству собственно эта кнопка всё так же не нужна, т.к. моя рекламная политика и без того очень мягкая. Но я ведь и не рассчитывал на прибыль с этого приложения, если делать реально хорошее приложение, то условия там придётся сделать куда жёстче. Вот тогда кнопка и может пригодиться.
Выгодой этой кнопки (т.е. просмотр 1 ролика вместо ~15 попыток показать рекламу за пол часа) является то, что эту рекламу точно досмотрят до конца. За такой просмотр дают до 25 центов (в основном около 10). За эти 15 попыток получается в среднем от 9 до 18 центов. (исходя из инфы, что 1000 просмотров - 6-12$) Если учесть, что игрок может просидеть в игре не пол часа, а минут 10, то просмотр этой рекламы уже станет выгоден в любом случае.
Буду рад, если зайдёте в игру, сыграете несколько партий и подумаете, хочется ли нажимать на кнопку, или же проще отрубать появляющуюся рекламу?
https://play.google.com/store/apps/details?id=com.CapcanGame...
Внимание! Полученная в виде отзывов информация будет использована для разработке следующей игры, тоже с простой механикой, но уже сделанной на совесть :)
Внимание! Данный пост будет содержать весьма очевидную информацию для сколько-нибудь опытных разработчиков!
Ну а когда вас предупредили, начнём. Я ищу работу в гейм индустрии юнити программистом. Опыт работы программистом у меня есть, но не игровой. Сам серьёзно увлёкся игроделом в качестве хобби сравнительно недавно - года полтора назад. Первым делом попытался написать свой движок, ведь только я смогу написать то, что мне нужно? В общем недели за 2 понял, что всё не так просто и решил посмотреть другие движки. "Юнити - конструктор дурацкий, ну его нафиг!" - подумал я. За пол года рассмотрел с десяток движков. ни одной нормальной игры не сделал. Потом друг меня уломал попробовать юнити, понеслась. Через недели 3 была готова первая игра про спаривание носков.
Вывод 1: Важно не посмотреть все имеющиеся движки и не написать свой, а написать первую игру, а потом вторую. Чужих инструментов вам, конечно, может и не хватит. Лет через N качественной разработки.
В общем начал я неспешно учить юнити после работы, делал игрушки на конкурсы и проблем не знал. И вот в один прекрасный день решил, что хочу жёстко перейти в сферу геймдева. Почитал вакансии и начал рассылать резюме. Очень много резюме закрываются сразу как видят, что для работы мне необходимо будет переехать (у нас в городе геймдева особо нет). Но некоторые всё-таки кандидатуру рассматривают и просят "код, которым ты гордишься" - не знаю, что это значит, я такого ещё не написал, или дают тестовое задание.
От одной из контор получил тестовое задание:
сделать игру про гравитацию, где платформы разной ширины сверху и снизу, летит мячик, должен не упасть между платформами. направление гравитации можно менять кликом.
Скрин геймплея из игры:
Забавным оказался следующий момент: тестовое задание дали "на день", ну типа оно простое, на несколько часов. При этом получилось так, что уже был вечер, я утром не выспался, потом рабочий день, пришёл уставший, а завтра снова на работу до вечера. В общем единственным логичным вариантом мне показалось поспать пару часов и сделать игру ночью. Оценил разработку в 3 часа. Ушло 5. Проснувшись ночью был весьма туп. На работе весь день так же был весьма бесполезен.
Полученный урок/вывод 2: не бойтесь с интервьюером поговорить и объяснить ситуацию, думаю денёк бы мне добавили без проблем. Не уверен, что прошёл бы в итоге, но тем не менее работал мозг явно не в полную силу.
Ну а сейчас по списку из отзыва от работодателя.
Бекграунд
Спланировать архитектуру такой игры в общем-то проблемой для меня не было, подобные же мелочи я и делал на конкурсы, но вот там не было цели делать всё красиво и правильно, к тому же до конца конкурсные игры всё-таки не доделывались. Пораскинув мозгами я накидал на бумажке примерную архитектуру, набросал сцены и УИ. За час вполне успешно смог в пейнте нарисовать бекгаунд (выше на скрине), да, художник из меня никакущий. И сделал его методом, который знал. Дело в том, что я постоянно делал 2д игры, т.к. попроще. И в одном из юнити уроков (спейс шутер вроде бы), просмотренных год назад, был метод - слепляем 2 спрайта подряд, делаем им постоянную скорость, как только первый спрайт полностью сползает с экрана устанавливаем снова стартовое положение. Да вот только вакансия была 3д, так что надо было сделать путём смещения текстуры. Но это, как сказали, не особо важный минус.
Интерфейс
Тут стоит начать с того, что базовые уроки по юнити я смотрел год назад, смотрел захлёбом, так что логично предположить, что часть знаний усвоились, но многое просто не запомнилось. Дополнительно, никогда сильно не работал над интерфейсом - на конкурсах главное, что б геймплей был интересный. В итоге сделал как обычно интерфейс такой, что б работал у меня в редакторе. При этом даже забыв потестить на разных разрешениях - обычно просто на винде ставил жёстко соотношение 16/9 и интерфейс не ездил. Тут же у работодателя на андроид смартфоне всё уплыло. К тому же был какой-то баг с одной из надписью. Протестить я, к сожалению, андроид версию не смог, т.к. телефон подключаться к моему домашнему компу отказывается, а закинуть в облако и скачать оттуда я не догадался. Да, догадался я об этом, выспавшись, через день.
Темп
В связи с сонностью мозг работал действительно медленнее. Это я могу доказать просто. Работодатель мне написал: "Почему так медленно? Надо делать игру, в которую приятно играть самому". А мне вполне нравилось, когда я тестил. Чуть увеличивая темп я сразу же проигрывал. Выспавшись я увеличил темп игры в >7< раз!
Пул
В игре платформы постоянно уезжают за экран и больше не появляются. Соответственно есть 2 варианта: или уничтожать их, а потом создавать новые, или сделать пул этих платформ и просто деактивировать ненужные и активировать, располагая где надо, когда требуется новая платформа. Первый вариант плох тем, что удаление и создание объектов очень дорогостоящие операции, а второй вариант тем, что его надо делать. Мой сонный мозг подумал: игра простейшая, если раз в секунду платформа удалится (помните, темп реально медленный), то в общем-то никакой реальной нагрузки эта одна операция не создаст. Но я забыл про один немаловажный момент: тестовое задание - это способ работодателю посмотреть на маленьком проекте как человек будет себя вести в большом. Т.е. практически в нём необходимо показать, что ты умеешь, даже если в данной конкретной ситуации особых плюсов видно не будет. Переусложнять, конечно, тоже не надо.
А сейчас, на мой взгляд, главный косяк полуночника:
Творчество
Помните задание, которое я написал выше? Примерно так я его и понял. Да вот только по-настоящему задание было расписано на страницу текста с достаточно точными моментами что надо сделать. Когда вы разрабатываете игры для себя, вы сами являетесь гейм дизайнером и решаете что должно быть в игре, а что нет. Когда вы работаете в компании, то вы являетесь только программистом. Вероятно, можно предложить какие-нибудь свои идеи, но делать надо в итоге так, как написано в ТЗ.
Во-первых я не жёстко закрепил платформы - получился такой эффект льдин, когда шарик падал на платформу, он немного её двигал. Мне показалось забавным. В ТЗ такого не было.
Во-вторых я сделал гравитацию - шарик двигается не с заданной скоростью, а разгоняется постепенно. В ТЗ было конкретно написано: "физику не надо". Т.е. фактически надо было просто сделать движение через transform.position в апдейтах.
Вывод: даже если тестовое задание маленькое и простое, то относиться к нему надо как конкретно поставленной задаче на работе.
Ну и последнее: фокус
Картинка очень красивая, правда? Да вот только если вы подаёте резюме на моделлера, такая работа врядли вам слишком поможет.
Главной обязанностью вакансии была разработка логики игры. А я из 5 часов потратил 3.5 на интерфейсы, графику, свет и музыку. Если бы забил на вид и все силы вбросил бы в логику, то может быть и додумался бы работать по ТЗ.
Заключение:
После данного провала я подумал, что стоит немного прокачать знания и резюме. В итоге за 2 недели я пересмотрел заново базовые уроки по юнити (действительно кое-что забыл, как будто и не видел), а так же доделал эту игру и закинул её в гуглплей. Сегодня снова буду рассылать резюме, и в этот раз буду делать совсем другие ошибки =)
ps: ссылку на игру давать нельзя, но на скрине интерфейса есть название.
Заниматься изучением программирования зачастую скучновато, т.к. не видишь результата трудов, а если и делаешь какие-то маленькие задачки, то они обычно шаблонные из учебника. Даже преодолев данный барьер и начиная разрабатывать собственную игру, новички обычно планируют слишком крупный проект, после чего, даже если разработка идёт, спустя месяц проект на вид не слишком меняется - на одну только генерацию карты может уйти несколько месяцев.
Так что я нашёл хороший вариант: конкурсы.
В конкурсах время ограниченно, а значит планировать большой проект нет смысла. Каждый конкурс содержит разные темы, жанры, условия в общем. Спустя некоторое время при разработке идеи ты уже можешь примерно оценить время, необходимое на реализацию, а это очень важный навык.
Проходит время, вы уже представляете как строить архитектуру, как правильно планировать своё время, и казалось бы, что эти конкурсы вам уже не нужны? Вообще учиться можно и нужно бесконечно, но кроме всего прочего, конкурсы даже дают вам постоянные отзывы по вашим работам. Так вы можете понять свои сильные и слабые стороны и развиваться в нужном вам направлении. Так же со временем учишься подстраиваться под целевую аудиторию, что тоже является очень важным навыком.
Ну а зачем же нужны конкурсы матёрым игроделам? Ну во-первых, ради тех же отзывов. Просто проверить жизнеспособность своей новой идеи. А во-вторых, это просто весело :)
Конечно же, у конкурсов так же есть недостатки, о которых стоит помнить.
Вот несколько из них:
1) они не дают опыта выпуска проекта.
2) они отвлекают от основного проекта (иногда отвлечься полезно, но это только иногда)
3) когда люди участвуют только в коротких конкурсах, у них не получается "рости в глубь", так что иногда стоит подумать над завершением проекта, вместо участия в новом конкурсе.
Сегодня начнётся очередной ежемесячный конкурс на выходные (First Weekend Jam)
Скину в комменты ссылку на него, и ещё на парочку, а то вдруг модеры посчитают рекламой.
В любом случе, конкурсов постоянно проводится по несколько штук, всё легко гуглится.
Считаю, что надо создать Лигу Программистов без уточнения языка. Ведь язык на самом деле не важен. Программиста делает программистом не знание языка, а стиль мышления.
Все вставляли картинку, что бы было заметно. Чем я хуже?
ps: Программисты вообще обычно любят себя называть разработчиками, но т.к. большая часть населения этого не знает, некоторые могут неправильно интерпретировать название "Лига Разработчиков". И да, никто не читает описание.