Идея для игры с полным управлением мечом (и не только)
Метод управления как в Determinance мне абсолютно не понравился, так что хотелось бы предложить свой вариант. для начала основные положения:
- В любом случае дергание мышкой мало похоже на реальное управление мечом, так что от прямого соответствия движений мыши движениям меча стоит уйти как можно дальше в сторону понятности и удобства.
- Это чем-то должно быть похоже на gestures из браузеров.
- Курсор должен быть виден.
- Поворачивание камеры и персонажа не должно мешать управлению мечём
- Должна быть возможность осуществлять удары со сложными траекториями
- Должна быть система клавиш модификаторов по типу быстрый удар, сильный, лжевыпад и т.п. (а теперь немного из области геймплея)
- Нельзя давать персонажу возможности осуществлять удары слишком часто
- Можно ввести элементы прокачки, что бы раскидывать параметры между скоростью персонажа, силой персонажа и т.п.
- Неплохо иметь систему макросов, когда какой-либо скрипт(в котором можно было бы использвать как существующие gestures, так и вообще в специальном редакторе задавать сложные траектории меча) можно привязать к конкретному gesture
Решение для пунктов 1-4. Трудно совместить и возможность нормально управлять мечом с помощью видимого курсора и возможность свободно поворачиваться, так что для WSAD желательно оставить еще и QE на поворачивание. Еще желательно ограничить окно в котором курсор работает как курсор, т.е. на определенной части экрана ограниченное рамкой курсор виден и не поворачивает камеру, а при подходе к границам рамки начинает поворачивать камеру(как в 3D стратегиях), хотя не факт, что идея с таким окном это хорошо(такое надо проверять на практике). Ну и для удобства навигации вне боя, можно сделать это окошко существующим лишь в фехтовальном режиме, который можно включать и выключать какой-то кнопкой
Пункты 5-6 вполне могут дополнять друг друга, так напрмер любое движеие можно сделать частью какого-то удара если например задать условие, что нажатие клавиши Alt при gestures левой кнопкой мыши приводит к тому, что они делают не удары, а просто движения мечом.
Для того что бы можно было нормально обозначать блоки, перед персонажем можно расположить прозрачную полусферу(*), и скажем какие-то специфические gestures рисовались соответственно на плоскости касательной к точке, от которой начался gesture.
Пункты 7-8. Должно быть что-то вроде stamina, при чем кратковременная и долговременная. Кратковременная быстро тратится и быстро восстанавливается. Если она заканчивается, то удары наносятся слабее, медленнее и долговременная stamina при этом начинает тратится быстрее. Долговременная - практически тоже самое, до должна быть для того, что бы персонаж не мог часами одинаково хорошо сражаться.
Элементы прокачки:
Скорость — собственно скорость с которой персонаж передвигает мечём. Скорость непременно влияет на урон который наносит меч.
Сила — просто быстро махать может каждый, да не каждый может делать это долго попадая по чему-либо. Показывает как хорошо персонаж может держать удар при блокировании, насколько медленно тратится выносливость при этом, и при попадании по чему-либо(т.е. влияет на кратковременную выносливость и на блоки)
Выносливость — влияет на долговременную выносливость, и на чувствительность атак к уже полученным ранам.
Данную систему, кстати, можно прицепить не только к фехтованию мечом, но и к другим схваткам ближнего боя, лишь система gestures будет менятся.
Но для меча таки стоит что-то придумать, например такое(с мечом я обращаться не умею, так что придумаю что-то самое простое, а может еще и тупость где-то напишу):
LMB gestures(для левой кнопки мыши): при зажатом Ctrl — aggresive mode(более сильный удар), при зажатом Alt — easy mode(слабые удары, экономящие силы удары); (быстрое двойной нажатие на Alt или Ctrl приводит к постоянному использованию одного из двух режимов, или к выключению этого режима, если он уже включен)- более-менее прямая линия — просто нанести удар, замахиваясь соответственно с направления начала линии;
- click — колющий удар;
- зигзаг — провести ложный удар;
- Спираль/часть круга — провести колющий удар и после попадания попытаться прорубить плоть в направлении конечной точки gesture.
- более-менее прямая линия — меч будет расположен вдоль линии;
- click — гарда меча будет у точки нажатия, положение как персонаж(скрипт) решит;
- зигзаг — меч будет расположен между двумя более менее параллельными друг-другу линиями, при этом блок будет более "устойчивым";
- часть круга переходящая в линию — меч будет расположен вдоль линии, блок будет "неустойчивым";
- клавиша Ctrl - радиус увеличивается, но активная часть уменьшается;
- клавиша Alt - радиус не меняется, но сама сама полусфера сдвигается ближе к игроку, активная часть уменьшается.
- клавиша Ctrl - радиус увеличивается, но активная часть уменьшается;
- клавиша Alt - радиус не меняется, но сама сама полусфера сдвигается ближе к игроку.