Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

спойлер игры на экране
спойлер игры на экране

Привет, меня зовут Влад, я фаундер крупной Чешской компании-паблишера. Уже 3 года мы создаем мобильные приложения под iOS, Android, Huawei, Mac и по Винду - офисные утилиты и различные полезные приложения. В нашей компании я выполняю функции одного из фаундеров, дизайнера, менеджера, руководителя отдела разработки, поддержки и все остальные должности, какие у нас есть - я занимаюсь всем. Кроме рекламы и самого кода, у нас есть еще два равных партнера на этих позициях. Но я хотел рассказать не об этом.

Сейчас я в процессе создания собственной игры для iOS на движке Unity, используя Midjourney, ChatGPT и другие нейросети. Они помогают мне в создании дизайна, но могут ли заменить человеческий труд? Буду рассказывать в этой статье. Очень много скриншотов ниже.
Спойлер - не могут.
Спойлер 2 - еще в процессе создания, не закончил.

Душа всегда лежала к творчеству, всегда хотел и мечтал делать игры.

Я увлекаюсь китайским чаем с 2018 года. Каждый день с утра до вечера я пью чай и коллекционирую чайную посуду. Я нашел уже много редких сортов чая и посетил все чайные в Москве и на Бали. Я подсаживаю на чай своих друзей и считаю его важной частью своей жизни.

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

Как MidJourney заменил двух дизайнеров в вашей команде.

По основному бизнесу у меня есть приложение - циферблаты для Apple Watch. Там сотни коллекций дизайнов, все они нарисованы вручную. По факту, это просто статичные изображения с различным дизайном, с пустым местом для цифровых часов. Только таким образом можно создать легальное и безопасное приложение. Все, что вы когда-либо видели в Инстаграме, где якобы двигаются стрелки или супер безумные дизайны - это все фейк. Это приложение - Cloclogy. Вы запускаете сначала приложение на часах, потом запускаете фейковую гифку. Это не изменит циферблат на экране блокировки - это просто развлечение. Мое приложение дает пользователям возможность установить красивые циферблаты как обои на экране блокировки. Вариантов дизайна много, и пользователям это нравится. За последние 2 года у нас было уже более 100 тысяч пользователей, 8,5 тысяч пятизвездочных отзывов и рост всех показателей.

Все циферблаты рисовали вручную два дизайнера в Illustrator и Figma. Одна коллекция стоила как пара чашек кофе, а бюджет на поддержку приложения составлял менее 500 долларов в месяц. Весь бюджет уходил на оплату работы дизайнеров. В июне 2023 года я решил обучить MidJourney создавать циферблаты вместо дизайнеров. В Телеграме я подписался на Вову Секрет Дизайн и иногда просматривал репосты канала Родиона про AI. У Родиона получаются просто невероятно крутые результаты по нейросетям, и мы решили попробовать сделать несколько промтов, чтобы в будущем мы смогли самостоятельно размножать коллекции без ограничений, меняя 1-2 слова в запросе. Задача стояла в создании под наши технические требования 20 промтов, с помощью которых мы сможем работать над генерацией дизайнов.

Меньше слов. Вот какие результаты получил MidJourney после магии Родиона:

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

За две недели мы создали все 20 промптов. Я передал их команде, и начался процесс генерации. Мы создали коллекции, связанные с праздниками, фильмами, сериалами и играми. Теперь мы можем создать одну коллекцию бесплатно в фигме за 5 минут и загрузить ее в приложение. Это позволяет нам быстро реагировать на изменения трендов. Стоимость создания 20 промпов равна стоимости работы двух дизайнеров за один месяц. Дизайнеры ушли пить кофе, и MidJourney заменил их.

Создать такие циферблаты - это рисовать 10 часов в Illustrator. MidJourney создает 10 вариантов за 15 секунд. Вернемся к игре.

Разработка игры. Часть 1. ChatGPT Сценарий.

Я сразу решил использовать MidJourney и ChatGPT при создании игры. Уже больше полугода я вообще не пользуюсь Google. Все запросы я делаю в GPT, и с ним же могу вести долгие беседы, пока не разберусь в теме. Я начал прорабатывать сценарий игры.

Я никогда не создавал игр, но у меня есть опыт, полученный в школьные годы. Когда у меня был iPhone 4, я провел сотни часов, играя во все популярные игры того времени, такие как Doodle Jump, Angry Birds, Subway Surfers, Hill Climb Racing, Clash of Clans и многие другие. В процессе создания своей игры я опирался на воспоминания об этих играх и их атмосферу.

Развитие сценария было таким: я хотел создать игру, тема - выращивание китайского чая. Значит, будет ферма, где мы будем выращивать китайский чай и делать с ним что-то. Из этого мы построим игровой процесс. Я скачал множество ферм и начал изучать их. Оказалось, это не так просто.

Главные тайтлы - Hay Day и FarmVille 3. Я также смотрел на Smurfs, хотя они не очень популярны сейчас.

Статистика с Sensortower
Статистика с Sensortower
Статистика с Sensortower 
Статистика с Sensortower 
Статистика с Sensortower
Статистика с Sensortower

Я выбрал FarmVille как главного конкурента и начал играть, чтобы изучить, как они создали свою игру. Эта игра действительно впечатляет: она выполнена в реальном 3D, каждая модель детально проработана, все объекты анимированы, и визуально она выглядит очень привлекательно. Яркие цвета и плавные анимации делают ее идеальным местом для тех, кто ценит дизайн до мельчайших деталей и стремится к совершенству.

