Детали системы боя (нужны идеи)

1 view
Skip to first unread message

thecat

unread,
Sep 4, 2009, 5:26:27 PM9/4/09
to endspielgame
Работая над системой боя столкнулся с рядом проблем. Странно, что они
не возникали у меня раньше.
Вот основные причины этих проблем:
1. В протоколе HTTP соединение и обновление данных может быть
запрошено только со стороны клиента.
2 (вытекающая из первой). Требование к работоспособности приложения на
мобильных платформах не может быть реализовано <<в лоб>>, как это
сделано в подавляющем большинстве браузерных игр, периодическим
опросом, инициируемым скриптами со стороны клиента.
3. Если в сражении допускать участие более чем двух участников, то
возникает вопрос: когда сражение считать законченным -- когда останется
только один игрок (или мобы), а все полягут?

Базовые сведения:
Обычно при сражении PvE (игрок против моба), при выполнении игроком
какого-либо действия (напр. нанесение удара), запрос посылается на
сервер, и игроку сразу же возвращается ответное действие моба,
поскольку скрипт отрабатывает почти мгновенно. С PvP (игрок против
игрока) такое не прокатит, поскольку другой игрок не в состоянии
отвечать на действие сразу и синхронно. В результате чего возникает
проблема, связанная с тем, что один игрок, сделав какое-то действие,
не в состоянии узнать, когда выполнит ответное действие другой игрок
(противник).

Следствия из этих причин:
Из 1 и 2:
Похоже, что придется делать кнопку <<Обновить статус>>, на которую
пользователь будет должен регулярно в ходе сражения кликать.
Из 3:
В таком случае нельзя будет <<помогать>> бороться с сильным мобом, т.к.
нарвешься на неприятности, и придется того, кому ты помогал, положить
своими руками.

Следствие из всего написанного выше:
PvP может легко накрыться медным тазом.

В связи с этим мне нужны идеи, как это всё можно решить.

Вот, например, один из вариантов решения проблемы 3:
1. Каждый монстр враждебен любому игроку.
2. Каждый монстр друг любому монстру.
3. Каждый клановый игрок друг любому игроку его клана.
4. Каждый клановый игрок враждебен любому игроку вне его клана.
5. Каждый внеклановый игрок враждебен любому игроку.

Т.е. пока игрок не в клане, его все бьют. Как только он вступает в
клан, клан его перестает бить, но продолжают все остальные (в том
числе и игроки других кланов, и внеклановые).

Возможное решение проблем 1 и 2: отправлять тег meta refresh со
временем, например, 5 секунд (для тех, у кого нормальный браузер) и
делать кнопку <<Обновить состояние>> для тех, у кого это не работает.

Короче нужны идеи.

Reply all
Reply to author
Forward
0 new messages