Коротко: 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: Игры и боты».