Тестовий випадок з 500 гравців, які спілкуються між собою, це 250 000 потоків інформації, що летять на частоті 20 ГГц. Внутрішня пропускна здатність для цього складе, припускаючи 100 байт кожного повідомлення, приблизно 500 МБ / сек. Звучить амбітно. Особливо між процесами.
Якщо ви розділите гравців на групи по 100, це знижується до 20 МБ / сек тощо. Ось чому ММО мають зони, а в цих зонах невеликі бульбашки впливу і так далі вниз, поки пропускна здатність не стане розумною.
Оригінальною проблемою можна констатувати, що якщо у вас є 10 людей, які всі діляться інформацією в режимі реального часу, але ви хочете, щоб 500 спільного доступу до них, це експоненціальне зростання комунікаційних зв’язків і як ми можемо це подолати . Я боюся, що немає жодної магічної кулі, про яку я коли-небудь чув, що може магічним чином змусити геометричну прогресію.
Не використовуйте базу даних для спілкування, саме для цього і обмін повідомленнями. Використовуйте базу даних для примусового виконання транзакцій та зберігання інформації, яку ви не хочете, щоб програвачі програвали. Більшість MMO, з якими я знайомий, лише оновлюють базу даних з інформацією про динамічний програвач кожні 1-10 хвилин, або в зручних точках, таких як переходи в зоні або введення "безпечних" зон в дизайн.
Ви , можливо , доведеться перепроектувати в грі необхідно для кожного гравця, незалежно від того , як далеко, щоб в реальному часі поновлення вмісту рюкзака кожного іншого гравця.
Також змініть схему оновлення з 20 Гц на швидкість, що базується на відстані, комусь на відстань 1 милі не потрібно знати, що ви перемістили 1 ногу рівно на 230,6 секунди, потім ще одну ногу за 231,4 секунди, вони можуть мати справу з вами, рухаючи 15 футів кожні 10 секунд.