Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФРИСНЭМ_Диздок.docx
Скачиваний:
1
Добавлен:
30.09.2019
Размер:
231.41 Кб
Скачать
  1. Игровая механика

Весь игровой мир будет разделен на отдельные локации (местности), которые при этом будут связаны по сюжету и по квестовым цепочкам. Некоторые монстры смогут даже переходить из одной локации в другую (в основном, это будут «элитки»).

Вот какие типы объектов нам могут повстречаться в игровом мире:

- локации (это самые крупные части игрового мира, местности со своим временем суток, природными чертами и монстрами)

- здания (это статичные объекты, домики, башни, палатки и.т.д, куда сможет зайти наш герой и иногда что-нибудь там взять)

- крепости (это крупные здания, которые являются целыми городками, в них можно зайти и там будет своя мини-локация города; крепости – это своеобразные «филиалы короля» в каждой локации игрового мира)

- монстры (это нейтральные, часто агрессивные существа, которые появляются в точке спауна и бродят рядом с ней, ожидая подходящего противника)

- NPC (это персонажи, управляемые компьютером, и принадлежащие какой-нибудь игровой стороне; многие из них могут давать задания или чем-нибудь торговать, некоторые могут стать помощниками главного героя и ходить вместе с ним)

- триггеры (это невидимые зоны на карте, при входе игроком в которую запускается какое-то событие. Например, портал, входя в который, героя перенесет в другую локацию)

- предметы (это полезные вещички, которые валяются в различных местах на местности, или внутри зданий; их, естественно, можно подобрать)

- водоёмы (это как бы отдельные области местности, в которых обитает различная рыба; нет, плавать наш герой не умеет, зато может ловить рыбу; иногда из воды на героя будут нападать водные монстры)

- ресурсы (это то же самое, что и предметы, только имеют свою точку спауна, со временем восстанавливаются. Например, руда или трава)

У каждого объекта будут такие базовые параметры, как:

- глобальные координаты в локации

- локальные экранные координаты

- ширина, длина и высота объекта

- название объекта

- индекс спрайтовой анимации для объекта

- номер текущего кадра анимации

- состояние объекта (активный/пассивный; видимый/невидимый и.т.д)

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

Любая боевая характеристика существа хранится в двух экземплярах: базовое значение и текущее. Базовое значение, это начальное значение характеристики в нормальных условиях, вне боя и без влияния каких-либо эффектов. Текущее значение – величина характеристики в данный момент времени. Оно меняется в течении всего боя, под воздействием различных эффектов и получаемого урона.

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

Public Const PLAYER_ANIMATION_RUN As Long = 4

Public Const PLAYER_ANIMATION_ATTACK As Long = 5

И потом не нужно будет использовать постоянно непонятные цифры ;)

Механика передвижения:

Точка, куда будет двигаться герой, указывается кликом правой кнопки мыши по нужной области на местности. Также будет предоставлена возможность передвижения клавишами W,A,S,D и с помощью стрелок на клавиатуре.

Существа под управлением компьютера будут передвигаться в зависимости от режима передвижения. Их будет два: режим точек пути и режим преследования.

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

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

Вот упрощенный алгоритм передвижения существа в режиме точек пути:

  1. По некоторому алгоритму или путём загрузки готового пути формируем список точек пути

  2. Current_point = 1;

  3. Если текущая точка пути – не последняя и существо дошло до точки пути, то меняем направление движения:

DistX = waypoint[Current_point].x – X

DistY = waypoint[Current_point].y – Y

Dist = Sqrt(DistX*DistX + DistY*DistY)

Q = speed / Dist

If (Dist < speed) Then

If (Current_point != Last_point) Then

Current_point = Current_point + 1

velocityX = DistX * Q

velocityY = DistY * Q

Else

velocityX = 0

velocityY = 0

//Выполняем еще какие-нибудь действия по окончанию пути…

GoTo 6

End If

End If

  1. Передвигаем существо в направлении к следующей точке пути:

X = X + velocityX

Y = Y + velocityY

  1. Переходим к пункту 3

  2. КОНЕЦ

В случае преследования, всё гораздо проще: из этих 6 пунктов останется только три, и мы проверяем условие достижения только одной точки (цели преследования), а вектор скорости изменяется в реальном времени на каждом шагу движения.

Механика прокачки персонажа:

