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

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

Ну да, не http, естественно я утрировал, но всё и ни настолько сложно как ты написал.
Я ничего сложного не писал. Всё просто: огромная туча мелких реалтайм серверов, с которыми общаются клиенты, большая часть запросов идёт в кластерную бд, какая-то часть естественно кешится локально, и исходя из игроков в округе, периодически спавнятся покемоны, рассылаются через pub/sub другим серверам что имеют игроков в местах поблизости.
Простое разбиение количества игроков по локации на куски, тубая бинарная кластеризация отлично будет работать.
Адаптивный лоад балансинг нужен, т.к. игроки склонны скапливаться в большие кучи (города, парки), и есть куча мест где вообще никого нету. Следственно политика создания новых серверов и какие участки они обслуживают должна быть нормальной. Это не сложно, и решается на коленке нормальным разрабом работающим со статистикой и владеющим математикой нормальной.

Бота читал, он шлёт всё серверу, что "хочет" делать, свою локацию он естественно определяет, и по идее может телепортироваться, но получает данные с сервера обо всём, о покемонах вокруг, о стоянках и т.п. И затем действует по тупой схеме - если есть покемон вокруг -> лови, шли серверу запрос что попал в покемона, сервер затем проверяет шанс ловли, т.к. там высокого CP покемон, не накормленный ягодкой и используя простой мячик с лёгкостью вырывается, следственно бот отсылает запрос на поимку снова и снова, пока покемон не убежит или не будет пойман.
Бот всё равно кроме своей локации ничего не определяет. И если будет "телепортироваться", Niantic уже отлично это выслеживают и авто-банят.
Поэтому бот старается "ходить".

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

Бот занимательный, да, весьма простой кстати
Круто как шустро народ разобрал протокол, распарсил сорсы для прото схем, и шустро так мутит ботов и т.п. "hacker-attitude" среди разрабов весьма сильная тема.
(Offline)
 
Ответить с цитированием