Вот мои мысли:
Т.к. игроки в ноксе могут заходить на сервер, играть неопределенное время, выходить из игры до окончания карты, заходить перед концом карты то на мой взгяд единственное к чему мы можем привязаться - это к факту убийства одного игрока другим и факт достижения лимита фрагов одним игроком на карте.
Факт получения фрага содержит в себе информацию (перечислю только важные):
1) убитый игрок(Рейтинг, пинг);
2) игрок получивший фраг (Рейтинг, пинг);
3) способ убийства (конкретный скилл которым убили, в завимости от него можно начислять больше или меньше очков);
4) причастности к убийству (убил сам или помог).
Факт достижения игроком лимита фрагов на карте содержит:
1) Информацию о игроке (Рейтинг);
2) Количество фрагов полученных игроком, доля этого количества от общего;
3) Информацию о других игроках (Рейтинг, сумма рейтинга).
Предлагаю вести 3 параметра для каждого класса каждого игрока (а можно и просто для игрока в целом):
1. Рейтинг или эксп. Этот параметр после свершения факта будет увеличиваться на величину, расчитанную по определенной формуле
2. Уровень игрока, производный от рейтинга. Вычисляется по простой шкале интервалов от 1 до Максимального уровня
3. Общее количество фрагов и смертей, а сам параметр: соотношение фрагов и смертей (kill:death rating).
Они будут отображаться в общей таблице. Рейтинг является определяющим параметром, k:d - статистическим парамером.
На основе сказанного я вижу систему получения и накопления рейтинга следующей:
Совершенные факты на сервере записываются в БД в порядке их совершения.
Рейтинговая система на сервере (возможно это будет отдельная программа) либо в режиме реального времени, либо с какой-то переодичностью обрабатывает данные из БД и изменяет текущую таблицу рейтинга игроков, хранящуюся опять же в БД, в другой таблице. Потом система делает срез по таблице рейтинга и заливает информацию на сайт.
Когда я начинал писать этот пост, система казалась мне проще:)Формула начисления опыта будет добиваться следующих целей:
1) Поощрять сражения против более сильных игроков, а обратная ситуация поощряется много меньше
2) Поощрять победу на карте
3) Поощрять некоторые способы убийства на фоне других
4) Давать фору игрокам с большим пингом
Вобщем руля двумя формулами можно рулит всей ситуацией в ладдере
За выходные попробую накидать математическую модель системы рейтинга в MathCad, ввести исходные данные фактов и сделать формулу вычисления опыта, начисляемого за факт получения фрага, и формулу вычисления опыта, начисляемого за факт достижения лимита фрагов.
В MathCad'е можно будет откорректировать модель, расчитать коэффициенты и т.д., но для начала давайте обсудим мою идею. Меня интересует можно ли получить всю перечисленную мной информацию о фактах из игры.