В нашей игре нету системы опыта и уровней персонажа. Вместо этого будет независимое самоулучшение каждой способности персонажа: каждая способность имеет свою внутреннюю шкалу мастерства, по мере увеличения этого мастерства способность усиливается и становится эффективнее. У всех способностей будут ранги, всего их 5:

  1. Обучение (способность обозначается индикатором с буквой «О», её эффективность базовая, стоимость базовая)

  2. Новичок (способность обозначается индикатором с буквой «Н», её эффективность немного повышена, но стоимость остаётся базовой)

  3. Умелец (эффективность та же, что и у новичка, но стоимость способности понижена)

  4. Мастер (эффективность значительно больше, чем базовая, стоимость ниже в 1.5 раза чем базовая; способность накладывает небольшой дополнительный эффект)

  5. Невероятный (эффективность сильно повышена, способность накладывает дополнительный сильный эффект)

У разных способностей под эффективностью будет восприниматься определенная характеристика способности, наиболее для неё полезная.

Бонусы ранга (в % от базового значения)

Обучение (0)

Новичок (1)

Умелец (2)

Мастер (3)

Невероятный (4)

Эффективность

0

+10%

+10%

+30%

+50%

Стоимость

0

0

-20%

-35%

-40%

Шанс успеха

0

+5%

+15%

+25%

+40%

Кол-во требуемого мастерства до след. ранга

10

50

300

1500

5000

Вот формула получаемого способностью мастерства:

Bonus_mastery = 1 + (Current_range * Combo_count) / (1 + 3*Hit_chance)

Current_range – это текущий ранг способности (от 0 до 4)

Combo_count – кол-во подряд сработавших успешно попыток (но не более 3)

Hit_chance – вероятность успешного срабатывания способности

Например, есть способность «Огненный шар» 2-го ранга (Умелец) , с вероятностью попадания 0.8. Допустим, наш герой-маг 3 раза подряд пустил огненный шар и все 3 раза попал по цели. Сейчас мы по этой формуле вычислим, насколько повысится мастерство в этой способности:

(2 * 1) / (1 + 3*0.8) + (2 * 2) / (1 + 3*0.8) + (2 * 3) / (1 + 3*0.8) + 3 = 6.5 -> 6

Т.е на 2 ранге умения маг получит от 3 успешных подряд использованных огненных шаров 6 очков мастерства.

Особенности боевой системы:

Боевая система в игре нетаргетированная, т.е нельзя выделить определённую цель и прожимая способности они чтобы сами «знали» куда им лететь. Игроку нужно курсором мыши указать область поражения способности (если это способность дальнего действия) на местности, и, если та область, на которую он указал, находится слишком далеко, то герой не отказывается читать заклинание, как в обычных RPG, а просто напросто произносит это заклинание, но промахивается им. Эта деталь геймплея позволяет игроку сильнее контролировать все свои способности, и заставляет его точно и вовремя их использовать.

Если в эту область поражения способности попадают какие-то существа, то они подвергаются действию этой способности. Многие способности героя одновременно действуют как на враждебные цели, так и на невраждебные. Эта тонкость механики боя также увеличивает сложность геймплея – игроку также необходимо следить за тем, чтобы не задеть способностью своих союзников, благо их обычно рядом будет не много!

У разных способностей будет свой радиус поражения (это размеры области поражения) и дальность действия (определяет, насколько далеко герой сможет «кидать» эту способность).

Причем, вероятность успешного срабатывания способности (попадания в указанную облать) напрямую зависит от разницы указанного игроком расстояния и дальности действия способности. Проще говоря, чем дальше игрок укажет область поражения от максимальной дальности, тем меньше шанс попадания. Если, например, у «Огненного шара» дальность действия 30 метров, а радиус поражения 5 метров, и игрок указал на точку, которая находится на расстоянии 40 метров от героя, – то шанс попадания будет равен:

Hit_chance / (1 + (Real_distance – Max_distance) / (Max_distance + Radius_of_Effect)) = 0.8 / (1 + (40 – 30)/(30 + 5)) = 0.8 / (1 + 0.29) = 0.62

То есть шанс попадания понизился на 18% при превышении дистанции на 10 метров.

Посчитаем, что будет, если игрок указал цель на расстоянии 50 метров:

Hit_chance / (1 + (Real_distance – Max_distance) / (Max_distance + Radius_of_Effect)) = 0.8 / (1 + (50 – 30)/(30 + 5)) = 0.8 / (1 + 0.57) = 0.51

При превышении дистанции на 20 метров шанс попадания снизился на 29%.

Real_distance – реальное расстояние до цели

Max_distance – дальность действия способности

Radius_of_effect – радиус поражения способности

Hit_chance – шанс попадания

Механика ближнего боя:

