Библиотека, фреймворк или движок: где находится Pygame
Pygame — это библиотека, а не движок: она даёт кирпичики, а структуру игры вы строите сами.
«Разработка игр» звучит как один инструмент, но на самом деле это целая лестница инструментов с разной степенью готовой структуры — и Pygame стоит на конкретной ступеньке этой лестницы, не на самом верху и не на самом низу.
Три уровня инструментов
Pygame — это библиотека: она даёт окно, поверхность для рисования, обработку клавиш и звук, но игровой цикл, столкновения и структуру всего проекта вы пишете сами, своими руками. Это осознанный компромисс между уровнем контроля и скоростью старта:
| Pygame (библиотека) | Типичный игровой движок | |
|---|---|---|
| Кривая обучения | Нужно понимать цикл, кадры, координаты | Многое можно сделать без кода вовсе |
| Контроль над деталями | Более прямой контроль над циклом и низкоуровневыми решениями | Больше готовой структуры; степень контроля зависит от движка |
| Визуальный редактор сцен | Нет — сцена собирается кодом | Обычно есть |
| Встроенная физика/свет | Нет — реализуете сами или подключаете отдельно | Обычно есть из коробки |
| Что получаете взамен | Глубокое понимание того, как игра устроена изнутри | Скорость сборки крупного проекта |
Pygame и SDL
Сам Pygame не рисует пиксели и не говорит со звуковой картой напрямую — под капотом он опирается на библиотеку SDL (Simple DirectMedia Layer), написанную на C: она отвечает за низкоуровневую работу с окном, вводом, графикой и звуком на разных операционных системах. Pygame даёт этому питоновскую, удобную обёртку.