C момента последнего выпуска дневников произошло так много всего, что я предлагаю обойтись без вступления и сразу нырнуть в гущу событий. Мы практически закончили основную сюжетную линию — на черновую игру можно пройти от начала и до предпоследнего эпизода. Финал без Ло Фенга вышел крепким орешком, и наш сценарист играет в разъярённого угря на раскалённой сковороде — очень хочется сохранить тот накал страстей и плотность событий, которые опирались на столкновение протагонистов в конце игры, не написать глупостей и не довести дело до
Нам прилетело много замечаний от русскоязычных читателей о «пресности» текста в репликах ряда персонажей (я стримил первые эпизоды в начале месяца), и теперь мы оперативно стараемся это исправить, по возможности не создавая простоев для наших переводчиков.
Я очень люблю ходить пешком. Часть дороги из дома в офис проходит вдоль Москвы-реки по набережной Марьинского парка. Теперь мне есть, чем занять это время, помимо наслаждения тишиной и запахом воды. Буду, как нормальный зомби-человек, идти и пялиться в телефон:
На этой неделе наконец-то получилось собрать нашу боевую «песочницу» под Android. В ней 36 готовых персонажей (осталось сделать анимации и интегрировать ещё 7) — и это незаменимый помощник для тестирования ИИ и баланса умений. Да и просто возможность поглазеть на то, как ИИ играет сам с собой и насколько его поведение детерминировано. Хороший ИИ должен уметь интересно проигрывать — и это главное, чему мы пытаемся его научить на этом этапе.Это Торн и компания идут на «стрелку», выяснять, чего мы так долго возимся. Горько это признавать, но с конца мая нам пришлось практически полностью переписать код боевой системы и инструментарий для создания боевых персонажей. Первая реализация требовала слишком много времени на скриптование умений руками.
В новой ипостаси это несколько простых YAML файлов, в которых в любом текстовом редакторе можно описать анимации, команды, умения, специальные эффекты и озвучку персонажей. А небольшой скрипт сделает за вас всю чёрную работу. Не знаю, как это делают истинные адепты Unity, но на мой непритязательный вкус «Unity-way» для работы с 2D-анимацией — это боль и не испитая чаша отборных, первосортных страданий. Вы словно сразу попадаете в шестой круг ада, и элементарную работу, которую нужно быстро делать за 5-10 минут, можно часами «накликивать» в «удобных» инструментах и инспекторах редактора.
Сражение с ИИ в одной из первых игровых сцен. Впрочем, не он сейчас является основной проблемой. Ключевая «боль» боевой системы — UI и управление. Чудовищно неудобно сейчас. Нам нужно будет переработать панель с картами — видимо, придется спрятать их под часы, чтобы сэкономить вертикальное пространство. Если вы видели скриншоты или видео из предыдущей версии — мы также убрали боковые панели с портретами. Причина аналогичная — занимают слишком много места.
Это размышления на тему меню выбора умений во время боя. А ниже интерфейс профиля персонажа. Сейчас наша пчёлка-старательница и просто огромный молодец Юля практически закончила все остальные UI в однопользовательской игре — остались куски из главного меню и интерфейс победы/поражения в бою. После чего, засучив рукава, можно будет переработать боевой UI и навигацию на карте — там сейчас крайне сложно попасть курсором в нужную дорогу.За последние месяцы я честно заработал себе место в титрах в разделе «Дополнительное программирование». Знаете, туда пишут парней, которых вроде как нельзя не упомянуть, но которые делают всякую херню (нет, нет — не «всё подряд», а именно херню). Будь то сборка атласов из текстур, подготовка инструментария автоматизации или сборки проекта или то, с чего я начал — сборки версии игры под Android. Есть мнение, что я уже на стадии «смирение», но все еще предпочитаю безосновательно считать ее «отрицанием».Мы также начали работать над иконками умений и улучшений в игре, нарисовали первый комплект предметов и первые 62 портрета наших бекеров в Kickstarter.
И пока наш арт-директор был в отпуске, мы перешли к стадии наведения лоска. Андрей работает над цветокоррекцией, чтобы лучше передать ощущение от происходящего в игре и сделать картинку «вкуснее». Внизу варианты было (слева) и стало (справа):Сцены становятся немного мрачнее, контрастнее, с небольшим оттиском холодных оттенков. В целом мы нарисовали практически всё — осталось ещё несколько сцен, которыми мы будем заниматься в последнюю очередь — это вступительная сцена, в которой мы хотим показать интро, и ряд синематиков в начале и конце игры.
Сейчас, играя в первые сборки, видно, что ряд сцен нужно будет несколько «посушить», а где-то вставить или вернуть сюжетные бои, которые мы исключили на этапе написания сюжета. Например, это дополнительная сцена боя, когда Торн и Гледа бегут домой после встречи со жнецом, или сцена вступления в игру, где Хоппер Рули встречается с Аммой.
Так вышло, что писать этот выпуск дневников я начал в мае, а заканчиваю в августе — и большая часть того, что я хотел рассказать о сюжете, уже случилась. В целом — мы закончили. Ещё вносим правки в последние два финальных эпизода и пишем обещанные квесты, однако, пусть с багами и глюками, но пройти игру от начала и до конца уже можно!
В начале весны Nevigo (разработчики Articy Draft) анонсировали Articy 3 и нативный плагин для Unity. Пробовать и экспериментировать времени не было, так что мы просто отложили эту часть до обновления.Эти милые скелетики радуются, что в мае мы со скупой слезой на бородатом лице портировали то, что у нас было написано на базе Articy Access Api на новый Unity Plugin. Было очень обидно, т.к. мы по факту повторили их новый плагин почти целиком и, выходит, потратили на это без малого 1,5 месяца. Радует, что это время не было потрачено совсем уж впустую и на новых дрожжах было предельно понятно как теперь всё работает и что с этим делать.
Ещё в середине марта мы переключились на работу с сетевой версией боёвки. Это было важно, чтобы показать живой геймплей для выхода на Square Enux Collection (SEC) и записать его для кампаний на Steam GreenLight и Kickstarter.
Правда, SEC послали нас на хрен, так что отчасти спешка и смена приоритетов была напрасна. При этом PhotonServer нам очень помог с тем, чтобы быстро получить работающую сборку с сетевой игрой. Я ничего не могу рассказать про PUB и PhotonCloud, потому что мы делаем мультиплеер с кучей расчётов и проверок на стороне сервера. Поэтому именно PhotonServer. При этом мы практически на 90% выкинули его Loadbalancing. В нём крутой и удобный транспорт. Простой, понятный: буквально пара строк — и вы уже пишете бизнес логику. При этом поиск матчей, масштабирование, процесс расширения его новыми сетевыми командами, организация лобби, комнат, поиск матчей — всё это в первую очередь про peer-to-peer и то, что вы пишите на авторитарный сервер, который всё для вас считает.
Что Loadbalancing, что Hive дают вам возможность легко шарить состояние между группой игроков, если состояние выражено каком-то простым словарём ключ-значение. Реализации своих бизнес правил поверх них — боль. Её можно делать через плагины, но это не очень удобно. Я экспериментировал с Netty и его портом DotNeyy — было бы чуть больше времени, выкинул бы нахрен Photon и использовал её. Единственное, чего в ней не хватает из коробки — это варианта компиляции для платформ на html5 с поддержкой вебсокетов.
Я думаю, вы знаете, что мы смогли получить немного деньжат сверх нашей цели на Kickstarer. Это позволило записать еще несколько музыкальных треков, и сейчас Адам и его команда завершают работу над последним из них. Это на самом деле светло и грустно одновременно. С одной стороны — одна из страниц разработки почти перевёрнута, с другой — мы закончили и новых композиций уже не будет.
Адам, ребята — спасибо вам за вашу волшебную работу и потрясающую музыку. Я очень рад, что у меня была возможность с вами работать. Адам — очень крутой композитор и не менее приятный человек. Если вам нужна крутая музыка — идите к нему!В игре есть одна «особая» композиция — «общее настроение». Она сделана не как единая шестиминутная композиция, а как набор фрагментов, которые можно собирать в разные треки или трек большей длительности.
Выше рабочая версия одной из двух финальных композиций — это схожий набор для более «темных» ситуаций, таких как диалоги с заведомо отрицательными персонажами или для ситуаций с чернухой.
Я не хочу долго рассказывать как это было. Да, подготовка заняла у нас чудовищное количество времени и нервов. Я думаю, что то же самое будет на стадии отправки физических призов. Наверное, мне стоит написать отдельный пост, чтобы рассказать, что мы на 100% сделали неправильно, и что у нас получилось и не получилось.
Сейчас я хочу сказать огромное спасибо тем, кто нам с этим помогал. Спасибо вам большое, ребята! И да, если вы готовитесь запустить свой проект на Kickstarter, десять раз подумайте, нужно ли вам связываться с физическими призами.
Сверстать все финальные UI, дописать код прокачки персонажей и перенести все наработки по этой части игры из документов в саму игру. Поправить стилистику текста по итогам первых плей-тестов, дописать ИИ. Я очень хочу, чтобы мы успели закончить с сетевой версией к концу месяца, чтобы раздать её бекерам игры и с их помощью провести очередной раунд работы над балансом классов и их умений.