Міні-геймджем в школі. Організаційні моменти, успіхи учнів та інсайти

Всім привіт! Мене звати Тимур. В минулому розробник курсів на основі Lego Education та Minecraft: Education Edition, а наразі вчитель інформатики і C++ Online/Engine програміст. Більше про мене можна дізнатись на LinkedIn.

Дев’ятнадцятого і двадцятого грудня в одній з шкіл Києва в тихому режимі пройшов MakeCode Arcade GameJam 2024. Нижче ділюсь організаційними моментами, результатами та інсайтами.

Розділ 1. Manage expectations

Це був перший шкільний Game Jam організований мною, який не мав ніякого розголосу і був абсолютно експериментальним, без розуміння, що з того вийде.

Запрошувались до геймджему учні та учениці 7х-9х класів, з яких записалось всього сім дітей. З яких тільки п’ятеро дійшли в перший день, і ще один, шостий, на другий.

І одразу скажу, що така кількість учасників для однієї локації була оптимальною, але про це ближче до кінця статті.

Проходив Game Jam в два дні. Перший — з 9:00 до 16:00. Другий — з 9:00 до 14:00. Тобто всього на розробку у дітей було 12 годин, не враховуючи перерв (яких було багато).

Розділ 2. На чому вони там писали

В якості «рушія» для розробки дітям був запропонований MakeCode Arcade. Як коротко пишуть на офіційому сайті: «MakeCode Arcade — це редактор коду для створення Retro Arcade ігор для браузера та кишенькових консолей.»

Зайти на платформу можна через посилання, вона безкоштовна.

Якщо комусь цікаво, про які кишенькові консолі йде мова, то це невеличкі девайси на основі STM32 та інших мікроконтролерів які підтримують ігри створені в MakeCode Arcade.

Для програмування на цій платформі використовуються блоки, схожі на Scratch.

Проте, подивившись уважно на скриншот, ви можете помітити перемикач на JavaScript та Python.

І забігаючи наперед скажу: ці перемикачі там зовсім не зайві. На моїх очах, протягом джему дитина яка ніколи в житті не чіпала текстовий код, почала міняти місцями if-statements, бо це було простіше і швидше ніж переставляти окремі блоки.


А інша дитина за допомогою зовнішнього інструменту змогла конвертувати MIDI саундтрек з Doom в формат який підтримується MakeCode Arcade і вставити в гру (у вигляді рядку байтів).

Також варто відмітити присутність «готових рішень» для деяких розповсюджених проблем при розробці 2D ігор. Наприклад інструменти для створення тайлмап, або керування персонажем.

Випереджаючи коментар: «Та тут уже за дітей все зробили, навіщо так спрощувати? Хай би самі керування, камеру і тайлмапи написали, заодно математику згадали б» — скажу, що оскільки ця платформа розрахована на новачків, можливість швидко отримати результат є надзвичайно цінним і дозволяє утримати користувачів. А коли вже дитина зробила частину гри яку вона сама придумала і вклала туди час і ресурси, нам починає допомагати ефект незворотних витрат, через який дитині/людині простіше вмовити себе розібратися з чимось більш складним, а ніж кинути це все діло.

Ще однією фішкою платформи є підтримка розширень (Extensions), які допомагають вирішувати проблеми які може бути складно або не зручно вирішувати «ванільним» набором блоків. Приклади розширень:

  • MiniMenu — додає блоки для відображення меню на екрані куди можна додавати масив елементів, щоб швидко зробити, наприклад, інвентар, або Pause menu
  • animation — дозволяє прив’язати декілька анімацій до спрайту, кожна з яких відповідає якомусь стану (Walking, Dying, etc.)
  • status-bar — дозволяє прив’язати progress bar до спрайту, наприклад для відображення здоров’я гравця або ворогів
  • arcade-sprite-data — дозволяє прив’язати будь які дані до спрайту. Наприклад, щоб дати певне здоров’я супернику без відображення progress bar.

Говорячи, до речі, про останнє розширення, не можу не вказати, що платформа привчає скоріше до data-oriented підходу, аніж до ООП. Тут немає наслідувань, зате для кожного спрайту вказується тип (Kind). І коли є спільна логіка для певного типу спрайтів, це реалізується через проходження по масиву елементів одного типу👇

Розділ 3. Яка тема була геймджему

Тему генерували за допомогою рандомайзера тем. Я знайшов їх аж два:

Нам попалася тема: Start with nothing.

Як і в «дорослих» геймджемах, перша реакція дітей була — «та що це за дурна тема». Але потрохи, коли діти зрозуміли, що не обов’язково використовувати тему буквально і можна інтерпретувати її по різному, всім полегшало і почалась генерація ідей.