FarmVille3 скриншот игры
FarmVille3 скриншот игры

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

Внутри игровых процессов существуют разные локации и варианты оформления предметов, при этом каждый скин – это не просто визуальное изменение, а также включает в себя уникальные способности и характеристики.Хорошо, обратимся к помощи ChatGPT. Начал постепенно обучать его, начиная с четвертой версии, и начал вести с ним диалог по игре. Я предоставил ему общие идеи сценария игры и описал необходимые игровые процессы. Изначальный план сценария включал в себя создание симулятора выращивания китайского чая, начиная с одного сорта чая. Необходимо было детально разработать и описать логику всех этапов производства чая, чтобы обеспечить интересный и увлекательный геймплей. Кроме того, я планировал добавить игровые механики и мини-игры, подобные тем, которые есть в игре "Смурфики:", чтобы сделать игру разнообразной и увлекательной.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

неплохо. Я начал разрабатывать ТЗ и обучать ChatGPT, предоставляя ему статьи и объясняя, что такое чай и как происходит его выращивание. С помощью веб-пилота я проверял статьи и указывал, что является правильным, а что нет. В общем, я могу сказать, что ChatGPT способна усваивать большое количество информации. Однако, необходимо очень внимательно следить за тем, что она выдаёт, поскольку иногда она начинает выдавать нелепые или неправильные ответы.
Я работал над предоставлением информации в течение всего дня, выявляя смыслы и создавая базу данных. Эту базу, содержащую особенно важные фрагменты и части информации, я сохранял в Figma для дальнейшего использования при разработке дизайна.

Первый план, который мы составили с ChatGPT выглядел так:

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

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

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

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

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

ChatGPT

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

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

ChatGPT действительно отлично расписывает игровые механики и существенно упрощает процесс формулирования технических заданий для разработчиков. Он позволяет ясно и конкретно описать, что именно я хочу видеть в игровом процессе. За такую полезную помощь, я бы дал 5 баллов!

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Процесс разработки строится следующим образом: дизайнер создает статические изображения, а затем моушн-дизайнер преобразует их в спрайты (разбивая ассеты на кадры анимации) для Unity.

Вот так выглядит готовый архив со спрайтам для 1 элемента (огонь для печки),  25 кадров + видео пример как должна выглядеть анимация.
Вот так выглядит готовый архив со спрайтам для 1 элемента (огонь для печки),  25 кадров + видео пример как должна выглядеть анимация.

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

Представьте минимальный набор для игры, например, моей фермы, включающий:

  • Чайный куст с 4 состояниями.
  • Колодец с разными состояниями.
  • Насосы.
  • Удобрения.
  • Вода.
  • Ножи.
  • Печки.
  • Стеллажи.
  • Лавки.
  • Упаковки.
  • Сортировка.
  • Граммовки.
  • Валюта.
  • Алмазы.
  • Ускорение.
  • Юнит-экономика.

Теперь представьте, что каждый из этих элементов, локаций и скинов умножается на 10. Это позволит создать магазин, в котором игроки могут приобретать различные скины для объектов в игре за монетки. Каждый скин будет обладать уникальными свойствами и влиять на взаимодействие с другими объектами в игре. Такой подход требует детальной проработки логики и баланса игровых механик.

Дальше я принял решение удалить всё то, что было добавлено в чате за последние 5 дней. Я приблизительно оценил финансовые затраты и понял, что готов потратить эквивалент 3 месяцев разработки с участием 2 Unity-разработчиков, дизайнера-промпт инженера, моушн-дизайнера, а также настройку ASO для App Store и рекламные кампании.
Создать многоразовую ферму класса, сравнимого с FarmVille и Hay Day, всего с 2 разработчиками и 1 дизайнером - невозможно. Поэтому я уменьшил план по функционалу и решил создать минимальный продукт (MVP), чтобы выйти на рынок, а затем постепенно развивать его и добавлять новые игровые механики.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

Когда я убрал почти все игровые процессы и оставил только минимальный набор для MVP, я осознал, что логика фермы, где нужно выращивать урожай, собирать предметы, обновлять здания, выполнять задания и набирать очки, стала нецелесообразной для данного этапа разработки.
Я решил создать простую игру-кликер с элементами быстроты и временными ограничениями, что-то вроде Doodle Jump или Subway Surfers. В ней будет задача собирать монетки в ограниченное время и выполнить определенные условия игры. Все остальные игровые механики будут добавлены в последующих версиях, и на данный момент я остановился на этом.

В игре «Чайная Ферма» ваша задача — вырастить чайный куст, собрать чай, упаковать его и заработать максимальное количество монеток за ограниченное время. Это соревнование на скорость и навыки управления чайной фермой.

Соревнование: Игра имеет ограниченное время, 90 секунд. За это время игрок должен максимально эффективно управлять своей фермой, выращивать, собирать и упаковывать чай, чтобы заработать как можно больше монеток.

Кастомизация: Игроки могут кастомизировать внешний вид предметов, таких как колодец, лейка, нож, глинная печь и упаковка.

Цель Игры: Целью игры является заработать максимальное количество монеток за ограниченное время и подняться в рейтинге лучших игроков.

ChatGPT

Решил сделать игру вертикальной, наверное, потому что мне так удобнее, а ещё у меня есть свои любимые игры, такие как Subway Surfers, Temple Run и Doodle Jump, и я решил вдохновиться ими. В конечном итоге я делаю игру, которая мне нравится и подходит моему вкусу. Так что формат вертикальной игры оказался ближе именно для меня, я обычно не предпочитаю держать телефон горизонтально. Всё сводится к личным предпочтениям и ощущениям.

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

