Jump to content
Korean Random
Sign in to follow this  
shizzard

Распределение игроков согласно рейтинга эффективности

Recommended Posts

Товарищи, я тут новичок, поэтому если тема не в том разделе, перенесите, пожалуйста.

 

Собственно, зачем я здесь. В связи с анонсом ЗБТ PAPI Варгейминга я решил-таки начать реализацию сервиса, задуманного довольно давно. Речь о сервисе для поиска взвода. Я честно искал подобный сервис в сети и ничего хорошего не нашел. Я сейчас не буду заострять внимание на алгоритмах поиска, это тема для отдельной ветки обсуждения, наверное.

 

О чем мне хочется у вас узнать, как у людей, непосредственно работающих со статистикой игроков и имеющих доступ к собранной базе, так это о способе достичь равномерного распределения игроков по партициям в базе данных. Объясню подробнее.

 

Конечно, сервис поиска взвода невозможно реализовать, не храня информацию по статистике игроков у себя на серверах. Хранить все в одной базе слишком сложно и непрактично - база растет, нагрузка на сервис неизвестна и в какой-то момент сервис может просто прилечь из-за отказа в обслуживании. Поэтому я первым же делом подумал о том, что базу статистики игроков нужно побить на партиции. Так как сервис будет искать взвод в том числе и по РЭ/wn6/etc., то и бить на куски базу тоже будет удобно по этому параметру. Проблема лишь в неравномерном распределении количества игроков по партициям шкалы рейтинга. Очевидно, что средних игроков больше, чем плохих или хороших, и "средние" партиции будут получать больше данных и нагрузки, чем остальные. 

 

Теперь вопросы:

1. Каким образом технически хранится статистика игроков в вашей базе? Используется ли партиционирование? По какому ключу?

2. Каков общий объем базы?

3. Какое примерно количество запросов приезжает на сервис? Среднее/пик/прайм-тайм?

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

5. Возможно ли дальнейшее сотрудничество с разработчиками xvm в этом направлении?

 

Конечно, если вопросы затрагивают закрытую информацию, можете не отвечать, я пойму.

Повторюсь, что если у вас возникли какие-нибудь идеи по критериям отбора или по моим мыслям о реализации сервиса - об этом можно будет, наверное, поговорить в отдельной ветке, это уже точно будет оффтопом. Но, как говорится, feel free to contact me.

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

@shizzard,

Для базы XVM без разницы, какой у игрока рейтинг. Любой игрок может попасть в бой и по любому игроку могут посмотреть стату в ангаре, соответственно каким либо образом делить игроков нет никакого смысла. Разве что по кластеру, на котором игрок зарегистрирован, можно поделить, правда и тут я не могу придумать, зачем.

А примерное распределение игроков по рейтингам можно тут глянуть:

http://www.koreanrandom.com/forum/topic/2625-xvm-шкала-scale/page-49#entry93439

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

Share this post


Link to post

Short link
Share on other sites

@shizzard,

Для базы XVM без разницы, какой у игрока рейтинг. Любой игрок может попасть в бой и по любому игроку могут посмотреть стату в ангаре, соответственно каким либо образом делить игроков нет никакого смысла. Разве что по кластеру, на котором игрок зарегистрирован, можно поделить, правда и тут я не могу придумать, зачем.

А примерное распределение игроков по рейтингам можно тут глянуть:

http://www.koreanrandom.com/forum/topic/2625-xvm-шкала-scale/page-49#entry93439

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

Да, шардинг вам и правда не нужен, тут я не подумал. Большая часть нагрузки ляжет на кеш.

А на остальные вопросы есть кому ответить? Тут больше о технической реализации (объем базы, количество запросов), но очень интересно было бы узнать.

Share this post


Link to post

Short link
Share on other sites

вам

им

 

А на остальные вопросы есть кому ответить?

Вообще инфа периодически проскакивает. И то, что всё хранится в MongoDB, и ТТХ сервера, и запросов бывает более 600 в секунду (игроков более 10000 в секунду). Еще была инфа, что база упирается в размер SSD, так что можешь оценить ее нехилые размеры.

Но более подробно к ним:

@iBat или @sirmax

Edited by seriych
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

им

 

Вообще инфа периодически проскакивает. И то, что всё хранится в MongoDB, и ТТХ сервера, и запросов бывает более 600 в секунду (игроков более 10000 в секунду).

Но более подробно к ним:

@iBat или @sirmax

Спасибо, это уже что-то. Дождусь sirmax и iBat, думаю, они мне что-нибудь поподробнее смогут рассказать.

Share this post


Link to post

Short link
Share on other sites

Как сменил ник начинающийся на букву B, отбоя нет от всяких днищ 40%ных, которые приглашают в роты, тренировочные комнаты и взводы.

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

Раздражает жутко.

Вы хотите то же самое, но не по букве а по рейтингу?

Да с чёго вы взяли что мне будет интересно играть непонятно с кем? Особенно если приглашения приходят каждые полчаса?

Бан-лист переполнен!

  • Upvote 3
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Как сменил ник начинающийся на букву B, отбоя нет от всяких днищ 40%ных, которые приглашают в роты, тренировочные комнаты и взводы.

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

Раздражает жутко.

Вы хотите то же самое, но не по букве а по рейтингу?

Да с чёго вы взяли что мне будет интересно играть непонятно с кем? Особенно если приглашения приходят каждые полчаса?

Бан-лист переполнен!

