Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

Как я сделал карточный баттлер без конструктора колод — конкурс пет-проектов

Я делал карточную игру-баттлер около 15 лет, но так и не нашел для нее издателя. И все же я горжусь этим проектом.

1К открытий4К показов
Как я сделал карточный баттлер без конструктора колод — конкурс пет-проектов

Привет, меня зовут Никита. Я разработчик уже около 15 лет. И все эти годы в свободное время я делаю баттлер FAWE.

Все началось еще в университете с лабораторной работы по искусственному интеллекту, где надо было написать свой ИИ. Но перед этим нужно было ответить на вопрос: «Какую задачу он будет решать?».

Ответ был найден быстро. С самого детства я обожал компьютерные игры и в то время просиживал за «Космическими рейнджерами», часами загружаясь перед мини-квестами, чтобы попробовать пройти по-другому. И вот я решил сделать подобие одного из таких мини-квестов и научить ИИ выигрывать.

В моей интерпретации два мага по очереди выбирали заклинание, после чего в зависимости от атаки и защиты наносился урон. Тот, у кого закончились жизни, проигрывал. Сеттинг был самым стандартным — магия стихий. Отсюда и название: F — fire, A — air, W — water, E — earth. FAWE.

В последующие годы я занимался разработкой разного рода софта в различных компаниях, а в свободное время делал новые версии все той же игры. Параллельно я приезжал к другу, который частенько выигрывает городские турниры по настолкам. Компанией мы обычно играли в «Манчкин Квест», а вдвоем в Magic: The Gathering. Сам же я пытался играть в Hearthstone, но довольно быстро самой игре я предпочел просмотр мировых чемпионатов по ней.

Почему? Как ни странно, самый очевидный ответ уже давно был мемом: «самая сильная карта — кредитная». Но даже если ты потратишь кучу денег или времени на самые сильные карты, даже если соберешь колоду, даже если выиграешь с ее помощью мировой чемпионат, выйдет новое дополнение — и придется выкинуть львиную долю своих карт и начать собирать колоду заново. Конечно, многим именно это и нравится в карточных баттлерах. Самим компаниям наверняка тоже.

Второй момент — я не очень люблю играть 1 на 1, мне куда интереснее играть компанией или командой хотя бы из двух человек.

Долгие годы меня не покидала мысль «надо что-то менять». В конце лета 2019 года я развелся с женой, уволился из зарубежной компании и самоизолировался в квартире еще до того, как это стало мейнстримом.

Первоочередной целью было — поставить жизнь на паузу и перевести дух. Второй — сделать наконец нормальную версию своей игры. Благо, за все эти годы у меня уже сложилось хоть и примерное, но представление о том, какой она должна быть. Были даже макеты из ASCII-графики. Оставалось самое простое — сделать игру.

За многие годы в разработке у меня уже накопился кое-какой опыт по оценке трудозатрат. Поэтому я проверил положение Меркурия, сверился с фазой Луны, подкинул кубик и выяснил, что весь проект займёт 2 месяца. Ещё 1 месяц я заложил на тестирование. «Не так уж и много. Сделаю, а потом наконец отдохну», — подумал я.

Следующие 1,5 года я работал примерно по 12–16 часов в день с парой выходных в месяц. Почти все от идеи до реализации делал сам, разве что арт заказал у одной студии. Этот маневр стоил мне большую часть бюджета, после чего игру во что бы то ни стало надо было закончить до конца 2020 года.

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

Тогда я наивно полагал, что если у тебя есть оригинальная игра с крутым артом, то и от издателей отбоя тоже быть не должно. Все оказалось совсем не так. Самой большой проблемой, как ни странно, стал элеватор питч. Когда меня спрашивали, я обычно отвечал, что делаю Hearthstone в 2 клика. Людям этот питч нравился, но с издателями не прокатило, а Google Play и вовсе запретил мне упоминать чужие бренды.

В итоге игра так и не нашла своего издателя и осела в Google Play под названием FAWE: Enchanted Forest 30 декабря 2020 года.

За все это время накопилось достаточно фидбэка, чтобы понять: пытаясь сделать игру для обычных людей, я ориентировался на хардкорных гиков, в результате чего для первых она получилась слишком сложной, а вторых и так все устраивает в существующих баттлерах. Поэтому несколько месяцев назад вышла вторая часть под названием Let’s FAWE!. В ней геймплей полностью переработан с фокусом на обычных игроков. Но издателя я пока так и не нашел.

Технические детали: наибольший интерес представляют боты. Зачастую, чтобы сделать их интересными и сложными, разработчики просто выдают им читы, например, отсутствие тумана войны или сбор двойных минералов. В своей же игре из академического интереса я сделал честных ботов, которые пользуются только той информацией, которой обладает обычный игрок, и не отличают его от других ботов. При этом, как показывает практика, играть с ними действительно сложно и интересно. Предлагаю челлендж: выиграть хардкорных ботов 5 раз подряд в режиме 1х1х1х1.

Стэк проекта: Golang, Lua, Defold, SQLite.

Любимый кусочек кода:

			-- sleepy eyes code, but it works :) 
function M:calc_auto_resize(obj_size)
	obj_size = obj_size * const.INIT_SCALE_FACTOR
	local w, h = window.get_size()
	local wf = w / obj_size.x
	local hf = h / obj_size.y
	local factor = math.max(h / (obj_size.y * wf), w / (obj_size.x * hf))
	return vmath.vector3(factor)
end
		

Адаптирует картинку в режиме Projection: FIXED_AUTO под любой размер экрана/окна.

Поиграть в последнюю версии моей игры можно прямо на сайте.

Для истории оставлю ссылки на оригинальную FAWE: Enchanted Forest:

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий4К показов