Спустя 9 дней переписки, сложился финальный сценарий игры:

Этап 1: Выбор Земли (Tap): Игрок начинает игру с пустыми участками земли. Предвыбранным инструментом являются семена чайного куста. На экране появляется подсказка: "Нажми на участок земли, чтобы посадить чайный куст!"

Этап 2: Выбор Чайного Куста (Tap): В MVP игры доступен только сорт чая «Да Хун Пао." Остальные сорта заблокированы и недоступны. Подсказка: »Выбери чай, который ты хочешь посадить!"

Этап 3: Рост Чайного Куста (Анимация): В игре предусмотрено 3 вида размеров чайного куста: заростки, маленький, средний и большой. Анимация роста куста происходит быстро, за 2-3 секунды.

Этап 4: Выбор Инструмента (Tap): Игрок выбирает инструмент лейки для полива куста. Однако лейка пуста, и появляется подсказка: "Ой! Лейка пустая, наполни ее в колодце!"

Этап 5: Наполнение Лейки (Tap): При тапе на колодец происходит анимация наполнения водой лейки из колодца. На экране отображается шкала уровня воды в лейке. Затем игрок тапает на чайный куст (предвыбран инструмент лейка в панели инструментов), и начинается анимация полива водой.

Этап 6: Завершение Роста (Анимация): Когда чайный куст достигает последнего состояния (большой куст), на экране показывается подсказка, указывающая на инструмент ножа для сбора урожая. Куст подсвечивается, и можно видеть анимацию пульсации куста и блеск листьев. Игрок тапает на инструмент ножа и затем на куст, чтобы срезать его.

Этап 7: Обжарка в Печи (Tap): После сбора чая, чай автоматически улетает в глиняную печь. Тап на печи запускает процесс обжарки чая. Игрок видит анимацию, как чай меняет цвет с зеленого на темно-коричневый. Подсказка: "Нажми на печку, чтобы начать обжарку чая!"

Этап 8: Упаковка Чая (Drag and Drop): После обжарки чай автоматически улетает в упаковочную станцию. Игрок перетаскивает чай в упаковочную машину. Здесь показывается анимация упаковки чая в пакеты.

Этап 9: Продажа Чая (Drag and Drop): Упакованный чай перетаскивается в лавку, где он автоматически продается. Игрок получает монетки за проданный чай.

Этап 10: Показ баланса (Анимация и Звуки): Игрок видит, как его баланс увеличивается, а также слышит звуки падающих монеток.

Обьекты, которые нужно было отрисовать для игры:

Для игры «Чайная Ферма» нам понадобятся следующие объекты и инструменты:

Объекты:

  • Чайный куст (разные сорта с разными размерами: маленький, средний, большой) — 10 сортов по 3 размера = 30 предметов.
  • Колодец — объект для набора воды в лейку для полива чайных кустов (10 скинов).
  • Лейка — инструмент для полива чайных кустов (10 скинов).
  • Нож — для сбора сухих листьев чая (10 скинов).
  • Глинная печь — для сушки чая перед упаковкой (10 скинов).
  • Упаковка — объект для упаковки собранного чая перед продажей (10 скинов).
  • Монетки — основная игровая валюта, которую игроки получают за продажу чая (1 скин монетки).
  • Наборы монеток — пакеты монеток, которые игроки могут приобрести за реальные деньги (маленький, средний, большой).

С ChatGPT все, переходим к дизайну.

Разработка игры. Часть 2. MidJourney + Adobe FireFly + Figma / Illustrator Дизайн.

Для начала я собрал себе визуальные компоненты, какие-то скриншоты, чтобы хоть как-то структурировать все идеи, которые получил от ChatGPT. Получились вот такие артборды в Figma.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

Такие мудборды помогают понимать картину, а еще удобно передавать это всё дизайнерам и разработчикам, чтобы они могли войти в тему и понимали, что я вижу у себя в голове, когда выдаю ТЗ, и что именно я имею в виду под "печка для обжарки чая" и почему чайный лист должен иметь такую форму, а не какую-то другую.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Стиль который вижу для игры
Стиль который вижу для игры

Понимание того, что хочу создать, у меня есть, теперь нужно визуализировать это. Упоминание Родиона в начале статьи не случайно - если бы не он, то игра вообще не получилась бы. Этот человек просто гений нейросетей, и мы отлично сработали вместе. Родион мгновенно воплощал мои идеи в жизнь - я давал ему 2-5-минутные аудио в телеге (прошу прощения, конечно), и он сразу же выдавал результат, именно то, что я имел в виду.

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Использовали и MidJourney и Scenario
Использовали и MidJourney и Scenario

Благодаря ChatGPT у меня уже были ТЗ по всем предметам, онбордингу новых игроков и сценарию игры. Мы просто двигались по задачам, раскидывая их в трелло и начиная работу.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

Дальше мы перешли к созданию локаций и объектов на карте.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Примеры локаций и задних фонов с тематикой плантации чая в горах.
Примеры локаций и задних фонов с тематикой плантации чая в горах.

Пример первого логотипа игры и главного экрана

Иероглиф чай
Иероглиф чай
Пример карты игровой
Пример карты игровой
Еще локация для игрового поля
Еще локация для игрового поля
Чайная лавка, возможно использование для мини игр, можно анимировать внутри лавки какие то движения 
Чайная лавка, возможно использование для мини игр, можно анимировать внутри лавки какие то движения 
Чайный магазин
Чайный магазин
Еще локация для игры
Еще локация для игры

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

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

