Разработка RPG – LittleAge (ликбез)

Опубликовал – 22.07.2010

Введение

Здравствуйте, дорогие мои. Итак, по традиции начнем с небольшого вступления.

Голосование, которое проходило вкантакте, показало, что люди хотят наваять свою РПГ, с плюшками, ролевой системой и изометрической графикой, но мое мнение, это будет слишком сложно для начинающих, и большинство алгоритмов они просто не поймут, что приведет к банальному копи-пасту. Товарищи, не стремитесь создать автомобиль, потренируйтесь сперва на более простых вещах.

Итак, предлагаю делать наше РПГ в 2D виде (вид сбоку – слешер), без алгоритмов поиска пути, сложных мэп-едиторов и довольно сложным АИ. Намного интересней проводить время за реализацией непосредственно самой игры, нежели с первых шагов погрязнуть в трясине графических, физических игровых алгоритмов.

Ну что, пожалуй начнем. Наша с Вами игра будет называться LittleAge, не спрашивайте почему я назвал ее именно так, первое что пришло в голову :)

Сюжет игры будет разворачиваться в неком городе(деревне), где наш герой очнулся с амнезией. Естественно, он ничего не помнит и ему предстоит пройти все испытания и вспомнить все о себе, либо бродить до бесконечности сражаясь с монстрами. На его дороге будут встречаться разные чудовища, на которых он будет тренировать свои способности и приближаться к цели. Целью будет убить главного дракона и выпить жидкость возвращающую память, чтобы вспомнить, что в соседней деревне его ждет любимая :) Либо, можно просто сразиться с драконом за любимую. Довольно тривиальный сюжет, как раз как нам надо. Если Вам понравится статья, после прочтений кликните на рекламу перед комментариями от гугла, Вам это ничего не будет стоить, Спасибо.

Вообще конечно, хорошо бы добавить элементы юмора, но мои художественные способности работы в 3D Max’e скудны, если есть желающие помочь с графикой, буду только рад.

Итак, для начала определимся с инструментами работы. Это будет по традиции Delphi и скорей всего DelphiX. Пока мы не дошли до графики, этот вопрос остается открытым. Возможно лучше будет использовать обычный DirectX.  Но тогда, мы много времени определим на написания прорисовки объектов, ротатингу, альфа блендингу и т.д.

Для создания карт в игре, будем использовать обычный MS Paint. Если вы пока не понимаете о чем идет речь, дальше будет ясней. Размер изображения является размером карты. Мы просто будем использовать насыщенность цветов пикселей для определения объекта на том или ином месте.

Подведем итоги, что мы собираемся делать:

  • Игровой проект LittleAge представляет собой 2D слешер с элементами РПГ.
  • В игре имеется неограниченное число локаций.
  • Игрок имеет возможность свободно придвигаться по данным локациям, выполняя различные задания.
  • Игрок также накапливает опыт, который может в дальнейшем потратить на улучшение своего персонажа.
  • Опыт даётся за выполнение заданий и убийства монстров.
  • В игре так же имеется несколько локации представляющие собой небольшие поселения, где игрок может покупать и продавать различные предметы, а также получать задания.

Игрок, а так же любой персонаж игры имеет параметры:

  • Сила – параметр, влияющий на атаку.
  • Жизнь – количество здоровья героя.
  • Ловкость – ключевой параметр определяет возможности героя совершать атаки или уклонятся от них.
  • Манна – количество магической энергии героя.
  • Опыт – показывает количество набранного опыта.
  • Атака – параметр, формирующийся за счет силы героя и его оружия.
  • Защита – формируется только за счет наличия брони и щита у героя.
  • Задержка – определяет скорость совершения каких либо действий персонажем.

Основными параметрами являются первые 4, и они подлежат прокачки. Прокачка осуществляется по достижении игроком определенного уровня.

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

Вначале игры герой имеет следующие характеристики:

  • Сила – 10
  • Жизнь – 100
  • Ловкость – 10
  • Манна – 10
  • Опыт – 0

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

Мобы в игре отличаются от героя тем, что не могут прокачиваться и менять оружие и броню. Поэтому оба параметра, Сила и Атака для них не актуальны. Прописывается только один параметр атаки. Так же у них отсутствует параметр Опыт. И у большинства мобов нет параметра Мана. Параметры мобов зададим позже, по их созданию.

Расчеты при битве:

Атака

  • Атака складывается из параметра силы и возможности оружия.
  • Каждое оружие имеет свой множитель.
  • Атака = сила * множитель оружия.

Защита

  • Защита суммируется от параметров щита и доспехов.
  • Защита = щит + доспехи.

Ловкость

  • Ловкость оказывает влияние на совершения атаки и уклонения от нее.

Расчёт вероятности совершения атаки или уклонения от неё:

Сначала производим расчёт атаки

Расчёт вероятности совершения атаки

  • Берём кол-во процентов имеющихся в данный момент ловкости  у атакующего (Число Х (от 1 до 100)).
  • Считаем кол-во чисел делящихся на 2 в диапазоне от 0 до Х.

Расчёт вероятности уклонения от атаки

  • Берём кол-во процентов имеющихся в данный момент ловкости  у обороняющегося (Число У (от 1 до 100)).
  • Считаем кол-во чисел делящихся на 3 в диапазоне от 0 до У.
  • Затем складываем оба числа Х и У, и принимаем полученный результат за 100%.
  • Делим 100% на два диапазона, размер каждого из которых определяется процентными долями чисел Х и У.
  • Выбираем случайное число в диапазоне от 1 до 100 и если оно попадает в диапазон Х то совершается Атака, а если в У то уклонение от неё.

Пример

  • Имеем 10 ловкости у атакующего.
  • Считаем кол-во чисел делящихся на 2 (5).
  • Имеем 10 ловкости у обороняющегося.
  • Считаем кол-во чисел делящихся на 3 (3).
  • 5 + 3 = 8 = 100%.
  • Считаем процентную долю каждого числа.

1% = 8 / 100% = 0,08

5 / 0,08 = 62,5%

3 / 0,08 = 37,5%

  • Выбираем случайное число от 0 до 100, и если оно меньше 62,5 то совершается атака, а если больше то уклонение от неё.

На сегодня это все. Вам надо как следует усвоить данный материал, чтобы в дальнейшем не было вопросов. Если сейчас есть вопросы, прошу, задавайте. До новых встреч!

Рассказать друзьям:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • Яндекс.Закладки
  • В Живую Ленту Google
  • Сто закладок
Комментарии (7) - Разработка RPG – LittleAge (ликбез)

Ответ

  1. Анонимно:

    Бой будет пошаговый?

    Thumb up Thumb down 0

  2. Саня:

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

    Thumb up Thumb down 0

  3. Eraston:

    Дядь Саш, я тут так подумал, значит у атакующего стабильное преимущество в 1,5 раза?

    Thumb up Thumb down 0

  4. Александр:

    Жду полной статьи! Очень интересно!

    Thumb up Thumb down 0

Ответить

Comments

Перед отправкой формы: