Вернуться

Интеллектуальные игры для школьников Сайт-сервис интеллектуальных игр для РосНОУ

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

Заказчик

Российский новый университет или просто РосНОУ — один из крупнейших частных вузов нашей страны. Он входит в сотню лучших российских вузов по версии рейтингового агентства «Эксперт РА» и в список Round University Ranking.

Ситуация

Интеллектуальные игры для школьников — инициатива Росмолодежи. Осенью 2018 года федеральное агентство разыграло грант среди учебных учреждений, и РосНОУ его выиграл. Но, как это часто бывает с грантами, сроки на реализацию оказались очень жесткими и ограниченными. Опоздай мы хоть на день, сорвали бы мероприятие детям. 

Что такое Интеллектуальные игры?

Игры — это командное соревнование для учеников школ и средне-специальных учебных заведений от 14 до 18 лет. В рамках гранта РосНОУ решили провести два чемпионата.

Чемпионат для команд Москвы и Московской области

  • 3 дистанционные отборочные игры 
  • 3 очных полуфинала
  • Финал

Открытый Чемпионат России для команд из любых регионов страны

  • 2 дистанционные игры

Дистанционные игры проходят на сайте. На Чемпионате Москвы по их результатам отбираются команды для полуфинала. На Чемпионате России победители определяются по результатам дистанционных игр. Очные игры, в том числе финал, проходят в РосНОУ — но и для них нужен сайт.

Задачи

Перед нами стояло три задачи:

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

И все это за два месяца, так как даты каждого мероприятия уже были утверждены и подвинуть их было нельзя.

Реализация

Чтобы наверняка успеть к заданным чекпоинтам, мы разбили работу на итерации.

 

Главная страница

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

Регистрация

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

Демо-версия

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

Отборочные игры

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

Когда ребята отвечают, они видят результат (правильно или нет) и количество игроков, которые ответили верно. А в реальном времени обновляется чарт: первая пятерка команд выходит в полуфинал.

Отборочные игры Чемпионата Москвы начались 12 ноября в три часа дня. Мы открыли доступ к старту игры и обеспечили до 1000 одновременных стабильных подключений — участников и зрителей.

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

  • Выбрать один правильный ответ
  • Сопоставить одно с другим
  • Заполнить пропуски
Павел Бондарович
Технический директор
Павел Бондарович

Требование клиента — обеспечить возможность подключиться к игре 1000 пользователям одновременно. Это и игроки, и многочисленные зрители. При этом состояние игры должно отображаться в реальном времени и без задержек. На ответ команде дается ограниченное время, поэтому каждая секунда на счету!

Для решения этой непростой задачи мы написали приложение на Node.js (менеджер игры), которое общается с браузером через socket, принимает ответы и рассылает пользователям все изменения, произошедшие в игре. Благодаря хорошо продуманной архитектуре приложения-менеджера игр мы не загружаем основной веб-сервер и готовы принять значительно больше, чем 1000 пользователей.

Полуфинал и финал

Последняя отборочная игра завершилась 14 ноября, а уже 17 мы запустили первый полуфинал. Каждая игра полуфинала состоит из трех раундов.

А-ля «Что? Где? Когда?». Ведущий зачитывает вопрос и включает обратный отсчет. Если команда дает правильный ответ, ей начисляются баллы, неправильный дает шанс ответить другой команде.

Викторина по типу «Своей игры». Перед игроками табло с вопросами разных тематик и «веса». Если участник дает правильный ответ, зарабатывает баллы для команды и место для одного игрока в последнем раунде.

Заключительный раунд проходит как первый. Только команды играют не в полном составе. Начинают те игроки, для кого заработали места в предыдущем туре. Если команда отвечает правильно, к ним присоединяется один игрок. Побеждает тот, кто первым соберет за столом всю команду.

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

Админка

  • экземпляр игры с вопросами
  • возможность отмечать, кто ответил правильно
  • формировать состав игроков следующего раунда
  • начислять и списывать баллы
  • старт и переключение раундов

Публичная часть

  • заставка игры
  • вопросы
  • таймер обратного отсчета
  • индивидуальный рейтинг
  • командный рейтинг

Рейтинги обновляются в реальном времени

Павел Бондарович
Технический директор
Павел Бондарович

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

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

Результаты

Интеллектуальные игры состоялись! Оба чемпионата прошли по расписанию, без неприятных сюрпризов и срывов. Заказчик потом признался, что был морально готов выводить на проектор баллы в Excel-табличке, так как понимал всю нереальность сроков. Но мы справились с этим вызовом.

2
месяца работы
207
зарегистрированных команд
1000+
участников и 70 публикаций в СМИ

Сервис — не одноразовая история, его можно использовать в будущем. После чемпионатов РосНоу уже устраивал внутренний турнир для своих студентов. Клиент получил долгоиграющий проект, а проект — бронзу Tagline Awards в номинации «Сайт мероприятия».

Спасибо за внимание

Никита Храмов
Аккаунт-менеджер
Никита Храмов

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

Давайте обсудим ваш проект

Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь с Правилами обработки и использования персональных данных

Другие наши кейсы

Платформа для обучения

Платформа для обучения

Разработали сервис-конструктор для обучения

Платформа для обучения
Скорый повар

Скорый повар

Сервис быстрой доставки обедов

Скорый повар
Novex Акции

Novex Акции

Разработка сервиса для управления акциями

Novex Акции
Teddy Food

Teddy Food

Сервис помощи бездомным животным

Teddy Food
Ozon API

Ozon API

Интеграция с Ozon API

Ozon API
Astrology.pro

Astrology.pro

Сервис для астрологов

Astrology.pro

Звоните, пишите

Давайте обсудим ваш проект

Никита Храмов
Аккаунт-менеджер
Никита Храмов

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

Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь с Правилами обработки и использования персональных данных
Блог