В настоящее время я работаю над однопользовательской игрой, ориентированной на физику, где я хотел бы, чтобы физика моделировалась на стороне сервера. Это потому, что в игре будут таблицы лидеров, постоянное развитие игроков, и так далее, и я хочу предотвратить любые виды мошенничества - в основном это чисто клиент-серверная архитектура, клиент «тупой» и отображает только то, что сервер хочет, чтобы вы отобразили.
Проблема, однако, в том, что в эту игру, скорее всего, будут играть одновременно сотни (а может и тысячи) людей. Это касается меня, так как это, скорее всего, убьет вычислительную мощность сервера, если мне придется выполнять и поддерживать сотни состояний одновременно.
У меня не было бы проблем с переносом всех физических симуляций на клиентскую сторону, но тогда мне действительно нужен был бы способ проверить, действителен ли результат клиентского моделирования. Тем не менее, я не могу понять, как.
Я думал о том, чтобы время от времени запускать симуляцию на стороне сервера, чтобы убедиться, что клиент все еще играет честно, но я действительно хочу, чтобы сервер работал как можно меньше.
Физика станет такой же сложной, как демонстрация GDC 2011 Гленна Фидлера , возможно, даже проще. Тем не менее, гораздо больше всегда сталкивающихся твердых тел будет в одной сцене, и все они будут видны одновременно.
Мне трудно получить ответ на этот конкретный случай, так как большинство ресурсов в Интернете - опять же, сайт Гленна Фидлерса - отличный - говорят о мелкомасштабной сетевой физике (например, FPS с 30 игроками, такими как Halo).
Будем очень благодарны за любые советы, веб-сайты, документы или тому подобное.
Резюме вопросов, на которые я хотел бы получить ответ:
- Насколько осуществима модель клиент-сервер? Правильно ли обоснована проблема с моими процессорами на сервере?
- Можно ли надежно проверить физическое моделирование, выполняемое клиентом на сервере? Если так, то как?