0% нашли этот документ полезным (0 голосов)
5 просмотров10 страниц

Python Roadmap

Документ представляет собой 6-месячный план обучения разработке игр на Python, начиная с основ языка и заканчивая созданием многопользовательской игры в жанре battle royale. Каждый месяц включает в себя изучение новых тем, мини-проекты и рекомендуемые ресурсы для обучения. Основное внимание уделяется практическому применению знаний и созданию полноценного игрового прототипа к концу обучения.

Загружено:

alexpl187
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
5 просмотров10 страниц

Python Roadmap

Документ представляет собой 6-месячный план обучения разработке игр на Python, начиная с основ языка и заканчивая созданием многопользовательской игры в жанре battle royale. Каждый месяц включает в себя изучение новых тем, мини-проекты и рекомендуемые ресурсы для обучения. Основное внимание уделяется практическому применению знаний и созданию полноценного игрового прототипа к концу обучения.

Загружено:

alexpl187
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

// 6-MONTH LEARNING PLAN

PYTHON
GAME DEV
от нуля до собственной [Link]

// 2–3 часа / день // ~6 месяцев // с нуля

// без готовых движков

МЕСЯЦ 1 · НЕДЕЛИ 1–4


~ 50 –8 0 ч
01 Основы Python

Цель — освоить язык достаточно, чтобы уверенно


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

Н Е Д Е Л И 1 – 2 · С И Н ТА К С И С
▸ Установка Python 3.x и VS Code / PyCharm

▸ Переменные, типы данных (int, float, str, bool)

▸ Ввод / вывод: input(), print(), f-строки

▸ Условия: if / elif / else, операторы сравнения

▸ Циклы: for, while, break, continue, range()

▸ Функции: def, return, аргументы, scope

НЕДЕЛИ 3–4 · СТРУКТУРЫ ДАННЫХ

▸ Списки (list): индексы, срезы, методы

▸ Словари (dict) и множества (set)

▸ Кортежи (tuple) и когда их использовать

▸ List comprehensions и генераторы

▸ Работа со строками: методы, форматирование

▸ Файлы: open(), read/write, with-блок

▸ Исключения: try / except / finally

// М И Н И - П Р О Е К Т М Е С Я Ц А

Текстовая RPG в терминале. Игрок перемещается по


локациям, сражается с врагами, собирает предметы.
Используй словари для хранения состояния, функции
для логики боя, циклы для игрового цикла. Это
тренирует всё из месяца 1 сразу.

Рекомендуемый ресурс: [Link] официальный туториал +


Automate the Boring Stuff (бесплатно онлайн)

МЕСЯЦ 2 · НЕДЕЛИ 5–8


~ 50 –8 0 ч
02 ООП + Алгоритмы
Объектно-ориентированное программирование — сердце
любой игры. Каждый игрок, пуля, враг, предмет — это
объект. Параллельно учим базовые алгоритмы и
математику, которые напрямую нужны для геймплея.

НЕДЕЛИ 5–6 · ООП

▸ Классы и объекты: __init__, self

▸ Атрибуты и методы, инкапсуляция

▸ Наследование и переопределение методов

▸ __str__, __repr__, __eq__ и другие dunder-методы

▸ Полиморфизм: разные объекты, один интерфейс

▸ Модули и пакеты: import, __init__.py

Н Е Д Е Л И 7 – 8 · М АТ Е М . / А Л Г О

▸ Векторы 2D: сложение, нормализация, длина

▸ Тригонометрия: sin/cos для движения под углом

▸ Обнаружение столкновений: AABB, круг-круг

▸ Базовые алгоритмы: сортировка, бинарный поиск

▸ Пространственное разбиение: квад-дерево (теория)

▸ Случайность: random, seed, нормальное распределение

// М И Н И - П Р О Е К Т М Е С Я Ц А

Физический симулятор частиц. Создай классы


Particle, Vector2D, World. Частицы летят,
сталкиваются, отскакивают от стен. Без графики —
только логика и print() или matplotlib для
визуализации. Это прямая тренировка физики для
будущей игры.

Ресурс: «Python ООП» на Real Python + «3Blue1Brown —


