Тема: Pokemon GO
Показать сообщение отдельно
Старый 28.07.2016, 02:55   #85
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Pokemon GO

Сообщение от Randomize Посмотреть сообщение
Там настолько всё тупо, что оно и на длинном пуле работать будет.
И даже при таком онлайне.
Ты видимо вообще в механику игры не вникал..

Сообщение от Randomize Посмотреть сообщение
Адепт ноды испугался больших онлайнов и втирает как всё сложно? Ты же сам знаешь, что задача элементарная.
Я таки не испугался вовсе, боятся - когда не знают с чем имеют дело. В моём случае, я вполне хорошо знаю масштабы подобной системы, и такое "на коленке" не делается. Ты даже о нагрузке на бд думаю не догадываешься. Ну опиши в "пару словах", как ты поднимишь систему, для поддержания 20м игроков онлайн, по всему миру, с механикой как в покемон го, где даже видеть друг-друга не нужно, но джимы и спаун - синхронизируются среди всех.

Да ты тупо математику посчитай:
1. Площадь земли на нашей планете: 148,300,000км2
2. Точки для спауна примерно в радиусе каждых максимум 200м2, это 0.04км2.
3. Это около 4 миллиарда точек. Рандомно они саунятся только там где люди вокруг, также там для всех игроков общие данные, следственно данные должны быть в бд.

Предположим одна точка - это тип покемона (int), и координата (double * 2). Ну и ID ествественно, даже если тебе удастся это всё уместить в супер эфективные мелкие записи, это 112Гб данных!
Делать запросы по таким объёмам данным с гео-индексацией, с постоянными write'ами (спаунятся покемоны). Без серьёзного подхода такое дело не взлетит.

Это только спаун покемонов, я даже не говорю о логике спауна которая по прошествию времени только там где игроки.

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

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

А что на счёт трафика? По некоторым данным, может быть до 10мб в час, скажем у тебя 10м игроков, это около 240 GBit/s, чтобы такое поднять, и залоадбалансить, с быстрым доступом к игровым серверам во всём мире, тебе понадобиться хорошая пачка игровых серверов. Да и это траффик будет не самой большой проблеммой для игровых серверов.

У тебя есть деньги, чтобы эфективно покрыть хотя бы 5 основных мировых датацентров, с хорошей пачкой серверов в каждой? Это будет тебе стоить как минимум 50k зелёных в месяц, это минимум.
Slither.io за хостинг отдаёт 15к в месяц, и это всего лишь при 50к активных юзеров в день, да и с полностью изолированной логикой между игровыми серверами, тут нету никакой серьёзных общих реалтайм данных, тупо игровой стейт в раме сервера.
Наивно экстраполируя это число по количиству игроков, и на 10м игроков тебе прийдётся платить около 3,000,000 в месяц за хостинг!

Короче, ты реально не подумал чего "предложил" за месяц замутить..

Хотя.. Если говоришь "элементарная", чего же ты не замутишь свою глобальную игру такого рода, дело ведь прибыльное.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Foxymist (28.07.2016), Gector (28.07.2016)