iOS игра UFO Drop. Творческая неделя с DeepSeek.

iOS игра UFO Drop. Творческая неделя с DeepSeek.

Введение

Когда я начал создавать свою первую игру (как хобби), я рассчитывал, что справлюсь за выходные (успешный успех за 2 дня!). Вместо этого процесс растянулся на года. Почему?

Кроме кода на Swift пришлось:

  • Погружаться в геймдев (эстетики, динамики, механики)
  • Рисовать дизайн (в том числе иконку)
  • Искать ассеты, анимации
  • Локализовать интерфейс, описание проекта на 10+ языков (включая все ачивки!).
  • Публиковать и обновлять проект в AppStore, снова и снова переводить описания изменений на все языки

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

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

Проект до сих пор еще не закончен, но имеет некоторую аудиторию.

Математическая iOS игра 3+2-1 в Apple Store
Математическая iOS игра 3+2-1 в Apple Store

Что ты умеешь, AI? Мои первые промты.

С появлением более продвинутых AI инструментов в 2025 году, которые стали способны писать код, я опять решил попробовать за 2 дня создать игру.

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

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

Первые мои промты, были похожи на "напиши тетрис". Я скептически относился к этой затее изначально, хотел убедиться, что без человека писать код все еще невозможно в 2025 году. Однако DeepSeek выдавал рабочий код для UIKit и SwiftUI, и это вызывало у меня живой интерес, затягивало все дальше.

Генерация идеи

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

Сырая, абстрактная идея изначально была сформулирована так: «Летит капля краски, разлетается по экрану, и стекает вниз». Тогда, пусть что-то мешает этой капле. Препятствие, о которое капля будет разбиваться. Должна была получиться какая-то потешная залипалка, таймкиллер в 1 клик.

Теперь нужно придумать что-то более конкретное, с чем можно будет работать. Этот процесс шел итеративно, вместе с кодом и мгновенным результатом на экране iphone.

3 ключевых вопроса:

  1. Какое самое простое действие для пользователя? → Один тап.
  2. Как минимизировать участие игрока? → Автоматическое движение объектов.
  3. Как быстро нарисовать и запустить? → Генерация ассетов через AI.

Создание прототипа. Первый промт.

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

Я получил код на SwiftUI, вставил его в проект, и запустил. Это действительно сразу работало. DeepSeek даже понял, что писать нужно на Swift, взял сразу #SwiftUI, современно, но…

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

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

Второй промт: «Сделай тоже самое на #uikit»

Вот теперь я получил стабильную отрисовку. Все работало отлично. DeepSeek сделал ровно такие же вьюхи и анимации для них.

Отлично, тогда моя целевая аудитория - пользователи iOS 15.6+ (вместо iOS 18+). Приложение будет работать даже на старых устройствах.

Я не стал разбираться почему лагает простая анимация на SwiftUI, и как это исправить. Фокус был на создании проекта за 2-3 дня, а если DeepSeek знает как работать с UIKit, меня это вполне устраивает (поскольку я его тоже знаю).

Для визуализации отладки, чтобы отслеживать изменения положения вьюхи по оси Y я добавил полоски, и еще небольшой счетчик для подсчета количества столкновений вьюх (score).

Pic. 1 Анимация двух объектов по осям X и Y
Pic. 1 Анимация двух объектов по осям X и Y

Оживление объектов

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

Новый промт - «Нарисуй что-то прикольное, что порадует детей, когда в него врезается круг.»

Максимально без подробностей, не было даже идей что спросить. DeepSeek сказал, что будет такса, т.к. дети любят собак. Это то, что нужно. Ужас :)

Pic. 2 Такса
Pic. 2 Такса

Пусть это будет НЛО

Пришло время сформулировать идею. Что же я разрабатываю? Нужен был сюжет для игры со смыслом и название.

Пришла идея - пусть препятствием будет НЛО! Узнаваемый объект, можно придумать с ним все, что угодно.

Много раз просил DeepSeek нарисовать НЛО кодом, с анимацией, лампочками и лучами. Детально описывал кабину, размеры, расположение и тд. Приемлемый результат я получил, когда указал, что НЛО должно быть похоже на шляпу. Теперь падающий предмет (пока круг) врезается в НЛО при столкновении.

Pic. 3.1 Попытки создать НЛО
Pic. 3.1 Попытки создать НЛО
Pic. 3.2 Попытки создать НЛО
Pic. 3.2 Попытки создать НЛО
Pic. 4 НЛО, как шляпа (уже лучше) 
Pic. 4 НЛО, как шляпа (уже лучше) 

Создание сюжета: капля.

Падающий предмет - это капля. Я изначально думал про каплю с краской. Использую каплю. Капля летит вниз, если ее траектория в какой-то момент совпадает с траекторией НЛО, происходит столкновение. Это дождь? Какой в этом смысл?

Решил немного изменить сюжет игры. Попадать нужно не в НЛО, но капля должна пролететь мимо него, тогда добавляются очки. А если капля столкнется с НЛО - будут тратится попытки (жизни) у игрока.

Pic. 5 Капля 
Pic. 5 Капля 

Создание сюжета: море.

Куда могут падать капли? Попросил DeepSeek создать волны. 2-3 запроса, и волны получились довольно правдоподобные. AI сам усложнил слои, градиенты. Чуть позже в море появились едва заметные рыбы. Море может менять цвет и высоту.

