Growing Crystals vol 14. Балансировка игрового процесса

Всем здравствуйте! Спасибо за участие в проекте в качестве тестеров и за строительство города олигархов, который нам пришлось удалить при очередном обновлении на пока еще тестовом сервере growing.petukhovsky.com. Блог проекта Growing Crystals продолжает свой рассказ о разработке мультиплеерной браузерной практически MMORPG-игры с абсолютного нуля, вопреки всем статьям и учебникам запрещающим новичкам гейм-индустрии браться за подобного рода проекты. Приглашаю всех принять участие в тестировании и обсуждении идей проекта в комментариях.

Разобравшись с мультиплеером и и приведя в порядок свои мысли и чувства относительно того, какая должна быть логика игры мы подходим к запуску реально работающего проекта и не в режиме «кто быстрее соберет 1000 синих кристаллов» а в режиме полноценного мультиплеерного живого мира размером 200 на 200! Рад что, наконец, приближается этот момент! Но пока он не наступил, я расскажу о святом и самом главном, опять о игровом процессе и балансе.

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

Благодаря настойчивости и энтузиазму тестеров, проявленному вопреки многократным обновлениям и перезагрузкам сервера, удалось очень много выяснить и понять.

Развиваясь в месте, где появился игрок, за 5-8 минут можно создать несколько сборщиков, которые будут обеспечивать синими кристаллами в достаточной мере, синие кристаллы жизненно важный игровой ресурс, используемый для строительства, перемещения и решения всех первичных задач. Назовём это место со сборщиками условной базой. Вот какие моменты удалось подметить:

  • «Нет возможности далеко убегать от условной базы и быстро развиваться, даже с полностью забитым инвентарём. Это обусловлено небольшой вместимостью инвентаря игрока, 10 ячеек позволяют унести 1000 синих кристаллов, что совершенно недостаточно для полноценного мгновенного развития в новом месте.» — я считаю, что это положительная черта для игрового баланса, соответствующая задекларированным в предыдущей статье ценностям (геймплей, мотивирующий игрока строить, путешествовать и развиваться). Это мотивирует строить и развиваться, создавая деревни (1-2 игрока) и города (3-10 игроков). Хорошо когда «твой дом — твоя крепость».
  • «Слишком мало объектов и возможностей в игре.» — с этим до настоящего момента, тратя силы на отладку последних багов мультиплеера, можно было мириться, но теперь нет, и именно развитием и заведением большего количества внутриигровых объектов я сейчас занимаюсь и немного об этом напишу в сегодняшней статье.
  • «Можно заблокировать игрока, окружив его со всех сторон постройками.» — проблема уже решена использованием обновленного механизма определения координат ближайшего открытого места при появлении на карте (спауне).

Наполнения игры возможностями

Пока в игре представлено очень небольшое количество объектов: сейфы, сборщики кристаллов, генератор брони и заборостроительный юнит, игра действительно крайне линейна и обладает алгоритмом оптимального развития, чем-то напоминающим алгоритмы из первого Star Craft для каждой из расс:

  • 0:00 Blue Construction Box(BCB),
  • 0:40 Collector 1 in 5(C1-5),
  • 3:12 Collector 1 in 5(C1-5),
  • 5:00 Collector 1 in 5(C1-5),
  • 6:37 Collector 1 in 5(C1-5),
  • где-то на 8й или 9й минуте Wall Construction Unit(WCU), а после 10х обнесение забором условной базы.

Но теперь, благодаря достаточно интересной, на мой взгляд, разработанной системе, при которой каждый игровой объект состоит из компонент, можно реализовать небывалое разнообразие игровых объектов. Расскажу поподробнее:

— Как вы думаете, что такое, например, Safe 1?

— Это объект, в котором есть 1 ячейка в который можно поместить всё что угодно?
— Близко, но ответ не полный. Safe 1 помимо способности что-то сохранять, должен еще и обладать свойствами связанными с применением оружия, другими словами бронёй, при истощении которой, враги смогут его опустошить забрав содержимое.

— Тогда логично задать каждому из объектов свойство броня.
— Конечно, это классическая система для большинства игр (того же StarCraft). Но, в нашем случае, мы решили себе представить что объект, да пусть даже Safe 1, это предмет, похожий на предмет в реальной жизни, например настоящий сейф, у него есть вместимость, а есть толщина стенок, есть замок. Один и тот же сейф с разными замками будет обладать разными свойствами устойчивости перед врагами. И мы решили в игре пойти по тому же принципу, дать возможность объекту состоять из различных свойств формализованных в предметах, характеризующих этот объект. Например, сделав Safe 1 не просто объектом с одной ячейкой, а объектом, который еще включает в себя предмет брони и предмет восстановления брони. Вот как это выглядит в игре.

