Примеры математических алгоритмов, применимых к разработке игр - PullRequest
0 голосов
/ 07 июня 2011

Я разрабатываю RPG-игру, как финальную фантазию.

Я закончил программирование, но мне не хватает математики. Я хорошо разбираюсь в математике, но у меня проблемы с включением стасов игроков в мю-суммы.

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

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

РЕДАКТИРОВАТЬ: Уточнение того, что я ищу

за урон, который я имею (атака игрока х сила хода) / защита противника.

Это работает и хорошо масштабируется, но я взглянул на алгоритмы из финальной фэнтези 4, и только эта сумма составила более 15 шагов. у меня всего 2.

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

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

Ответы [ 3 ]

0 голосов
/ 07 июня 2011

Я сомневаюсь, что вы найдете академическую работу по этому вопросу. Определение формулы ущерба, скажем, эвристическое. Люди просто создают вещи, основываясь на своем опыте работы с различными функциями, а затем настраивают результат на основе игрового процесса.

Важно хорошо понимать, как выглядит функция при построении графика на графике. Лучший совет, который я могу дать для этого, - изучить курс по построению графиков функций. Поиск Google по "функциям рисования" поможет вам начать работу.

0 голосов
/ 07 июня 2011

Посмотрите на печатные ролевые игры, такие как Dungeons & Dragons, и узнайте, как они решают эти проблемы. Они являются источником вдохновения для компьютерных ролевых игр. Я не знаю академической работы

Некоторые мысли: вам не нужно иметь настоящую «формулу». Это могут быть такие правила, как «бросить 20-гранный кубик, оружие наносит 2 очка урона, если бросок <12, и 3 очка урона, если бросок> = 12».

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

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

0 голосов
/ 07 июня 2011

Совершенно не зная Final Fantasy, вот некоторые мысли.

  • Атака / защита может быть либо «шансом нанести удар / заблокировать», либо «нанести / нанести урон» (или, возможно,смесь обоих).Если вы решите пойти на «нанесенный / смягченный урон», вы, вероятно, захотите выполнить одно из следующих действий:
    • Создать случайное число в подходящем диапазоне, добавленное / вычтенное из базового значения атаки / защиты.
    • Генерирует число в диапазоне 0-1, умноженное на атаку / защиту
    • Генерирует число (с распределением Гаусса или Пуассона и подходящим стандартным отклонением) в диапазоне 0-2 (или около того, чтобы учесть случайный крит), умноженный на атаку / защиту

Для таймеров атаки определите, что «двойная скорость» и «тройная скорость» должны делать дляколичество атак в данный момент.Это должно дать вам достойное руководство по его реализации.Я могу, не задумываясь, думать о трех методах.

  • Использовать N / скорость в качестве базы для таймера (это означает, что двойная / тройная скорость дает в 2/3 раза больше атак за данный интервал).
  • Использовать базовое время -Скорость как таймер (требуется ограничение скорости, может не быть проблемой, скорее всего, есть неинтуитивная связь между статистикой скорости и таймером, небольшая разница на низких уровнях, большая разница на высоких уровнях).
  • Используйте Basetime - Sqrt (Speed) в качестве таймера.
...