4 метода решения проблем, которые должен знать каждый инди-разработчик
Команда Oldground Software пришла к нам, чтобы рассказать о своей новой игре Ace Squared, объяснить, как она была создана, и поделиться четырьмя интересными техниками решения проблем, которые они использовали в процессе разработки.

Введение
Ace Squared — это многопользовательский аренный шутер от первого лица, основанный на воксельной среде. В игре представлены разные классы, полностью модифицируемая среда и поддержка моддинга. Я бы сказал, что её отличает воксельная среда в сочетании с механикой шутера от первого лица.
Основное вдохновение я черпал из игры Ace of Spades: Battle Builder (AOS: BB) и отчасти из старого прототипа Ace of Spades, созданного Беном Аксоем. Я всегда имел в виду взять лучшее из AOS: BB, улучшить некоторые вещи и добавить свои собственные функции.

Ace Squared
Я сделал практически всю работу, связанную с разработкой программного обеспечения для игры. Никита очень помог со звуковыми эффектами и художественной стороной. Без меня проект не существовал бы. С другой стороны, без Никиты проект существовал бы, но выглядел бы плохо визуально.
Если я правильно помню, Никита начал моделировать вещи очень давно и присылал мне эти модели, и с тех пор внёс свой вклад в проект. Моя философия — просто создать отличную игру и исправить все ошибки.
Самая большая техническая проблема, с которой я столкнулся, — это часть сетевого кода. Я потратил значительное количество времени на изучение и внедрение отличного сетевого кода. Написание всего сетевого кода самостоятельно добавило к времени разработки легко год или больше, но, безусловно, многому научило.
И не помогает то, что многие люди, обладающие знаниями, скрывают информацию. Я не думаю, что были какие-то серьёзные проблемы с дизайном. Главным неожиданным препятствием была сложность написания сетевого кода. Некоторое время назад у меня был рабочий сетевой код, но позже я заметил, что он поддерживает только до 10 одновременных игроков, так что это, очевидно, нужно было улучшить.

Я преодолел все трудности, научившись отлаживать, читать и понимать каждую строку кода. Нет никаких волшебных рабочих процессов или инструментов. Я пока исправил 100% ошибок, которые действительно пытался исправить, и некоторые из них было действительно очень трудно исправить (и часто они были связаны с сетевым кодом).
Есть несколько методов решения проблем, которые я кратко опишу здесь и которые, как я обнаружил, отлично подходят для отладки этого проекта:
- Сбор информации: Соберите всю возможную информацию о проблеме, например, происходит ли проблема случайным образом? Какая операционная система? Является ли среда производственной или разработкой? Сколько оперативной памяти доступно в системе? Я думаю, что самая важная часть информации — это то, происходит ли ошибка случайным образом или нет, потому что если она происходит детерминированно, то её можно надёжно воспроизвести в среде разработки и затем быстро исправить.
- Логируй всё: Этот метод полезен для регистрации значений переменных и времени выполнения кода, например. Если есть ошибка, которая, по-видимому, возникает только в производственной среде, а статический анализ кода не даёт результатов, этот метод всегда можно использовать, чтобы добавить больше логирования, чтобы лучше понять среду выполнения.
- Видеозапись: В сочетании с логированием это может быть действительно полезным методом, по крайней мере, для отладки интерполяции сущностей или компенсации задержек. Если, например, регистрация того, что происходит на основе кадров, объединена с видеозаписью, где на экране отображается текущий номер кадра, я могу визуально увидеть, что происходит для каждого кадра журналов.
- Метод исключения: Это может быть одним из наиболее эффективных методов решения проблем или отладки. Его можно использовать либо для быстрого исправления проблем, либо использовать в крайнем случае, когда всё остальное терпит неудачу. Я упомянул его как последнее средство, потому что с его помощью можно найти причину проблемы, даже если вы не знаете внутренностей системы (например, ошибка или другие недокументированные вещи, происходящие в движке Unity).
Заключение
Я думаю, что самыми сложными аспектами публикации Ace Squared было взаимодействие со Steam и их API. Некоторые из их функций плохо документированы или не документированы вообще. Я преодолел эти проблемы, просто двигаясь вперёд и пытаясь найти информацию в интернете или обратившись в службу поддержки Steam.
Сначала я сделал игру платной, так как хотел заработать деньги за проделанную работу. Но совсем недавно, через год после выпуска в раннем доступе, я сделал классический режим в Ace Squared бесплатным (1 декабря 2025 года). Основные цели для перехода — улучшить маркетинговый охват, увеличить количество игроков для этого инди-многопользовательского шутера от первого лица, сделав его более доступным, и позволить большему количеству игроков протестировать игру и получить опыт её прохождения.
Игра доступна в Steam.
Oldground Software
Интервью проведено 80 Level
Автор: Oldground Software Oy
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.