Игры, обучающие программированию — «Как делают игры. 323»

О поиске баланса между пользой и развлечением.

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

В гостях:

  • Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat
  • Сергей Шашков, продуктовый менеджер и методист курсов по программированию, uchi.ru

Ведущий — Михаил Кузьмин.

Послушать выпуск можно на сайте КДИ, в Apple Podcasts, Google Podcasts.

Оглавление

Знакомство с гостями

Валентин Брюханов попал в геймдев лет семь-восемь назад. Он работал инженером по телекоммуникациям, потом сисадмином, аналитиком, программистом, начальником аналитиков. Затем он подался в CheckiO, где проработал пазл-дизайнером около трёх лет. После этого он перешёл в Code Combat, где работает уже пять лет.

Code Combat
Code Combat

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

Сергей Шашков в геймдеве уже очень давно. В седьмом классе он начал ходить в кружок по программированию — там он изучал Pascal и Basic. Но его учитель плохо разбирался в этих темах, поэтому просто выдал учебник, по которому Шашков занимался весь год. На следующий год история повторилась, но в итоге ему хватило знаний и он написал свою первую игру.

Я тогда был восьмиклассником и не понимал ничего. Все мои метеориты хранились в наборе повторяющихся переменных.

Сергей Шашков, продуктовый менеджер и методист курсов по программированию, uchi.ru

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

В 2017 году он попал в uchi.ru. Сначала Шашков занимался олимпиадами по математике для начальной и средней школы. Идея была в том, чтобы сделать математику красивой.

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

О сервисе uchi.ru

Шашков рассказал, что uchi.ru — это крупнейший в России образовательный онлайн-портал. Там зарегистрирована как минимум половина школьников России. На сайте представлено много курсов, покрывающих всю школьную программу, но основной акцент на младшие классы. Идея сайта в том, чтобы объяснять тему в виде цепочки примеров, которая постепенно подводит к тому, чтобы ребёнок сам всё понял. Есть курсы для средней и старшей школы, но с ними сложнее, потому что аудитория меньше, а задачи другие.

Игры, обучающие программированию — «Как делают игры. 323»

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

Брюханов рассказал, что он постоянно мониторит хорошие идеи из области образования и uchi.ru по качеству может составить конкуренцию западным компаниям.

Оба моих ребёнка уже больше года занимается только на uchi.ru. Посадил ребёнка — и он учится. Я постоянно скидываю коллегам скриншоты оттуда.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

Шашков ответил, что на старте uchi.ru они тоже смотрели на Code Combat.

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

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

Об играх, обучающих программированию

Брюханов рассказал, что Coding Game и Programming Game — не обязательно про обучение программированию. На самом деле определение таких игр расплывчатое, но их объединяет одна особенность — у игрока нет прямого управления над персонажами, поэтому ему нужно писать код, чтобы достичь цели. Чаще всего для этого используется визуальное программирование — блоки, символы в любом виде.

MOLEK-SYNTEZ от Zachtronics
MOLEK-SYNTEZ от Zachtronics

Coding Game — это когда ты не можешь пройти игру, не написав программу. Под программой я понимаю очень общую штуку. Это не обязательно код на существующем языке. [...]

Любая Coding Game будет так или иначе обучающей, потому что программирование — это всегда решение каких-то задач. Бывает программирование ради программирования, когда нравится городить абстракции. Но обычно работодатели нанимают программистов, чтобы решить какую-то задачу.

Сергей Шашков, продуктовый менеджер и методист курсов по программированию, uchi.ru

Брюханов отметил, что есть французский стартап CodinGame, который занимается рекрутингом. И там используются Coding Game для выявления способностей кандидатов — они соревнуются, а потом лучшие резюме уходят в топовые компании.

Самые известные Coding Games — это практически все игры от студии Zachtronics, while True: learn(), Satisfactory, Minecraft Education Edition, Code Combat, CodeMonkey, codeSpark Academy, LightBot, «ЛогоМиры».

while True: learn()
while True: learn()

Из тех, что кажутся лёгкими, а потом превращаются в хардкор — это Human Resource Machine и 7 Billion Humans. Они поначалу выглядят как логические головоломки, но быстро превращаются в программистский хардкор — это ещё один пласт игр. Ещё есть группа проектов, которые пытаются затащить в игры программистов, которые не любят игры — это, например, Screeps от русскоязычных создателей.

Что важнее: научить или развлечь

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

Будет ли ребёнок при этом по-настоящему учиться или нет, зависит от вашей совести. Если продавать продукт школам, то его смогут оценить учителя и определить, есть ли в нём польза. А родитель не сможет разобраться.

