Популярное
Свежее
Моя лента
Сообщения
Рейтинг
Пополнить Steam
Низкая комиссия
Темы
Игры
Офтоп
Гайды
Творчество
Ночной музпостинг
Кино и сериалы
Вопросы
Музыка
Милые животные
Видео
Показать все
DTF
О проекте
Правила
Реклама
Приложения
Аккаунт удален
Gamedev
27.05.2020

Статья удалена

Всем привет!
В прошлом посте я объявил о стартапе в необычном формате: ключевой мыслью было организоваться группой более-менее профессионалов и сделать общий пет-проект исключительно для своего удовольствия :)

Статья удалена

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

www.notion.so
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

Отчет

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

  • Двух геймдизайнеров
  • Артдиректора и концепт-художника
  • Четырех C# разработчиков
  • QA-инженера

С момента нашего первого созвона прошёл месяц, большую часть которого мы потратили на обсуждения и поиски. Мы решили использовать «взрослые» пайплайны, по которым работали до этого в своих студиях: как на микро-уровне (дизайн, арт, разработка, тестирование), так и с т.з. продукта: прежде, чем определиться с конечными требованиями, мы решили пройти длительную фазу итеративного прототипирования.

Геймдизайн

Для начала мы побрейнштормили, и наши ГД выкатили ряд концептов на обсуждение. Long story short, мы выбрали фичу, вокруг которой будет строиться остальная игра, и которая определит многие её особенности.

Этой фичей выступит задержка информации в пошаговой стратегии.

Забавный факт: как бы старательно игры ни пытались симулировать реальный опыт и обстановку руководства отрядом, войском, армией или государством — все имеют критическое допущение в виде моментального распространения информации.

В нашей модели игрок является центром информации, из которого исходят приказы всем войскам, и в который стекаются отчёты от каждого из них.
Информация имеет свою скорость распространения, а игрок видит только последнюю «версию», которая может сильно отличаться от реальности.
Игрок может решить приблизиться к интересующей его локации для ускорения коммуникации, но это влечёт за собой соответствующие риски для него самого.

Это лишь концепт, играбельность которого мы хотим проверить. ГД описали минимальные функциональные требования на прототип и занялись на досуге нарративом.

Арт и нарратив

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

Процесс подбора референсов и атмосфериков. Инструмент — Miro (подробнее в следующих выпусках)
Процесс подбора референсов и атмосфериков. Инструмент — Miro (подробнее в следующих выпусках)

Мы остановились на около-фентези сеттинге в рамках альтернативной славянской истории и мифологии. Стилистика — мрачно-реалистичная.

Код

Для наших нужд прекрасно подходит Unity: мы ориентируемся на быструю разработку без оглядки на громоздкий инструментарий.

Впрочем, движок для нас по сути — просто вьюха. Всю логику мы крутим в ECS фреймворке LeoECS.

Разработка в этом стиле — особенное удовольствие уже само по себе (подробнее о ECS в следующих выпусках).
Разработка в этом стиле — особенное удовольствие уже само по себе (подробнее о ECS в следующих выпусках).

За пару недель после формирования ТЗ мы набросали первую итерацию прототипа:

  • Работает генерация карты и игроков, размещение юнитов и дебаг тулзы
  • Интерфейс позволяет отправлять приказы и получать отчёты, управлять юнитами и атаковать другого игрока
  • Львиная доля времени ушла на построение базовой архитектуры и выработку соглашений о стилистике написания кода — мы педанты :)
Выглядит, правда, не слишком приглядно, но свою работу делает
Выглядит, правда, не слишком приглядно, но свою работу делает

По данному прототипу осталось усложнить систему передвижения, прикрутив поиск пути и «рисование» маршрутов.

Закончив этот стек задач, можно будет приступать к плейтестам, по результатам которых мы решим, насколько это жизнеспособная механика.
Если читатели заинтересуются, мы выложим прототип в открытый доступ для потыкать :)

Notion

За последние 6 лет в геймдеве я работал с самыми разными корпоративными информационными системами: чаще всего львиную долю потребностей разработки покрывал стек Atlassian, в частности — связка Jira + Confluence.

