Разработка игр / Python + Pygame

Я хотел сделать свой Slay the Spire.
Получился The Carder.

В 14 лет я взял Python, Pygame и нарисованные от руки карты. Вышел маленький карточный рогалик: с боем, выбором новых карт, тремя уровнями и очень странным домом на поле.

Python + Pygame без игрового движка3 уровня в исходникахСтатус архивный прототип
Бой в The Carder: герой, дом, противник и карты в руке
Боевой экран прототипа: внизу колода, энергия и карты; впереди — тот самый дом.

01 / Откуда всё началось

Не просто окно с картами

Играл в Slay the Spire и захотел попробовать собрать что-то своё. Без Unity или Godot: игровое окно, интерфейс и логику пришлось делать на Pygame. Самой неожиданной задачей оказался даже не противник, а рука игрока — карты должны помещаться, реагировать на наведение и после розыгрыша освобождать место другим.

Хотелось, чтобы это была игра с началом и концом, а не один удачный скриншот. Поэтому к бою постепенно добавились меню, выбор героя, награды после уровня, экран победы и подсчёт очков.

02 / В движении

Вот как это играется

Короткий фрагмент настоящего геймплея. Видео запускается только по нажатию.

Меню, карты и бой — это работающий прототип, а не концепт-арт. Пока нет браузерной версии или готового установщика.

03 / Что успел сделать

У каждой карты есть последствия

01

Рука и колода

Шесть карт на руке, стоимость в энергии, добор и сброс. После боя можно выбрать новую карту из предложенных.

02

Бой

Урон, блок, выбор цели и ход врага. Карты могут бить одну цель или всех противников и накладывать эффекты вроде Vulnerable.

03

Путь до финала

В исходниках есть три уровня с дневными и ночными фонами. После последнего игра показывает экран победы и начисляет очки.

04

Настоящее меню

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

05 / Сейчас

Первый законченный эксперимент, а не релиз

Проект сохранился в виде исходников и записи игры. Часть задумок — новые события, продолжение истории дома и больше противников — так и осталась планом. Сейчас я бы иначе разделил игровой интерфейс и логику, но именно на этом проекте впервые почувствовал разницу между «запустилось» и «можно развивать дальше».

Пока я не публикую сборку или исходники для скачивания. Если вернусь к игре, обновлю страницу и расскажу, что изменилось.