История для зумеров: жизнь Петра I в мобильной игре

Рассказываем и показываем, как мы сделали образовательную веб-игру по истории жизни Петра I

История для зумеров: жизнь Петра I в мобильной игре

В декабре 2021 года прошел культурно-образовательный хакатон «История будущего». Внутри хакатона команды креативных молодых людей соревновались за возможность воплотить в жизнь культурный проект.

По итогам защиты лучшим признали концепт команды «Петриада». Команда студентов разработала концепт веб-игры по истории жизни Петра I. Миссия проекта — сделать изучение истории более увлекательным и современным с помощью привычной и понятной подросткам формы — игры. За помощью с разработкой победители обратились в Molinos, а мы с энтузиазмом влились в проект.

История для зумеров: жизнь Петра I в мобильной игре

«Петриада» — визуальная новелла, сюжет которой строится вокруг истории жизни Петра I с 1687 по 1704 год. Игра разделена на 5 глав, внутри которых: 18 игровых эпизодов, 4 мини-игры с 24 вариантами заданий. По сюжету игрок знакомится с хроникой жизни царя. За время царствования Петру неоднократно приходилось принимать сложные решения, от которых зависели судьбы людей и Российского государства.

Игроку предстоит «прожить» основные события из жизни первого российского императора: «Азовские походы, Великое посольство, Персидские походы и Северная война», познакомиться с реформами, военными походами, а также ключевыми вехами в создании русского флота. В основу игры легла механика принятия решений самим самодержцем.

Название «Петриада» отсылает к эпической поэме А. Н. Грузинцева. Она была написана в начале XIX века и воспевала деяния Петра I и его любовь к Отечеству; в свою очередь это аллюзия на древнегреческую поэму о взятии Трои — «Илиаду» и другие поэмы классического стиля.

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

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

Разработка игры

Главный челлендж — уложиться в 4 месяца. Нужно успеть:

  • Разработать API
  • Разработать скелет игры
  • Разработать таблицу лидеров
  • Настроить авторизацию и регистрацию
  • Отрисовать задние планы
  • Отрисовать персонажей и элементы интерфейса
  • Настроить и подключить домены и сервера

Команда хакатона тоже участвовала в процессе разработки. Ребята распределили между собой роли:

  • Создали звуковое сопровождение
  • Написали сценарий и текст
  • Подобрали задания

Дизайн

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

Для сравнения, в среднем разработка графики и интерфейсов даже для небольших игровых проектов занимает от 6 до 12 месяцев. Мы, согласно требованиям команды, уложились в 4 месяца.

Дизайн разделен на:

  • background (задние планы) — 59 штук
  • элементы GUI — 9 элементов
  • персонажи — 41 уникальный герой
  • игры — 24 элемента
  • комиксы — 65 штук
181
элемент мы отрисовали

Конструктор

Технологическая начинка игры — универсальный внутренний конструктор на Unity.

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

Екатерина Тлусты, Project-manager Molinos
История для зумеров: жизнь Петра I в мобильной игре

Гравюра

Написание детекта позиций ластика над текстурой

Отдельно поговорим про мини-игры. Когда мы столкнулись с проблемой отображения и функционала игры “Гравюра” на устройствах под операционной системой IOS, мы решили обойти готовые решения стороной. Изначально прогресс проверялся подсчетом прозрачных пикселей в стираемой текстуре. Для того, чтобы проверять прогресс, сделали детект позиций ластика. Тестовые квадратики: черный - позиция пуста, зеленый - пользователь провёл в этом сегменте ластиком.

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

История для зумеров: жизнь Петра I в мобильной игре

Пазлы и кроссворд

Для игр «пазлы» и «кроссворд» приобрели готовые плагины, которые кастомизировали под проект. Внутри был странный функционал крутящихся пазл, что в связке с unity webGL выглядело тормозяще, особенно на мобильных устройствах. Его пришлось перерабатывать.

