Девлог#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 заключается в следующем:

  1. Определение слотов и характеристик:
  2. Каждый слот (например, голова, шея, оружие и т.д.) имеет свои первичные характеристики (например, физический урон, магическая защита и т.д.).
  3. Все возможные характеристики разделены на обычные (hp, physics.dmg, mage.dmg, physics.def, mage.def, heal) и критические (crit.physics.dmg, crit.mage.dmg, crit.heal).

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

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

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

  8. Для каждого слота и каждой редкости генерируются все возможные комбинации характеристик.
  9. Для оружия учитываются дополнительные параметры: тип (одноручное, двуручное) и дистанция (ближний бой, дальний бой).
  10. Для колец и реликвий применяются специальные множители для увеличения значений характеристик.

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

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

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

  15. Все сгенерированные комбинации предметов сохраняются в 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! Я буду делиться новостями, скриншотами и идеями. Спасибо за внимание, и до встречи в мире текстовых приключений! 🎮✨