Гипер Казуальные игры как промежуточный этап роста программиста

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

Как я попал на ГК разработку.

В моем прошлом посте было рассказано, как я пришел в программирование и чем занимался, пока растил свой скилл. В большей степени преподавал и делал различные инди-игры и выпускал их в Google Play.
Сразу стоит отметить, что это было больше для практики, нежели, чем желание заработать на этом денег. Как итог - игры были выпущены, но особо никому не интересны.
Собственно, как я пришел на разработку. 2020-й год как ни крути, но был дико сложный. Мой микробизнес по преподаванию основ программирования скатился, так как я сотрудничал с компаниями, где преподавать нужно было оффлайн, а на онлайн у меня уже не оставалось мотивации.
Когда денег стало не так много, решил сделать небольшой симулятор разработчика игр и выложить его в стор, чтобы это стало моим портфолио. Так как конечной целью было - это устройство программистом в какую-нибудь студию.
Но реальность такова, что в игровые студии не берут без хорошего опыта и кучи реализованных проектов на все платформы сразу, да и чтоб знаний было как у сеньора, а зарплата как у джуна.
Собственно, наткнулся на объявление в телеграмм канале, что ищут джуна на разработку ГК игр. Подумал и решил, что стоит попытаться устроиться туда, так как на момент подачи своей заявки, все крупные студии уже успели меня отвергнуть.
Мне снова дали очередное тестовое задание, которое было выполнено в течении трех часов, после получения, поэтому меня сразу взяли.
Это было шоком, не знал, что так быстро можно было получить работу, а то целый месяц мне отказывали по разным причинам. Собственно, так я и стал программистом ГК игр в студии.

Первый проект

Работа в студии строится по определенным этапам:
- Геймдизайнеры предлагают различные варианты новых игр
- СЕО договаривается с издателями на выпуск тех, что будут утверждены после принятия ГДД
- После того, как игра выбрана, собирается команда, где есть один программист, художник UI, геймдизайнер и 3Д-шник.

Но, мой первый проект пошел не по такому плану. Он был взят на аутсорс, а я был единственным человеком, который занимался его реализацией. Графику мне скидывали частями, а чаще всего приходилось ее самому выкачивать с "фигмы".
Было множество различных СДК, с которыми я не был даже знаком, не говоря уже об их интеграции.
Работы там было минимум на месяц, но рынок такой, что проект надо сделать в течении 2-3 недель. По факту, игру я сделал за 5 недель, так как проект был признан не ГК, а просто казуальным, мне простили косяк со временем.
Основной сложностью в этом проекте было - это огромное количество данных, которые нужно было хранить.
Кроме этого, проект не должен был превышать 55мб, это крайне частое условие при разработке приложения. Не без труда, но мы смогли добиться нужного объема.
По завершению этого проекта, мне казалось, что сложнее уже точно стать не может... Но как же я ошибался :)

Можно понять основную механику первого проекта
Можно понять основную механику первого проекта

Последующие проекты

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

Новый проект представлял из себя гоночки, где нужно было реализовать крутое поведение байка, но только, чтобы без всяких дополнительных физических сил. Сначала я написал три или четыре контроллера, которые бы соответствовали требованиям, но они долго не подходили, так как нужно было похожее поведение на физическое. Поковырявшись с физикой объекта, смог избавиться от инерции, пересоздал колесный коллайдер, чтобы поведение было похоже на заднеприводное. Стандартный Wheel Collider крайне ужасный от Unity, особенно если мы используем его на 2 колеса.

С таким поведением байка было очень много трудностей
С таким поведением байка было очень много трудностей

Сложность работы с ГК - это максимально отзывчивое управление, никакой реалистичности и в помине не нужно. В итоге, на одно действие пальца нужно было реализовать красивый наклон, поворот персонажа и смещение (жесткое) в сторону. Кроме всего этого, нужно было добавить ботов в игру, это оказалось очень просто, так как сложный ИИ писать не нужно. Сроки немного затянул, но в итоге смог показать, что большинство задач мне по плечу.

Следующий проект. Вот за третий проект максимально обидно. Он был сделан вовремя, без лишних трясок со стороны и все механики были реализованы идеально.

Эта игра была взята за основу
Эта игра была взята за основу

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

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

Основная механика четвертого проекта
Основная механика четвертого проекта

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

Основная механика - вилять жопой
Основная механика - вилять жопой

Абсолютно случайно, одна крупная студия (называть ее не буду) искала к себе мидла-сеньора. Мой товарищ работает в этой студии и предложил руководству прособеседовать меня. Я сразу сообщил, что мой уровень ниже, чем они ищут, но их это не смутило, поэтому мне дали задание. Вечером того же дня я его сделал, а на следующий день прошел собеседование. Через несколько дней еще одно и в итоге я теперь буду делать мобильную 2D ММО.

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

Выводы

Плюсы:

- Скилл растет очень быстро, так как приходится делать много проектов за короткие сроки
- Очень быстро выстраиваешь паттерн, по которому строишь следующие проекты
- Верстка UI для мобилок не вызывает страха и сложностей
- Оптимизация проекта под слабые платформы теперь кажется нормой
- Сжатие памяти приложения начинается с самого начала
- Быстро избавляешься от непонятных связей между объектами и используешь адекватную архитектуру
- Получаешь опыт в реализации огромного количества механик

Минусы:

- Иногда говнокодишь (или часто, если сроки горят)
- Малые сроки реализации - много стресса
- За любой косяк перед релизом выносят мозг
- В выходные докопаются чтобы что-то делать
- После показов заказчику добавляются новые механики, которые могут сломать игру
- Зарплата начинающего разработчика не соответствует затраченным силам
- QA постоянно находит баги (это не минус, просто бесит)

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

5151
19 комментариев

Все студенчество хотелось делать игры. Потом начал смотреть на российский рынок игр и понял, что не готов постоянно пилить три в ряд и различные ГК. Так и стал iOS разработчиком.

4

Согласен, большинство вакансий, которые сейчас есть на рынке - это разработчики ГК. 

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

3

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

теперь буду делать мобильную 2D ММОчерез пол года будешь жалеть, что не гк занимаешься) проблема больших проектов в том что все приедается и превращается в рутину

1

Через полгода выпущу еще одну статью для сравнения) 
На данный момент мне нравится новое место работы, если в будущем я пойму, что это не мое, то вернутся к ГК достаточно просто. 

Кстати, UI под safe zone корректируешь? И симулятор моб. устройств от юнити юзаешь?