Однако, в последние годы облачная Конфа (да и Жира пожалуй) окончательно превратились в неюзабельное говно, поступившись функционалом, гибкостью и удобством в пользу казуальному дизайну и однокнопочности.

Мне не приходило в голову более удачных аналогов, т.к. все они обладали теми или иными критическими недостатками.

Отдельно хочется выделить, разве что, Wrike, единственным недостатком которого является конский ценник в $25/мес за пользователя.

К тому же в идеале хотелось совместить менеджмент и документацию в одном инструменте.

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

Приходилось использовать вот эти чёрные виджеты, т.к. это единственный способ отфильтровать страницу для одного пользователя, а не для всех стразу
Приходилось использовать вот эти чёрные виджеты, т.к. это единственный способ отфильтровать страницу для одного пользователя, а не для всех стразу

Но выглядело это так себе, а простейший функционал приходилось реализовывать средней монструозности формулами:

=IFERROR( SUMPRODUCT( $J14:14; INDIRECT( "'Лог вклада'!C"& MATCH( $A14-1; 'Лог вклада'!$A:$A; 0 )& ":"& MATCH( $A14-1; 'Лог вклада'!$A:$A; 0 ) ) )/ SUMIF( $J14:14; "<>"; INDIRECT( "'Лог вклада'!C"& MATCH( $A14-1; 'Лог вклада'!$A:$A; 0)& ":"& MATCH($A14-1; 'Лог вклада'!$A:$A; 0) ) ); "")

Почувствовав, что я занимаюсь какой-то херней, я решил в очередной раз попробовать подружиться с Notion, который уже не первый год манил мой взгляд своим необычным функционалом.
И с такой-то попытки это наконец удалось!

Итак, Notion — это очень комплексный сервис, который позволяет пользователю создавать странички (вполне похоже на любую другую вики) со всякими мелкими удобностями.

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

Одна из наших основных таблиц, по сути — список задач по проекту
..ее же можно отобразить в виде канбан-доски, просто переключив представление

Каждая БД состоит из записей (строки) и полей (столбцы).
Поля могут быть различных типов, некоторые из которых весьма интересны.

Связь с другой БД (Участник, Итерация, Артефакт): позволяет создать связь 1-к-1 между двумя записями разных БД. Иными словами, если вы создаёте задачу и присваиваете её исполнителю — она автоматически появляется в соответствующем поле соответствующей записи БД исполнителей:

Любую запись любой БД можно открыть в виде полноценной страницы и увидеть, например, все вклады, артефакты и оценки, в которых данный участник упомянут
Любую запись любой БД можно открыть в виде полноценной страницы и увидеть, например, все вклады, артефакты и оценки, в которых данный участник упомянут

Подсчёт данных из связи: отдельный вид поля, который позволяет получить содержимое полей из другой БД и как-то его обработать (посчитать сумму, среднее, медиану, количество, и т.д.)

Формула: практически то же, что и формулы Экселя или google sheets, но, конечно, гораздо беднее функционалом. Впрочем, в связке с предыдущими пунктами позволяют делать достаточно нестандартные штуки:

Тут я валидирую аккаунт ставящего оценку и её границы. Другая таблица агрегирует все оценки по одной задаче и суммирует те, что прошли валидацию
Тут я валидирую аккаунт ставящего оценку и её границы. Другая таблица агрегирует все оценки по одной задаче и суммирует те, что прошли валидацию

Очень удобно вести базу знаний чего мы там накодили:

Тут можно наблюдать как БД систем ссылается на БД компонентов
Тут можно наблюдать как БД систем ссылается на БД компонентов

В целом Notion закрыл все наши текущие потребности по документации, логированию, контролю артефактов и т.д.

Я с удовольствием ещё многое рассказал бы, но, кажется, этот пост выходит уже неприлично длинным — так что до следующего!

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

Если вам было бы интересно разделить проект «для души» с людьми, разделяющими ваш опыт и отношение к делу — пишите любым удобным способом в комменты или мне напрямую:

  • vk.com/nidere
  • fb.com/nidere
  • telegram: @nidere
  • nidere@gmail.com

Буду рад пообщаться в комментах и ответить на вопросы :)

Что думаете?
Я бы присоединился
Буду следить за новостями
Не интересно
Зря
Нет голосовАнонимный

#геймдев #лонгрид #опыт