Клиент, Shared Logic, инструменты, клиентская команда
Команда проекта
Клиент: я, Senior и Middle Unity-разработчики, ~2 тех-артиста; 1 серверный разработчик; геймдизайн — лид и до 4 геймдизайнеров
Платформы
iOS · Android
Shared Logic
Отдельные библиотеки боя и меты на общей основе: экономика, прогрессия, крафт, профиль игрока, автобой, расчёт наград. Все изменения профиля идут только через неё.
Предикшен: клиент сразу показывает результат действия, сервер проверяет; при рассинхроне события откатываются.
Глубина серверной проверки настраивается — от общей сверки итогов до полного прогона логики. Заложен realtime PvP.
Клиент умеет играть без сервера.
Инструменты
Бот-проходчик: консольная утилита автоматически проходит игру и бои и проверяет проходимость всех частей игры.
Конфиги через Google-таблицы: любой конфиг выгружается с валидацией, списками допустимых значений и диапазонами, на любой ветке; геймдизайнер правит и кнопкой подтягивает обратно.
Редактор туториалов, система читов и работы с профилем игрока.
Сервер и команда
Сервер на C# и Microsoft Orleans. Мой вклад: как сервер работает с общей логикой, состав сервисов, протокол клиент–сервер, сериализация.
Вводил команду в архитектуру, обучал технических художников с начального уровня, консультировал серверного разработчика.
Что это дало
Клиентский разработчик делает фичу целиком и не зависит от других разработчиков.
Серверный разработчик не пишет игровую логику и занимается инфраструктурой.
Геймдизайнеры и QA проверяют логику и баланс в локальной сборке без сервера.