Essence of Linear Algebra» (YouTube, бесплатно)
МЕСЯЦ 3 · НЕДЕЛИ 9–12
~ 50 –8 0 ч
03 Графика с нуля · Pygame

Pygame — это тонкая обёртка над SDL, почти «с нуля».


Ты сам пишешь игровой цикл, рендеринг, ввод. Это
именно то, что нужно: не готовый движок, а
инструмент рисования и событий. Здесь складывается
понимание, как работает любая 2D-игра изнутри.

Н Е Д Е Л И 9 –1 0 · PYG A M E C O R E

▸ Установка Pygame, структура проекта

▸ Главный цикл: while running + [Link]()

▸ Surface, Rect, blit() — как работает рендер

▸ Обработка событий: клавиши, мышь, quit

▸ Рисование примитивов: круги, прямоугольники, линии

▸ Delta time: движение не зависит от FPS

Н Е Д Е Л И 1 1 – 1 2 · С П РА Й Т Ы И К А Р ТА

▸ Sprite и Group: управление объектами

▸ Загрузка изображений, alpha-канал

▸ Анимация: spritesheet, смена кадров по таймеру

▸ Tile-based карта: загрузка из 2D-массива

▸ Камера: смещение мира вместо движения игрока

▸ Звук: [Link], фоновая музыка и SFX

// М И Н И - П Р О Е К Т М Е С Я Ц А

Top-down шутер прототип. Игрок двигается по карте


(WASD), целится мышью, стреляет (ЛКМ). Пули летят в
направлении курсора. Враги движутся к игроку, при
попадании умирают. Камера следит за игроком. Это
прямой предок финальной игры.

Ресурс: [Link]/docs + «KidsCanCode» YouTube + «Clear


Code» Pygame плейлист

МЕСЯЦ 4 · НЕДЕЛИ 13–16


~ 50 –8 0 ч
04 Архитектура игры · Сеть

[Link] — многопользовательская игра. Это самая


сложная часть. Месяц посвящён двум вещам: правильной
архитектуре кода (чтобы не переписывать всё заново)
и сетевому программированию через WebSockets.

Н Е Д Е Л И 1 3 –1 4 · А РХ И Т Е К Т У РА

▸ Entity-Component System (ECS): теория и практика

▸ Game State Machine: меню, игра, пауза, game over

▸ Event system: публикация и подписка на события

▸ Разделение логики и рендера (Model-View)

▸ Менеджер ресурсов: загрузка и кэш ассетов

▸ Профилирование: cProfile, поиск узких мест

НЕДЕЛИ 15–16 · СЕТЬ


▸ Сокеты в Python: socket модуль, TCP vs UDP

▸ asyncio: event loop, async/await, задачи

▸ WebSockets: библиотека websockets или aiohttp

▸ Сериализация данных: JSON, MessagePack

▸ Клиент-серверная модель: авторитетный сервер

▸ Prediction и reconciliation: как работает lag


compensation

// М И Н И - П Р О Е К Т М Е С Я Ц А

Многопользовательский чат + синхронизация объектов.


Сервер на asyncio + websockets. Два клиента
(pygame) подключаются, видят позицию друг друга в
реальном времени. Игрок двигается — другой видит
движение. Это фундамент multiplayer-игры.

Ресурс: [Link]/asyncio + Gabriel Gambetta «Fast-


Paced Multiplayer» (бесплатно онлайн, обязательно!)

МЕСЯЦ 5 · НЕДЕЛИ 17–20


~ 50 –8 0 ч
05 Ba!le Royale механики

Время собирать всё вместе. Этот месяц — разработка


конкретных механик [Link]-подобной игры. Каждая
неделя — один крупный игровой элемент, добавляемый
поверх сетевого прототипа.

Н Е Д Е Л Я 1 7 · К А Р ТА И З О Н А
▸ Процедурная генерация карты: шум Перлина

▸ Укрытия и препятствия с коллизиями

▸ «Зона» (blue zone): сжимающийся круг

▸ Урон от зоны, таймер фаз

Н Е Д Е Л Я 1 8 · Л У Т И И Н В Е Н ТА Р Ь

▸ Система лута: спавн предметов на карте

