Gamedev и ИИ

Читаю много разных телеграм-каналов про разработку игр, видел посты про использование ChatGPT, Copilot, Cursor, Grok, Windsurf и прочих инструментов. И все эти посты, да и комментарии под ними, показывают, что до полной замены нас, как разработчиков игр, ещё далеко.

Хотя прогресс в этом направлении идёт действительно очень! быстро, по моему мнению. То что ещё несколько лет назад казалось бывает только в фильмах, уже давно используется. Причём используется не для того чтобы записать ролик для Ютуба, а в реальной работе. И уже во многих вакансиях можно встретить требование или пожелание о навыках использования ИИ помощников.

Почему рано

Всё что сейчас доступно — это всё-таки прикладные инструменты для разработчика. Если говорить именно про создание кода игр. У которого уже есть какой-то опыт, навыки — background, как говорится. Все эти ИИ выполняют роль ассистентов:

  • подсказывают, дописывают код
  • помогают генерировать boilerplate
  • могут объяснить ошибку или предложить улучшение
  • анализируют структуру проекта

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

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

Что делать

Первое и наверное самое главное — стать разработчиком всё-таки получить минимальные знания по теме, если их нет:

  • язык программирования
  • архитектурные паттерны
  • алгоритмы
  • инструмент разработки

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

Или если не хочется сильно вникать, то проще всего начать с такого варианта: в каком-нибудь ChatGPT попросить составить промт для конкретной нейросети:

Составь промт для Stable Diffusion, используй параметры для получения картинки лучшего качества: набор спрайтов для персонажа в стиле киберпанк

Пример полученого промта

cyberpunk character sprite sheet, full body, multiple poses and animations (idle, walk, attack, jump), futuristic neon outfit, glowing details, cybernetic implants, high-tech armor, dark city atmosphere, detailed pixel art style, sharp lighting, consistent design, high contrast, vibrant colors, 8-direction view, cinematic composition, professional game asset, extremely detailed, ultra sharp focus, masterpiece, 4k, smooth edges

Негативный промт:

blurry, low quality, distorted anatomy, bad proportions, extra limbs, missing limbs, cropped, text, watermark, signature, nsfw, lowres, deformed face, ugly, simple background, inconsistent lighting, different outfits, messy, sketch, grayscale, monochrome, painting

Параметры:

Sampler: DPM++ 2M Karras
CFG Scale: 7–9
Steps: 30–40
Resolution: 1024×1024 или 1536×1536 (если хочешь сделать sheet — лучше квадрат)
Hires.fix: включить
Hires upscaler: 4x-UltraSharp или R-ESRGAN 4x+
Denoise strength: 0.3–0.4
Style model: SDXL base + Refiner
Seed: зафиксируй, чтобы можно было воспроизводить результат

Выглядит довольно подробно и «серьезно», да? Но только для тех кто ещё не сталкивался со всем этим в реальных кейсах 😁 Реальная ситуация будет такая, что придётся перепробовать кучу разных моделей с HuggingFace и Civitai, всё время играться с параметрами (которых куча) и сидом, чтобы получить рабочий результат. Я уже не говорю про правку самого промта.

Также можно и для кода, например:

Составь промт для Copilot + Claude Sonnet 4.5 с нужными ключевыми словами и инструкциями, чтобы был контекст, план работ, рабочий результат и проверка на каждом этапе. Задача: код игры Ping-Pong на C# и Unity

Результат:

Ты – опытный разработчик игр на Unity и C#. Твоя задача: создать полностью рабочую 2D игру Ping-Pong на Unity с поэтапным подходом. На каждом этапе необходимо:

1. Дать план действий.
2. Сгенерировать код или инструкции для этого этапа.
3. Предложить способ проверки правильности выполнения.

**Контекст проекта:**
- Язык: C#
- Платформа: Unity 2021.3+
- Жанр: 2D игра Ping-Pong
- Цель: работающая игра с двумя ракетками, мячом, счетом, AI и управлением игрока

**Этапы разработки:**