На цьому етапі діти також почали об’єднуватись в команди. На відміну від «дорослих» джемів, куди зазвичай все ж приходять готові команди, тут багато хто з дітей не знав один одного і саме завдяки спільному баченню теми та спільним обговоренням вдалося утворити команди.

Утворилося 2 команди по 2 дитини, і один соло-дев.

Ідеї були наступні:

  • Граєш за черв’яка, у якого нічого немає на початку і який, пробираючись через лабіринти і долаючи кротів, прокачується і вибирається на поверхню.
  • Point & Click горор, в якому треба вибратись з горища.
  • Space Invaders клон з прокачуванням корабля за знищення ворожих кораблів.

Розділ 4. Командна робота

В міру здібностей дітей та влаштування MakeCode Arcade, логічним розподілом обов’язків в команді стало наступне:

  • Програміст/ка — відповідає за кодування механік гри.
  • Художник/ця — відповідає за створення тла, тайлмап, спрайтів, анімацій.

І тут одразу важливий момент: MakeCode Arcade не підтримує одночасне колаборативне редагування. Тобто немає можливості як в Google Docs, наприклад, одночасно редагувати один документ. Але все ж є спосіб працювати разом.

Трюк полягає в тому, що всі спрайти і музика зберігаються в MakeCode Arcade у вигляді тексту. Це наприклад, наша качечка:

Такий формат дозволяє дітям зберігати створені спрайти в будь який текстовий документ і відправляти напарнику/ці, через пошту, NAS, you name it...

Є одна деталь яка вилізла протягом джему: тайлмапи переносити не можна, тому іноді простіше мати проєкт художника\ці як основний, і туди перекидати код з проєкта програміста\ки.


Другий момент — треба бути обережним з злиттям кодів двох проєктів. Іноді без WinMerge не обійтись.

Розділ 5. Що з цього вийшло

Посилання на проєкти даю нижче, ви можете зайти, пограти, залишити коментарі під статтею. Тільки врахуйте, що їх робили діти, і для когось це був ледь не перший досвід створення гри.

Розділ 6. Власне інсайти

  1. Дітям сподобалось, просили повторити і запросити до участі інші школи.
  2. Мені, як вчителю, теж сподобалось. Діти навчились купі всього нового, і не тому що «треба», а тому що їм дійсно було цікаво доробити гру. А для цього можна і розділ Math в блоках відкрити.
  3. Дітям було важко. Частина 1. Поки не знаю, чи вийде такий Game Jam провести для декількох шкіл, але просто посадити дітей робити гру і нічим їм не допомагати, навряд вийде. Викладач має бути готовий десь підтримати. Але можливо це ок. В решті решт — це не олімпіада, а геймджем. Тут головне отримати задоволення і навчитись чомусь новому.
  4. Дітям було важко. Частина 2. Якщо попереднє «важко» було про те, що дітям було важко розібратись як запрограмувати ту чи іншу фічу, то інше «важко» — це про те, що діти швидко втомлюються. Вони не можуть як дорослі залітати на 24/48 годин в Game Jam з обмеженням сну. Їм потрібно давати відпочивати, відволікатись. А ще бажано підгодовувати піцою, бо сили треба десь брати.
  5. Дедлайни. Одразу перед початком, я попередив дітей, що наша задача зробити гру в перший день. Другий день тільки для тестування і полірування. Занадто оптимістичні прогнози — це біда на всіх геймджемах як для дітей, так і для дорослих. Це трошки допомогло, але все одно, не все встиглось. Тут потрібен досвід і, можливо, краща організація.
  6. Підготовка. MakeCode Arcade на YouTube викладає прості відео, де батько з сином створюють ігри. Деякі діти які були на джемі, пробували повторити щось подібне на гру у відео, на уроках інформатики до джему. Це сильно допомогло зі стартом. Зовсім без знайомства з платформою було б ще важче.
  7. Наголошуйте на тестуванні. Ми підходили з дітьми до інших дітей в школі і просили тестувати гру. Правило тестування як завжди просте — спостерігаєш, записуєш проблеми в UX, не втручаючись. Бо тебе не буде біля кожного гравця після релізу.

Розділ 7. To be continued

Це моя перша стаття на GameDev DOU, тому чекаю на ваші запитання, критику, поради, думки тощо.

Якщо є компанія, яка хоче проспонсорувати призи, чи допомогти організувати щось подібне для декількох шкіл наступного року — пишіть на пошту чи в LinkedIn, буду радий обговорити.

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини

👍ПодобаєтьсяСподобалось5
До обраногоВ обраному1
LinkedIn


Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

обов’язково захаращувати текст дублюванням гендерних іменників? якщо автор адепт вокізму чи DEIзму, то будь послідовним, пане, не забувай про they\them, а то ображаєш небінарних осіб.