Простите за качество, лучше не нашлось
Простите за качество, лучше не нашлось

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

Первая вариация игрового поля. Мне хотелось создать что-то похожее на майнкрафт с блоками и ячейками земли.
Первая вариация игрового поля. Мне хотелось создать что-то похожее на майнкрафт с блоками и ячейками земли.
Первый вариант логотипа и лаунч скрина для игры, нашли шрифт Самурай
Первый вариант логотипа и лаунч скрина для игры, нашли шрифт Самурай
Накидали вариант игрового поля в фигме, каждый блок это отдельная ячейка земли, а землю сгенерировали в MJ
Накидали вариант игрового поля в фигме, каждый блок это отдельная ячейка земли, а землю сгенерировали в MJ
Мой m2 pro знатно конечно потел открывая наш фигма проект со всеми этими векторными кусками, проект весил под 2гб рам.
Мой m2 pro знатно конечно потел открывая наш фигма проект со всеми этими векторными кусками, проект весил под 2гб рам.
Сетка игрового поля с ячейками в процессе сбора
Сетка игрового поля с ячейками в процессе сбора
Первый вариант панели инструментов
Первый вариант панели инструментов

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

Первые примеры логотипа и мое ТЗ по лого от ChatGPT:
Первые примеры логотипа и мое ТЗ по лого от ChatGPT:

Горный Пейзаж: Занимает большую часть фона иконки. Это может быть силуэт гор с зелеными террасами, символизирующими чайные плантации. Это сразу даст понимание, что игра связана с природой и чаем.Чайник: Размещен в правом верхнем углу иконки, очень крупно. Это может быть стилизованный чайник, который сразу ассоциируется с процессом заваривания чая. Иероглиф "чай" (茶), выгравированный на чайнике, добавит глубину и культурный контекст в иконку приложенияЧайные Листья Da Hong Pao: Один или несколько крупных чайных листьев могут быть размещены на переднем плане, возможно, рядом с чайником или на фоне гор.Цветовая Палитра: Зеленый для плантаций и чайных листьев, коричневый или серый для гор и черный или темно-серый для чайника. Это создаст контраст и сделает иконку более яркой и привлекательной.Стиль: Все элементы должны быть выполнены в едином стиле, который соответствует общему дизайну игры.

ChatGPT

Спустя 2-3 дня работы, вот такой игровой экран получился:

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Изменять и адаптировать их для создания спрайтов и анимаций в Unity было невозможно. Тогда мы перешли на другую нейронную сеть от Adobe, и начали получать результаты в векторном формате. Это давало нам возможность работать с ассетами прямо в Figma. Родион отправлял мне векторные изображения, которые я мог изменять, менять цвета и расставлять на экране.

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

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

Как я ставлю ТЗ на чайную лавку, пример:

Можно лавку сделать как типа ларек с лимонадом, как в Америке типа детишки продают лимонад перед домом, чисто стол и вывеска

я
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

Через 10 минут Родион выдает:

Лавка чайная по моему тз вышла такая
Лавка чайная по моему тз вышла такая

Я охерел просто

Сделали траву более пушистую, накинули лавку на газончик, вот такое получается
Сделали траву более пушистую, накинули лавку на газончик, вот такое получается
Также поменяли колодец на новый дизайн плоский, чтобы все ассеты были в одном стиле
Также поменяли колодец на новый дизайн плоский, чтобы все ассеты были в одном стиле
Первый рабочий вариант игрового поля, его будем использовать, на него ставим уже и сажаем обьекты и локации
Первый рабочий вариант игрового поля, его будем использовать, на него ставим уже и сажаем обьекты и локации
я в ответ накидываю где ставить обьекты и где делать игровое поле с плантацией
я в ответ накидываю где ставить обьекты и где делать игровое поле с плантацией
Первая версия плантации, все в плоском стиле, карта, обьекты, все выходит в одном стиле
Первая версия плантации, все в плоском стиле, карта, обьекты, все выходит в одном стиле
но у нас нейронка, мы за 5 минут можем попробовать накинуть абсолютно другой дизайн плантации 
но у нас нейронка, мы за 5 минут можем попробовать накинуть абсолютно другой дизайн плантации 

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

Ну поехали, первые варианты кустов, это дамы и господа Да Хун Пао, 3 состояния
Ну поехали, первые варианты кустов, это дамы и господа Да Хун Пао, 3 состояния
Печка для обжарки чайных листьев, ТЗ было сделать как тандыр, похоже?
Печка для обжарки чайных листьев, ТЗ было сделать как тандыр, похоже?
Дальше нам нужен был персонаж для игры, сделали чайного гуру деда, который будет онбордить персонажа, MidJourney шпарит.
Дальше нам нужен был персонаж для игры, сделали чайного гуру деда, который будет онбордить персонажа, MidJourney шпарит.
Вот и вырисовывается уже игровое поле, накидываем дорожку. обновили таймер, кнопки.
Вот и вырисовывается уже игровое поле, накидываем дорожку. обновили таймер, кнопки.

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

Фармвилл плантация - кусок земли
Фармвилл плантация - кусок земли
Добавил полосок, уже выглядит получше
Добавил полосок, уже выглядит получше
Сохраняем вот такой уже UI кит для игры, инструменты, обьекты, кусты, UI и кнопки, уже есть понимание по дизайну.
Сохраняем вот такой уже UI кит для игры, инструменты, обьекты, кусты, UI и кнопки, уже есть понимание по дизайну.
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

