Коротко: Pygame — библиотека, которая превращает обычный Python в среду для игр: окно, спрайты, управление, столкновения. Первая игра — обычно аркада — выходит примерно за месяц занятий.

Pygame — это библиотека, позволяющая писать игры на обычном Python. В программе ступени «Python: Игры и боты» для детей 10–14 лет она занимает три последовательные темы: сначала окно и события, потом спрайты и анимация, и только после этого полноценная игра. Первая игра, в которую можно по-настоящему поиграть, появляется именно на третьем этапе.

Что происходит на первой теме Pygame

Первая тема — окно, события, рисование фигур, таймер и контроль FPS. Звучит скромно, но именно здесь ребёнок сталкивается с идеей, которая отличает игру от всего, что он писал раньше: игровой цикл.

Раньше программа выполнялась сверху вниз и заканчивалась. Игра работает иначе: она бесконечно повторяет один и тот же цикл — проверить, что нажал игрок, посчитать новое состояние, нарисовать кадр. Тридцать или шестьдесят раз в секунду. Когда ребёнок это понимает, у него меняется представление о том, как вообще устроены игры, в которые он играет.

Игровой цикл: игра перерисовывается 60 раз в секунду

Первое, что ребёнок понимает про игры: они не «идут», они перерисовываются. Шестьдесят раз в секунду программа стирает экран и рисует всё заново — фон, персонажа, счёт.

Внутри каждого такого круга три шага. Посмотреть, что нажал игрок. Посчитать новые координаты. Нарисовать. Дальше круг повторяется, и именно эта повторяемость создаёт впечатление движения — как в мультфильме из отдельных кадров.

Момент осознания здесь заметен со стороны. Ребёнок, привыкший к Scratch, где спрайт просто «идёт», впервые видит, что движение — это увеличение числа на единицу шестьдесят раз в секунду. После этого вопрос «как сделать быстрее» он решает сам.

Первая игра, которую пишут почти все

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

Мы не навязываем одну тему на всю группу. Кто-то делает гонку, кто-то — космос, кто-то переносит настольную игру, в которую играет дома. Механика под капотом одинаковая, а картинка и правила разные, и поэтому дети не переписывают друг у друга: у соседа просто другая игра.

Спрайты и анимация: почему квадрат становится персонажем

Вторая тема — загрузка изображений, спрайт-листы, плавное движение и эффекты. До этого момента герой на экране — прямоугольник. Теперь это картинка, которая ещё и меняется при движении.

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

Полноценная игра: что добавляется на третьем этапе

Третья тема Pygame — коллизии, счёт, уровни, звуки, меню старта и конца игры. Это то, что превращает демонстрацию в игру, в которую можно дать поиграть другу.

Коллизии — проверка столкновений: герой коснулся монеты, врага, стены. Счёт и уровни дают цель и рост сложности. Меню и звуки делают из проекта законченную вещь, а не «что-то на экране».

Именно здесь ребёнок впервые сталкивается с вопросом, который в школе почти не ставят: когда работа считается завершённой. Игру всегда можно доделывать — и научиться останавливаться тоже часть навыка.

Сколько времени занимает первая игра

Три темы Pygame — это последовательный блок внутри программы из 156 занятий, рассчитанной на 18 месяцев. То есть игра — не разовое упражнение на одно занятие, а проект, который собирается постепенно: сначала окно, потом движение, потом правила.

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

Нужно ли уметь рисовать, чтобы сделать игру?

Нет. Для учебных проектов берут готовые наборы изображений, а собственная графика — по желанию. Курс о коде, а не о рисовании.

Что мощнее — Pygame или готовые конструкторы игр?

Это разные инструменты. Конструктор быстрее приводит к результату, Pygame учит писать логику руками. После Pygame ребёнок понимает, что именно конструктор делает за него, — и это знание остаётся надолго.

Куда деть готовую игру?

В программе есть отдельная тема про Git и GitHub: контроль версий, commit, push, pull request и публикация первого репозитория. То есть игра не остаётся на домашнем компьютере — на неё можно дать ссылку.

Где дети застревают

Персонаж едет сквозь стену. Самая частая первая проблема, и причина всегда одинаковая: проверка столкновения стоит после перемещения, а не до него. Разбор этой ошибки даёт больше, чем полтемы теории.

Игра «моргает». Забыли очистить экран перед новым кадром, и старые позиции остаются следом. Выглядит эффектно, но случайно.

Всё летит слишком быстро. Скорость привязана к кадру, а не ко времени. Здесь появляется ограничение частоты — та самая вещь, которую взрослые разработчики ставят по привычке.

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

Можно ли дать такую игру друзьям

Показать — да, отправить одним файлом — сложнее, чем хочется. Игра на Pygame требует установленного Python и библиотеки, так что на компьютере друга она просто так не запустится.

Обходные пути есть: собрать игру в один исполняемый файл или выложить код на GitHub, откуда его заберёт тот, у кого Python уже стоит. Первый способ мы на средней ступени не проходим — он тянет за собой кучу технических мелочей, интересных не всем.

Именно поэтому Telegram-бот, идущий двумя темами позже, обычно производит на подростков большее впечатление: им можно поделиться ссылкой, не объясняя ничего об установке.

Откуда берутся картинки и звуки

Рисовать самому не обязательно — и даже нежелательно на первой игре: иначе весь урок уйдёт на пиксель-арт вместо кода. Берём готовые наборы с открытой лицензией, их в сети достаточно.

Заодно выходит первый разговор о том, что чужое нельзя брать просто потому, что оно лежит в поиске. Разница между «бесплатно скачать» и «разрешено использовать» подростку неочевидна, и лучше объяснить её на игре, чем позже на чём-то серьёзнее.

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

Что идёт после игр

Pygame в программе не финал. Дальше идут Telegram-боты на aiogram с состояниями диалога, затем подключение ИИ через OpenAI API — генерация текста и изображений из собственного скрипта. Финальный проект ступени ребёнок выбирает сам: игра, бот с ИИ или автоматизированный скрипт.

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