Простой бой в темницах

Материал из RLGClub :: Клуб любителей рогаликов

Перейти к: навигация, поиск

Эта статья была первоначально написана для Darren Hebden's RLNews

Раздел 1: Вопрос

Один из определяющих аспектов RL это - бой. Кто может сказать, что не чувствовал трепет от быстрых ударов пока эта ужасная белая масса не рассеется трупами на полу?

Основы боя - довольно простые, и ниже я просуммирую некоторые наиболее важные стороны простого боевого движка для RL.

Раздел 2: Основание

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

В проектировании нашей боевой системы, нам нужно взять атрибуты и способности игрока и чудовища. Один из легчайших путей сделать это - объединить атрибуты игрока, экипировки и любые другие магические бонусы в две оценки, Рейтинг Атаки (AR) и Рейтинг Защиты (DR).

Мы можем затем взять произвольный бросок (скажем, 1-100) и добавить рейтинг атаки, если это число (AR+RandomRoll) - больше, чем DR цели, тогда удар нанес ущерб или забрал энергию... (Смотри Раздел 3: OW!)

Трудная часть системы - это балансировка рейтингов... Но, это вероятно трудная часть любого проекта игры... ;)

Пример AR расчета:

       AR = (Сила / 4)
            + Модификатор на базе Класса & Уровня (Больше AR для Воинов)
            + Любые бонусы предоставленные снаряжением

Пример DR расчета:

       DR = (Ловкость * 4)
            + Модификатор на базе Класса & Уровня (Больше DR для Воров)
            + Любые бонусы предоставленные снаряжением

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

Раздел 3: OW!

Как только удар оценен, пора нанести удар.

Легчайший путь представлять здоровье и ранения в RL - это диапазон чисел представляющих ущерб игрока или чудовища, которые нужно получить чтобы умереть. Обычно (Благодаря D&D), они называются HP. Игрок и все чудовища будут иметь некоторую сумму HP.

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

Если Вы не играли или не видели настольные RPGs, для Вас может быть сюрпризом, что кубик может иметь различное количество сторон. Есть 4,6,8,10,12,20, и даже 100 сторонный кубик...

Обычно в настольных играх RandomRoll представлен как:

       XdY где:
       X = количество бросков кубика
       Y = количество сторон кубика... 
       Если мы хотим представить 3 восьми-сторонных кубика, это должно быть 3d8,
       6 четырех-сторонних кубиков, 6d4... И так далее...
       Таким образом 3d8 будет давать случайное число в диапазоне 
       от 3 (3 броска по единице) до 24 (3 броска по 8).

Мы можем иметь преимущество в этом для своих собственных целей:

        class Die
        {
                public:
                void Roll( void ) { Number = 0; Type = 0; };
                void Roll( int x, int y ) { Number = x; Type = y; };

                int Number,Type;

                int Roll( void )
                {
                        int x;
                        int acc;

                        for( x=0;x<Number;x++ )
                        {
                                acc += GetRandom(1, Type);
                        }

                        return acc;
                }
        };

Всякий раз, когда наносится удар, нужно вычитать HP основываясь на оружии или существе, которое наносит ущерб...

Для примера:

       Оружие:
       Dagger          - 1d4 повреждения
       Sword           - 1d8 повреждения
       BIG Stick       - 2d6 повреждения
       Существа:
       Kobold          - 1d3 повреждения
       Griffon         - 2d8 повреждения
       BIG Monkey      - 2 удара по 3d6 повреждения 

Это - простой боевой движок для RL. Сам он является легкой частью, балансировка которого - развлечение!... hehe



Автор: Brian Bucklew.
Источник: Simple Combat In The Dungeon.
Перевел: Сергей В. Ждановских [Alchemist], 16.06.2005.

Просмотры
Подробнее о...
Авторские проекты