Речь не о том, чтобы подбирать взвод исключительно по рейтингу. Алгоритмы у меня созрели довольно хитроумные и я надеюсь, что Варгейминг даст необходимые инструменты для их реализации.

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

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Товарищи, я тут новичок, поэтому если тема не в том разделе, перенесите, пожалуйста.

 

Собственно, зачем я здесь. В связи с анонсом ЗБТ PAPI Варгейминга я решил-таки начать реализацию сервиса, задуманного довольно давно. Речь о сервисе для поиска взвода. Я честно искал подобный сервис в сети и ничего хорошего не нашел. Я сейчас не буду заострять внимание на алгоритмах поиска, это тема для отдельной ветки обсуждения, наверное.

 

О чем мне хочется у вас узнать, как у людей, непосредственно работающих со статистикой игроков и имеющих доступ к собранной базе, так это о способе достичь равномерного распределения игроков по партициям в базе данных. Объясню подробнее.

 

Конечно, сервис поиска взвода невозможно реализовать, не храня информацию по статистике игроков у себя на серверах. Хранить все в одной базе слишком сложно и непрактично - база растет, нагрузка на сервис неизвестна и в какой-то момент сервис может просто прилечь из-за отказа в обслуживании. Поэтому я первым же делом подумал о том, что базу статистики игроков нужно побить на партиции. Так как сервис будет искать взвод в том числе и по РЭ/wn6/etc., то и бить на куски базу тоже будет удобно по этому параметру. Проблема лишь в неравномерном распределении количества игроков по партициям шкалы рейтинга. Очевидно, что средних игроков больше, чем плохих или хороших, и "средние" партиции будут получать больше данных и нагрузки, чем остальные. 

 

Теперь вопросы:

1. Каким образом технически хранится статистика игроков в вашей базе? Используется ли партиционирование? По какому ключу?

2. Каков общий объем базы?

3. Какое примерно количество запросов приезжает на сервис? Среднее/пик/прайм-тайм?

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

5. Возможно ли дальнейшее сотрудничество с разработчиками xvm в этом направлении?

 

Конечно, если вопросы затрагивают закрытую информацию, можете не отвечать, я пойму.

Повторюсь, что если у вас возникли какие-нибудь идеи по критериям отбора или по моим мыслям о реализации сервиса - об этом можно будет, наверное, поговорить в отдельной ветке, это уже точно будет оффтопом. Но, как говорится, feel free to contact me.

Т.о. вы хотите разбить игроков, скажем, на интервалы типа WN6_0...WN6_1, WN6_1...WN6_2, ... WN6_(N-1)...WN6_N, в которых будет примерно равное число игроков?

Такой вопрос, о равномерности нагрузки. А откуда такая большая уверенность, что игрок с WN6=1800 будет вообще кого то искать, как и игрок с WN6=0 (второй может и будет кого-то искать, но его точно искать не будут)? Мое имхо - у первого, скорее всего. есть сыгранный взвод; второй "играет для удовольствия". Нагрузка будет больше на поиск средних игроков, их будут искать чаще. Но это всё имхо, так что тут нужен эксперимент.

А так - вот что я вам посоветую. Когда мне нужно было выполнить шкалирование переменной в диапазон от 0 до 1 с РАВНОМЕРНЫМ распределением (пример - число боёв игрока) я сделал просто. Берем табличку, загоняем в первый столбец отсортированные значения переменных некоторой выборки, которую нужно отшкалировать, во второй - арифметическую прогрессию от 0 до 1. Смотрим график, иногда сразу получается очевидная функция.

Ну а дальше методы регрессии вам в помощь. В итоге получите то, что хотите - игрок с характеристикой большей, чем 50% игроков будет иметь результат 0.5, большей, чем 75% - 0.75.

Edited by DotNetFramework

Share this post


Link to post

Short link
Share on other sites

Ну алгоритм равномерного распределения игроков по партициям я таки выдумал. Не без помощи DotNetFramework получил срез статистики за май, которого должно хватить для начальных копаний, плюс получил пару идей относительно подбора игроков. Я могу запилить отдельную тему, посвященную алгоритмам подбора и фильтрации игроков, если модераторам это не покажется оффтопом (форум все-таки для обсуждения xvm). В этой теме можно обсудить все эти вещи.

Эта тема себя уже исчерпала, в принципе, все, что мне было нужно я уже узнал. Спасибо всем за помощь.


Тема с подробным описанием сервиса: http://www.koreanrandom.com/forum/topic/7132-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81-%D0%BF%D0%BE%D0%B4%D0%B1%D0%BE%D1%80%D0%B0-%D0%B2%D0%B7%D0%B2%D0%BE%D0%B4%D0%B0-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B-%D0%B8-%D0%B8%D0%B4%D0%B5%D0%B8/

Share this post


Link to post

Short link
Share on other sites

База сейчас ~60Гб. Про пиковые нагрузки выше написали. В среднем ~200 запросов (6000 игроков) в секунду.

Share this post


Link to post

Short link
Share on other sites

Всем привет, iBat как тебе сообщение в личке оставить?

а Вы уверенны что надо?

Share this post


Link to post

Short link
Share on other sites
iBat как тебе сообщение в личке оставить?

После первого сообщения на форуме можно. #@iBat

 

В смысле?

Тролли никогда не переводятся, не реагируйте.

Edited by Mr A

Share this post


Link to post

Short link
Share on other sites

 

 

В смысле?
в смысле, что по мелочам туда писать не надо. Вы уверенны в важности вашего обращения?

 

Тролли
ну спасибо... 

Share this post


Link to post

Short link
Share on other sites
Тролли

 

ну спасибо... 

во попал :gg:  

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×