Образовательная игра для детей: реализация кода и геймплейной логики по ТЗ заказчика

Образовательная игра для детей: реализация кода и геймплейной логики по ТЗ заказчика

Задача

Создать мобильное приложение с несколькими интерактивными мини-играми, которые помогут детям 6–12 лет освоить базовые принципы обращения с деньгами: накопление, расчёт, распознавание номиналов, развитие памяти и внимательности. Приложение должно быть увлекательным, интуитивным и работать без сбоев на широком спектре Android-устройств, включая бюджетные модели, с минимальным размером APK.

Решение

1. Декомпозиция ТЗ и выбор подхода

На старте:

• Техническое описание от заказчика: правила, логика, структура уровней
• Отрисованные 2D-ассеты: монеты, купюры, экраны интерфейса, предоставленные дизайнерской командой заказчика.
• Озвучка Helper’а (в mp3 и excel с таймингами)

Что сделали:

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

Решения:

• Использовали Addressable Assets от Unity для асинхронной загрузки сцен и ресурсов, что сократило размер APK на ~30%. Это было важно для работы на бюджетных устройствах и соответствовало цели заказчика по доступности
• Конфигурации уровней (цены, номиналы, тексты) хранили в ScriptableObjects, что позволило быстро вносить изменения без правки кода. Это упростило итерации и дало заказчику возможность обновлять контент самостоятельно.

2. Модульная разработка для чёткого выполнения

Вместо того чтобы пытаться “сделать всё сразу”, мы разбили разработку на независимые этапы — каждая мини-игра как отдельный модуль. Это был осознанный выбор:

• позволил быстрее согласовывать механику с заказчиком,
• ускорил цикл “сделали → протестировали → доработали”,

Описание мини-игр:
• Копилка: Drag-and-drop игра для изучения номиналов и накопления.
- Стала шаблоном для других механик, используя физическую систему Unity для плавных взаимодействий.
• Покупки в магазине: Пошаговая игра для обучения расчётам и бюджетированию.
- Отработали интерактивный UI и обработку ошибок (например, выбор неверных монет).
• Карточная память: Игра на совпадение пар для запоминания номиналов.

• Сейф: Игра «найди отличия» для развития внимательности.
- Столкнулись с проблемами точного размещения коллайдеров, решёнными через тестирование.
• Ремонт банкомата: Сложная drag-and-drop игра с кастомными слотами и многошаговой логикой.
- Требовала детальной проработки анимаций и скриптов управления событиями.

Почему так?

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

Ценность для заказчика:

Модульный подход сократил время разработки на ~20% по сравнению с монолитной структурой, позволив заказчику быстрее согласовывать игры. Это также сделало приложение масштабируемым, упрощая добавление нового контента в будущем.

3. Тестирование, отладка, баги

• Провели прогон на Android-устройствах (версии 8–13), от бюджетных телефонов до современных планшетов.
• Отловили баги обработки касаний, так как дети часто нажимают у краёв экрана.
• Решили проблему масштабирования интерфейса на экранах с соотношением сторон 18:9 и выше с помощью адаптивной логики Canvas.

Решения:

• Чувствительность касаний: Добавили буферные зоны вокруг интерактивных элементов, чтобы улавливать касания у краёв, улучшив удобство для юных игроков.
• Производительность на слабых устройствах: Оптимизировали количество draw calls и размеры текстур, сократив лаги на 25% на старом оборудовании.

Почему такой подход?

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

Результат

Итоговый продукт — лёгкое, модульное мобильное приложение, разработанное на Unity, включающее пять мини-игр: «Копилка», «Покупки в магазине», «Карточная память», «Сейф» и «Ремонт банкомата». Каждая игра направлена на изучение конкретного финансового понятия и развитие когнитивных навыков. Приложение включает виртуального помощника (Helper), адаптивный интерфейс для разных размеров экрана, асинхронную загрузку ресурсов для оптимизации производительности и тщательное тестирование для обеспечения стабильной работы на Android 8–13.

Ценность для заказчика:

Масштабируемость: Модульная структура позволяет легко добавлять новые мини-игры или обновлять контент без переработки кода.

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

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

Почему такой подход?

Мы выбрали Unity за его кроссплатформенные возможности и мощные инструменты для 2D-игр, идеально подходящие для создания визуально привлекательного и производительного приложения. Модульная структура и Addressable Assets обеспечили небольшой размер приложения и масштабируемость, что критично для широкого распространения. Приоритет на тестирование и доступность гарантировал надёжную игру для разных устройств.

Разработка велась в четыре ключевых этапа, Мы использовали Unity как основную платформу, применяя модульный подход для обеспечения масштабируемости и простоты поддержки. Ниже представлено подробное описание этапов.

Работа выполнена в соавторстве

Разрабатывалось командой (CREEX TEAM * Товарный знак CREEX TEAM (№ 1101410))
Алексей Кострыкин - Руководитель проекта, Unity разработчик
Дмитрий Подобный - Unity разработчик