Text Size

Про авторитарность сервера

Существует два типа организации сетевого взаимодействия между клиентом и сервером.

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

Обычно, подобная схема используется в играх, которые рассчитаны на локальную сеть – там читерство не представляет особого вреда ввиду малых масштабов игры.  В противоположность можно привести игры жанра MMORPG – удачно выполненное читерство может поднять рейтинг игрока на миллионы позиций вверх. Именно поэтому для перспективных проектов предпочтение отдается другой сетевой организации.

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

К примеру, это означает, что клиент не может просто взять и создать удаленный объект (Network.Instantiate). За это отвечает сервер, только он имеет право создавать и удалять объекты. Конечно, сервер можно запрограммировать таким образом, чтобы он создавал нужный объект в ответ на определенный запрос клиента, но делать это следует с осторожностью.

Такой подход делает абсолютно невозможным читерство, основанное на подделке отправляемой клиентом информации: какая выгода может быть от фальсификации сообщения о нажатой игроком клавише «вперед»? Также снимаются расходы на шифрование протокола (зачем скрывать информацию, когда её подделка не может навредить), а это значительно увеличивает производительность сервера!

Именно такому, безопасному способу и отдавалось предпочтение при создании FGS.

В объектно-компонентной системе FGS каждый объект на стороне клиента (ClientPoint) имеет соответствующий объект на сервере (ServerPoint). ClientPoint может передавать данные только своей серверной копии (это относится к любым способам взаимодействия, будь то RPC вызовы или Remoting). Только объект на сервере  может рассылать сообщения другим клиентам, которые «видят» этот объект (или взаимодействовать с другими серверными объектами).

Подробнее узнать об использовании объектно-компонентной системы вы можете в разделе "Видео".

Комментарии  

 
#5 profile 02.11.2018 11:27
Need cheap hosting? Try webhosting1st, just $10 for an year.

Цитировать
 
 
#4 profile 01.11.2018 16:46
Need cheap hosting? Try webhosting1st, just $10 for an year.

Цитировать
 
 
#3 Omwilefelp 28.06.2018 01:55
аренда онлайн казино
Цитировать
 
 
#2 Antje 08.11.2017 15:04
Wow that was strange. I just wrote an really long comment but after I clicked submit my comment didn't
show up. Grrrr... well I'm not writing all that over again. Anyways,
just wanted to say great blog!

Feel free to visit my webpage: Jerrell - Jerrell: http://Www.bar-fair.ru/bitrix/rk.php?goto=http://storify.com/spicearacal1965/dokumenty-prodazha-doli-v-ustavnom-kapitale,
Цитировать
 
 
#1 Adan 02.11.2017 11:19
Hello! Quick question that's entirely off topic. Do you know how to make
your site mobile friendly? My blog looks
weird when viewing from my apple iphone. I'm trying to find
a theme or plugin that might be able to resolve this issue.

If you have any recommendations , please share. Many thanks!


My page - инструкция л цет сироп (Colby: https://storify.com/coldtintiwa1979/instrukciya-l-cet-sirop)
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Тестовая версия

СКАЧАТЬ БЕСПЛАТНО

Тестирование началось!

Пришло время испытать движок.

Пишите Ваши предложения, найденные ошибки и feedback на Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. или в Skype (vbprogr).

Документацию вы найдете на этом сайте.