GameDev: разработка на Unity3D
446 subscribers
6 photos
2 videos
7 files
40 links
Все для успешного развития разработчика в геймдев: от junior до CTO. SOLID на практике, IOC, DI. Новые паттерны для gamedev. Личный опыт.

Заявка на разбор тестовых https://forms.gle/kqVPv1jWT97Bkps9A
Download Telegram
#Unity3D #тестирование

Что еще нельзя оставлять без внимания в процессе тестирования игр:

🟢 Шейдеры

Речь о проверке шейдеров для различных графических архитектур в Unity, особенно при ориентации приложения на широкий спектр устройств на платформах Windows, Android и iOS.
Графические процессоры Adreno и Mali охватывают большую часть Android-устройств, в то время как Metal используется на устройствах Apple.

Особенности тестирования шейдеров:
Adreno: Известен своей эффективностью при работе с некоторыми типами вычислений, но может сталкиваться с проблемами при работе со сложными шейдерами, содержащими динамическое ветвление.
Проверять необходимо на различных моделях Adreno (например, серии Adreno 600), чтобы выявить узкие места.

Mali: Шейдеры для этих GPU иногда демонстрируют пониженную производительность при использовании сложных текстурных операций и большого количества инструкций ALU.
Для выявления проблем с производительностью используйте Mali Offline Compiler.

Metal: На iOS-устройствах необходимо удостовериться, что шейдеры работают корректно и оптимизированы для архитектуры Metal.

‼️Важно тестировать шейдеры на реальных устройствах, чтобы проверить, как они обрабатываются на уровне компиляции Metal и избежать потенциальных ошибок рендеринга.
Оптимизируйте ресурсы: старайтесь минимизировать количество draw call'ов и сложность шейдеров, чтобы избежать перегрузки GPU.

🟢 Тестирование нативных окон запроса разрешений
Речь про проверку системы при наличие/отсутствии пользовательских разрешений, таких как запросы на трекинг IDFA и push-уведомления.
Ошибки при реализации данных запросов могут привести к проблемам при модерации приложения в сторе.

Рекомендации по проверке:
- Избегать блокировки логики игры: никогда не делайте так, чтобы игра не могла продолжить работу, если пользователь отклоняет запрос разрешений. Например, если игрок не принял трекинг IDFA, интерфейс должен корректно обрабатывать это событие и не блокировать дальнейший прогресс.
- Тестирование на отказ: проверяйте, что приложение корректно реагирует на случаи, когда разрешение не принято.
Это поможет избежать ситуаций, когда ревьюер App Store или Google Play не может протестировать приложение должным образом, что приводит к отклонению.

🟢 FTUE и воронки игроков
FTUE (First Time User Experience) играет ключевую роль в удержании пользователей.
Анализ воронки игроков позволяет понять, насколько хорошо новая аудитория воспринимает ваш проект.

Рекомендации по тестированию FTUE:
Анализ цепочки действий игроков: аналитическая система должна отслеживать каждый шаг пользователя после первого запуска игры.
Сколько пользователей запустило игру, сколько прошло туториал, сколько достигло первого уровня и т.д.

‼️Метрики удержания: собирайте данные о количестве пользователей, покинувших игру на разных этапах. Это поможет выявить проблемные зоны и улучшить ранний игровой опыт.

Продолжение 🔽
2🔥2👍1
#Unity3D #тестирование

Также не забываем про потенциально узкие места 🔽

🟢 Папки Resources

Часто разработчики для хранения ассетов используют папку Resources в Unity, это может казаться удобным способом хранения для загрузки во время выполнения.
‼️Однако её чрезмерное использование может привести к проблемам с производительностью и управлением памятью:

Загрузка всех ассетов: При старте Unity загружает все файлы в папке Resources в память, что увеличивает время загрузки и потребление ресурсов.
Сложность управления: ассеты, загруженные через Resources.Load, не могут быть легко управляемы или обновляемы при выпуске патчей.

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

🟢 Папка StreamingAssets

StreamingAssets - специальная папка, где можно хранить файлы, которые нужно загружать в неизменённом виде во время выполнения (например, видео, звуковые файлы и другие данные).
Файлы из этой папки не упаковываются в игровые сборки и могут быть загружены напрямую с диска.

Рекомендации по использованию StreamingAssets:
Медиафайлы и конфигурации: используйте эту папку для хранения больших файлов или конфигурационных данных, которые не нуждаются в обработке Unity.
Платформенные особенности: учтите, что на разных платформах пути доступа к этой папке могут отличаться, поэтому важно протестировать корректность загрузки файлов на Windows, Android и iOS.

‼️Вложенные усилия в тестирование помогут создать высококачественный продукт, способный конкурировать на рынке и завоевывать доверие игроков.

В рамках текущей публикации я рассмотрел какие акценты необходимо расставлять в процессе тестирования.
В рамках следующей публикации разберем набор инструментов для тестирования.

Хорошего дня! 👋
Вопросы жду в комментариях!
👍116🔥4