ChatGPT очень сильно помогает писать текста, сокращать их, копирайтинг это номер один что можно делать с ним.
ChatGPT очень сильно помогает писать текста, сокращать их, копирайтинг это номер один что можно делать с ним.
Работаем над интерфейсом. В первом варианте магазина, иконки из шрифта Font Awesome выглядят отлично в игре, особенно с обводкой. Прямо красота.
Работаем над интерфейсом. В первом варианте магазина, иконки из шрифта Font Awesome выглядят отлично в игре, особенно с обводкой. Прямо красота.
Самые приятные рабочие моменты, пить чай и делать игру про чай.
Самые приятные рабочие моменты, пить чай и делать игру про чай.
Пробуем разные варианты расположения объектов на игровом поле и разные ассеты для дорожек. Некоторые части просто делаю в Фигме руками для теста. Для локаций добавили камни снизу для создания эффекта глубины. Камни были сгенерированы нейронкой.
Пробуем разные варианты расположения объектов на игровом поле и разные ассеты для дорожек. Некоторые части просто делаю в Фигме руками для теста. Для локаций добавили камни снизу для создания эффекта глубины. Камни были сгенерированы нейронкой.
Тем времением проект выглядет уже так, и это только онбординг новых игроков.
Тем времением проект выглядет уже так, и это только онбординг новых игроков.
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

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

Сделали еще вторую плантацию на карте и добавили функцию, что ее можно открыть за монетки. Вот такой дизайн получился, облака и замок - работа нейронки. Выглядит отлично!
Сделали еще вторую плантацию на карте и добавили функцию, что ее можно открыть за монетки. Вот такой дизайн получился, облака и замок - работа нейронки. Выглядит отлично!
Вариант интерфейса с уровнями, которые можно открывать. Тут уже идет просто сборка интерфейса.
Вариант интерфейса с уровнями, которые можно открывать. Тут уже идет просто сборка интерфейса.
Работаем над серпами и ножами для срезки чая. Надо сделать по 10 скинов для каждого предмета в магазине.
Работаем над серпами и ножами для срезки чая. Надо сделать по 10 скинов для каждого предмета в магазине.
Разрабатываем разные экраны раздела с уровнями и сразу же разрабатываем инструкции для всех участников проекта о том, что каждый экран должен выполнять.
Разрабатываем разные экраны раздела с уровнями и сразу же разрабатываем инструкции для всех участников проекта о том, что каждый экран должен выполнять.
Сделали дизайн раздела с бонусами
Сделали дизайн раздела с бонусами
Получаем финальный дизайн инструментов с подсветкой и финальное расположение на экране.
Получаем финальный дизайн инструментов с подсветкой и финальное расположение на экране.
Проработали вариант экрана результата игры с кейсами.
Проработали вариант экрана результата игры с кейсами.

Флоу для кейсов разрабатывался следующим образом:

  • После каждой игры игроку показывается блок с кейсами - кейсы содержат редкие предметы, игрок не знает, какие именно, включая любой предмет из магазина и монеты в любом объеме.
  • Есть 3 слота под кейсы, и они открываются слева направо один за другим.
  • На экране результатов игры убираются обжаренные листики и упаковки, оставляя только монетки и зеленые листики.
  • Каждый слот для кейса имеет минимальный уровень, который необходим для его открытия. Этот уровень измеряется в зеленых листиках.
  • Каждый последующий кейс требует больше зеленых листиков, чем предыдущий: первый - 150, второй - 500, третий - 1000.
  • Каждый последующий кейс также требует больше времени для открытия. Игроку нужно подождать открытия (или ускорить его, просмотрев рекламу). Второй кейс требует 10 часов ожидания, а третий - 30 часов.
  • Кейсы могут находиться в разных состояниях: Бежевый - не готов к открытию (листики еще не собраны для него). Зеленый - готов к открытию, но требуется время или можно открыть за монеты или после просмотра рекламы. Красный - условия выполнены, и его можно открывать.
  • При нажатии на кейс, когда он красный, открывается рандомный предмет в полноэкранном режиме.

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

Экран для сбора редких обьектов в игре, чемоданчик и карта - все нейронка от Adobe, брать будете?
Экран для сбора редких обьектов в игре, чемоданчик и карта - все нейронка от Adobe, брать будете?
Попросил Родиона привести все в порядок в проектах, чтобы дальше было удобно пользоваться, сделали свою дизайн систему и компоненты, так как уже сильно проект вырос.
Попросил Родиона привести все в порядок в проектах, чтобы дальше было удобно пользоваться, сделали свою дизайн систему и компоненты, так как уже сильно проект вырос.
Тем временем проект.
Тем временем проект.
Тем временем проект в разделе компоненты
Тем временем проект в разделе компоненты
Собираем раздел магазина
Собираем раздел магазина
Родион собирает дизайн систему с разными состояниями кнопок
Родион собирает дизайн систему с разными состояниями кнопок
Пересобрали лавку, теперь точно как лавка с лимонадами.
Пересобрали лавку, теперь точно как лавка с лимонадами.
Я паралельно работаю над вариантами логотипов, их пойдет много в AB тесты, надо готовить сразу варианты.
Я паралельно работаю над вариантами логотипов, их пойдет много в AB тесты, надо готовить сразу варианты.
Работаем над скинами печек
Работаем над скинами печек
Сделали Шен и Шу пуерые деревья для плантации
Сделали Шен и Шу пуерые деревья для плантации
Варианты для упаковочных станций
Варианты для упаковочных станций
UI выбора чайного куста при посадке
UI выбора чайного куста при посадке
Все 4 положения Шу Пуера
Все 4 положения Шу Пуера
Тигуанинь куст
Тигуанинь куст
Финальные скины колодцев, леек, ножей.
Финальные скины колодцев, леек, ножей.

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

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

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

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

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

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

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

