Another Way — LFS, Multi User и текущий прогресс инди Action/RPG
Всем привет! Прошло немногим больше месяца и по традиции я спешу поделиться прогрессом нашей авантюры, серии под названием «Через тернии к игре мечты». Хочу напомнить, что же тут происходит. Мы разрабатываем игру Another way — Нелинейная Action/RPG от третьего лица с элементами интерактивного кино, выполненная в лучших традициях средневекового Fantasy, на базе собственной вселенной. Разработка ведется на Unreal Engine 4 усилиями небольшой, но очень вдохновленной команды.
Предыдущие части этого длинного, но безумно интересного пути вы можете найти у меня в профиле.
Если во время написания первого поста нас было всего двое, мы горели идеей, но в целом понимали, что на тот объем на который замахнулись нас элементарно не хватит, то сейчас в команде уже 20 человек из самых разных областей, и я безумно рад, что у нас получается объединять усилия, для того чтобы сделать что-то действительно крутое. В общем, добро пожаловать под кат.
В этот заход решались многие организационные вопросы, среди прочих был вопрос совместной работы над проектом. Для хранения репозитория мы используем гитхаб с подключенным Git LFS. Здесь, для тех кто хотя-бы раз пользовался GIT для версионирования, не будет никаких сюрпризов, за исключением дополнительной установки GIT LFS (Large File Storage). Также, по желанию, можно установить дополнительный GIT LFS плагин в сам редактор Unreal Engine. По-умолчанию Github не способен хранить столь большие проекты (50GB+ на данный момент), поэтому за каждые дополнительные 50 гигабайт трафика или места на диске необходимо отдавать дополнительные $5.
Казалось бы на этом всё, победа. Но открытыми оставались вопросы совместной, единовременной работы и merge конфликтующих карт. Для локальной команды работающих из одного офиса все было бы куда проще, включая собственное железо в качестве сервера и использование Multi User по-умолчанию в локальной сети.
После небольшого ресерча и бесполезных попыток использования p2p сетей было найдено единственное упоминание рабочего варианта с использованием Softether VPN Server. Приобретен VDS с очень скромными характеристиками, достаточными для того чтобы поднять на борту Ubuntu и виновника торжества Softether, максимально развернутую инструкцию по настройке можно найти здесь.
На клиенте устанавливаем Softether VPN Client и подключаемся к удаленной машине с реквизитами которые мы настроили ранее.
Примечание: При настройке клиента необходимо установить галочку в Advanced Settings: No Adjustments of Routing Table, иначе на машине пропадает интернет и будет доступно только локальное соединение с VPN сервером.
В самом Unreal Engine необходимо предварительно включить плагин Multi User Editing и перезагрузить редактор.
После чего в настройках указать полученный локальный VPN адрес.
Примечание: в конце всегда идет :0 для прослушивания порта по-умолчанию.
Итоговый пайплайн выглядит примерно так: хост открывает сессию, пользователи присоединяются к ней. По завершению работ пользователи покидают сервер, хост коммитит изменения и заливает. Все клиенты синхронизируют состояние локальных репозиториев (pull/fetch). В совокупности это позволяет полностью избавиться от проблем с отсутствием возможности адекватно мерджить конфликтующие изменения, уменьшить используемый трафик LFS и позволяет вести совместную работу над проектом. Более подробно о работе Multi-User Editing можно почитать в самой документации Unreal Engine.
Разумеется все описанное не более чем личный опыт. Меня все время не покидает ощущение что мы изобретаем какой-то велосипед, и наверняка есть что-то удобнее для подобного формата работы удаленных команд в рамках работы с UE4, а возможно и нет, даже если есть, к сожалению, мне они неизвестны.
Как я уже и говорил ранее, команда значительно выросла как качественно, так и количественно, если ранее было достаточно передавать документацию посредством личных сообщений и общения, то для масштабирования нам нужно было привести это в единый формат. Jira — удобно для тех кто работал с ней ранее, дорого и слишком объемно для наших целей. Asana — еще один монстр. Trello — хороший и простой канбан боард и наконец HacknPlan — открытие, которое подвернулось под руку в тот момент когда это было действительно нужно.
Это специализированный трекер задач под условный «геймдев». Там же можно вести основной дизайн документ, вкладывать главы, разбивать его на категории.
И что более интересно, создавать задачи прямо из каждого отдельного элемента дизайн документа. А далее стандартный набор хорошего issue tracker, логирование времени, линкование задач, назначение пользователей, прикрепление файлов и изображений удобнейшая канбан доска по категориям и многое другое.
Весь прогресс стал более прозрачным, но еще далеко не все участники пользуются доской и её возможностями, это мы исправим в самое ближайшее время.
Мы как и прежде уделяем большое внимание деталям, поэтому референсы для пропсов приходится искать в самых разных местах, так как отрисовывать все в 2D не представляется возможным. Но на выходе получается довольно интересно.
Но иногда отрисовывать просто необходимо, и тогда получаются неплохие референсы для будущих 3D моделей
В прошлый раз я показывал наработки концепта главного героя, с тех пор он приобрел финальный вид.
После чего незамедлительно был передан на реализацию, и уже сейчас можно полюбоваться скульптом 3D модели:
Те, кто успел познакомиться с прологом, могут вспомнить дочь Рогира — маленькую девочку Ниалу, которая является одним из самых ключевых персонажей.
Разумеется мы все еще позиционируем вселенную, как что-то уникальное. Да, у нас есть заимствованные мифические твари, но есть и не менее увлекательная живность, которая обитает только в наших землях. Вскоре, бестиарий пополнится еще несколькими существами и их историей, а сейчас предлагаю ознакомиться с некоторыми новыми концептами:
Тенелов — Это существо долго преследует свою жертву, прячась в тени стволов деревьев. При перебежке издает сопящий звук, издает зловещие циклы, после чего сменяется давящей тишиной Леса Тысячи Теней.
Морское чудо-юдо — практически никто не возвращался живым после встречи с ним, или его марионетками — прекрасными девами, которые манят своей красотой изголодавшихся морских волков.
Наш мир состоит из множества разных территорий, и к каждой из них мы относимся с особым трепетом. Поэтому мы начали прорабатывать определенное настроение разных локаций. В данный момент в работе Мармид — место с которого начинается наше приключение, его цветовую палитру вы можете наблюдать на всех прошлых и текущих скриншотах. И недавно мы начали отрабатывать настроение леса тысячи теней.
Помимо визуального, нарративного и геймплейного восприятия — огромную важность играет звук, уже сейчас у нас есть общее представление картины будущего звучания и наработка по главной теме Another Way.
Я как и прежде буду рад вашим вопросам, комментариям и мы все еще ждем вас в нашем сообществе Вконтакте в любое время. Закончить я хочу видом на озеро, где-то возле лесопилки деревни Мармид. Всем спокойствия и умиротворения.