Логика работы авторитарного сервера

Сеть в Unity3D

Логика работы авторитарного сервера

Сообщение Diab10 26 дек 2011, 23:15

Всем привет! :ymparty:

Начинаю делать онлайн гонки по инету.

Хотел бы проконсультироваться по логике авторитарного сервера.

Мне что нужно посылать от клиента на сервер? Только события игрока? Т.е.: нажатие клавиш влево/вправо, вперёд/назад, кнопка "огонь", луч направления прицела...

Сервер принимает эти данные, и управляет объектами по этим событиям, и передаёт получившиеся координаты всем клиентам?
Т.е. вся физика, все столкновения, проверки на попадания пуль... всё просчитывает сервер? На клиенте получается физика вообще не нужна? Клиент просто отображает данные, пришедшие с сервера?

Или я что то не так мыслю? ~o)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Логика работы авторитарного сервера

Сообщение sp00n 26 дек 2011, 23:41

Да, соответсвенно, нужно писать "быструю" физику на сервере)
На клиенте же - разве что для всяких визальных деформаций и прочих мелочей.
Ты молод, креативен, талантлив?
Амбициозен, уверен в себе, полон свежих идей?
А делать хоть что-нибудь умеешь?!
sp00n
UNITрон
 
Сообщения: 254
Зарегистрирован: 27 фев 2010, 20:43

Re: Логика работы авторитарного сервера

Сообщение Diab10 27 дек 2011, 01:00

Спасибо за ответ:)

А что, если не делать авторитарный сервер? Пусть клиенты сами всё считают и отсылают свои координаты, а на сервере сделаю ряд проверок на читы. Например, буду проверять расстояние между настоящей точкой и предыдущей. Если сильно большое, значит - читер, бан ему. Затем проверить так же скорость машины и ускорение на эталонные значения.
Это позволит сильно снизить нагрузку на сервер, но я не уверен будет ли всё это работать как надо.

Что скажете?
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Логика работы авторитарного сервера

Сообщение sp00n 27 дек 2011, 01:30

Если гонки станут популярными - сломают обязательно. А так для небольшого проекта, можно и на клиенте считать. Хотя для небольшого и нагрузка на сервер будет небольшой)
Ты молод, креативен, талантлив?
Амбициозен, уверен в себе, полон свежих идей?
А делать хоть что-нибудь умеешь?!
sp00n
UNITрон
 
Сообщения: 254
Зарегистрирован: 27 фев 2010, 20:43

Re: Логика работы авторитарного сервера

Сообщение Order 27 дек 2011, 08:17

Физику на клиенте можно оставить для экстрополяции.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Логика работы авторитарного сервера

Сообщение Diab10 27 дек 2011, 10:27

А кто как думает, сколько игроков выдержит сервер средненький? Если всю физику просчитывать на сервере. И если физику юнити оставить

К примеру 10 GHz, 4 гига оперативки сервер

Хотя бы человек 500 онлайн выдержит?


Что такое экстрополяция? Сглаживание рывков по сети? Если да, то зачем там физика?
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Логика работы авторитарного сервера

Сообщение DavilSin 27 дек 2011, 12:01

Считать физику на сервере это дурной тон [curved_hands] Сервер должен проверять эталонные значения, соглашусь с Diab10
Изображение
Аватара пользователя
DavilSin
UNIт
 
Сообщения: 74
Зарегистрирован: 16 апр 2011, 11:10

Re: Логика работы авторитарного сервера

Сообщение IDoNotExist 27 дек 2011, 12:36

Сегодняшняя статья на хабре http://habrahabr.ru/blogs/gdev/135306/, про то как это делается в Battlefield 3, почитайте, лично я открыл для себя много нового.
Последний раз редактировалось IDoNotExist 27 дек 2011, 12:52, всего редактировалось 2 раз(а).
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Логика работы авторитарного сервера

Сообщение IDoNotExist 27 дек 2011, 12:50

DavilSin писал(а):Считать физику на сервере это дурной тон. Сервер должен проверять эталонные значения, соглашусь с Diab10

Не соглашусь с вами, нельзя так однозначно это определить, тут все зависит от того нужна ли вам точная физика, или она у вас работает как декорация.

Если первое - то однозначно считать на сервере, потомучто проверять все физические данные которые прислали вам клиенты , это большой гемор, да и по сути это не будет сильно отличаться от того как если бы вы считали физику на сервере, так зачем же платить больше? Есть сцена на сервере, клиенты шлют серверу свои инпуты, серевер рассчитывает физику и отправляет рассчитанную позицию объектов клиентам несколько раз в секунду, на клиенте мы это интерполируем и экстаполируем.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Логика работы авторитарного сервера

Сообщение gnoblin 27 дек 2011, 16:35

мне понравилась идея про конус и список ссылок :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Логика работы авторитарного сервера

Сообщение Diab10 27 дек 2011, 17:48

Спасибо за ответы ^:)^

Статья классная, спасибо)

Да, конус не плохо придумали:)


Короче делаю авторитарный сервер с просчётом физики на сервере. Посмотрим что выйдет)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Логика работы авторитарного сервера

Сообщение Diab10 29 дек 2011, 15:41

В статье написано, что они на сервере откручивают время назад на время, которое было потеряно при передаче пакета от клиента к серверу.
А как узнать это время? Ведь сервер может узнать только пинг(сервер - клиент - сервер), и то, только предыдущей передачи.

Или они берут среднее значение за какое то время? Если так, то это не точно тогда. Ведь сеть может глючить. К примеру лаганёт, и вместо 20 милисекунд пакет будет идти 200. Или время передачи клиент - сервер может быть медленнее, чем сервер - клиент(или такого быть не может7)


У кого какие мысли будут? (popcorn1)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Логика работы авторитарного сервера

Сообщение gnoblin 29 дек 2011, 16:06

Мои мысли:
взять неавторитарный вариант, использовать PUN, сделать интересную игру :).
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Логика работы авторитарного сервера

Сообщение Diab10 29 дек 2011, 16:45

http://en.wikipedia.org/wiki/Pun

Игра в слова?)))
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Логика работы авторитарного сервера

Сообщение sp00n 29 дек 2011, 16:52

Photon Unity Network :)
Ты молод, креативен, талантлив?
Амбициозен, уверен в себе, полон свежих идей?
А делать хоть что-нибудь умеешь?!
sp00n
UNITрон
 
Сообщения: 254
Зарегистрирован: 27 фев 2010, 20:43

След.

Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2