Как научиться создавать игры: что реально в 9, 12 и 15 лет

Родителямобновлено 07.10.202611 мин чтенияесть тренажёр

Если ребёнок хочет делать игры, начинать стоит со Scratch: в 9 лет он соберёт из блоков свою «ловилку» или лабиринт за один вечер. Около 12 лет можно переходить к Python и текстовым играм, а к 15 годам — писать игры с графикой, уровнями и собственными классами. Математика и рисование понадобятся, но не на уровне олимпиад и художественной школы.

Загружаем…

Что значит «делать игры» для ребёнка

Делать игры — это придумывать правила, рисовать персонажей и объяснять компьютеру, как всё должно двигаться и реагировать. Для ребёнка 9–15 лет это сразу 3 занятия: программирование, рисование и сочинение сюжета.

Важно различать «играть» и «создавать». Ребёнок, который часами проходит уровни, знает, какие игры ему нравятся, и это хорошая отправная точка. Но разработка — другое занятие: здесь персонаж поначалу не прыгает, счёт не растёт, а враг проходит сквозь стены. Радость приходит, когда всё это удаётся исправить своими руками. Сеймур Пейперт называл такое обучение созданием: знания нужны не ради оценки, а чтобы заработало задуманное[1].

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

Путь Scratch → Python → дальше

Путь юного разработчика игр обычно состоит из 3 ступеней: блочные игры в Scratch, текстовые и простые графические игры на Python, затем полноценные проекты с библиотеками и профессиональными инструментами. Перепрыгивать ступени можно, но тогда первые месяцы уходят на борьбу с синтаксисом.

СтупеньИнструментКакие игры получаютсяЧто осваивает ребёнок
1ScratchЛовилки, лабиринты, кликеры, платформерыСобытия, циклы, условия, переменные, клоны
2Python в консоли и turtle«Угадай число», викторины, текстовые приключения, рисованные гонкиСинтаксис, ввод-вывод, списки, функции, модуль random
3Python с графическими библиотеками, затем другие языки и движкиИгры с окном, спрайтами, уровнями, сохранениемКлассы, игровой цикл, работа с файлами, структура большого проекта

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 есть кнопка «Поделиться»: проект становится доступен в сообществе по ссылке. Перед публикацией проверьте, что в нём нет настоящего имени и фотографий.

Ребёнок хочет делать игры, но бросает их на середине. Что делать?

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

Пригодится ли этот опыт, если ребёнок не станет разработчиком?

Да: планирование, поиск ошибок, рисование и умение довести задуманное до конца полезны в любом деле. Но обещать, что увлечение обязательно станет профессией, не стоит.