Глава 20 · Разработка игр с Pygame

Жанры игр и игровые механики

Жанр — это в первую очередь механика: что именно игрок делает от кадра к кадру.

Игры принято делить на жанры — не строгую научную классификацию, а удобный общий язык: когда игрок слышит «платформер» или «головоломка», у него уже есть ожидания о том, что внутри. Жанр — это в первую очередь про механику (что игрок делает), а не про сюжет или картинку.

Экшен

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

Экшен
Платформер
Бег и прыжки по уровню
Точный тайминг прыжка
Пример механики: гравитация + столкновение с платформой
Шутер
Стрельба по целям
Быстрая реакция
Пример: пуля — это ещё один движущийся объект
Файтинг
Поединок один на один или команда на команду
Точные тайминги ударов и блоков
Пример: конечный автомат состояний персонажа
Beat 'em up
Бой с несколькими противниками сразу
Продвижение по уровню волнами врагов
Пример: список активных врагов, проверка столкновений с каждым

Приключения и ролевые игры

Приключения и RPG
Приключение (adventure)
Исследование мира и решение задач по сюжету
Реакция обычно не критична
Пример: состояние игры как машина состояний
Point-and-click квест
Взаимодействие с объектами сцены кликом
Головоломки, встроенные в сюжет
Пример: список интерактивных объектов на экране
Action RPG
Развитие персонажа плюс бой в реальном времени
Характеристики и прогресс
Пример: инвентарь — структура данных из главы 11
Пошаговая RPG
Развитие персонажа плюс бой по очереди
Меньше нагрузки на реакцию, больше — на тактику
Пример: очередь ходов персонажей
Тактическая RPG
Бой на клетчатом поле
Позиция и порядок ходов решают исход
Пример: игровое поле — сетка клеток с занятостью

Стратегии и симуляторы

Стратегии и симуляторы
RTS (стратегия в реальном времени)
Управление ресурсами и юнитами без остановки игры
Планирование одновременно с реакцией
Пример: юниты — список объектов с состоянием
Пошаговая стратегия
Планирование на много ходов вперёд
Время между ходами не ограничено
Пример: очередь ходов, как в пошаговой RPG
4X
Освоение территории, развитие, дипломатия, война
Обычно длинные партии на большой карте
Название — от четырёх целей: eXplore, eXpand, eXploit, eXterminate
Tower defense
Расстановка защитных объектов на пути врагов
Волны противников по расписанию
Пример: список башен, список врагов, проверка дальности
Симулятор транспорта
Управление одной машиной, самолётом и похожим
Физика движения — центральная механика
Пример: разгон, торможение, инерция
Симулятор жизни
Моделирование быта или отношений персонажей
Прогресс измеряется показателями, а не боем
Пример: набор числовых характеристик персонажа
Менеджмент / city builder
Строительство и управление системой (город, ферма, база)
Баланс ресурсов важнее реакции
Пример: числовая модель + визуализация

Ещё жанры, которые стоит знать

Ещё жанры
Спортивные игры
Симуляция реального вида спорта
Правила задаёт сам вид спорта
Гонки
Управление транспортом на трассе
Соревнование на время
Пример: движение с ускорением и трением
Головоломка
Логика важнее реакции
Чёткие правила победы
Пример: игровое поле — сетка состояний
Аркада
Простые правила, растущая сложность
Счёт и рекорды
Пример: наш прыгающий мяч
Survival
Выживание во враждебной среде
Управление ресурсами: здоровье, голод, укрытие
Sandbox
Свобода действий важнее заданной цели
Игрок сам ставит себе задачи
Roguelike / roguelite
Случайно генерируемые уровни
Смерть обычно начинает партию заново
Пример: random из главы 5, но на уровне целого забега
Цифровые карточные и настольные игры
Цифровая версия карточной или настольной механики
Пример: колода и рука — списки карт
MMO / онлайн-многопользовательские
Много игроков в общем мире одновременно
Требует сетевого взаимодействия — тема отдельной книги
Idle / incremental
Прогресс идёт даже без активных действий игрока
Пример: числа растут по формуле, привязанной к времени
Казуальные и hypercasual
Очень простые правила, короткая сессия
Часто одна механика на всю игру — как наш прыгающий мяч

Жанры смешиваются

На практике мало какая игра — это чистый один жанр из учебника: шутер с элементами RPG (прокачка оружия), платформер-головоломка (уровень решается прыжками в правильном порядке), стратегия в реальном времени с элементами симулятора. Границы между соседними жанрами в списке выше часто размыты — Roguelike пересекается с RPG, tower defense — со стратегией, idle — с симулятором. Классификация — инструмент общения, а не клетка, в которую обязана поместиться идея.

С чего начать первый проект?
Люблю точный тайминг и реакцию
Платформер / шутер / аркада
Люблю просчитывать наперёд, а не реагировать
Стратегия / головоломка
Хочу рассказывать историю через игру
Приключение / RPG
Хочу смоделировать что-то из реального мира
Симулятор
Жанр и первый проект
Прыгающий мяч из раздела 20.5 — учебная аркада: простое правило (отскок от стен) плюс счёт очков. Проект следующей главы — космический шутер — устроен так же по духу, но добавляет стрельбу и столкновения с врагами. Понимание жанра заранее помогает предсказать, какие механики (главы 20.21–20.22) вам понадобятся раньше остальных.