Насколько возможной была бы полностью / полуавтономная P2P-сеть для многопользовательских игр? - PullRequest
3 голосов
/ 28 февраля 2009

Я размышлял над тем, как можно было бы создать систему P2P (как BitTorrent для файлов) для игры в многопользовательские игры. Идея состоит в том, чтобы удалить традиционный сервер из многопользовательской архитектуры. Я понимаю, что какой-то сервер может быть необходим для инициирования связи и отправки обновлений для всего мира и т. Д., Но меня интересует, как вы могли бы снизить нагрузку и нагрузку на пропускную способность на сервере.

Кстати, это относится к игре любого размера, от игры в шашки для двух игроков до FPS с 30+ игроками.

Я сумасшедший?

Ответы [ 5 ]

9 голосов
/ 28 февраля 2009

Большая проблема не в пропуске, задержке или распространении изменений в игровом состоянии. Большая проблема - доверие.

Если я скажу вам, что убил монстра, как вы проверите, что я действительно это сделал? Как вы проверяете, что я на самом деле 45-го уровня? Как вы проверяете, что я не телепортируюсь по всему миру? Помните, что вы не можете проверить сервер на каждую мелочь: это то, чего мы пытаемся избежать!

Вам нужны игроки, наблюдающие за игроками, и даже тогда они могут работать вместе, чтобы обманывать. Я действительно сомневаюсь, что кто-нибудь в ближайшее время разработает надежную p2p MMO.

1 голос
/ 19 августа 2009

В вашем вопросе нужно учесть много вещей:

1) Распределенный мастер - кто тогда запускает игру? где я могу найти первый узел? Что если каждый решит закрыть свой P2P-клиент одновременно? конец света?

2) Распространенные правила - кто может подтвердить, что игрок 77 из 102235 убил монстра в точке x, y, z? Я вижу БОЛЬШИЕ проблемы со взломом / мошенничеством без «командира» ...

3) Задержка - когда клиент получил все данные? что если интернет сломается? или в игре по локальной сети, что, если жесткий диск умирает - это сумасшедшая игра для всех остальных?

Я верю, что мысль P2P интересна, но, как и во всех соревнованиях, я считаю, что нам понадобится «судья», который сможет справиться с правилами, потому что, когда вы соревнуетесь с «анонимными людьми», тогда «хорошо обмануть "много думает.

Я думаю, что какой-то вид сеточных вычислений может быть способом сделать это, но, опять же, если некоторые в сетке выпадают или слишком медленны для рендеринга мира и отправки результатов обратно ... тогда у нас вся игра "отстает" "... ужасная игра для всех ... это уже наблюдается во многих играх FPS с мастер-сервером. Если сетевой протокол не слишком хорошо справляется с задержкой, становится сложнее ударить бегущего человека или он появляется из ниоткуда, стреляя вам в лицо.

Дорогое решение может заключаться в том, чтобы иметь «субсерверы» (прокси-игровые серверы), где у вас есть некоторые данные, более близкие к игрокам. Я полагаю, что для этого потребуется, чтобы у вас был доступ ко многим серверным серверам по всему миру (как это делает Blizzard с WOW), или вам придется изобрести какой-то интеллектуальный «узел P2P», который будет обновляться до «субсервера», когда пропускная способность будет достаточно большие и достаточные игроки находятся в непосредственной близости от него (всегда проверяя отставание с его точки зрения ...) ... теперь давайте скажем, что это было возможно ... что, если линия между этим субсервером и основным игровым циклом будет нарушена глобально снова?

LOL ... это может продолжаться ... это все больше и больше напоминает общую проблему с Интернетом: -)

Удачного кодирования ...!

1 голос
/ 28 февраля 2009

Я думал об одном и том же. У меня есть давнее предубеждение, что распределенные системы должны быть распределенными , без необходимости центрального контроллера. Проблема с MMO или подобной игрой заключается в том, что каждый игрок должен видеть один и тот же «мир». Вы сталкиваетесь с проблемой, аналогичной теории относительности Эйнштейна и «одновременности»: чем дальше друг от друга, тем больше отличается ваш взгляд на мир.

Как правило, решение заключается в том, что вы должны иметь возможность распространять информацию другим клиентам в вашем непосредственном окружении - в игровом пространстве, а не в физическом пространстве - достаточно быстро, чтобы обновления появлялись одновременно для всех локальных игроки.

Я подозреваю, что ответ заключается в том, чтобы иметь "сервер" или модель мира для каждого игрока, а не представлять игроков как векторы на мировом сервере.

0 голосов
/ 19 августа 2009

Я думаю, что это возможно теоретически, но до этого еще далеко.

Как отмечалось в других постах, задержку можно было поддерживать на низком уровне, гарантируя обновления только другим игрокам, которые находятся поблизости. Это было сделано в течение многих лет в распределенных играх.

Потерю данных можно поддерживать на допустимом уровне, позволяя нескольким узлам отвечать за каждый фрагмент данных.

Что касается проблемы доверия, то можно было бы иметь протокол, по которому игрок мог бы «бросить вызов» другому игроку, чтобы раскрыть мошенничество. То есть претендент будет дублировать некоторые вычисления других игроков и попросить сравнить результаты. Уже существуют криптографические протоколы, которые делают подобные вещи, но я не знаю деталей или осуществимы ли они на практике.

Реальная проблема, как я понимаю, заключается в том, что нет особых причин для развития, таких как система. Стоимость будет высокой и добавит сложности, но игровой опыт (продукт) не будет значительно улучшен. Чтобы быть жизнеспособным, деятельность, позволяющая сэкономить деньги, должна сэкономить больше денег, чем стоит.

0 голосов
/ 28 февраля 2009

Я, конечно, не эксперт, но это звучит немного безумно для меня. По моему опыту, вам нужны выделенные игровые серверы из-за пропускной способности и производительности. С P2P вы потеряете обе эти вещи. На мой взгляд, P2P хорош для нескольких вещей. Распространение файлов и исследований среди них. Тем не менее, эти 2 вещи не нуждаются в данных в реальном времени. Если у вас был какой-то массовый многопользовательский игровой мир, то вы могли бы использовать P2P для распространения игровых файлов, и, возможно, даже перегрузить число.

Я бы сказал, что есть возможности, но их количество кажется ограниченным, хотя и потенциально мощным.

...