що стосується заходу: це крута акція, що запізнилася на десятки років, такі мали б проводитися від початку комп’ютерізації шкіл.

З новим роком!

Слушне зауваження щодо небінарних осіб. В англійській з цим простіше, змінюється тільки займенник і можна використовувати один для всіх — they/them. Хоча мабуть і це може когось тригерити.
В українській мені поки не зрозуміло як з цим бути. Художник/ця замінити на художники? Не впевнений.

З приводу другого коментаря — дякую, за схвальний відгук. Про запізнення не знаю навіть як реагувати. Думаю, що багато чого робилося в школах і десятки років тому. Просто не у всіх школах і не всіма вчителями, і далеко не все виставляється на загал.

та ні, щодо they\them є простіший спосіб: починай текст зі слів «я ношу спідницю» і небінарники з феминикинями аплодуватимуть ті, пане ;)

Думаю, що багато чого робилося в школах і десятки років тому. Просто не у всіх школах і не всіма вчителями, і далеко не все виставляється на загал.

ну оце і погано, що «не всіма» і без публічности, такі акції повинні бути частиною освіти, дітей тре’ заохочувати реальним досвідом, реальними результатами, а не сухою теорією, потрібен «шкільний Steam», загальнонаціональні джеми, конкурси, і не тільки для ігор, а й для софту, для ШІ-проєктів.

я зіграв у Worm, ось що можу сказати: прикольна музика, цікавий візуал, блоковість нагадує майнкрафт, але не вистачає кольорів, класні спецефекти од зударень набоїв з обжектом, загалом скидається на якийсь приквел «Хробака Джима»)) портали веселі і сантаклауська шапка личить хробакові)), хоч і другу він носити не вміє (залишається на землі), наприкінці хороший контраст: брунатне, одноманітне підземелля та зелена свіжа поверхня, приємно було вибратися з тих катакомбів) і сюжетно вдалий хід: ясно чому хробак трудився — щоб досягти поверхні. Але є пару суттєвих мінусів: 1) ГГ послуговується рушницею, цебто реальною зброєю, це неетичний елемент; 2) моби мають червону кров, це також неетичний елемент, в іграх цього в принципі бути не повинно, не кажучи вже про дитячі. Якщо потрібна зброя, хай вона буде футуристичною і не вбиває нікого, а, скажімо, телепортує, або засипляє, примушує втікати. Кров (коли без неї не можна обійтися) у негуманоїдів краще зображувати зеленою, а у гуманоїдів або взагалі не зображувати, або синьою. Ще коли програєш, спливає deadsoul-подібний діялог «You died», це надто зловісно, краще «Ти програв», «Спробуй ще раз», «Иншого разу пощастить», «Wasted», «Хробак не зумів» тощо. Щиро кажучи я приємно здивований, 4\5 (-1 за неетичність).

Дякую, що поділились думками, пане.
Над шкільним Steam-ом подумаю.
Загальнонаціональний джем у нас в принципі є — www.ggj.org.ua
Конкурси теж стаються. Зараз готуємось з деякими дітьми до Infomatrix
Фідбек команді Worm передам.

Черв’ячок з автоматом — наркоманськи веселий. Я ржав хвилин 5 після того як запустив. Ідея з мобами прикольна. Дай бог щоб для когось це стало роботою в дорослому віці.
Дітки — молодці. Вчитель — теж молодець.

Дякую, що почитали і пограли!)
Та, будем сподіватись поки вони дійдуть до роботи, геймдеву трохи полегшає ;-)

Дітям фідбек передам)

Наступним кроком можна запропонувати GB Studio, на якій можна під Nintendo Gameboy створити повноцінну гру.
www.gbstudio.dev/docs

Дякую за пораду! Виглядає лампово. Але реддіт каже, що тут нема підтримки спільного редагування. Тобто кодити може виключно хтось один. Навіть при підключенні гіта, мерджи нібито не підтримуються. Виключно exclusive checkout.
Це як на мене класична біда з усім блочним програмуванням. Мердж або неможливий або такий болісний, що його намагаються уникати (привіт Unreal).
В MakeCode Arcade же ж вони примудрилися конвертувати код в блоки, що все ще залишає мердж болісним, якщо гіт не підключений, але цілком можливим.

Цікаво як проходила подія, ви зібрали дітей в школі на 2 або майже на 2 доби як я зрозумів? Як батьки поставилися до такого? Чи можливо була така собі нічна перерва коли всі йшли додому і зранку приходили, наче логічно, особисто я б не висидів в такому віці стільки)

В першому ж розділі автор про це пише:

Проходив Game Jam в два дні. Перший — з 9:00 до 16:00. Другий — з 9:00 до 14:00. Тобто всього на розробку у дітей було 12 годин, не враховуючи перерв (яких було багато).

Підписатись на коментарі