Как независимый разработчик SlugGlove создал в Unity 102 миллиона комбинаций заклинаний для игры Rhell: Искаженные миры и неспокойные времена

FERGUS BAIRD / UNITY TECHNOLOGIESSenior Content Marketing Manager
Apr 13, 2026|5:45 Мин
Ключевой постер для фильма «Релл»: «Warped Worlds & Troubled Times» от SlugGlove, Yogscast Games | Made with Unity. Справа на сцену влетает волшебник с голубой кожей и в коричневой шляпе, держа в руках палочку и зеленую книгу заклинаний. Справа — леса, холмы и название игры.
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Как разработчик-одиночка создает видеоигру с 102 миллионами возможных комбинаций заклинаний? Релл: «Warped Worlds & Troubled Times» — это ролевая игра с полуоткрытым миром, в которой игроки соединяют магические руны, чтобы накладывать заклинания на предметы и изменять их свойства для решения головоломок.

Создание этой сложной системы стало бы серьезным испытанием даже для большой команды разработчиков; однако независимый разработчик SlugGlove воспринял это как очередную головоломку, которую предстояло решить. Мы встретились с командой SlugGlove, чтобы поговорить об их пути от анимации к программированию, об их подходе к разработке архитектуры и тестированию магической системы в игре Rhell в Unity, а также о том, какие советы они могут дать по управлению объемом работ и предотвращению перегрузки.

От анимации до программирования на C#

SlugGlove изначально не планировали становиться программистами; их опыт связан с 3D-анимацией и созданием спрайтов. Работая над заключительным анимационным проектом для получения диплома, они поняли, что не хотят создавать короткометражный мультфильм — вместо этого они хотели воплотить свою работу в видеоигре.

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

«В то время я пользовался Blender, который, на мой взгляд, очень удобен в работе», — говорит SlugGlove. «Перейдя с этого на Unity, я в основном создавал клипы и компоновал их с помощью Animator Controller. Это было намного проще, чем традиционная анимация. «Если другие аниматоры ищут решение для тестирования своих анимаций, то Unity очень легко освоить и понять».

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

Анимации Релла в контроллере анимации (вверху) и в игре (внизу)

Создание системы заклинаний на основе комбинаций

Главная изюминка Rhell — это модульная система магии. Игроки могут комбинировать до пяти рун одновременно в книге заклинаний Релла, что дает миллионы возможных комбинаций. Вместо того чтобы создавать уникальные ScriptableObjects или префабы для каждой возможной комбинации, разработчики SlugGlove нашли элегантное решение, основанное на использовании целых чисел и вариантов префабов.

Целочисленный подход

Вместо того чтобы превращать каждую руну в сложный объект, игра просто интерпретирует руны как числа. «Сами руны на самом деле не являются отдельным элементом проекта», — объясняет SlugGlove. «Это скорее так: вы нажимаете кнопку номер один, и это значение сохраняется в виде целого числа. Он разгоняется от нуля до 40. При произнесении заклинания зачитывается список, состоящий из не более пяти целых чисел.

Вместо того чтобы программировать конкретные взаимодействия для такой комбинации, как «Огонь + Лед», система считывает целые числа (например, 11, 12), удаляет их и динамически изменяет объект локализованного класса, чтобы применить к нему свойства «Воды» (например, целое число 32). Последнее заклинание добавляет и изменяет значения на основе этих целых чисел до тех пор, пока не будет получен конечный класс результата. Такой модульный математический подход позволяет сохранить простоту игровой логики и избавляет разработчиков SlugGlove от необходимости создавать тысячи отдельных ресурсов.

Рэлл объединяет руны Огня и Льда в руну Воды

Универсальная система объектов

Чтобы заклинания работали стабильно, SlugGlove использовал варианты префабов. «Каждый объект в Rhell представляет собой вариант одного маленького серого кубика», — объясняют они. «Я подумал: если какое-то заклинание может подействовать на этот кубик, то оно может подействовать и на что угодно в игре». «По сути, я создал самый сложный куб, какой только мог».

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