Pic. 6 Море 
Pic. 6 Море 

Ассеты. Облака

Немного объектов для интереса не помешает. Примерно 3 запроса в DeepSeek, и если вас устраивает результат, это можно использовать. Некоторым игрокам облака даже понравились :)

Промты для создания облаков
Промты для создания облаков
Pic. 7 Капля, море и облака 
Pic. 7 Капля, море и облака 

Ассеты. Закат. Бэкграунд

Промт для заката
Промт для заката

Создание сюжета. Финальная идея

Корректирую идею - радостные капли наполняют море.

Радость на каплях заняла у меня времени больше, чем все остальное :) DeepSeek не понимал, что я от него хочу, как бы я не уточнял промт. Смайлик внутри капли дописал кодом сам.

Уровень воды постепенно поднимается, если капля пролетает мимо тарелки, одновременно злобное НЛО постепенно опускается, и в конце концов утонет в воде. Будет следующий уровень, новое НЛО, скорость которого станет немного выше.

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

Промт для создания интересных летающих тарелок
Промт для создания интересных летающих тарелок
Pic. 8 Игровой экран 
Pic. 8 Игровой экран 

Меню и Game Over

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

iOS игра UFO Drop. Творческая неделя с DeepSeek.

Статус бар

Статус бар вверху - отображает капельки (количество жизней), которые тратятся с каждым столкновением с НЛО, score (собранные монетки + удачные полеты капли до моря).

Промт для создания статус бара
Промт для создания статус бара
Pic. 9 Статус бар 
Pic. 9 Статус бар 

Звук

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

Иконка

DeepSeek создал промт для создания иконки, и подобрал бесплатные AI ресурсы, которые умеют рисовать. Мне очень нравится иконка, за 2 попытки Leonardo.ai создал красочный шедевр, на мой взгляд, вместив в нее практически весь сценарий и идею.

Pic. 10 Иконка приложения
Pic. 10 Иконка приложения

Релиз 1

Случился первый релиз. Раздал знакомым, друзьям, собрал обратную связь, ушел дорабатывать :)

Релиз 2

Добавляю интереса - пусть капля собирает монетки, пролетая в море (увеличивает score), а если на монетку налетит НЛО, оно поднимется повыше, что сделает уровень немного дольше и сложнее.

Добавляем в игру монетки. Вычисляем матрицу для возможных позиций монет (это делал сам). Промтом генерим текстуру монетки.

Pic. 11 Монетка
Pic. 11 Монетка

Добавил возможность пополнения жизни (капельки) за рекламку. Теперь можно продвинуться дальше, даже, если жизни закончились. Стало немного интересней.

Название

Промт для создания названия приложения
Промт для создания названия приложения

Локализация

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

Промт для создания файлов локализации
Промт для создания файлов локализации
Pic. 12 Результат локализации
Pic. 12 Результат локализации

Game Center

В каждой игре неплохо иметь соревновательный момент. Apple предоставляет нам свое решение, подключаем моментально.

Промт для подключения Game Center
Промт для подключения Game Center

Итоги

Vibe-кодинг:

  • AI заменил дизайнера, художника, локализатора, аналитика, SEO
  • Мгновенная (но иногда множественная) генерация кода и ассетов.
  • Быстрые итерации и драйв от моментальной реализации идей.
  • 5 - 7 дней (вечеров) от идеи до публикации в Apple Store

Статистика

Статистика опубликованного приложения
Статистика опубликованного приложения

Что я делал:

- Рисовал ручкой на бумаге (3 листа А4)

- Придумывал сюжет

- Придумывал ассеты

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

- Придумывал как придумывать (работа с AI)

- Тестировал всю функциональность

Что я не делал (а делал DeepSeek):

- Придумал название приложения

- Создал описание приложения на 20 языках (краткое и подробное) и ключевые слова для поиска в Apple Store

- Подготовил приложение к публикации (не менее 5-7 раз, перевел все тексты на все языки)

- Проанализировал целевую аудиторию

- Нарисовал иконку приложения (при помощи леонардо)

- Создал все ассеты (каплю, градиент для фона, облака, десятки НЛО, волны, рыб, монету)

- Помог подобрать и встроить звуки

- Подключил Game Center

- Создал экраны для Меню и Game Over

- Создал статус бар и ассеты для него

Выводы

  1. AI ≠ замена команды, но мощный инструмент
  2. Главное преимущество: Скорость. MVP за неделю вместо месяцев.
  3. Совет 1: всегда тестируйте AI-код на устройстве. Не все промты работают идеально, возможны краши.
  4. Совет 2: Проектируйте модульные приложения. Известные паттерны, протокольно-ориентированный подход никто не отменял. Нужно иметь возможность в любой момент заменить любую часть приложения, если потребуется.
  5. Вам точно потребуются знания той платформы для которой создаете приложение

Что мне понравилось больше всего

Разработчик становится иного качества. У вас под рукой теперь есть все инструменты, которые требуются для создания продукта. Не нужно искать аналитика, который пишет ТЗ, просить у дизайнера иконку приложения или цвет и тд. Любой успех или неудача - полностью ваша работа. Это постоянный адреналин, бесконечные идеи. Вам не нужно думать про мотивацию больше, потому что вам постоянно интересно!

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

Поиграть можно тут:

UFO Drop в Apple Store
UFO Drop в Apple Store
9
4
2
1
1
Начать дискуссию