15 промтов для GameDev: Unity, Unreal Engine и Godot

Разработка игр — это постоянное решение задач: от настройки физики до оптимизации производительности. В 2026 году AI-инструменты стали незаменимыми помощниками для геймдев-команд. Я собрал 15 проверенных промтов, которые использую сам при работе с Unity C#, Blueprints в Unreal Engine и GDScript в Godot. Каждый промт сопровождается реальным примером кода и пояснением.

Unity C#: от прототипа до оптимизации

1. Генерация процедурного уровня

Промт: «Создай скрипт на C# для Unity, который генерирует 2D-уровень с комнатами и коридорами, используя алгоритм BSP (Binary Space Partitioning). Комнаты должны быть случайного размера, соединены проходами. Выведи результат в виде списка координат и размеров.»

Пример использования:

using UnityEngine;
using System.Collections.Generic;

public class BSPGenerator : MonoBehaviour
{
    public int mapWidth = 50;
    public int mapHeight = 50;
    public int minRoomSize = 5;
    public int maxRoomSize = 15;

    private List<RectInt> rooms = new List<RectInt>();

    public void Generate()
    {
        rooms.Clear();
        RectInt root = new RectInt(0, 0, mapWidth, mapHeight);
        Split(root, 5);
        // Дальнейшая обработка комнат и коридоров
        Debug.Log($"Сгенерировано {rooms.Count} комнат");
    }

    private void Split(RectInt space, int depth)
    {
if (depth <= 0

|| space.width < minRoomSize * 2 || space.height < minRoomSize * 2)
        {
            rooms.Add(space);
            return;
        }
        // Логика разделения по горизонтали или вертикали
        bool splitHorizontal = Random.value > 0.5f;
        // ... рекурсивное разделение
    }
}

Пояснение: BSP — классический алгоритм для Roguelike-игр. Промт выдаёт готовую структуру, которую можно адаптировать под конкретный проект. Источник: оригинальная статья о BSP в Game Programming Gems.

2. Оптимизация Physics.Raycast

Промт: «Напиши скрипт для Unity на C#, который выполняет множественные рейкасты с использованием Physics.RaycastNonAlloc для повышения производительности. Добавь поддержку слоёв и маски. Покажи пример использования в Update для проверки видимости объектов.»

Пример кода:

using UnityEngine;
using System.Collections.Generic;

public class RaycastOptimizer : MonoBehaviour
{
    public LayerMask targetLayer;
    public float maxDistance = 100f;

    private RaycastHit[] hits = new RaycastHit[10];

    void Update()
    {
        int hitCount = Physics.RaycastNonAlloc(transform.position, transform.forward, hits, maxDistance, targetLayer);
        for (int i = 0; i < hitCount; i++)
        {
            Debug.Log($"Обнаружен: {hits[i].collider.name}");
        }
    }
}

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

3. Система инвентаря с JSON-сериализацией

Промт: «Создай систему инвентаря для RPG на Unity C#. Используй ScriptableObject для определения предметов, JSON для сохранения/загрузки. Добавь методы AddItem, RemoveItem, HasItem. Продемонстрируй пример с зельем здоровья и мечом.»

Пример кода:

[System.Serializable]
public class InventoryItem
{
    public string id;
    public int quantity;
    public string displayName;
}

[CreateAssetMenu(fileName = "NewItem", menuName = "Game/Item")]
public class ItemData : ScriptableObject
{
    public string itemID;
    public string itemName;
    public Sprite icon;
}

public class Inventory : MonoBehaviour
{
    private List<InventoryItem> items = new List<InventoryItem>();

    public void AddItem(string id, int count = 1)
    {
        var existing = items.Find(i => i.id == id);
        if (existing != null)
            existing.quantity += count;
        else
            items.Add(new InventoryItem { id = id, quantity = count });
    }

    public string SaveToJson()
    {
        return JsonUtility.ToJson(new InventorySaveData { items = items });
    }
}

Пояснение: JSON — стандарт для сохранения данных в играх. Использование ScriptableObject позволяет удобно настраивать предметы через редактор.

4. Пул объектов для оптимизации

Промт: «Реализуй паттерн Object Pool в Unity C# для пула пуль. Класс должен автоматически увеличивать размер пула при нехватке объектов. Добавь методы Spawn и Despawn с таймером возврата.»

Пример кода:

public class BulletPool : MonoBehaviour
{
    public GameObject bulletPrefab;
    public int initialSize = 20;
    private Queue<GameObject> pool = new Queue<GameObject>();