Если уйдёшь далеко в геймдизайн, детям будет классно, но платят-то родители. Если уйти далеко в суровое образование, получаем Khan Academy: родители счастливы, дети плачут горькими слезами и не хотят играть. Вот между этим надо балансировать. Многое зависит от того, кому продаёте. Мы продаём не только школам, у нас есть продукт для домашнего образования, там больший упор на игру. А для школ — Ozaria: образовательная игра с глубоким нарративом и без насилия.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat
Ozaria

Также важно учитывать ещё и сеттинг. К примеру, девочки не хотят играть во что-то про сражения и драконов. Именно поэтому важно найти баланс, чтобы было интересно всем.

На рынке США ещё есть minority, и это танцы на горящих углях. Пример: у нас в начале истории герой ищет потерявшуюся маму. Через два месяца мы вырезали и переписали этот кусок. Учителя приходили: у нас много учеников, кто без мамы, трагический опыт. Что делать? Теперь герой ищет потерявшегося волшебника.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

О предпочтениях аудитории

Брюханов рассказал, что на запуске Ozaria разработчики рассматривали три сеттинга: магическое фэнтези, современную мистику и sci-fi. Оказалось, что sci-fi сразу отсеивал девочек. Подростковая фэнтези-мистика — для старших классов. В результате команда выбрала волшебное фэнтези, потому что такой стиль отлично подходил для основной аудитории — учащихся с второго по восьмой класс в США.

По словам Шашкова, девочкам с первого по третий класс нравятся принцессы из «Холодного сердца», мальчикам — «Трансформеры». Делать продукт для широкой детской аудитории сложно, потому что каждые три года интересы сильно меняются.

Если над задачей нужно думать, время, которое тратят мальчики и девочки, примерно одинаковое. Если нужно быстро лупить по клавиатуре — мальчики быстрее. Если нужно быстро наводить порядок — быстрее девочки. На старте курса всё примерно одинаково. А потом наступает pay wall, и после него мальчиков на 30% больше. Вот такая грустная история. Девочка говорит: «Папа, я хочу программировать», а папа ей: «Куда тебе программировать?».

Сергей Шашков, продуктовый менеджер и методист курсов по программированию, uchi.ru

Стандарты образования в США и России

По словам Брюханова, большая боль — это школьный стандарт образования. Если вы делаете продукт для школы в России, то можете забыть про свой дизайн, открыть стандарт и следовать ему.

LightBot
LightBot

В США стандарт преподавания информатики в последние годы устаканился. Теперь Computer science включает блок Creativity. Чтобы ему соответствовать, недостаточно рассказывать про Computer science — вы теперь должны преподавать командную работу, информационную безопасность, креативность.

Мы выкручиваемся тем, что продаём не только игру, но и стопочку мануалов: инструкцию учителю, как организовать игру, как сделать Escape Room (квест). Этим же мы закрываем галочки шифрования и информационной безопасности. К примеру, есть задача, в которой нужно подобрать пароль.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

Шашков рассказал, что в России стандарт по преподаванию математики более расплывчатый, чем в США. В разных учебниках отдельные темы проходят не только в разном порядке, но и в разных классах. Одну тему могут преподавать в пятом классе или в седьмом. Поэтому Шашков с командой не стремятся попасть в этот стандарт.

А с программированием ещё лучше — в стандарте написаны общие слова, уроков программирования в школе пока нет, поэтому нет необходимости попадать в стандарт.

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

Code Monkey
Code Monkey

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

По словам Брюханова пандемия негативно отразилась на Code Combat, потому что компания продавала продукт школам. Весной в США случились две вещи: пандемия и Трамп. И то, и другое урезало бюджеты школам. Поэтому компания начала делать онлайн-классы. И это помогло развиваться, потому что она работает на своём продукте, а другие онлайн-школы — на чужом. Code Combat потеряла посещаемость в школах, но нашла много индивидуальных пользователей — родители сидят дома, лагерей нет.

Сейчас всё немного поменялось — после прихода Байдена школам увеличили бюджет. Теперь, когда школа покупает курс, она сразу задумывается, сможет ли перенести его в онлайн-формат. В случае Code Combat можно бесшовно перейти из обычного класса в виртуальный, так как компания продаёт полный продукт.

Чем хорош наш продукт? Ученика не надо заставлять делать домашку, он проходит уровни, просит открыть новые. Учителя видят, что дети просят дополнительное домашнее задание и это сказка для них.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

По словам Шашкова, пандемия помогла uchi.ru. В России учителей заставляют делать кучу странных вещей. Когда ввели удалённое обучение, большинство учителей не имели опыта проведения онлайн-уроков и у них не было инструментов. К примеру, существовала проблема с шутниками, которые могли прямо на уроке включить порнографию — учителям приходилось постоянно отвлекаться и банить.

