Баттхерта статья.

Day 1,068, 02:19 Published in Russia Russia by sasha238


Или бугурта, или хрен знает чего.

Небольшие технические подробности вначале для тех, кто интересуется.

С точки зрения пользователя.

Предположим, мы идем воевать в какой-нибудь битве. Покупаем оружие, булки, голд, заправляемся на полную катушку. Выползаем на страничку битвы. Нам представляют противника. Мы жмем кнопку "Fight". Здоровье у нас и противника потихоньку уменьшается. Как только мы его грохнем, наша иконка выскакивает в районе стены вместе с иконками других бойцов. Все принимают участие, все счастливы.

С точки зрения программиста.

У нас есть что-то в инвентаре. Что неважно совершенно. При переходе на поле боя, мы выбираем сторону (восставшие или оккупанты) либо не выбираем (если одна страна атакует регион другой страны). Далее переходим на страницу боя. При нажатии на "Fight" автоматически формируется запрос, в котором содержится информация о том, где мы ударили (какое поле боя), и использовали ли мы голдовый бустер. Еще там есть токен, который говорит серверу, что наш аккаунт – это наш аккаунт. Все это счастье отправляется на сервер. В ответ приходит пачка информации, в которой говорится, грохнули ли мы противника, какой урон мы ему нанесли, есть ли у нас еще пухи, какое наше здоровье после удара, какой инфлуенс (те самые цифры-проценты, за которые мы боремся) мы заработали для нашей стороны. Все это счастье отрабатывается скриптами уже в нашем браузере и нам рисуется та или иная картинка. В том числе, то, как пользователь попадает в верхнюю бегущую строку ударов. С периодичностью раз в 30 секунд (может больше, может меньше), автоматически посылается на сервер запрос о том, какие удары и кем были нанесены, какие есть герои битвы, и прочая техническая информация. Все это позволяет сделать бегущую стенку для пользователя.

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

Ключевой момент: Все основные расчеты идут исключительно на стороне сервера.

О том, что вчера было. (Длинно)

Не только на ДВ, но и вообще.

Итак, берем абстрактного бойца, который только что зарегистрировался в рудминии и хочет повоевать. Поел покачался и прочее. Допустим, он хочет повоевать против врагов, которые атаковали его любимый рудминистан. Например, Венгрии. Идет на поле боя и видит полудохлых врагов низкого уровня, которых убивать-то одно удовольствие. За удар снимает по двадцатке, даже борясь в рукопашную. Врагов укладывает пачками и все такое. И его деятельность видят другие бойцы по обе стороны фронта. Молодец боец! Далеко пойдет!

Окрыленный успехом, он решил попробовать свои силы в подавлении восстания на одной из оккупированных территорий. И что этим варварам не хочется жить в нашем прекрасном рудминистане. Лезем туда и наблюдаем аналогичную картину. Кладем полудохлых врагов пачками и все такое. Зарабатываем инфлуенс для своей страны и все такое.

Возьмем нашего новорожденного, который внезапно обнаружил себя на оккупированной территории, и видит, что его страна, совсем не его. Отработав и получив свои кровные он пытается принимать участие в восстании. Что он видит на поле боя. Правильно, одних хайлевелов со полным здоровьем и с топовым вооружением. Странно, думает он. Но все-таки решает попробовать что-нибудь сделать полезное для восстания. Израсходовал все и влез в долги. С оружием он сносит ну по 5 по 10 урона. Но все-таки наносит Грохнул из последних сил этого хайлевела. Заработал сколько там инфлуенса. А восставшие с другой стороны не видят его вклада. Его просто нет. Сервер его не учитывает.

О том, что вчера было. (Кратко)

При битве на стороне рудминистана инфлуенс, нанесенный бойцами учитывается весь и без остатка. И виден всем остальным игрокам (то есть он есть). Плюс бойцы подбираются соответствующие левелу.

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

Вот я вчера пол ночи замеры делал, но так и не смог определить зависимость. Так же не проверял все это в лольше.

Я понимаю, что рудмины бьются с нечестными методами игры. Это их прямая и непосредственная обязанность. Но как-то они в одну сторону только бьются.

Вот так и живем.

Всегда Ваш, Многоцифр.

P.S. Ладно, переходим к плану Б.