**Этап 1: Подготовка сцены**
- Создать 2D сцену, разместить игровое поле
- Добавить объекты: левая и правая ракетки, мяч, стены, UI Text для счета
- Проверка: объекты видны на сцене, UI отображается

**Этап 2: Управление игроком**
- Написать скрипт Paddle.cs для левой ракетки
- Управление W/S, скорость через публичную переменную
- Проверка: левая ракетка двигается при нажатии W/S

**Этап 3: Мяч и физика**
- Написать скрипт Ball.cs
- Движение с постоянной скоростью, отскок от стен и ракеток
- Rigidbody2D, Collider2D
- Проверка: мяч отскакивает корректно, скорость регулируется через инспектор

**Этап 4: AI для правой ракетки**
- Скрипт AI для правой ракетки: следовать за мячом с ограниченной скоростью
- Проверка: правая ракетка двигается за мячом без рывков

**Этап 5: Счет и UI**
- Скрипт GameManager.cs для ведения счета
- UI обновляется при каждом голе
- Мяч перезапускается после гола
- Проверка: счет увеличивается правильно, мяч возвращается в центр

**Этап 6: Завершение и тестирование**
- Проверить все элементы вместе: управление, AI, мяч, счет
- Сделать финальные настройки скорости и размеров через инспектор
- Проверка: игра полностью играбельна, без ошибок, логика корректна

**Стиль кода и требования:**
- Чистый, читаемый, с комментариями для каждого класса и метода
- Все настройки публичные для инспектора
- Использовать MonoBehaviour и Rigidbody2D
- Ключевые слова для генерации: Unity C#, 2D game, Ping-Pong, Paddle, Ball, AI paddle, Score, collision, Rigidbody2D, clean code, commented code, inspector variables, step-by-step, verification

**Вывод:**
- Для каждого этапа предоставь код + инструкции по сцене + способ проверки
- В конце выведи полную рабочую игру, которую можно собрать в Unity без доработок

Тоже вроде всё понятно и подробно расписано. Теперь этот промт можно или доработать/уточнить, или сразу вставить в Copilot и ждать когда оно напишет игру 😅 Я так и сделал. И вот что получилось:

  • Copilot создал структуру папок проекта
  • создал все скрипты
  • написал 7 инструкций, как всё это собрать и запустить

Я уточнил, что вручную создавать ничего не хочу. После этого он создал PingPongGameSetup.cs с автоматическим установщиком. Остаётся создать сцену и запустить скрипт, остальное установщик создаст сам:

  • все игровые объекты (стены, ракетки, мяч)
  • все компоненты (Rigidbody2D, Colliders, теги)
  • все скрипты применяются к нужным объектам
  • весь UI (счет, сообщения, инструкции)
  • Physics Material для правильных отскоков
  • GameManager со всеми настройками

В общем, вот такое красивое окно установщика получилось:

После запуска даже удалось как-то поиграть!

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

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

Остальное «работает». Но мне пришлось задебажить и понять, что тегов нет и добавить их, хотя метод CreateTagIfNotExists есть. Если бы это делал человек без опыта Unity, то пришлось бы задавать уточняющие вопросы, искать причину почему не работает скрипт, пробовать новую реализацию и возможно ходить по кругу. Качество кода тоже такое себе получается. Мячик улетает, неправильно отскакивает, «застревает» в стенке. Конечно, это тоже можно уточнящими запросами пофиксить…

Все исходники доступны на Github

Итого

Всё это не магия и не волшебная технология. Какой-нибудь 2D артист который захочет самостоятельно закодить игру столкнётся со всем этим. Если время и интерес есть, то конечно можно разобраться, поднатаскаться и в итоге что-то да получится. Но далеко не со второго раза и не как в фильме «Железный человек». Так что, никто нас, разработчиков игр, ещё долго не заменит бездушными машинами 👾

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

Разработка (и языки программирования) на протяжении всей своей истории становятся всё более высокоуровневыми, но специалисты, которые разбираются в коде, всегда будут нужны.

Нет комментариев

    Ваш комментарий