Шифрование P2P для файла сохранения многопользовательской ролевой игры без сервера

Можно ли сделать многопользовательскую рпг игру без сервера?

Я подумал об аутентификации, и в p2p это вроде нормально.

Но как хранить файл сохранения, чтобы ни у кого не было причин/не было возможности его изменить?

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

Если это действительно невозможно без сервера, как минимизировать общение с сервером?

Думал сделать точку сохранения, но это нечестно. Потому что пользователь может не сохранять, когда с ним случается что-то плохое. Если дизайн игры таков, что худшее, что может случиться, это то, что они ничего не получат (то же самое, что преднамеренное отсутствие сохранения). Тогда это может сработать.

Спасибо за вашу помощь.


person asker ask    schedule 20.09.2013    source источник
comment
Сложный вопрос. Если у вас нет надежного объекта, беспокойтесь не только о файле сохранения. Также может быть изменено само программное обеспечение. Представьте себе такие вещи, как аимботы или кликботы.   -  person Scolytus    schedule 21.09.2013
comment
если хороших парней больше, чем плохих, то если достаточно людей говорят, что все в порядке, то, вероятно, все в порядке.   -  person asker ask    schedule 21.09.2013


Ответы (1)


Вы можете создать свой файл сохранения, похожий на git-repo. Не переопределяйте все, а вместо этого сохраните всю историю. Поскольку вы все равно планируете проверку правдоподобия, отдельные «коммиты» могут быть подписаны всеми участвующими клиентами.

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

Есть некоторые недостатки:

  • Управление доверительными отношениями. Если у меня есть несколько клиентов под контролем, я все равно могу подделать файл сохранения с действительными подписями.

  • Файл сохранения может стать большим. Однако он понадобится вам только при присоединении, после чего достаточно сохранить последнее состояние в памяти. В цепочке также могут быть некоторые подписанные сервером «коммиты», тогда вам нужно только отправить цепочку обратно в эту фиксацию.

person Scolytus    schedule 20.09.2013
comment
я надеюсь, что если есть достаточно клиентов в области, что плохой пользователь живет. Тогда хеш-таблица p2p все перемешает. Тогда вряд ли среди 10 человек, которых я выберу, всеми ими управляет кто-то плохой. - person asker ask; 21.09.2013
comment
Но... что, если эти 10 человек вышли из системы, когда неверный пользователь входит в систему? Я мог хранить данные в куках многих людей. хм. - person asker ask; 21.09.2013