Mark
Mark

Браузерная игра для обучения детей 4-7 классов решению алгоритмических задач и языку программирования Python.

О проекте

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

В настоящее время наша команда завершает работу над проектом для Московской Школы Программистов. Цель заключалась в том, чтобы создать браузерную игру для обучения детей 4-7 классов решению алгоритмических задач и языку программирования Python. Изучив рынок, мы выяснили, что существующие аналогичные игры в большинстве своем выполнены в 2D графике, поэтому было принято решение использовать 3D.

Редактор задач

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

Режимы отображения кода

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

Универсальный код

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

Удобство для ученика

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

Геймификация

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

Agile

Реализовать на выходе то, что хотел заказчик крайне не простая задача. Более того, обычно заказчик сам не знает, что он точно хочет. В современных реалиях если работать "по водопаду", т.е. по полностью написанному ТЗ, может случиться так, что когда заказчик, взгялнув на продукт в середине проекта понимает, что ему нужно что-то другое. Но так как все действуют в рамках ТЗ, приходится его переделывать/пересматривать/пересчитывать стоимость. Именно поэтому мы НЕ работаем по водопаду, только Agile.

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

WebGL

Для 3D графики мы использовали WebGL, столкнулись с большим количеством трудностей, так как технология появилась только в 2018 году и местами сыровата для наших нужд.

Это нестандартный проект. У нас получилось исполнять код на языке Python в браузере с собственными командами, смоделировать все игровые объекты, в т.ч. персонажа и все анимировать! Это пример слаженной работы заказчика и нашей команды, когда каждый ответственно подходил к своим задачам, был полностью вовлечен в процесс. Мы гордимся проделанной работой, нам вдвойне приятно, что написанный софт будут использовать дети, только встающие на наш путь!

Начнем Ваш проект

Расскажите о своей идее и узнайте о наших предложениях