Из риелтора в разработчика игр 2. «Операция: Андроид»

Добрый день, Хабр.

Две моих предыдущих статьи (раз, два) вы приняли очень тепло и даже выдвинули в топ, поэтому и продолжение не заставило себя ждать. Всего-то полгода, не такой уж и большой срок. Для тех, кто не в курсе — меня зовут Тим, мне 30 лет, я риелтор и сейчас пытаюсь стать разработчиком игр, все еще не умея программировать. А как оно все идет — я вам расскажу и покажу. Статья красочная, приготовьтесь. Заходите под кат, добро пожаловать.

image
Краудфандинг не панацея

Те, кто читал мою предыдущую статью, знают, что я занимался разработкой своей игры для ПК — «Тени Форвуда». Если быть точнее я создал очень маленькую демо-версию с описанием и выложил ее в открытый доступ везде, куда дотянулись руки. Работал я над проектом один, поэтому все трудности решал самостоятельно. И вот, в какой-то момент, было принято решение задействовать краудфандинг-платформу для сбора средств на разработку.

Сказано-сделано, проект был подшлифован и запущен на одной из отечественных платформ. Запрошенная сумма была не очень большой, но и не маленькой — 360 000 рублей. По моим подсчетам этого бы хватило на завершение игры до конца года. К сожалению, нужная сумма не набралась, к концу срока я едва дополз до отметки в 70 000 тысяч, но это не было для меня неожиданностью.

image

Я человек взрослый и отлично понимал, что шансы на успех тут очень небольшие, поэтому был готов к такому исходу еще до поиска краудфандинг-платформы. Тем не менее, я продолжил разработку «Теней» и работаю над ними и по сей день. Можно даже сказать, что сейчас я немного расслабляюсь, когда сажусь за этот проект и довожу его до ума. Есть что-то прекрасное в этой мрачности средневекового дарк-фентези.

imageimageimage

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

Android и BDSM

Если вам нужен джин для исполнения желаний — Unreal Engine 4 самый правильный выбор. При начале работ с платформой Android я решил наступить на те же грабли что и в начале своего пути: создать кликер. В этот раз решение было обдуманным, и кликер стал ремейком моей первой поделки. Игрой я его назвать не смогу, этот проект был нужен для понимания моих возможностей и работоспособности UE4 на мобильной платформе.

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

imageimageimage

Благодаря этому проекту я понял пайплайн работы на Андроиде. Самой сложной проблемой тут является, как можно догадаться, оптимизация. В сети нашлась куча гайдов, рассказывающих о том, как уменьшить нагрузку на телефон пользователя: как выставить освещение, настроить материалы и эффекты, как оптимизировать HUD. Хорошенько все это переварив, я тут же принялся за следующий проект.

Dungeon Trails стал игрушкой, в которой я постарался применить весь свой небольшой накопленный опыт. Никаких сложных материалов, только однотекстурный unlit, никакого освещения или процедурных теней (на всем игровом поле нет и не будет ни одного источника света), никаких сложных\per-frame функций.

Результат получился, как это сейчас говорят — not great, not terrible. По крайней мере, этот продукт я могу назвать полноценной игрой для телефона. Да и моей аудитории он понравился. Простая механика карточной игры, немного музыки, спецэффектов, рандома и вуаля. Ссылок я вставлять не буду, найти его в Google Play не сложно.

imageimageimage

С точки зрения наполнения эта игра оказалась очень недорогой: на все про все ушло порядка 150 долларов. Один набор монстров, один набор иконок и эффектов, несколько музыкальных треков. Идея рисовать все самому быстро ушла в утиль, не хотелось тратить слишком много времени. На игровом поле присутствует несколько мешей по 6–12 полигонов. Объем приложения около 50 мегабайт. Без музыки — 35+ мегабайт. Вполне компактно.

А вот с точки зрения производительности все не так безоблачно. Я продолжаю упрощать чертежи и выкидывать все ненужное как из игры, так и из памяти, но все еще есть куда стремиться. Кроме того некоторые модели телефонов иногда подкидывают сюрпризы и с ними тоже надо справляться.

Давид и Голиаф

И все же простые карточные игры — это не тот результат, на который я рассчитывал. Даже на мобильных платформах есть проекты, которые у меня вызывают тень завистливой улыбки и желание произнести фразу Зохана: «Я вас уничтожу!». Например, The Elder Scrolls: Blades или по-простому Blades от Bethesda.

Именно поэтому у меня в шапке фокусника есть еще проекты, над которыми я работаю сейчас. Один из них — конкурент Blades, пока, правда, без названия. На его создание меня подтолкнули такие игры как: «Legend of Grimrock», «Darkest Dungeon» и, собственно, «Blades». Их убойную смесь я и хочу реализовать в очень скором времени.

imageimageimage

Бесконечные, процедурно генерируемые подземелья-комнаты, горы лута, крафт, развитие персонажа и своего маленького поселения, стопка мини-игр и многое другое. На данный момент — это самый сложный проект на Android для меня (и намного сложнее «Теней Форвуда»), но аппетит пришел и его нужно утолять. Сейчас проект в глубокой альфе, однако, стабильно работает на смартфоне.

Большой проблемой для меня стало использование Point Light в этих самых подземельях, ведь у UE4 очень строгие ограничения на их количество. Но и это я использовал себе на руку. Поиск источника света станет одной из фишек игры. Вообще разработка под Android оказалась настоящим фестивалем компромиссов. Красочный такой фестиваль, с фейерверками.

Но не все так безоблачно в этом королевстве.

Troubleshooting

Слово-то какое, а? Сразу чувствуешь себя умным. Когда я только начинал изучение UE4, то столкнулся с такой темой: «Не начинайте работать с Unreal Engine 4, если вы не готовы \ не способны учиться». Мне кажется, что эта фраза должна стоять над кнопкой «Скачать UE4» на официальном сайте. Я люблю читать и читаю довольно много, но никогда в жизни мне не приходилось читать / смотреть и понимать так много узкоспециализированной литературы на разных языках, как при работе с этим движком.

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

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

Самым тяжелым этапом для меня стал третий (нынешний этап). Сейчас я могу решить почти любую проблему, не открывая страничку браузера или документацию, а моя основная головная боль — это ошибки / ограничения движка, которые он подкидывает на свое усмотрение. Но и с ними я научился бороться. К примеру, самое страшное, что сейчас может подкинуть UE4 — это ошибка «Line:107». В какой-то момент движок может повредить один из файлов (или потерять на него линк) .uasset или .umap, после чего проект просто перестанет открываться или будет падать при любых операциях после открытия.

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

Первый вариант может быть полезным, если проект маленький, но если проект крупный, а актуальных бэкапов нет, то…

image

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

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

Эпилог

Прошло полгода с публикации предыдущего поста, я закончил два маленьких проекта и работаю над еще тремя. Те самые «Тени Форвуда», «Конкурент TES: Blades без названия» и один проект на космическую тематику. Количество часов, потраченных за движком уже не сосчитать, я занимаюсь этим делом как проснусь и до поздней ночи, пока глаза не начнут болеть.
И все еще получаю чувство глубокого удовлетворения каждый день. Хотя доходит до того, что даже во сне вижу наиболее оптимальные решения некоторых чертежей (клиника, как говорится).

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

По традиции, у меня есть группа во ВКонтакте, где я каждую неделю, а иногда и чаще, делюсь новостями. Если вас вдруг что-то заинтересовало или знаете интересную вакансию, то добро пожаловать. А я возвращаюсь обратно к разработке и готовлюсь отвечать на вопросы, если они у вас возникнут :)

© Habrahabr.ru