Войти
ПрограммированиеФорумОбщее

Разработка инструментов для Балансировки игры

#0
23:46, 20 июля 2021

Добрый день.

Мы разрабатываем систему для создания и управления игровым балансом. Главная ее задача облегчить работу программисту, автоматизируя весь процесс, и дать удобный инструмент гейм-дизайнеру.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Сейчас нам очень нужен фидбек от других разработчиков. Расскажите какими инструментами пользуетесь вы в разработке? Все ли в них вам нравится?

Если будет желание попробовать наш ассет, то он полностью бесплатен для Инди разработчиков. А мы всегда рады получить фидбек:
Unity Asset Store


#1
0:34, 21 июля 2021

Может сгенерировать 100 врагов с определенной кривой роста? Может так же генерировать уровни? Матч3? В какие форматы экспортит? Sqlite? Json, Xml? Чем лучше, чем excel + py script? Веб или стенделоун? Пробовали продать кому? Плейриксу?

#2
2:10, 21 июля 2021

lookid
> Чем лучше, чем excel

Вряд ли он лучше. В excel всё понятно самому.
Опять же, юнити не надо качать, чтобы баланс в другом движке сделать.

#3
17:07, 21 июля 2021

Спасибо за вопросы!

Может сгенерировать 100 врагов с определенной кривой роста?

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

Может так же генерировать уровни? Матч3?

Мы всегда уровни делали прям в сценах юнити, или же отдельная сцена использовалась для редактора уровня, и они потом сохранялись в json или еще как. Но если вы делаете уровни в таблицах, то в Balancy можно сделать то же самое :)

В какие форматы экспортит? Sqlite? Json, Xml?

Мы как раз и делаем Balancy, чтобы таких вопросов вовсе не было. Balancy сам сгенерит файлы, загрузит их на cdn, а плагин при запуске игры скачает нужную ему версию, прочитает и замапит на готовые классы, которые он сам же и написал заранее. Это что касается клиента, для серверных игр этот вопрос ставится отдельно и там они сами качают файлы баланса с нашего CDN.
Под капотом мы используем json, но в планах перейти на бинарные файлы для экономии трафика и времени на скачку, чтение.

Чем лучше, чем excel + py script? Веб или стенделоун?

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

Пробовали продать кому? Плейриксу?

У больших студий типо Game-Insight есть внутренние тулзы для такого (возможно у Playrix тоже). Для нас это дополнительная вализация, что крупные игроки уже поняли важность таких вещей. Пока есть два платящих клиента и десяток инди на бесплатной версии. Признаюсь было сложно им продать Balancy, но зато попользовавшись уходить с него они не собираются и последующие игры сразу на Balancy начинают делать.

#4
17:30, 21 июля 2021

UNNYHOG

Мы разрабатываем систему для создания и управления игровым балансом.

Какова концепция, т.е. формула математическая есть, или формулировка?
Вообще она известна - откуда чего прибудет, в другом месте убудет - сохранение энергии, баланс.
А остальное всё вариации.
Было бы интересно, если это построить на таблице вероятностей цепей Маркова, а не из носа выковыривать. Реально было бы захватывающе и непредсказуемо.
#5
(Правка: 21:58) 17:31, 21 июля 2021

UNNYHOG

Мы разрабатываем систему для создания и управления игровым балансом.

Какова концепция, т.е. формула математическая есть, или формулировка?
Вообще она известна - откуда чего прибудет, в другом месте убудет - сохранение энергии, баланс.
А остальное всё вариации.
Было бы интересно, если это построить на таблице вероятностей переходов цепей Маркова, а не из носа выковыривать. Реально, было бы захватывающе и непредсказуемо.
А чё так на англическом показуха, религия не позволяет на русском?
Так какого рожна вы здесь шулупаетесь?
#6
0:01, 22 июля 2021

Как задаётся содержимое выпадающих списков? Т.е. если я, например, хочу объекту назначить модель (префаб), из чего можно будет выбирать?
Где прописываются схемы и насколько гибкое их содержимое?
Схемы плоские, или древовидные структуры тоже поддерживаются? Особенно интересует дерево с возможностью рекурсии (т.е. чтобы лист мог содержать несколько аналогичных листов).
И ещё не ясно, для чего веб-приложение, если всё можно делать прям внутри юнити.

#7
8:44, 22 июля 2021

Задача сложная, объемная и очень полезная в геймдеве - успехов однозначно.

1. Есть ли возможность последующего редактирования данных после импорта в юнити ? (
если да - то удалось ли решить проблему выбора из выпадающего списка и редактирования данных в самой юнити при большом количестве айтемов (особенно на винде)?)
2. Аналогичный вопрос к веб морде по работе со списками - есть ли возможность выбирать конкретный айтем не только скролом в списке но и поиском в том числе поиском по маске и другими способами?


Изображение

p/s:проблема быстрого и удобного выбора айтема становится крайне актуальна при количестве айтемов примерно больше 200.

#8
18:29, 22 июля 2021

pahaa
Спасибо за вопросы!

Где прописываются схемы и насколько гибкое их содержимое?
Схемы плоские, или древовидные структуры тоже поддерживаются? Особенно интересует дерево с возможностью рекурсии (т.е. чтобы лист мог содержать несколько аналогичных листов).

Тут все очень похоже на программирование. Вы создаете Шаблоны(в программировании Класс) в нашей системе и добавляете им любое кол-во параметров. Поддерживаются все простые типы: int, string, float, bool, list, enum, а так же ссылка на любой другой ваш шаблон. Т.е вы сможете создать любую структуру, любой глубины - главное чтобы вам было удобно с этим потом работать.

Как задаётся содержимое выпадающих списков? Т.е. если я, например, хочу объекту назначить модель (префаб), из чего можно будет выбирать?

Содержимое выпадающих списков на данный момент бывает 3х типов:
1) Enum - все значения перечисляются прям в Админке, потом кодогенератор вам в c# точно такой же enum сам напишет
2) Ссылка на Документ(в нашей терминологии это экземляр класса в админке - например определенный предмет или постройка). Как правило их заводят Гейм-дизайнеры по имеющемуся шаблону.
3) Addressables. Простые префабы мы пока не поддерживаем, работает только для тех, которые вы пометили как Addressables в Unity. Синхронизация всех адресаблов с нашей системой делается через 1 клик в Юнити.

И ещё не ясно, для чего веб-приложение, если всё можно делать прям внутри юнити.

Админка - это централизованное место, где вы 1 раз задаете архитектуру ваших игровых данных, после чего Гейм-дизайнер прям там же начинает проставлять баланс и добавлять сущности. А программист опять же через 1 клик в Юнити сгенерит себе все классы для работы с балансом. Такое подход сильно экономит время и исключает человеческие ошибки при написании классов вручную.

#9
20:15, 22 июля 2021

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

1. Есть ли возможность последующего редактирования данных после импорта в юнити ?

Кодогенератор специально пишет код так, что все данные, которые прилетели из админки нельзя изменить. Это осознанный шаг, чтобы избежать проблем. Все данные из админки клиентом воспринимаются как неизменные.

2. Аналогичный вопрос к веб морде по работе со списками - есть ли возможность выбирать конкретный айтем не только скролом в списке но и поиском в том числе поиском по маске и другими способами? p/s:проблема быстрого и удобного выбора айтема становится крайне актуальна при количестве айтемов примерно больше 200.

Да, конечно. Тут все по стандарту - начинаешь писать, выпадающий список фильтруется сразу - как поиск в гугл.

ПрограммированиеФорумОбщее