Что значит «делать игры» для ребёнка
Делать игры — это придумывать правила, рисовать персонажей и объяснять компьютеру, как всё должно двигаться и реагировать. Для ребёнка 9–15 лет это сразу 3 занятия: программирование, рисование и сочинение сюжета.
Важно различать «играть» и «создавать». Ребёнок, который часами проходит уровни, знает, какие игры ему нравятся, и это хорошая отправная точка. Но разработка — другое занятие: здесь персонаж поначалу не прыгает, счёт не растёт, а враг проходит сквозь стены. Радость приходит, когда всё это удаётся исправить своими руками. Сеймур Пейперт называл такое обучение созданием: знания нужны не ради оценки, а чтобы заработало задуманное[1].
Поэтому первая задача родителя — не объяснять, что «игры вредны», а превратить желание в проект. Спросите, какая игра нравится больше всего и что в ней самое интересное: прыжки, погоня, загадки, сбор монет. Из этого получится первое техническое задание.
Путь Scratch → Python → дальше
Путь юного разработчика игр обычно состоит из 3 ступеней: блочные игры в Scratch, текстовые и простые графические игры на Python, затем полноценные проекты с библиотеками и профессиональными инструментами. Перепрыгивать ступени можно, но тогда первые месяцы уходят на борьбу с синтаксисом.
| Ступень | Инструмент | Какие игры получаются | Что осваивает ребёнок |
| 1 | Scratch | Ловилки, лабиринты, кликеры, платформеры | События, циклы, условия, переменные, клоны |
| 2 | Python в консоли и turtle | «Угадай число», викторины, текстовые приключения, рисованные гонки | Синтаксис, ввод-вывод, списки, функции, модуль random |
| 3 | Python с графическими библиотеками, затем другие языки и движки | Игры с окном, спрайтами, уровнями, сохранением | Классы, игровой цикл, работа с файлами, структура большого проекта |
Scratch создан группой Lifelong Kindergarten в MIT Media Lab, бесплатен и по данным разработчиков рассчитан прежде всего на 8–16 лет[4]. Его создатели формулируют принцип «низкий порог, высокий потолок»: первую игру сделать легко, а предел возможностей далеко[2]. Многие подростки продолжают делать игры в Scratch и после знакомства с Python, и это нормально. Подробное сравнение сред — в статье «Scratch или Python для ребёнка».
Первые игры в Scratch: с чего начать
Первая игра в Scratch собирается за 1–2 вечера, если взять простой жанр: ловилку, лабиринт или кликер. В каждом из них ребёнок осваивает 1–2 новые идеи и сразу видит результат на сцене.
- Ловилка. Сверху падает яблоко, внизу корзина двигается стрелками. Нужны цикл «повторять всегда», условие касания и переменная «счёт».
- Лабиринт. Персонаж идёт стрелками, а при касании цвета стены возвращается назад. Пошаговый разбор — в статье про игру-лабиринт в Scratch.
- Кликер. Каждый щелчок по спрайту прибавляет очко, а на 50 очках открывается новый костюм. Учит событиям и переменным.
- Платформер. Персонаж прыгает по платформам и собирает монеты. Это уже вторая-третья игра: прыжок требует переменной скорости и гравитации.
Правило простое: сначала маленькая законченная игра, потом большая. Ребёнок, который мечтает сразу об огромном мире с сотней уровней, обычно бросает проект через неделю. Тот, кто сделал ловилку, а затем добавил к ней уровни и жизни, получает работающий результат и желание продолжать. Готовые замыслы по уровням сложности есть в подборке идей проектов для Scratch.
Что реально сделать в 9, 12 и 15 лет
Возраст — ориентир, а не правило: в 9 лет реальны блочные игры на 1 экран, в 12 — платформеры и первые текстовые игры на Python, в 15 — игры с уровнями и графикой на Python. Решают опыт и упорство, а не дата рождения.
| Возраст | Реалистичный проект | Что пока рано |
| 9 лет | Ловилка, лабиринт, кликер, викторина в Scratch; 1–3 спрайта, 1 экран | Текстовый код, сложная физика, сетевая игра |
| 12 лет | Платформер с клонами и уровнями в Scratch; «Угадай число» и «Камень, ножницы, бумага» на Python | Большие проекты без плана, 3D |
| 15 лет | Игра на Python с окном, спрайтами, меню и таблицей рекордов; классы для персонажей | Коммерческий релиз «как у студий» |
В 9 лет важна самостоятельность: ребёнок сам меняет числа и смотрит, что произойдёт. В 12 лет появляется умение планировать — сначала нарисовать схему уровней, потом программировать. В 15 лет подросток уже может разбить большую игру на модули, хранить код по файлам и читать документацию. По федеральной образовательной программе основного общего образования программирование на уроках информатики начинается с 8 класса, так что к 15 годам циклы и условия встречаются и в школе. Если к этому возрасту за плечами десяток законченных игр, переход к профессиональным инструментам пройдёт спокойно.
Игры на Python: текстовые и с черепашкой
Первая игра на Python — это обычно текстовая игра в консоли на 10–20 строк: компьютер загадывает число, задаёт вопросы или бросает кубики. Графики нет, зато видно, как устроена логика. Python создал Гвидо ван Россум, а развитием языка сегодня занимается Python Software Foundation.
import random
secret = random.randint(1, 20)
tries = 0
guess = 0
while guess != secret:
guess = int(input("Твоё число от 1 до 20: "))
tries += 1
if guess < secret:
print("Моё число больше")
elif guess > secret:
print("Моё число меньше")
print("Угадал за", tries, "попыток!")
В этих 13 строках есть всё, что нужно любой игре: случайность, игровой цикл, ввод игрока, условия и счётчик. Пошаговое объяснение и идеи улучшений — в разборе игры «Угадай число на Python». Следующий шаг — модуль turtle: черепашка рисует поле, а игрок управляет ею с клавиатуры. Так получаются гонки, «змейка» в упрощённом виде и рисовалки.
Не стоит торопить переход к «настоящей графике». Текстовая игра учит думать о состояниях: сколько жизней, какой уровень, что случится после хода. Эти идеи потом переносятся в любой инструмент. Синтаксис и встроенные функции описаны в официальной документации Python, и подросток 13–15 лет вполне может читать её с помощью переводчика.
Зачем математика в разработке игр
Математика в играх — это прежде всего координаты, углы, отрицательные числа и случайность; высшая математика начинающему не нужна. Сцена Scratch имеет размер 480×360 точек, центр — в точке (0, 0), и ребёнок осваивает это на практике.
Когда персонаж уходит влево, x уменьшается и становится отрицательным, — так девятилетний автор знакомится с отрицательными числами раньше, чем по школьной программе. Поворот на 90 градусов, отскок от края, движение по диагонали — это геометрия в действии. Переменная скорости, которая каждый кадр уменьшается на 1, — первое знакомство с физикой падения. Как устроены координаты, подробно показано в материале про движение и координаты в Scratch.
К 15 годам понадобятся векторы, тригонометрия для движения под углом и немного теории вероятностей для честных случайных событий. Метаанализ Scherer и соавторов 2019 года относит математические и пространственные навыки к тем, на которые обучение программированию влияет сильнее, но оговаривает, что перенос не происходит сам собой. Хорошая новость в том, что игра даёт этим темам смысл: синус перестаёт быть строчкой в учебнике, когда с его помощью снаряд летит по дуге.
Рисование, звук и сюжет
Рисовать как художник для своей первой игры не нужно: в Scratch есть библиотека спрайтов и фонов, встроенный редактор костюмов и 2 режима рисования — растровый и векторный. Звуки тоже можно взять из библиотеки или записать самому.
Многим детям рисование нравится даже больше, чем код, и это ценный навык: хорошая игра узнаётся по стилю. Простой пиксельный персонаж из 16×16 клеток выглядит аккуратно и рисуется за полчаса. Анимация ходьбы — это 2–4 костюма, которые сменяют друг друга в цикле. Сюжет и правила стоит записать на бумаге до начала работы: кто герой, что ему мешает, как выиграть и как проиграть. Такой одностраничный план экономит часы переделок.
Если в семье двое детей, роли можно разделить: один программирует, другой рисует и придумывает уровни. Резник считает работу со сверстниками одним из четырёх условий творческого обучения[3], и совместная игра хорошо это показывает.
Разминка: робот в лабиринте
Тренажёр «Робот в лабиринте» наверху страницы — это 12 уровней, на которых ребёнок собирает программу для робота из блоков и учится думать так же, как при создании игрового персонажа.
В распоряжении блоки «вперёд», «повернуть налево» и «повернуть направо», «повторить N раз», «повторять, пока не у флажка», условия «если путь впереди», «если путь налево», «если путь направо» и «если … иначе». Уровни 1–4 учат последовательности команд, 5–8 — циклам, 9–12 — условиям. Соберите программу, нажмите «▶ Запустить», а если робот врезался — «Сначала». Персонаж любой игры управляется теми же идеями: повторять шаги, пока не достигнута цель, и проверять, что впереди. Больше о тренажёре — на странице «Робот в лабиринте: 12 уровней».
Когда торопиться с движками не нужно
Переход к профессиональным движкам не нужен, пока ребёнок не закончил несколько своих проектов: сложный инструмент без опыта чаще отпугивает, чем помогает. Вот 4 типичные ситуации.
- Ребёнку 8–10 лет. Scratch даёт всё нужное для первых игр, а сложный интерфейс взрослого движка только отвлекает.
- Законченных проектов меньше 3. Пока нет опыта довести игру до конца, смена инструмента не поможет.
- Цель — «сделать как в любимой игре за 1 месяц». Такие проекты делают большие команды годами; лучше выбрать одну механику и сделать её хорошо.
- Не освоены циклы и условия в 1 языке. Без этой базы любой движок превращается в копирование чужих уроков без понимания.
«Чтобы делать игры, нужно сразу учить C++, иначе это несерьёзно». Это миф: основы — события, циклы, условия, переменные — одинаковы в любом языке и лучше всего усваиваются в Scratch и Python. Профессиональный язык имеет смысл, когда эти идеи уже понятны.
«Разработчик игр целыми днями играет, поэтому это лёгкая профессия». Представление не подтверждается: большая часть работы — программирование, поиск ошибок и тестирование одних и тех же уровней снова и снова.
Чего делать нельзя
Нельзя гасить желание делать игры запретами и насмешками: 6 правил ниже помогут сохранить интерес к созданию, а не только к прохождению чужих уровней.
- Нельзя называть создание игр «баловством» — это программирование, рисование и проектирование одновременно.
- Не стоит начинать с огромного замысла: маленькая готовая игра ценнее большой брошенной.
- Не следует доделывать проект за ребёнка, даже если так быстрее.
- Не стоит запрещать играть совсем: чужие игры — источник идей и понимания, что работает.
- Нельзя публиковать игры с личными данными — настоящим именем, фото, адресом школы.
- Не допускается обещать «станешь разработчиком и будешь богатым» — это давление, а не поддержка.
Источники
[1] Papert S. Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books, 1980. — язык Logo, черепашья графика, обучение через создание.
[2] Maloney J., Resnick M., Rusk N., Silverman B., Eastmond E. The Scratch Programming Language and Environment // ACM Transactions on Computing Education. 2010. Vol. 10, № 4. Article 16. — устройство Scratch: блоки, сцена, спрайты, сообщество; «низкий порог, высокий потолок».
[3] Resnick M. Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play. Cambridge, MA: MIT Press, 2017. — подход «4P»: проекты, увлечённость, сверстники, игра.
[4] Scratch Foundation. Scratch: For Parents (раздел справки Scratch). — возраст 8–16, бесплатно, приватность.
[5] The Python Tutorial (официальная документация Python 3). Python Software Foundation. — синтаксис и встроенные функции.
[6] Scherer R., Siddiq F., Sánchez Viveros B. The cognitive benefits of learning computer programming: A meta-analysis of transfer effects // Journal of Educational Psychology. 2019. Vol. 111, № 5. P. 764–792.
Вопросы и ответы
С какого возраста можно делать игры?
В ScratchJr дети 5–7 лет собирают простые истории с движением, а в Scratch с 8 лет — настоящие игры со счётом и уровнями. Возраст здесь менее важен, чем умение читать и желание доводить дело до конца.
Нужен ли мощный компьютер?
Для Scratch и Python хватит обычного ноутбука с современным браузером. Мощное железо понадобится позже, если подросток начнёт работать с 3D.
Можно ли делать игры на планшете?
Scratch 3.0 работает в браузерах, в том числе на планшетах, так что первые проекты сделать можно. Для текстового кода удобнее компьютер с клавиатурой.
Как показать игру друзьям?
В Scratch есть кнопка «Поделиться»: проект становится доступен в сообществе по ссылке. Перед публикацией проверьте, что в нём нет настоящего имени и фотографий.
Ребёнок хочет делать игры, но бросает их на середине. Что делать?
Уменьшить замысел до одного экрана и одной механики. Законченная маленькая работа даёт уверенность, а большую можно собрать потом из нескольких таких кусочков.
Пригодится ли этот опыт, если ребёнок не станет разработчиком?
Да: планирование, поиск ошибок, рисование и умение довести задуманное до конца полезны в любом деле. Но обещать, что увлечение обязательно станет профессией, не стоит.