Привет. Если ты держишь эту книгу, значит, тебе хочется не просто «выучить Python», а сделать что-то своё. Отлично, потому что именно этим мы и займёмся. За двадцать девять глав мы с тобой с нуля напишем игру в духе Doom: с коридорами, дверями, импами, которые швыряются огнём, зомби с винтовками, дробовиком и статус-баром внизу экрана. Без готовых движков, без скачанных картинок и звуков — всё своими руками, строчка за строчкой.
Рисунок 0.1 — Так выглядит MINI DOOM в конце книги: титульный экран, имп в проёме, дробовик в деле, второй уровень. Ни одной картинки из интернета — всё нарисовано кодом
Посмотри на рисунок 0.1. Каждый пиксель на нём — результат кода, который ты напишешь. Текстура кирпича, рожа импа, огонь на титульнике и даже звук выстрела — всё это генерируется программой при запуске. Звучит как магия, но к концу книги ты будешь знать, как работает каждый фокус.
Для тех, кто ни разу не программировал или пробовал, но бросил на третьей странице скучного учебника. Я не буду требовать от тебя знаний математики сверх школьной, а ту, что понадобится, — синус, косинус, векторы, — объясню на пальцах прямо тогда, когда она понадобится, и ни минутой раньше.
Если ты уже немного знаешь Python, тоже не уходи. Первую часть можешь пролистать по диагонали, а со второй начнётся то, чего в обычных учебниках нет: своё окно, пиксели на numpy, псевдо-3D, искусственный интеллект монстров, синтез звука, тесты и профилировщики. Здесь Python не «язык для скриптов», а язык, на котором пишут настоящую игру — и разбираются, почему она тормозит и как её ускорить.
Книга маркирована 18+. Не потому, что тут кровь и кишки (хотя импы истекают пиксельной кровью), а потому что я разговариваю с тобой как со взрослым: иногда крепким словом, когда программа ведёт себя как последняя сволочь. Дозированно, как соль в супе.
Потому что Doom — идеальный учебный проект. Он достаточно простой, чтобы один человек мог написать его за книгу, и достаточно сложный, чтобы по дороге встретилось всё важное: списки и словари, классы и датаклассы, массивы numpy и алгоритмы, конечные автоматы, файлы и исключения, звук и тесты. А ещё потому, что стрелять по демонам веселее, чем считать среднюю зарплату сотрудников в отделе, как в половине учебников.
А Python — потому что на нём проще всего начать и дальше всего можно уйти. Говорят, что Python медленный и игры на нём не пишут. Отчасти правда: цикл по пикселям на чистом Python действительно в сотню раз медленнее, чем надо. Но мы научимся думать массивами и отдавать тяжёлую работу numpy, мерить время профилировщиком и находить, где тормозит на самом деле. Это самый ценный навык, который можно вынести из книги, — и он пригодится далеко за пределами игр: в анализе данных, машинном обучении, науке.
Книга разбита на пять частей. Каждая следующая опирается на предыдущую, поэтому читать лучше по порядку.
Таблица 0.1 — Пять частей книги
Внутри главы всё идёт по одному сценарию: сначала объясняю идею на пальцах, потом пишем код, потом смотрим на настоящий вывод программы и разбираем его, потом — грабли, на которые наступают все, и в конце упражнения и задачи. Ответы на них собраны в конце книги.
И главное правило: каждая глава заканчивается работающей программой. Не «допишем в следующей главе», а прямо сейчас: запустил — увидел результат. Я называю это контрольной точкой — как в игре, где можно сохраниться.
Код в книге выглядит как окно редактора. Сверху — имя файла и язык, слева — номера строк, на которые я ссылаюсь в тексте. Под кодом тёмная панель: это то, что программа напечатала, когда я её запустил. Вот пример — листинг 0.1.
Листинг 0.1 — Как выглядит листинг: код, номера строк и вывод программы
Первая зелёная строка в тёмной панели, «$ python3 main.py», — команда запуска. На Windows та же команда пишется python main.py, а проще всего — uv run main.py: об этом в главе 1. Строки, начинающиеся с решётки, — мои комментарии, программа их не печатала.
Весь вывод в книге настоящий. Каждый пример я запускал на Python 3.15 и проверял двумя строгими сторожами: линтером ruff с большим набором правил и проверкой типов mypy в строгом режиме. Если у тебя вывод отличается — скорее всего, отличается и код. Сверься с архивом примеров. Исключение — замеры времени: у тебя другой компьютер, и миллисекунды будут другими, а вот соотношения — такими же.
Если Python отказывается запускать программу, панель подписана «интерпретатор ругается». Такие листинги я показываю специально: читать трейсбеки — такой же навык, как писать код. Окна игры в книге сняты «роботом» — программой, которая нажимает клавиши и двигает мышь вместо человека, — поэтому каждый скриншот тоже настоящий и повторяемый. Как это устроено, ты узнаешь в главе 9.
На этой странице вы можете прочитать онлайн книгу «MINI DOOM Современный Python через игру Том 1 Учимся держать оружие», автора Алексей Примак. Данная книга имеет возрастное ограничение 18+, относится к жанрам: «Программирование», «Самоучители». Произведение затрагивает такие темы, как «самоучитель», «компьютерные игры». Книга «MINI DOOM Современный Python через игру Том 1 Учимся держать оружие» была написана в 2026 и издана в 2026 году. Приятного чтения!
О проекте
О подписке
Другие проекты