▸ Подбор и инвентарь: оружие, аптечки, броня

▸ HUD: здоровье, броня, патроны, инвентарь

▸ Синхронизация инвентаря с сервером

НЕДЕЛЯ 19 · БОЁВКА

▸ Несколько видов оружия: пистолет, дробовик, снайпер

▸ Разброс, перезарядка, различные характеристики

▸ Raycast для хитскана (мгновенное попадание)

▸ Анимация выстрела, звуки, частицы крови

НЕДЕЛЯ 20 · СЕРВЕР И БАЛАНСИРОВКА

▸ Игровые комнаты: несколько матчей параллельно

▸ Оптимизация: отправка только видимых объектов

▸ Lobby: ожидание игроков, старт матча

▸ Kill feed, счётчик выживших, победный экран

// Р Е З УЛ ЬТАТ М Е С Я Ц А

Играбельный альфа-прототип. 4–8 игроков могут войти


в один матч, двигаться по карте, подбирать оружие,
стрелять друг в друга, получать урон от зоны.
Последний выживший — победитель. Выглядит просто,
но все механики работают.
Ресурс: исходники [Link] (есть на GitHub) — читай как
документацию, не как туториал

МЕСЯЦ 6 · НЕДЕЛИ 21–24


~ 50 –8 0 ч
06 Полировка · Деплой

80% времени в разработке игр уходит на последние 20%


работы. Этот месяц — превращение прототипа в нечто,
во что не стыдно позвать друзей поиграть.
Оптимизация, визуал, деплой.

Н Е Д Е Л И 2 1 – 2 2 · В И З УА Л И U X

▸ Частицы: кровь, вспышки выстрелов, взрывы

▸ Screen shake при взрывах и попаданиях

▸ Анимации плавные: lerp, easing-функции

▸ Главное меню, экраны загрузки, UI шрифты

▸ Минимапа с позициями игроков и зоной

▸ Мобильный / адаптивный клиент (опционально)

НЕДЕЛИ 23–24 · ОПТИМИЗАЦИЯ И ДЕПЛОЙ

▸ Профилирование: bottleneck на сервере и клиенте

▸ Spatial hashing для быстрых коллизий

▸ Бинарный протокол: struct вместо JSON

▸ Docker для сервера, деплой на VPS (DigitalOcean /


Hetzner)

▸ Nginx как reverse proxy, SSL

▸ Логирование, мониторинг, перезапуск при падении

// Ф И Н А Л Ь Н Ы Й Р Е З УЛ ЬТАТ
Рабочая онлайн-игра по публичному URL. Ты можешь
отправить ссылку другу и сыграть вместе. Написано
на Python с нуля, без готовых движков. В резюме:
«Разработал многопользовательский 2D battle royale
шутер с нуля на Python + asyncio + WebSockets».

Ресурс: «High Performance Python» (O'Reilly) · Docker


docs · Let's Encrypt для HTTPS

Технологический стек

Python 3.12 Pygame


Основной язык Клиент: рендер и ввод

asyncio websockets
Асинхронный сервер Сетевой протокол

Docker Nginx
Контейнер для деплоя Proxy + SSL

Принципы обучения

Проект важнее теории Git с первого дня

Читай минимум, делай максимум. Создай репозиторий в день 1.


Каждый новый инструмент сразу Коммить каждый день. Через 6
применяй в мини-проекте. Знание месяцев увидишь свой прогресс —
без практики испаряется за это лучшая мотивация.
неделю.
Не застревай Читай чужой код

30 минут на проблему — если не Исходники open-source игр на


решил, иди дальше или упрости Python — учебник. Pygame-CE
задачу. Перфекционизм убивает examples, исходник [Link] на
проекты. Сначала работает, GitHub. Читай как книгу — по 20
потом красиво. минут в день.

Записывай вопросы Играй в то, что делаешь

Веди файл [Link]. Не После каждой сессии запускай


знаешь — запиши и двигайся. игру и играй 5 минут. Ты
Вернёшься вечером. Это лучше, разработчик и игрок
чем часами залипать в Stack одновременно. Это покажет, что
Overflow. реально нужно улучшить.

// START → python --version → 6 months → your game is live

Вам также может понравиться