Найти в Дзене
D00M4ACE блог ИИ и GAMEDEV

Девлог#1 MMORPG Телеграм-игры по мотивам World of Warcraft.

Хочу поделиться своим личным опытом как я смог быстро с помощью ИИ создать 2923 уникальных equipment предмета для своей пошаговой MMORPG Телеграм-игры по мотивам World of Warcraft: Вот основные характеристики персонажей и мобов: hp - запас здоровья (health points) stamina - запас выносливости (stamina points) physics.dmg - физический урон (physical damage) mage.dmg - магический урон (magic damage) physics.def - физическая защита (physical defense) mage.def - магическая защита (magic defense) heal - увеличивает эффект лечения от навыков и скиллов crit.physics.dmg - шанс физического критического урона (от 1.0 до 100.0%) crit.mage.dmg - шанс магического критического урона (от 1.0 до 100.0%) crit.heal - шанс критического лечение (от 1 до 100%) Как видите я все сильно упростил и у меня игровая система построена без вторичных характеристик(те без тех что могут влиять на первичные), Для создания всех предметов я написал скрипт на питоне (не без помощи ИИ разумеется): Логика создания всех пред

Хочу поделиться своим личным опытом как я смог быстро с помощью ИИ создать 2923 уникальных equipment предмета для своей пошаговой MMORPG Телеграм-игры по мотивам World of Warcraft:

Вот основные характеристики персонажей и мобов:

hp - запас здоровья (health points)

stamina - запас выносливости (stamina points)

physics.dmg - физический урон (physical damage)

mage.dmg - магический урон (magic damage)

physics.def - физическая защита (physical defense)

mage.def - магическая защита (magic defense)

heal - увеличивает эффект лечения от навыков и скиллов

crit.physics.dmg - шанс физического критического урона (от 1.0 до 100.0%)

crit.mage.dmg - шанс магического критического урона (от 1.0 до 100.0%)

crit.heal - шанс критического лечение (от 1 до 100%)

Как видите я все сильно упростил и у меня игровая система построена без вторичных характеристик(те без тех что могут влиять на первичные),

Для создания всех предметов я написал скрипт на питоне (не без помощи ИИ разумеется):

Логика создания всех предметов в скрипте `mmorpg_calc_stats.py` заключается в следующем:

1. **Определение слотов и характеристик**:

- Каждый слот (например, голова, шея, оружие и т.д.) имеет свои первичные характеристики (например, физический урон, магическая защита и т.д.).

- Все возможные характеристики разделены на обычные (`hp`, `physics.dmg`, `mage.dmg`, `physics.def`, `mage.def`, `heal`) и критические (`crit.physics.dmg`, `crit.mage.dmg`, `crit.heal`).

2. **Редкость предметов**:

- Предметы могут быть разных редкостей: обычный, необычный, редкий, эпический, легендарный.

- Каждая редкость определяет количество характеристик, которые могут быть на предмете (от 1 до 5).

3. **Генерация комбинаций**:

- Для каждого слота и каждой редкости генерируются все возможные комбинации характеристик.

- Для оружия учитываются дополнительные параметры: тип (одноручное, двуручное) и дистанция (ближний бой, дальний бой).

- Для колец и реликвий применяются специальные множители для увеличения значений характеристик.

4. **Расчет значений характеристик**:

- Значения характеристик рассчитываются на основе базовых значений, множителей редкости и специальных множителей для определенных слотов.

- Критические характеристики добавляются в комбинации, если это позволяет редкость предмета.

5. **Сохранение данных**:

- Все сгенерированные комбинации предметов сохраняются в JSON файл `equipment_combinations.json`.

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

А теперь представьте, сколько работы пришлось бы проделать, если бы геймдиз делал это вручную!

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

Те у меня теперь есть 292,300 предмета на 100 уровней!

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

PS: Еще генерация нейминга в зависимости от типа предмета и его характеристик я тоже сделал через скрипт, который еще учитывает род предмета и все склонения и падежи:

"Железный Шлем": "голова_обычный_1",

"Тканевая Шапка": "голова_обычный_2",

"Закаленный Капюшон": "голова_необычный_3",

"Титановая Шапка": "голова_необычный_4",

"Закаленная Шапка": "голова_необычный_5",

"Рунический Шлем": "голова_необычный_6",

"Магическая Диадема": "голова_необычный_7",

"Зачарованная Маска": "голова_необычный_8",

"Драконий Шлем Стойкости": "голова_редкий_9",

"Адамантовая Корона Защиты": "голова_редкий_10",

"Адамантовая Шапка Стража": "голова_редкий_11",

"Адамантовая Маска Неуязвимости": "голова_редкий_12",

"Драконяя Шапка Стража": "голова_редкий_13",

"Драконий Венец Стража": "голова_редкий_14",

"Мифриловый Капюшон Защиты": "голова_редкий_15",

"Превосходная Корона Стойкости": "голова_редкий_16",

и тд.

D00M4ACE блог ИИ и геймдев. Умные Telegram игры для думающих людей. - 1