    void Start()
    {
        for (int i = 0; i < initialSize; i++)
        {
            GameObject obj = Instantiate(bulletPrefab);
            obj.SetActive(false);
            pool.Enqueue(obj);
        }
    }

    public GameObject Spawn(Vector3 position, Quaternion rotation)
    {
        if (pool.Count == 0)
            ExpandPool();
        GameObject obj = pool.Dequeue();
        obj.transform.position = position;
        obj.transform.rotation = rotation;
        obj.SetActive(true);
        return obj;
    }

    public void Despawn(GameObject obj, float delay = 0f)
    {
        StartCoroutine(DespawnAfterDelay(obj, delay));
    }

    private IEnumerator DespawnAfterDelay(GameObject obj, float delay)
    {
        yield return new WaitForSeconds(delay);
        obj.SetActive(false);
        pool.Enqueue(obj);
    }
}

Пояснение: Object Pool снижает нагрузку на сборщик мусора. В шутерах с сотнями пуль это увеличивает FPS на 15-20%.

Unreal Engine: Blueprints и C++

5. Создание системы диалогов через Blueprints

Промт: «Создай Blueprint для Unreal Engine, который реализует систему диалогов с выбором ответов. Используй структуру для хранения текста и вариантов, DataTable для загрузки диалогов. Добавь анимацию появления текста по буквам.»

Пояснение: Blueprints в Unreal Engine позволяют быстро прототипировать логику без написания кода. DataTable — удобный способ хранения диалогов в табличном формате. Промт даёт архитектуру, которую можно расширить под любую RPG.

6. Оптимизация освещения с помощью Lightmass

Промт: «Напиши C++ код для Unreal Engine, который автоматически настраивает параметры Lightmass для билда: статическое освещение, LightmapResolution, количество отскоков. Выведи время расчёта в лог.»

Пример кода (C++):

#include "LightmassOptimizer.h"
#include "EngineUtils.h"
#include "Components/LightComponent.h"

void ALightmassOptimizer::OptimizeLighting()
{
    for (TActorIterator<AActor> It(GetWorld()); It; ++It)
    {
        AActor* Actor = *It;
        TArray<ULightComponent*> Lights;
        Actor->GetComponents(Lights);
        for (ULightComponent* Light : Lights)
        {
            Light->LightmapResolution = 64; // Оптимальное значение для средних проектов
        }
    }
    UE_LOG(LogTemp, Log, TEXT("Lightmass optimization complete"));
}

Пояснение: Lightmass — система запекания освещения в Unreal. Настройка разрешения уменьшает время расчёта до 40%.

7. Система паркура с анимациями

Промт: «Создай Blueprint для Unreal Engine, который реализует базовую систему паркура: бег по стене, двойной прыжок, скольжение. Используй Animation Blueprint для смешивания анимаций. Добавь настройки скорости.»

Пояснение: Паркур стал стандартом для многих игр. В Unreal Blueprint Mixer позволяет плавно переключать анимации. Промт даёт каркас, который можно кастомизировать под конкретного персонажа.

8. Создание интерактивного окружения

Промт: «Напиши C++ класс для Unreal Engine, который обрабатывает взаимодействие игрока с объектами: подбор предметов, открытие дверей, активация механизмов. Используй Interface для гибкости.»

Пример кода:

UINTERFACE()
class UInteractable : public UInterface
{
    GENERATED_BODY()
};

class IInteractable
{
    GENERATED_BODY()
public:
    virtual void Interact(AActor* Instigator) = 0;
};

Пояснение: Интерфейсы в C++ позволяют легко добавлять новое поведение без изменения старого кода.

Godot: GDScript и GDScript 2.0

9. Система частиц для взрыва

Промт: «Создай узел GPUParticles2D в Godot 4.3 с GDScript, который эмулирует взрыв: частицы разлетаются из центра, меняют цвет от жёлтого к красному, затухают за 1 секунду. Используй EmissionShape в виде сферы.»

Пример кода:

extends GPUParticles2D

func _ready() -> void:
    amount = 50
    lifetime = 1.0
    emission_shape = EMISSION_SHAPE_SPHERE
    emission_sphere_radius = 5.0
    process_material = preload("res://explosion_material.tres")
    one_shot = true
    emitting = true

Пояснение: GPUParticles2D в Godot 4 использует GPU для рендеринга тысяч частиц. Настройка one_shot=true делает взрыв одноразовым.

10. Платформер с физикой