В ближнем бою область поражения определяется характеристиками самого оружия: размахом оружия и его длиной. В зависимости от положения героя на местности и направления движения эта область размещается по-разному. Многое оружие имеет область поражения в форме сектора, некоторые бьют по окружности вокруг героя, некоторые – по линии вдоль направления движения героя. В таблице приведены физические характеристики разных типов оружия:

Двуручный меч

Одноручный меч

Кинжал

Секира

Посох

Копье

Булава

Длина (м)

0.9-1.2

0.5-0.7

0.3-0.4

0.7-1.3

1.5-1.8

1.8-2.5

0.7-1.0

Размах (градусов)

90

45

15

120

120

15

120

Модификатор урона

1.0-1.2

0.4-0.5

0.25-0.35

1.2-1.5

0.2-0.4

0.7-0.9

1.0-1.3

Проникающая способность (%)

15-40

5-20

65-80

55-85

0

80-95

60-80

Масса оружия (кг)

2.5-4.0

0.8-2.0

0.25-0.45

4.0-7.0

2.0-4.0

4.0-6.0

3.5-7.0

Модификатор урона – умножающийся на силу атаки героя коэффициент, который определяет итоговый урон от удара оружием.

Проникающая способность – определяет, как хорошо оружие пробивает броню противника.

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

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

Скорость атаки измеряется в ударах за секунду и вычисляется по этой формуле:

Attack_speed = (0.1 * Strength * Weapon_length * 180) / (Weapon_mass * Weapon_angle)

Пример:

Допустим, у нас есть воитель, у которого 10 силы и у него в руках двуручный меч (Длина: 1 м, Размах: 90, Масса: 4 кг). Посчитаем скорость атаки:

Attack_speed = (0.1 * 10 * 1 * 180) / (4 * 90) = 180 / 360 = 0.5

То есть 1 удар за 2 секунды.

Теперь дадим воителю в руки тяжелую секиру (Длина: 1.2 м, Размах: 120, Масса: 7 кг).

Attack_speed = (0.1 * 10 * 1.2 * 180) / (7 * 120) = 216 / 840 = 0.26

Это уже помедленнее: 1 удар за 4 секунды.

Итоговый урон от удара вычисляется по следующей формуле:

Damage_Done = (Strength * Weapon_modifier + Bonus_damage) * (Weapon_length * Weapon_mass * (Weapon_angle / 360))

Теперь сравним урон от меча и от секиры (модификатор урона меча 1.2, секира – 1.5, без учета бонусного урона от способности и без учета брони):

Меч: (10* 1.2 + 0) * (1 * 4 * 0.25) = 12 урона

Секира: (10* 1.5 + 0) * (1.2 * 7 * 0.33) = 42 урона

То есть, урон от оружия с большим размахом и массой будет гораздо больше, но скорость атаки будет меньше. В среднем, тяжелое оружие бьет в 2-2.5 раза медленнее, но удары от него будут в 3-4 раза сильнее. Для хорошей эффективности тяжелого оружия с большим размахом (секира, булава, посох) необходимо много силы, иначе – эффективнее использовать более быстрое оружие с меньшей массой.

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

Школы в боевой системе:

В боевой системе игры будут такие школы:

  • Оборонительного ближнего боя (к ней относятся все атаки ближнего боя без участия особых видов оружия, и не требующие никаких ресурсов)

  • Стремительной атаки (мощные стремительные атаки ближнего боя, потребляющие много энергии, но и наносящие много прямого физического урона)

  • Защитного боя (защитные способности блокирования или отражения урона)

  • Использования ядов

  • Магии огня (наносят урон от огня, оставляют на противнике периодические эффекты; например, «огненный шар» или «инфернальный взрыв»)

  • Магии воды (исцеляющие и атакующие способности, использующие силу воды; например, «живая вода» или «цунами»)

  • Магии воздуха (способности, наносящие небольшой урон, но часто имеющие дополнительный эффект передвижения или оттолкновения; например, «вихрь» или «дуновение»)

  • Магии земли (способности, наносящие много урона, но потребляющие много маны, произносятся долго; «землетрясение», «каменный шип» и.т.д)

  • Магии тьмы (способности, использующие мистическую энергию, и часто оставляющие на противнике негативный эффект, значительно его ослабляющий; например, «теневой клинок» или «ужас»)

  • Магии света (в основном, это исцеляющие и очищающие от негативных эффектов способности, но есть и наносящие урон; например, «великое очищение» или «благоговение»)

  • Стрельбы (способности дальнего боя, связанные с использованием оружия дальнего боя; например, «смертельный выстрел» или «калечащий выстрел»)

  • Выживания (общая категория способностей, помогающих герою выживать в тяжелых ситуациях; например, «наложить бинт» или «подавление боли»)

  • Передвижения (способности передвижения, например, «спринт» или «скачок»)