В процессе разработки сделали ASO (App Store Optimization), и, следовательно, поменяли название. Изначально, я хотел назвать игру "TeaVille" (не потому что похоже на "FarmVille", а по другим соображениям). Однако, ключевое слово "tea farm" оказалось более подходящим с точки зрения оптимизации, поэтому мы изменили название на него.

Варианты логотипов
Варианты логотипов
Сразу примеряю на экран, смотрю как получилось, разные варианты расположения и разные UI кнопок. Остановился на правом варианте.
Сразу примеряю на экран, смотрю как получилось, разные варианты расположения и разные UI кнопок. Остановился на правом варианте.

Также я создал кастомное лого, используя элементы с Freepik, и добавил на него иероглиф слова "чай". Я очень доволен тем, как получилось лого - оно выглядит ярко и привлекательно, и заказчик (то есть я сам) остался доволен результатом.

Финальный вариант логотипа, ушел на прод.
Финальный вариант логотипа, ушел на прод.

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

Небольшой итог по разделу дизайна игры с нейронками

Да, нейронные сети значительно ускорили все процессы. Мы смогли создать десятки итераций для каждого предмета, проверить несколько стилей и выбрать то, что мне нравится. Конечно, без нейронных сетей у нас ушло бы много месяцев. У меня было NFT-креатор приложение пару лет назад, и моя жена рисовала иллюстрации вручную на iPad в приложении Procreate. Это действительно сложная работа. То, что она делала за 3-5 часов, нейронная сеть может сделать за минуту и предложить десятки вариантов.

Однако не забывайте, что я сам являюсь дизайнером и имею более чем шестилетний опыт работы в Figma. Я создал более 60 мобильных приложений для разных операционных систем, а также десятки проектов SaaS. У меня есть множество навыков и опыта в этой области. Кроме того, я пригласил опытного промпт-инженера, который владеет навыками работы с нейронными сетями и имеет более 10 лет опыта в области UI/UX дизайна. У нас обоих есть обширные знания и опыт, который помогает нам эффективно использовать нейронные сети и инструменты.

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

Вот так прошло почти 2 месяца кропотливой работы над дизайном, все было готово, фигма была передана команде разработчиков, начали собирать логику игры и паралелльно работать над анимацией.

Итог по дизайну, сроки и стоимость реализации:

Сроки: 75 дней.
Дизайн: 5500$ ЗП промпт-дизайнера
Лицензия на шрифт: 450$
Подписки на нейронки: MidJourney 60$ + ChatGPT 40$ + Freepik 20$
Итого: 6070$

Часть 3. Моушен дизайн. Руками. Просто руками.

А все, нейронки пошли курить. Дальше уже не получается. Даже скинуть нечего от нейронок, результатов просто нет. Тут уже я подкючил моушен-дизайнера Лешу, так же Вова Секрет Дизайн мне подкинул супер крутого специалиста, его канал Secret Motion. Да Вова мне в целом всю команду собрал, он же и ASO ребят подкинул, вот просто еще раз слова благодарности и жму руку.

посмотрите какая красота получается:

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

Дальше все это разложено по спрайтам в 24 кадра и заливается как спрайты в юнити и получается красиво :) спустя пару итераций получилось добиться такой же плавности как на гифках выше.

Дальше нужно также заанимировать все скины из магазина и будет красота. Это в процессе работы сейчас.

Все ассеты для магазина, с тенями и без, всего получилось 88 позиций + еще обьекты на карте + UI кит, плантации, в целом очень солидный UI кит, который будет в дальнейшем использовать для следующих игр, а на UI ките интерфейсов буду собирать новые разделы
Все ассеты для магазина, с тенями и без, всего получилось 88 позиций + еще обьекты на карте + UI кит, плантации, в целом очень солидный UI кит, который будет в дальнейшем использовать для следующих игр, а на UI ките интерфейсов буду собирать новые разделы

Итог по анимациям, сроки и стоимость реализации:

Сроки: 14 дней.
Стоимость: 500$*
*Анимации еще в процессе, осталось сделать остальные скины для магазина. Думаю что уложимся в 1000$ тотал за все.

Часть 4. Разработка. Unity.

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

Это были мои старые знакомые, с которыми мы сотрудничали в течение нескольких лет. Они уже работали с нами по разным приложениям и имели опыт работы с Unity, а также специалистов, знакомых с этой платформой. У нас уже был опыт работы с Unity, и мы разрабатывали простые проекты, такие как Slime и Tower Defense. Однако этот проект был более сложным и уникальным.

Мы создавали игру с нуля, не имея аналогов на рынке. Нам приходилось делать все сами, и это был настоящий "handmade" проект. Нам приходилось разрабатывать игру с нуля, не имея готовых ресурсов или аналогов, на которые можно было бы ориентироваться.

Даже если бы у нас были аналоги, нам было бы сложно использовать обратный инжиниринг, чтобы понять, как они работают. Хотя существует игра FarmVille, и мы могли бы попытаться сделать что-то подобное, у нас не было доступа к таким же ресурсам и финансированию.

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

