Браузерная игра для обучения детей 4-7 классов решению алгоритмических задач и языку программирования Python.
Браузерная игра для обучения детей 4-7 классов решению алгоритмических задач и языку программирования Python.
Геймификация - психологический инструмент, способный усиливать мотивацию, концентрацию и интерес. Использование компьютерных игр для обучения детей, совмещение игрового процесса с процессом образования, несомненно, показывает отличные результаты.
В настоящее время наша команда завершает работу над проектом для Московской Школы Программистов. Цель заключалась в том, чтобы создать браузерную игру для обучения детей 4-7 классов решению алгоритмических задач и языку программирования Python. Изучив рынок, мы выяснили, что существующие аналогичные игры в большинстве своем выполнены в 2D графике, поэтому было принято решение использовать 3D.
Для составления более 1000 задач предполагалась работа методистами в текстовом файле, однако стало понятно, что редактирование 3-Д мира таким способом чересчур трудоемко, поэтому нашей командой разработчиков было написано веб-решение для составления задач методистами. В этом разделе реализован просмотр истории редактирования, которая позволяет отследить все изменения, внесенные в задачу другими методистами, а также функция отмены/повтора.
На пользовательской стороне для детей доступно три режима написания кода - графический, тексто-графический и текстовый. Методист может контролировать возможность использования определенных режимов для каждой задачи. Переключение режимов в реальном времени, позволяет ученику изучать новые команды, используя понятные графические обозначения.
Для того, чтобы дети писали универсальный код, в каждой задаче может быть до трех миров, для каждого из которых запускается одно и то же решение ребенка. Более того, методист может поместить на карту случайный блок, который превращается при каждом запуске в случайный блок из заданного списка.
Для каждой задачи можно выбрать комфортную скорость воспроизведения или включить режим пошагового воспроизведения кода. В любой момент можно сохранить черновик и вернуться к выполнению задачи позже.
Система поощрений и мотивации реализована следующим образом - в процессе игры ученик собирает энергию, которая имеет некоторую игровую ценность, и которую впоследствии можно потратить на улучшение своего персонажа. Также за каждую решенную задачу ученик получает баллы, которые поднимают его на новый уровень. Кроме того, в игре действует система ачивок, который ребенок может заработать.
Реализовать на выходе то, что хотел заказчик крайне не простая задача. Более того, обычно заказчик сам не знает, что он точно хочет. В современных реалиях если работать "по водопаду", т.е. по полностью написанному ТЗ, может случиться так, что когда заказчик, взгялнув на продукт в середине проекта понимает, что ему нужно что-то другое. Но так как все действуют в рамках ТЗ, приходится его переделывать/пересматривать/пересчитывать стоимость. Именно поэтому мы НЕ работаем по водопаду, только Agile.
Работа над проектом велась небольшими итерациями, регулярно проводились встречи с представителем заказчика, на которых уточнялись требования и ставились задачи на разработку. Это дало возможность получить на выходе максимально возможный результат.
Для 3D графики мы использовали WebGL, столкнулись с большим количеством трудностей, так как технология появилась только в 2018 году и местами сыровата для наших нужд.
Это нестандартный проект. У нас получилось исполнять код на языке Python в браузере с собственными командами, смоделировать все игровые объекты, в т.ч. персонажа и все анимировать! Это пример слаженной работы заказчика и нашей команды, когда каждый ответственно подходил к своим задачам, был полностью вовлечен в процесс. Мы гордимся проделанной работой, нам вдвойне приятно, что написанный софт будут использовать дети, только встающие на наш путь!
Расскажите о своей идее и узнайте о наших предложениях