Сообщение от 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 в месяц за хостинг!
Короче, ты реально не подумал чего "предложил" за месяц замутить..
Хотя.. Если говоришь "элементарная", чего же ты не замутишь свою глобальную игру такого рода, дело ведь прибыльное.