Обновить

Про хранение конфигураций уровня и не только

Уровень материала: 🐣 #junior
<тестирую раздел Посты. этот материал уже можно было встретить в моём Telegram>

В рекомендации отправляю видео, которое показывает два любопытных подхода:

1. Хранение конфигурации уровня в ScriptableObject, а не в отдельной сцене.
2. Анимированное появление тайлов уровня.

И внутри есть ряд ещё более мелких интересных деталей.

📋 1. Хранение конфигурации уровня:

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

Поизучав предметную область подробнее, я пришёл к тому, чтобы для уровня иметь одну сцену, а её наполнение формировать по данным из некоторого файла. Я использовал XML, т.к. тогда это было популярно (позднее для настройки уровня был подключен Tiled, который как раз умел экспортировать в XML). Билд тут же сдулся до 20Мб. А подход подарил невероятное количество всяческих бенефитов.

ScriptableObject — это тоже некоторый файл с данными (а точнее YAML или Binary, в зависимости от настроек Unity), который Unity умеет красиво отрисовывать в инспекторе.

А вот пример ассета (с ёмким описанием), который конвертирует уровень в JSON.

🎲 2. Анимированное появление тайлмапа:

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

✨ 3. Полезные мелочи:

В видео можно подглядеть:

  • Как удалять элементы из списка, чтобы в for не делать лишних декрементов и в foreach не получить исключение InvalidOperationException “Collection was modified”. Подробнее про это можно также почитать в этом материале.

  • Использование sqrMagnitude при сравнении дистанций для оптимизации вычислений. Про сравнение с обычным magnitude — тут (я тоже проводил подобные замеры: данные всё ещё актуальны).

  • Как оформлять Coroutine для анимаций: нейминг, аргументы, содержание.

  • Использование AnimationCurve для контроля плавности анимации.

  • Использование Lerp для реализации анимации.

—————————————

#gamedev #development #animation #scene #loading #геймдев #разработка #анимации #загрузка #рекомендация #видео

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Краш‑тест клона корпоративной системы, написанного ИИ за 48 часов


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

И я предложил этому человеку проверить его слова в деле — только взять не «змейку» и «тетрис», а наш продукт — довольно сложную аналитическую платформу.

Через 48 часов мы уже тестировали первую итерацию клона системы.

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

Краш‑тест клона корпоративной системы, написанного ИИ за 48 часов

Публикации