Первую бету ждал очень долго, начали работать в октябре по коду, первую бету залили только 10 ноября.

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

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

Эти процессы не были сложными, так как я уже выполнил подобные действия более чем 60 раз, но они были довольно утомительными и требовали выполнения множества бумажных формальностей.

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

Я создал небольшой сайт для своего приложения. Apple не придирается к разработчикам и даже разрешает использовать ссылки на Google Docs в App Store Connect. Но мне захотелось сделать красивый сайт. Хотя многие используют WordPress, я не фанат этой платформы, поэтому выбрал Framer. Он приятен в использовании и предоставляет больше возможностей. Важно упомянуть, что возникли некоторые вопросы по поводу размещения текстовых файлов для AdMob, и я пока разбираюсь с этой проблемой. Если нельзя размещать текстовые файлы напрямую, то, возможно, придется заниматься редиректами. Но с Framer не уйду.

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

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

Первый баг лист, относительно не так много багов но еще и не вся игра готова, еще нет магазина, списков лидеров, смены скинов и много чего еще.
Первый баг лист, относительно не так много багов но еще и не вся игра готова, еще нет магазина, списков лидеров, смены скинов и много чего еще.

Я сказал себе, что со временем буду вспоминать эту первую сборку и гордиться тем, как продвинулся проект.

И действительно, с каждой новой бета-версией игра становилась лучше, пока она не стала такой, как я представлял её в голове.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

С выходом первой бета-версии я осознал, что существует много недоразумений в плане игровой логики.

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

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

  1. если в лейке нет воды но игрок никуда не нажимает - показывать иконку капельки над колодцем с пульсацией иконки этой, мол - наполни лейку посыл! просто каждый раз показывать иконку над колодцем когда нет воды в лейке
  2. если игрок жмет на куст, а у него в лейке нет воды, показывать как чуть пульсирует шкала воды, дергается и в этот ж момент еще раз подпрыгивает иконка воды над колодцем чтобы было понятно + звук Farm_Game_Notification_Alert_Negative_Exit_Quit_House_Decorate_Mode_UI_Tone.wavровно под колодцем показываем подсказку: No water,fill the bailer
  3. если игрок жмет на печку, а у него нет зеленых листиков для обжарки - в этот момент должны подпыгивать иконки ножей над всеми кустами готовыми к срезу + нож в инструментах пульсация одноразовая чтобы было понятно что надо выбрать нож и срезать кусты + звук Farm_Game_Notification_Alert_Negative_Exit_Quit_House_Decorate_Mode_UI_Tone.wavровно над печкой показываем подсказку: No leaves,cut bush first
  4. + в свободной игре давайте будем показывать подсказку зеленого листика над печкой, это будет показывать игроку в игре сейчас есть зеленые листики готовые к обжарке
  5. Eсли игрок жмет на печку, а у него нет листиков зеленых и нет кустов готовых к срезу и нет никаких листиков для срезки, то просто небольшой отклик при тапе на печку, она должна уменьшиться на 5-10%, просто чтобы был визуальный отклик от тапа, звук Farm_Game_Notification_Alert_Negative_Exit_Quit_House_Decorate_Mode_UI_Tone.wav и пульсация одноразовая мешка с семенами в панеле инструментов, чтобы было понятно что надо посадить куст сначаларовно под печкой показываем подсказку: No leaves,plant bush first
  6. Если игрок жмет на станцию упаковочную, а обжаренных листиков нет и зеленых листиков нет просто небольшой отклик при тапе на станцию упаковочную, она должна уменьшиться на 5-10%, просто чтобы был визуальный отклик от тапа, звук Farm_Game_Notification_Alert_Negative_Exit_Quit_House_Decorate_Mode_UI_Tone.wav и пульсация одноразовая мешка с семенами в панеле инструментов, чтобы было понятно что надо посадить куст сначаларовно под упа станцией показываем подсказку: No leaves,plant bush
  7. Если игрок жмет на станцию упаковочную, а обжаренных листиков нет, но есть зеленые листики просто небольшой отклик при тапе на станцию упаковочную, она должна уменьшиться на 5-10%, просто чтобы был визуальный отклик от тапа, звук Farm_Game_Notification_Alert_Negative_Exit_Quit_House_Decorate_Mode_UI_Tone.wav и пульсация одноразовая печки и зеленых листиков в счетчике, чтобы было понятно что надо нажать на печку, чтобы обжарить листикировно под печкой показываем подсказку: No roasted leaves,tap on stove

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

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

Пример отработки багов
Пример отработки багов

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

Пример как я завожу баги
Пример как я завожу баги

Первый баглист отработали за неделю, вторая сборка вышла уже 18 ноября, спустя неделю после первой. Уже много всего подчистили, добавили новый функционал. Новый функционал - новые баги. Заводим

Небольшие UI косяки, тут делаю стандартный QA тесты, завожу баги в фигму.
Небольшие UI косяки, тут делаю стандартный QA тесты, завожу баги в фигму.
Второй баглист - общий вид
Второй баглист - общий вид
Третий баг лист, уже сменили карту, добавили анимацию, поменяли лаунч скрин и логотип в процессе.
Третий баг лист, уже сменили карту, добавили анимацию, поменяли лаунч скрин и логотип в процессе.

