Я один сделал демо игры про Кошек с Гравипушками! Теперь пытаюсь понять, что улучшать дальше
Привет.
Я уже довольно долго в одиночку делаю игру Gravity BasCATBall: Кошки с Гравипушками! на Unreal Engine 5.
Недавно я наконец дошёл до стадии, когда демоверсию уже можно нормально показывать людям. Основной геймплей собран, матч работает от начала до конца, есть меню, счёт, таймер, COMP, эффекты, музыка и всё остальное, без чего это выглядело бы просто как очередной прототип.
И вот тут я неожиданно уперся в новую проблему.
Я уже не очень понимаю, что именно сейчас стоит улучшать дальше.
Не потому что в игре все идеально. Наоборот, там наверняка еще хватает вещей, которые можно допилить.
Проблема в другом - игроков пока слишком мало, отзывов почти нет, а без этого очень легко начать полировать, не то что нужно в первую очередь.
Изначально я хотел сделать игру для компании
Когда я только начинал этот проект, я не хотел делать очередную игру, где каждый сидит у себя дома и подключается через интернет.
Мне хотелось чего-то другого.
Чтобы несколько человек сидели перед одним экраном, рядом друг с другом, с геймпадами в руках.
Чтобы один забил гол, второй тут же начал возмущаться, третий попытался отомстить, четвёртый случайно улетел через пол-арены, а через минуту все требовали ещё один матч.
По сути, мне хотелось сделать обычную диванную игру для друзей.
Таких игр на PC, как мне кажется, не так много, как хотелось бы. Особенно если хочется не кооператива, где все работают вместе, а именно какой-то быстрой соревновательной штуки для компании.
Поэтому Gravity BasCATBall изначально строилась вокруг игры на одном ПК и одном экране.
Что это вообще за игра
Идея довольно простая.
Есть арена, кольцо, мяч и несколько кошек с гравипушками.
Гравипушкой можно схватить мяч, подтянуть его к себе и бросить в кольцо.
Сначала на этом практически всё и строилось.
Но довольно быстро мне показалось, что просто таскать мяч недостаточно весело.
Поэтому я сделал так, чтобы гравипушкой можно было хватать ещё и других игроков.
И вот после этого всё стало гораздо интереснее.
Теперь матч может выглядеть примерно так:
один игрок пытается забросить мяч;
второй пытается его перехватить;
третий хватает первого гравипушкой;
четвёртый влетает во всё это сверху;
а мяч тем временем улетает вообще в другую сторону.
И почему-то именно в такие моменты игра начинает работать так, как я изначально хотел.
Не как "серьёзный баскетбол", а как соревнование, где физика постоянно ломает планы игроков.
Как сейчас выглядит демо
На данный момент в демоверсии есть:
- игра для 1-4 человек на одном ПК и одном экране;
- возможность играть всем на геймпадах;
- COMP для одиночной игры или вообще без противников (Тренировка);
- физический мяч;
- захват и бросок мяча гравипушкой;
- возможность хватать других игроков;
- второй прыжок через выстрел гравипушки вниз;
- динамическая камера;
- таймер матча;
- очки;
- победитель в конце;
- логика последнего броска после окончания времени.
Для нескольких игроков управление устроено довольно просто.
Первый игрок может играть с клавиатуры или геймпада.
Для второго, третьего и четвёртого уже нужны дополнительные геймпады.
При этом можно вообще не использовать клавиатуру и играть всем вчетвером на геймпадах.
Небольшой технический момент по геймпадам
Сейчас в демоверсии Xbox-совместимые геймпады работают напрямую.
А вот DualShock и DualSense пока могут потребовать DS4Windows.
Это временное ограничение текущей версии.
К релизной версии я хочу сделать нормальную нативную поддержку геймпадов Sony, чтобы можно было просто подключить контроллер и играть без дополнительных программ.
Пока это один из тех моментов, которые я ещё планирую дорабатывать.
Последний бросок оказался сложнее, чем я ожидал
Есть одна мелочь, на которую я в начале вообще не рассчитывал потратить столько времени.
Я хотел, чтобы если игрок бросил мяч буквально за секунду до конца матча, игра не обрывалась мгновенно.
То есть время закончилось, но мяч уже летит.
Если он попадает - очки должны засчитаться.
Если промахивается - матч заканчивается.
На словах это звучит элементарно.
На практике довольно быстро появился набор условий и ситуаций, где матч то заканчивался два раза, то не хотел заканчиваться вообще.
В итоге пришлось отдельно отслеживать состояние мяча, окончание времени и момент, когда уже действительно можно завершать матч.
Сейчас это наконец работает так, как я хотел.
Камера оказалась отдельной головной болью
Изначально я думал, что самое сложное будет сделать нормальную физику мяча.
В итоге очень много времени съела камера.
Когда на одном экране сразу несколько игроков, камера должна одновременно видеть их всех и при этом не превращать происходящее в кашу.
Если она слишком близко - кто-то вылетает за экран.
Если слишком далеко - кошки превращаются в точки.
Плюс нужно следить за мячом, потому что он может улететь довольно далеко от игроков.
А во время гола я хотел ещё и ненадолго переводить внимание на кольцо.
Сейчас камера динамически меняет масштаб в зависимости от положения игроков и мяча, а во время определённых игровых моментов немного меняет фокус.
В целом уже работает нормально.
Хотя иногда я всё ещё смотрю на неё и думаю, что можно было бы ещё что-нибудь подкрутить.
И вот здесь я сейчас застрял
В демо уже можно ещё очень долго что-нибудь менять.
Можно переделывать освещение.
Можно крутить физику.
Можно ускорять или замедлять персонажей.
Можно менять эффекты. Можно переписывать звуки.
Можно двигать элементы интерфейса на несколько пикселей.
Можно бесконечно искать вещи, которые лично мне кажутся неидеальными. Но есть проблема.
Я уже слишком долго смотрю на эту игру.
Я заранее знаю управление. Знаю, зачем нужна гравипушка. Знаю, что можно хватать другого игрока. Знаю, как сделать второй прыжок. Знаю, как ведёт себя камера.
То есть я уже практически не могу посмотреть на демо глазами человека, который запускает её впервые.
И поэтому сейчас реальный игрок для меня полезнее ещё одной недели полировки.
Что мне особенно интересно понять
Сейчас у меня есть несколько вопросов, на которые я сам уже нормально ответить не могу.
Понятно ли в первые минуты, что вообще нужно делать?
Сразу ли считывается, что гравипушка работает не только на мяч?
Не кажется ли матч слишком медленным?
Удобно ли следить за происходящим, когда на экране сразу несколько игроков?
Нормально ли ощущается управление?
Хочется ли после первого матча запустить ещё один?
И отдельно мне очень интересно, работает ли сама идея игры для компании на одном экране. Потому что именно ради этого формат вообще и задумывался.
Что я хочу делать дальше
Планы на развитие проекта есть.
Если основной геймплей покажет себя нормально, дальше я хочу двигаться примерно в таких направлениях:
- новые карты и арены;
- дополнительные игровые режимы;
- система прогрессии игроков
- более умный и интересный COMP;
- новые ситуации, построенные вокруг физики;
- больше взаимодействий с гравипушкой;
- улучшение темпа матчей;
- дальнейшая работа над камерой и интерфейсом;
- нормальная нативная поддержка DualShock и DualSense.
Но сейчас я специально стараюсь не раздувать проект слишком сильно.
Мне не хочется добавлять новые режимы, карты и механики просто потому, что "контента должно быть больше".
Сначала хочется понять, работает ли сама основа.
Если людям действительно весело бороться за мяч, хватать друг друга, спорить из-за гола и сразу требовать реванш, значит всё это имеет смысл развивать дальше.
Поэтому сейчас мне нужен взгляд со стороны
Если кто-то решит попробовать демо, мне особенно интересны три вещи:
1. Было ли понятно в первые минуты, что вообще нужно делать?
2. Какой момент оказался самым весёлым?
3. Что сильнее всего раздражало, мешало или показалось лишним?
Можно вообще без большого разбора.
Даже несколько предложений уже будут полезнее, чем если я ещё неделю буду вслепую менять параметры в Unreal.
Баги тоже можно присылать. Я их уже коллекционирую.
Демоверсия Gravity BasCATBall: Кошки с Гравипушками! доступна в VK Play:
Сообщество проекта:
KotaKombo Game Studio