Для каждого пазла подбирали конкретные корабли. Через эту игру пользователь знакомится с разными кораблями и их названиями. Пазлы разного уровня сложности начиная с 8 элементов и заканчивая 24.

История для зумеров: жизнь Петра I в мобильной игре

Интеграция в телеграм бота

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

Челленджи для разработчиков

Поддержка браузеров
WebGL — технология, которую поддерживают не все браузеры. Из-за этого пришлось дополнительно проверять работоспособность сайта в разных браузерах.

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

А также:

  • Оптимизация веса билда

  • Настройки локальных бандлов адресной системы (правки против фризов загрузки контента)

  • Настройки билда в юнити (правки против фризов)

  • Оптимизация настроек шрифта

  • Оптимизация загрузок сцен

  • Оптимизировали настройки качества и степени сжатия для арта

  • Расставили степени сжатия для артов

  • Оптимизация скорости работы билда

  • Правки размеров канваса ui на сценах

Рекомендации по результатам

Если вы хотите написать сторонние API для проекта, имейте в виду, что у вас просто может не быть возможности завернуть это API в сам проект Unity.

Если вы хотите собирать метрику, то для этого потребуется плагин, который пробросит показатели метрики в проект Unity. Либо, можно написать API для метрики, которое будет отслеживать нужные параметры и передавать их на бэкенд.

Свои тонкости есть и в верстке. На IOS клавиатура отрисовывается системой нативно выше экрана, поэтому вёрстка не страдает. На Android-смартфонах клавиатура нативно отрисовывается сразу на экране — так уменьшается поле приложения, и адаптивная вёрстка уменьшается пропорционально оставшейся части экрана без клавиатуры.

Чтение пикселей в текстурах не работает на IOS и IPadOS, есть открытая ошибка об этом с 2016 года (поправили для всего, но айфон всё равно ломается). Как это решили мы — определением позиции курсора.

Чтение байтов пикселей через GL не работает на веб. Разработчики Unity обещают правку через две версии от текущей (версия выходит раз в месяц, текущая вышла в конце октября).

Обращайте внимание на шрифты, которые используете. Они должны поддерживать все нужные языки. Лучше проверить все буквы в среде разработки заранее, чтобы убедиться в том, что какие-либо буквы не пропадут.

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

  • Windows: только 7 SP1 +, 8, 10, 64-битные версии
  • MacOS: 10.12+
  • Linux: Ubuntu 16.04, 18.04 и CentOS 7.
  • Mozilla Firefox 42
  • Google Chrome 46
  • Apple Safari 8.0
  • MS Internet Explorer 11
  • MS Edge 13

Рекомендуем использовать последние версии браузеров Firefox и Chrome (для обоих 64-битные версии).

Команда проекта

Project Manager: Тлусты Екатерина

Account manager: Кутилина Ольга

Директор по развитию: Татьяна Анашкина

Devops: Веренцов Михаил

Unity developer

Back-end developer: Макаров Александр

Design: Раменский Кирилл

Tester: Латипов Элвис

Если хотите проверить свои знания в истории, игра доступна по ссылке. Пишите свои вопросы в комментариях — мы обязательно ответим!

77
6 комментариев
250 ₽

Комментарий недоступен

Ответить

теперь осталось понять кто будет играть в эту игру

2
Ответить

Основная ЦА — школьники. Игра отлично заменит пару глав учебника или поможет учителю провести нескучную проверочную. Сценариев масса!

Ответить

Автор молодец, но не зли бумеров. они не верят в зумеров!

1
Ответить

А мы верим во всех ❤️

1
Ответить

Интересная статья, спасибо!
У кого есть время можете ли вы оценить один из проектов моих?(в PlayMarket - Invest Clicker: Idle Tap Game).
Разработка шла в течение 1 месяца.
По стеку flutter+firebase(для лидерборда).
Если есть пожелания или какие нибудь идеи ответьте пожалуйста!!!

https://play.google.com/store/apps/details?id=com.da.invest_clicker

Ответить