Купил лицензию Unity, не дешевое приобретение — 2200 долларов в год. Однако она необходима, так как я не хочу видеть в игре лаунч-скрин с логотипом Unity и другие ограничения бесплатной версии, мне нужна реклама в игре, покупки и планируется много трафиа. Параллельно мы подключаем Game Center и настраиваем списки лидеров. Сейчас я работаю над экономикой игры и разрабатываю, сколько что должно стоить в игровой валюте и какие цены на товары установить. В этом мне помогает ChatGPT.

ChatGPT прописывает цены, но надо все перепроверять, очень туго даются ей запросы мои по юнит-экономике.
ChatGPT прописывает цены, но надо все перепроверять, очень туго даются ей запросы мои по юнит-экономике.

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

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

Ну и так далее, может я плохо запросы конечно задаю, не спорю, но я долго с ней просидел, так и не смог добиться результата, расписал сам руками:

Это уже ушло на прод разработчикам. ChatGPT получает 0 баллов в этом раунде.
Это уже ушло на прод разработчикам. ChatGPT получает 0 баллов в этом раунде.
Сохраняю все себе в фигме.
Сохраняю все себе в фигме.
Первая версия магазина в бете, заносим в баглист.
Первая версия магазина в бете, заносим в баглист.
Подключаем GameCenter, уже работают списки лидеров.
Подключаем GameCenter, уже работают списки лидеров.
Вот так выглядят баглисты в фигме, в целом раз в неделю по новой бете получается.
Вот так выглядят баглисты в фигме, в целом раз в неделю по новой бете получается.

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

Расходы на разработку:

Разработка: 8000$
Framer: 165$
App Radar: 69$
Sensor Tower: 79$
Unity: 2220$
Домен: 10$
Envanto: 20$
Apple Developer: 100$
Итого: 10663$

Часть 5. ASO и Маркетинг.

В процессе разработки я заказал оптимизацию у знакомых ребят. Изначально я запросил анализ рынков, чтобы определить, на какие страны мы будем ориентироваться сначала. Это поможет избежать необходимости проводить ASO для всех 35 стран в App Store.

Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 1

Я начал готовить промо материалы для апп стора, получилсиь вот такие скриншоты:

Скриншоты для 6,5 дюймовых айфонов в апп сторе коннект
Скриншоты для 6,5 дюймовых айфонов в апп сторе коннект
Сделал скриншоты под айпеды
Сделал скриншоты под айпеды
Локализация под Японский.
Локализация под Японский.
Локализация под Арабский.
Локализация под Арабский.
Для старта выбрали 8 стран под которые делали ASO и локализацию.
Для старта выбрали 8 стран под которые делали ASO и локализацию.

Далее все это загружаем в App Store и настраиваем для всех локализаций. Для каждой локализации создаем 4 набора скриншотов: 2 для iPhone и 2 для iPad. Кроме того, у меня есть видео-скриншот, который размещается в начале для каждого размера iPhone. После загрузки, порядок скриншотов сбрасывается, и приходится перетаскивать их в нужном порядке. Этот процесс повторяется для 20 стран. В общем, это не сложно, если заниматься этим каждый день в течение последних 3 лет.

Создал ассеты для продуктов в App Store, чтобы у них были красивые миниатюры.
Создал ассеты для продуктов в App Store, чтобы у них были красивые миниатюры.
Готовим App Store Connect в отправке сборке на ревью. Заполняем все поля.
Готовим App Store Connect в отправке сборке на ревью. Заполняем все поля.
Сделал с ChatGPT описание, оно не индексируется и никак не влияет на выдачу, поэтому тут может быть что угодно.
Сделал с ChatGPT описание, оно не индексируется и никак не влияет на выдачу, поэтому тут может быть что угодно.

Далее, я создал покупки и присвоил им уникальные идентификаторы, установил цены и условия, прикрепил скриншоты для модерации, добавил миниатюры, заполнил все метаданные, выбрал категорию игры. В общем, стандартный набор данных, необходимых для заполнения в App Store Connect перед отправкой. Важно заполнять все поля, и если что-то было пропущено, панель сама подсказывает и не позволяет отправить сборку без необходимой информации.

Завершение статьи, но не процесса создания игры.

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

Сразу после выпуска начнем работу над второй версией игры и добавим мини-игру "3 в ряд" как в тайтле Travel Town. У меня много планов для этой игры, и я буду активно работать над обновлениями.

Travel Town App Store скриншоты
Travel Town App Store скриншоты

Небольшой итог

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

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

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

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

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

Скоро выйдет игра, добавлю тут ссылку как апдейт статьи. Спасибо за уделенное время, надеюсь было интересно читать.
UPD: Игра вышла 22 января, ловите ссылку - Tea Farm Town
UPD2: Вторая часть статьи

5454
38 комментариев

Это титанический труд, не считая труда по созданию статьи, наверно она одна из самых интересных за последнее время на vc, просто респект

13
Ответить

От души!

Ответить

Охренеть лонгрид. Выложи на DTF.ru, там сильно более целевая аудитория, чем тут.

3
Ответить

Спасибо, попробую выложить

Ответить

Кайф, спасибо за ASO. Было бы очень интересно потом почитать что получилось по продвижению и как будете следить вообще по запросам. A/B тестирование обязательно внедряйте сразу на старте. После 5к просмотров, станет понятно какие оставлять скрины, даже 10% разницы повлияет на выход в топ по запросам)

1
Ответить

Спасибо за комментарий, буду продолжать рассказывать про создании игры, обязательно будет блок про оптимизацию и платный трафик

1
Ответить

Прочитала взахлеб, буду очень ждать игру чтобы пощупать это всё вживую)

1
Ответить