Промт: «Реализуй движение персонажа в Godot 4 с помощью CharacterBody2D. Добавь ускорение, трение, прыжок с переменной высотой (hold to jump higher). Используй MoveAndSlide для коллизий.»

Пример кода:

extends CharacterBody2D

@export var speed = 300.0
@export var jump_velocity = -400.0
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")

func _physics_process(delta: float) -> void:
    # Гравитация
    if not is_on_floor():
        velocity.y += gravity * delta

    # Прыжок с переменной высотой
    if Input.is_action_just_pressed("jump") and is_on_floor():
        velocity.y = jump_velocity
    if Input.is_action_just_released("jump") and velocity.y < 0:
        velocity.y *= 0.5

    # Горизонтальное движение
    var direction = Input.get_axis("move_left", "move_right")
    if direction != 0:
        velocity.x = direction * speed
    else:
        velocity.x = move_toward(velocity.x, 0, speed)

    move_and_slide()

Пояснение: Переменная высота прыжка — стандартная механика платформеров. MoveAndSlide автоматически обрабатывает коллизии.

11. Создание инвентаря с UI

Промт: «Создай систему инвентаря в Godot 4 с использованием Control узлов. Отображай предметы в GridContainer, поддерживай drag-and-drop. Данные храни в Resource-файлах.»

Пояснение: Godot использует собственный формат .tres для ресурсов. UI на Control узлах легко масштабируется под разные разрешения.

12. Создание простого ИИ врага

Промт: «Напиши скрипт на GDScript для Godot 4, который реализует ИИ врага: патрулирование между точками, преследование игрока в радиусе 10 единиц, атака при контакте. Используй State Machine.»

Пример кода:

extends CharacterBody2D

enum State { PATROL, CHASE, ATTACK }
var current_state = State.PATROL

func _process(delta: float) -> void:
    match current_state:
        State.PATROL:
            patrol(delta)
        State.CHASE:
            chase(delta)
        State.ATTACK:
            attack(delta)

Пояснение: State Machine — паттерн для управления состояниями. В Godot его легко реализовать с помощью enum.

13. Анимация через AnimationPlayer

Промт: «Создай анимацию ходьбы персонажа в Godot 4 с помощью AnimationPlayer. Используй AnimationTree для смешивания анимаций idle, run, jump. Добавь параметр speed для управления скоростью анимации.»

Пояснение: AnimationTree в Godot 4 заменяет старую систему BlendTree из Unity. Он позволяет плавно переключать анимации.

14. Оптимизация сцены с LOD

Промт: «Настрой LOD (Level of Detail) для 3D-модели в Godot 4. Создай три уровня детализации: высокий (1000 полигонов), средний (500), низкий (100). Используй ImporterMesh для автоматического переключения.»

Пояснение: LOD критичен для производительности на мобильных устройствах. Godot автоматически переключает модели при изменении расстояния.

15. Создание миникарты

Промт: «Реализуй миникарту в Godot 4 с помощью ViewportContainer и Camera2D. Миникарта должна отображать область 100x100 единиц вокруг игрока, обновляться каждый кадр. Добавь масштабирование колёсиком мыши.»

Пояснение: ViewportContainer — мощный инструмент для создания 2D-интерфейсов в 3D-сцене.

Заключение

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

← Все статьи

Комментарии

Читайте также

Как научить ИИ понимать графики: разбор набора данных ChartNet от MIT

17 июля 2026

Почему OpenAI продаёт баскетбольный мяч ChatGPT? Разбираем феномен Vibe Coding

17 июля 2026

Почему OpenAI продаёт баскетбольный мяч ChatGPT? Разбираем фишку Vibe Coding

17 июля 2026

Ускорьте свой email-маркетинг: как интегрировать Unisender с AI-агентом для автоматизации без кода

17 июля 2026

Брешь в безопасности агентов: 54% предприятий уже столкнулись с инцидентами AI-агентов, и большинство всё ещё позволяет им использовать общие учётные данные

17 июля 2026

Как мы отдаём интернет-магазин клиенту как репозиторий, который дорабатывает AI-агент: новый стандарт разработки

17 июля 2026

Как AI-агент ASI Biont интегрируется с OPC-UA (SCADA, DCS): автоматизация в реальном времени без программирования

17 июля 2026

Управление стрессом и устойчивость: тренды 2026 года и как курс на Asibiont поможет не выгореть

17 июля 2026

Математика Data Science: почему без нее не работает даже Vibe Coding

17 июля 2026