Игровые классы:

Всего в игре 6 классов, 1 из которых доступен только на высоком уровне сложности: воитель, гладиатор, маг, мистик, темный охотник, и хранитель клинков. В таблице ниже приведены основные характеристики этих классов:

Воитель

Гладиатор

Маг

Мистик

Темный охотник

Хранитель клинков

Доступные школы

  1. Оборонит. б. боя

  2. Стремит. атаки

  3. Защит. боя

  4. Выжив.

  5. Передвиж.

  1. Оборонит. б. боя

  2. Стремит. атаки

  3. Защит. боя

  4. Выжив.

  5. Передвиж.

  1. Оборонит. б. боя

  2. Магии огня

  3. Магии воды

  4. Магии воздуха

  5. Магии земли

  1. Оборонит. б. боя

  2. Магии тьмы

  3. Магии света

  4. Выжив.

  5. Передвиж.

  1. Оборонит. б. боя

  2. Стрельбы

  3. Передвиж.

  4. Магии тьмы

  5. Выжив.

  6. Использ. ядов

  1. Оборонит. б. боя

  2. Стремит. атаки

  3. Защит. боя

  4. Магии тьмы

  5. Передвиж.

Основная характеристика

Выносливость, сила

Сила, ловкость

Интеллект, сила магии

Интеллект, сила магии

Ловкость, выносливость, меткость

Ловкость, выносливость, скорость

Местоположение наставников

Лагерь армии Мидгарда (на южной заставе)

Арена Мидгарда (внутри крепости Мидгард)

Академия Магии (на севере от крепости Мидгард)

Яма Страхов (на западе от крепости Мидгард, в лесу)

Домик охотника (на северо-западе от крепости Мидгард, в лесу)

Заброшенная оружейная (на востоке от крепости Мидгард)

Способности лидерства

Есть

Есть

Есть

Есть

Нет

Нет

Особенности

- Очень сильный;

- Впадает в ярость;

- Атакует быстро и сильно , но не точно;

- Хорошо владеет всеми навыками ближнего боя

- Очень ловкий;

- Атакует точно, сильно, но медленно;

- Хорошо знает анатомию гуманоидов;

- Быстро добивает слабого противника

- Наносит большой урон магией;

- Быстро заканчивается мана;

- Может призывать элементалей любой стихии;

- Большой арсенал атакующих способностей

- Оставляет на противниках много негативных эффектов;

- Высокий уровень регенерации маны;

- Небольшой прямой урон от магии;

- Может исцелять себя

- Хорошо знает анатомию животных;

- Может приручать животных;

- Отличные навыки стрельбы и использования ядов;

- Очень живуч, хорошая скрытность на любой местности

- Не носит броню;

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

- способен нанести огромный урон за краткое время

Характеристики существ:

  1. Здоровье – определяет максимальный запас здоровья

  2. Энергия – определяет максимальный запас энергии

  3. Выносливость – скорость восстановления здоровья и энергии (1 ед = 2 ед HP в сек и 1 ед энергии в сек)

  4. Сила магии – определяет эффективность магических способностей, а также их критический эффект (1 ед = +1 ед дополнительного магич. урона и +1% силы критического эффекта)

  5. Интеллект – определяет максимальный запас маны и точность способностей (1 ед = +5 к запасу маны и +0.5% шанс успешного срабатывания способностей)

  6. Ловкость – определяет шанс уворота и парирования, а также влияет на бонус вероятности критического урона (1 ед = +1% шанс уворота и +0.5% шанс парирования, +0.5% шанс крита)

  7. Скорость – определяет скорость передвижения (1 ед = +5% скорости передвижения)

  8. Сила – определяет силу атаки оружием, скорость атаки оружия и уменьшает потери скорости от тяжелой брони и при влиянии замедляющих эффектов (1 ед = +1 ед дополнительного физ. урона, -2.5% потери скорости)

  9. Меткость – уменьшает шанс промаха способностями и увеличивает шанс крита (1 ед = -1% шанс промаха и +0.5% шанс крита)

  10. Лидерство – определяет, какие существа захотят помогать герою, а какие нет (от 0 до 5)

  11. Обучаемость – определяет, насколько эффективно и быстро герой сможет обучаться (1 ед = +3% к получаемому мастерству для всех способностей и +5% шанс успешного обучения)