Персонаж игрока, Релл, является единственным исключением из этого правила. Поскольку для SlugGlove требуются специальные контроллеры движения и уникальные состояния анимации (например, подпрыгивание в огне), пришлось тщательно перенести универсальный код объекта в контроллер игрока.

Вот несколько примеров различных пользовательских состояний анимации персонажа игрока в игре «Rhell»: Искаженные миры и неспокойные времена

Экономия времени благодаря выборочному тестированию

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

Для начала они добавили в игру руну «Случайная», которая произвольно выбирает одно из целых чисел, составляющих систему рун. Чтобы проверить возможные взаимодействия, SlugGlove загружался в комнату и засыпал объекты заклинанием «Random», пока не появлялось сообщение об ошибке.

«Я сидел в комнате и снова и снова запускал Random, пока не видел в Unity тот маленький красный значок, который мы все так хорошо знаем», — смеются они. «Была одна ситуация, когда, если вы переносили объект в прошлое, дублировали его, делали его «прилипным», а затем пытались отменить эффект «прилипания», возникала ошибка нулевой ссылки. «Благодаря Random я понял, что нужно это исправить».

Руна «Случай» в действии

Проблема с порталами

В игре Релл может перемещать предметы из одного места в другое с помощью руны «Портал». Это поставило перед нами еще одну уникальную задачу, которую предстояло решить. SlugGlove заметил, что когда объект, на который действует руна «Grow» (увеличивающая объекты), проходит через портал, он пересекается с окружающей геометрией, что приводит к появлению ошибок клиппинга.

При прохождении через портал руна «Рост» вызывает проблему с обрезанием

Первоначальный подход SlugGlove приводил к сбою телепортации, если Box Collider объёма увеличенного объекта обнаруживал пересечение границ при выходе из портала. Однако это было неидеальным решением, поскольку противоречило их Vision о свободной, «песочничной» природе системы заклинаний Релл.

«С точки зрения игрового дизайна это было просто ужасно», — говорит SlugGlove. «Я хотел избежать создания ситуаций, которые ограничивали бы игрока и его возможности». «Просто сказать „нет“ было действительно неприятно».

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

Объект, на который действует руна «Рост», появляющийся из портала, после фиксации

Сосредоточиться на процессе, а не на результате

Помимо оттачивания навыков работы с Unity в ходе разработки игры Rhell: «Warped Worlds & Troubled Times»: SlugGlove также освоил программу FL Studio, чтобы сочинить саундтрек к игре. Мы поинтересовались, как им удаётся избежать переутомления, когда приходится совмещать столько дел, работая над проектом столь грандиозного масштаба.

«Я просто отношусь к этому как к новой игрушке», — говорят они. «Если ты будешь зацикливаться на мыслях типа „А вдруг я потерплю неудачу?“ или „А вдруг то, что я создам, окажется некачественным?“, то это только приведет к стрессу». Я стараюсь сосредоточиться на позитивном и получать от этого удовольствие. В худшем случае, если я не смогу освоить эту музыкальную программу, я смогу попросить об этом друга. «Всегда есть запасной вариант».

Эта позитивная настройка прослеживается в словах поддержки, которые SlugGlove обращает к начинающим разработчикам игр, которых могут отпугнуть такие проблемы, как «разрастание проекта» и вопросы коммерческой привлекательности, ещё до того, как они приступят к работе с игровым движком:

«По крайней мере, создай что-нибудь, чем ты будешь гордиться, ради самого себя». Задайте себе вопрос: «Мне нравится это делать?» Ведь пока тебе весело, всё OK. Создавать видеоигры — это действительно забавно и весело. «Это не всегда должно быть стрессом».

Релл: Игра «Warped Worlds & Troubled Times» уже доступна в Steam. Познакомьтесь с другими играми, Made with Unity, на нашей странице куратора в Steam, а также прочитайте другие истории разработчиков Unity в блоге Unity и на портале ресурсов.