Из-за этого люди начали искать, где можно нормально учиться. Платформа uchi.ru на этом выиграла, потому что на ней были уроки для самостоятельного занятия школьников. Учитель мог дать задание и увидеть, сделали это или нет. Также появилась возможность проводить видеоконференции.

codeSpark Academy
codeSpark Academy

По словам Шашкова, большая разница между российским и американским рынком образования в том, что в России школы не закупают софт, потому что у них нет бюджета для этого. Типичная стоимость софта — $10 на школьника, для обычной школы это много. Российским школам сложно продать образовательный софт. В США школы закупают много образовательных программ, там есть здоровая конкуренция.

Действительно ли только кодинг сделает вас программистом

По словам Брюханова, существуют критики, которые утверждают, что через игру невозможно учиться.

Я люблю пример учителя истории, который преподавал историю Италии и Средних веков через Assassin's Creed. Ты идёшь и изучаешь город с помощью игры: можешь залезть на капеллу — в жизни такое вряд ли удастся. Я в детстве учил английский через игры. У нас не было локализации, только словарик. Я научился благодаря играм, заставлять не приходилось.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

Часто встречаются родители, которые уверены, что игры — это зло. Хотя даже Minecraft способна дать много полезных навыков — обучить базовой геометрии, познакомить с координатной сеткой, логикой, абстрактными задачами, планированием ресурсов.

Мой начальник по-жёсткому обучает детей в Minecraft — они уже построили какой-то завод с конвейерами, автоматической фабрикой по добыванию алмазов. У ребёнка в пять лет уже есть инженерное мышление, построение, понимание, как работает конвейер. Я уж молчу про навык ориентироваться в пространстве по карте.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat
Minecraft: Education Edition
Minecraft: Education Edition

По мнению Брюханова, в каждой игре есть что-то полезное. К примеру, в компании, в которой он работает, есть игровой клуб — участники проходят игру в течение трёх недель, а потом обсуждают, чем она может быть полезна. В каждой есть что-то подобное. Даже в игре, где нужно собрать девочке гардероб, есть образовательный элемент — планирование бюджета. Но нужно правильно объяснять это родителям.

Когда вы даёте ребёнку задачу, очень важны Learning Goals — учебные цели. Объясняйте, зачем это нужно решать. Это проблема наших школ: тебе дают синусы и косинусы и не объясняют, для чего это нужно.

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

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

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

Валентин Брюханов, Gameplay Developer & Game Designer, Code Combat

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

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

Всегда держите в голове, что многие дети ни разу не запускали компьютерные игры. Поэтому для них может оказаться непонятной даже такая базовая механика как передвижение по стрелочкам (не говоря уже про WASD).

Shenzhen I/O
Shenzhen I/O

О требованиях к геймдизайнерам

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

Как устроены образовательные платформы

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

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

Вопросы аудитории

Есть ли игры, обучающие современным языкам программирования?

Есть. И их достаточно много. К примеру, существуют игры для Python, Java Script, Swift, Lua. Но вряд ли хотя бы одна игра даст достаточно знаний, чтобы стать junior-программистом. Чтобы войти в профессию, вам нужно понимание технологий и фреймворков.

Как развивался жанр?

По словам Брюханова, жанр развивался всплесками — сперва выходила какая-то успешная игра, а за ней появлялись подражатели. Такое было и в 80-х (с игрой Hacker), и в 90-х, и сразу после выхода Colobot в 2001 году.

Colobot
Colobot

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

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

Как правильно выстроить процесс обучения?

Самое главное — не отбить желание заниматься программированием. Если ребёнку нравится, то ему нужно аккуратно давать больше материалов, например, с Uchi.ru, CodeMonkey.

Или вы можете зайти через игры. Если ребёнок любит Roblox, то предложите сделать в нём уровень. Сначала всё будет легко, но в какой-то момент он наткнётся на сложность и ему придётся погрузиться в тему. У ребёнка должна быть конкретная цель, для достижения которой он будет заниматься программированием. Какая-то абстрактная и далёкая польза вряд ли его привлечёт.

Какие темы из программирования даются сложнее всего?

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

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

7878
28 комментариев

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

Если интересно, то попробовать можно уже сейчас:
https://goodcrafter.itch.io/logicalpath

13
Ответить

И в темной теме

10
Ответить

Огоо! Только дочитал "Код", а тут как раз самый настоящий конструктор логики! Спасибо, пошел разбираться))

3
Ответить

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

Ответить

Кстати, вспомнился курс From Nand to Tetris https://www.nand2tetris.org/
Как раз взял их недавно на курсере и хотел по фану/работе пройти.

Ответить

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

Ответить

Забыли TIS-100, мою жопную боль.

3
Ответить