Блог

4 метода решения проблем, которые полезны каждому инди разработчику



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

По вдохновению проект опирается на Ace of Spades Battle Builder и частично на старый прототип Ace of Spades, который делал Ben Aksoy. Автор изначально хотел взять сильные стороны Battle Builder, улучшить спорные моменты и добавить собственные идеи.

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

Самой тяжелой технической темой стал сетевой код. На его изучение и реализацию ушло много времени, и самостоятельная работа над netcode легко добавила год или больше к срокам. Плюс мешало то, что часть полезных знаний сложно найти из за закрытости сообщества. В какой то момент сетевое решение вроде бы работало, но позже выяснилось, что оно держит примерно до 10 одновременных игроков, и это потребовало серьезной переработки.

Проблемы закрывались через дисциплину в отладке и привычку понимать код построчно. Автор подчеркивает, что чудо инструментов нет, а результат дает именно методичная проверка гипотез. Он также утверждает, что исправлял все баги, за которые реально брался, включая особенно неприятные сетевые.

Четыре техники, которые команда выделяет как самые полезные для поиска причин и фикса:

  • Сбор информации - выяснить все условия, где проявляется ошибка, и особенно понять, случайная она или воспроизводится стабильно;
  • Логирование всего важного - добавлять логи значений, таймингов и ключевых веток выполнения, особенно если проблема всплывает только в продакшене;
  • Видеозапись вместе с логами - фиксировать поведение по кадрам и сопоставлять картинку с тем, что пишет лог, это удобно для интерполяции и компенсации задержки;
  • Метод исключения - отключать и упрощать части системы, пока не станет видно, где именно источник сбоя, даже если движок или модуль работает как черный ящик.

В части публикации авторы считают самым неприятным этапом работу со Steam и его API, потому что часть возможностей описана слабо или вообще без документации. В итоге проблемы решались прямым поиском информации в интернете и через обращения в поддержку Steam.

Изначально Ace Squared вышла по платной модели, чтобы окупать труд команды. Но позже, спустя год после раннего доступа, классический режим сделали бесплатным с 1 декабря 2025. Цели перехода понятные - расширить охват, поднять онлайн в мультиплеерном инди FPS и дать большему числу людей возможность попробовать игру. Проект доступен в Steam.

Комментарии (2)

Понравилось, что автор не романтизирует разработку и честно говорит, сколько времени съедает netcode
Четыре метода звучат практично, особенно связка логи плюс видео, потому что так проще ловить странные сетевые артефакты
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.