Девлог#1 MMORPG Телеграм-игра по мотивам World of Warcraft
#158 пятница, 31 января 2025 г. 7 минут(ы) 561 слово
Девлог#1 MMORPG Телеграм-игры по мотивам World of Warcraft.
Пошаговая текстовая 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%)
Как видите я все сильно упростил и у меня игровая система построена без вторичных характеристик(те без тех что могут влиять на первичные),
Для создания всех предметов я написал скрипт на питоне (не без помощи ИИ разумеется):
Логика создания всех предметов в скрипте mmorpg_calc_stats.py
заключается в следующем:
- Определение слотов и характеристик:
- Каждый слот (например, голова, шея, оружие и т.д.) имеет свои первичные характеристики (например, физический урон, магическая защита и т.д.).
-
Все возможные характеристики разделены на обычные (
hp
,physics.dmg
,mage.dmg
,physics.def
,mage.def
,heal
) и критические (crit.physics.dmg
,crit.mage.dmg
,crit.heal
). -
Редкость предметов:
- Предметы могут быть разных редкостей: обычный, необычный, редкий, эпический, легендарный.
-
Каждая редкость определяет количество характеристик, которые могут быть на предмете (от 1 до 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",
и тд.
Если вам интересно следить за разработкой игры, подписывайтесь на мой блог в Телеграм https://t.me/d00m4ace_blog! Я буду делиться новостями, скриншотами и идеями. Спасибо за внимание, и до встречи в мире текстовых приключений! 🎮✨