Safe 1

Safe 1

На картинке изображено то, что мы увидим зайдя в собственный Safe 1. Пустая ячейка в голубой рамке, в которую мы можем положить всё что угодно. Ячейки оборудования (equipment) Safe 1, в которых лежит 20 единиц брони (mini blue shield) и генератор брони (mini blue shield slow generator).

— Ух ты, здорово. А как тогда выглядят другие объекты?
— Другие объекты организованны точно по тому же принципу. В них есть свой инвентарь (inventory) и equipment, которые могут быть заполнены совершенно по разному, что даёт им те или иные свойства. Например, сборщик синих кристаллов Collector 1 in 5, выглядит вот так.

Collector 5 in 1

Collector 5 in 1

Видно, что от сейфа он принципиально отличается только тем, что в его equipment есть предмет, который складывает кристаллы в свободную ячейку его inventory.

— А игрок сможет сам укомплектовывать equipment объектов?
— Теоретически такую возможность можно предоставить, но сейчас она не рассматривается поскольку трудно оценить как это может повлиять на баланс.

Вынужден признать что по мере развития игрового процесса, и, в частности, при реализации такой вот компонентной системы объектов ранее разработанная схема игрового интерфейса приходит в негодность. Но, оставим этот вопрос на потом, когда игра примет хотя бы близкие к альфа-версии черты и будет понятна полнота функционала, тогда и будет ясно с чем работать с точки зрения проектировщика интерфейса.

PixelArt! — отличная и действительно простая техника рисования, позволяющая уйти от необходимости привлекать в команду дизайнера, но очень трудоёмкая и, могу сказать, что последнюю неделю рисовал и перерисовывал несколько простых анимаций, потратив на них в общей сложности не меньше 6 часов. Художника-дизайнера очень не хватает в проекте, так что если кто-то будет рад попридумывать и порисовать вот в таком стиле, милости просим.

Скриншот браузерной игры

Маинд-карта

Майнд карта

2014.08.06

Краткий итог: Побег от аркадной игровой модели по праву можно признать состоявшимся.

Оказалось что придумывание и, тем более, расчёт деталей игрового процесса оказался на много сложнее, чем это виделось изначально при релизе первых экспериментальных образцов игры в которых была цель набрать 1000 синих кристаллов. Теперь игра гораздо разнообразнее и, порой, на отвлеченное обдумывание уходит гораздо больше времени, чем на реализацию за компьютером. На что вспомнилась история, о которой слышал в компании брата, когда специалист по балансу и игрвому процессу не мог отчитаться за проделанную работу и все считали его разгильдяем, хотя, на самом деле, он изуил огромное количество материалов и родил табличу числовых характеристик уровня или чего-то такого. Теперь я прекрасно его понимаю и также понимаю почему у него могли возникнуть затруднения с написанием отчёта.

Сводка

Начало: 25 апреля 2014 года.
Приостановка проекта: 21 мая 2014 — 13 июля 2014 года.
Команда: 1 (25 апреля), 1 (14 июля).
Израсходовано: 200 + 32 = 232 чч., 80 + 16 = 96 чч.
Рабочих дней: 28 + 4 = 32, 10 + 2 = 12
Средняя производительность: 232/32 = 7,25 чч/день, 96/12 = 8 чч/день

Описание игрового процесса

60/100

Расчет баланса

55/100

Игровая графика

30/100

Веб-клиент

70/100

Игровой сервер

70/100

Веб-сайт

20/100

ИТОГО

295/600

Итого, сегодня пересечена планка в два человекомесяца (320 человекочасов) а общая готовность проекта вплотную приблизилась к условным 50%, что, конечно, мне кается весьма относительным показателем, потому что вторые 50% при исправлении багов могут составить 70% трудозатрат. И тем не менее, уже сейчас можно говорить о том, инди-игра (конечно, жанр я выбрал наисложнейший) в любом случае дело не простое, но достижимое(!!!) при наличии 4х-6и месяцев времени!

Продолжение: Growing Crystals vol 15. Веб-сайт и Yii