|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
02.04.2013, 21:49
|
#16
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Перемещение пусть считают клиенты, они знают конечную позицию юнита, время начала движения, скорость => время, за которое должен пройти путь этот юнит и дойти до какого места. Если Юнит не дошел до нужного места - посылает серверу сообщение об остановке и текущих координатах, сервер их рассылает. Снова все знают координаты юнита.
Вообще я не эксперт в сетях, я просто предполагаю как это должно работать.
И на самом деле позиции 8к юнитов будут занимать 96кб памяти. Можно обновлять координаты порциями. по 500 юнитов в секунду например.
|
(Offline)
|
|
02.04.2013, 21:54
|
#17
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Сообщение от Fockerian
Согласно вашей логике кто должен просчитывать игровой мир (перемещение,удаление,добавление юнитов ) ?
|
Сервер+клиент? не?
.тут
Клиент кидает на сервер координату клика и остальную лабуду.
Сервер думает что да как и возвращает результат клиенту.
Клиент принимает, обрабатывает их как-то.
Клиент шлет результат получившегося, а сервер сравнивает.
goto тут
Даже мне, далекому от сетевой игры все ясно и понятно...
|
(Offline)
|
|
02.04.2013, 22:39
|
#18
|
Оператор ЭВМ
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
|
Ответ: Стандарт процессора IEEE 754
Сообщение от pax
Перемещение пусть считают клиенты, они знают конечную позицию юнита, время начала движения, скорость => время, за которое должен пройти путь этот юнит и дойти до какого места. Если Юнит не дошел до нужного места - посылает серверу сообщение об остановке и текущих координатах, сервер их рассылает. Снова все знают координаты юнита.
Вообще я не эксперт в сетях, я просто предполагаю как это должно работать.
И на самом деле позиции 8к юнитов будут занимать 96кб памяти. Можно обновлять координаты порциями. по 500 юнитов в секунду например.
|
В этом основная проблема,все клиенты делают разные расчеты из за разных float, поэтому мне и нужно заставить все системы считать абсолютно одинаковый float. вот супрем командер считает одинаково благодаря тому,что использует стандарт IEEE 754
|
(Offline)
|
|
02.04.2013, 22:43
|
#19
|
Оператор ЭВМ
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
|
Ответ: Стандарт процессора IEEE 754
Сообщение от RegIon
Сервер+клиент? не?
.тут
Клиент кидает на сервер координату клика и остальную лабуду.
Сервер думает что да как и возвращает результат клиенту.
Клиент принимает, обрабатывает их как-то.
Клиент шлет результат получившегося, а сервер сравнивает.
goto тут
Даже мне, далекому от сетевой игры все ясно и понятно...
|
Это будет работать если расчеты float будут на сервере и клиенте идентичны.
|
(Offline)
|
|
02.04.2013, 23:04
|
#20
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Зачем такие сложности?
ИМХО: расчёт перемещений на клиенте - своими руками разрешить читерство. Зачем тогда вам сервер, если он ничего не делает? Я конечно совсем не специалист в данной области, но тут вполне всё логично и просто: клиент ткнул, передал серверу, сервер обработал, сказал клиенту/клиентам, у клиента/клиентов что то куда то побежало/задвигалось/умерло/т.д. Хотя тут нужен довольно мощный сервер. Ну и это просто имхо, ногами не пинать.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
02.04.2013, 23:11
|
#21
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Да блин, какие расчеты флоатов? Клиент получает конечную координату, все, никаких расчетов. Только промежуточное перемещение до нее.
|
(Offline)
|
|
02.04.2013, 23:15
|
#22
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Топикстартер сам не знает что хочет.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.04.2013, 23:39
|
#23
|
Оператор ЭВМ
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
|
Сообщение от pax
Да блин, какие расчеты флоатов? Клиент получает конечную координату, все, никаких расчетов. Только промежуточное перемещение до нее.
|
Промежуточное перемещение это сложный процес направленый на обход всех препятствий по методу A*. При его расчете используется флоат. Если он будет разный то у одного игрока юнит побежал слева от дома, у второго этот же самый игрок справа. Только справа была мина и юнит умер. А слева у первого пробежал... вот и рассинхронизация.
Сообщение от St_AnGer
Зачем такие сложности?
ИМХО: расчёт перемещений на клиенте - своими руками разрешить читерство. Зачем тогда вам сервер, если он ничего не делает? Я конечно совсем не специалист в данной области, но тут не всё логично и просто: клиент ткнул, передал серверу, сервер обработал, сказал клиенту/клиентам, у клиента/клиентов что то куда то побежало/задвигалось/умерло/т.д. Хотя тут нужен довольно мощный сервер. Ну и это просто имхо, ногами не пинать.
|
Сервер нужен для проверки синхронизации и проверки с последующей передачей вводов других игроков. Если делать обработку на сервере то получится что сервер сможет обрабатывать несколько игр максимум, а чтобы играло много людей надо много серверов... мне это не подходит
Сообщение от Nex
Топикстартер сам не знает что хочет.
|
Я знаю чего хочу, только у вас этого нету
http://habrahabr.ru/post/123883/
Последний раз редактировалось SBJoker, 03.04.2013 в 02:24.
|
(Offline)
|
|
03.04.2013, 00:11
|
#24
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Прочитал там
В комментариях к нему Elijah обсуждает именно Supreme Commander. Если заставить процессор чётко следовать стандарту IEEE754, это решает большинство проблем. Но такое решение означает снижение производительности и игра не может выполнять вычислений с неопределйнным результатом (впрочем этого и так не следует делать).
|
Т.е. ты хочешь намеренно снизить производительность?
|
(Offline)
|
|
03.04.2013, 00:42
|
#25
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Ну на юнити3в ру уже ответили. Согласно стандарту на язык C# от Микрософт тип Single соответствует стандарту IEEE754. Юнити использует стандартный C#. Следовательно его float соответствуют стандарту IEEE754. Что Вы еще хотите?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.04.2013, 00:43
|
#26
|
|
Ответ: Стандарт процессора IEEE 754
http://blogs.msdn.com/b/shawnhar/arc...rministic.aspx
On Windows, .NET programs cannot save controller based replays to disk, then play them back at some later date or on a different machine. An intervening service pack might change the CLR in such a way that the JIT produces different code, or if you move the replay to a different computer, the CLR might adapt depending on the specific CPU variant it is running on.
|
ох лол, еще одна причина почему c# говно =) пишите пацаны на чём-то по серьезнее если вам прям надо IEEE 754 :D
|
|
|
Сообщение было полезно следующим пользователям:
|
|
03.04.2013, 01:04
|
#27
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Стандарт процессора IEEE 754
В общем то да, если писать убер стратегию, то писать на чем-то другом.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
03.04.2013, 01:08
|
#28
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Стандарт процессора IEEE 754
тут где то проскакивала дельная мысль - что всю геймплей-важную информацию ДОЛЖЕН просчитывать сервер. не хватит производительности - покупайте еще сервера. считать на клиенте не выход, ИМХО.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
03.04.2013, 05:04
|
#29
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Стандарт процессора IEEE 754
Fockerian, я далёк от сетей, но уверен что даже для одноранговой сетевой игры ненужны такие извращения.
В нормальных онлайн играх все вычисления идут на сервере и всё!
То что ты пытаешься описать это гибридная сеть, когда часть вычислений идут на клиенте, только нужно ли оно вам, это головная боль! ИМХО
|
(Offline)
|
|
03.04.2013, 10:13
|
#30
|
Оператор ЭВМ
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
|
Ответ: Стандарт процессора IEEE 754
Сообщение от HolyDel
тут где то проскакивала дельная мысль - что всю геймплей-важную информацию ДОЛЖЕН просчитывать сервер. не хватит производительности - покупайте еще сервера. считать на клиенте не выход, ИМХО.
|
Господа. Вы не поняли. Если клиент считает это разгружает сервер от ненужной работы. Сервер лишь проверяет синхронизацию и передает вводы данных, (кликанья мышкой) а по скольку,симуляция у всех на клиентах идет по отдельности,чтобы совершить чит (например прибавить здоровье или телепартировать танки) нужно чтобы возможность читерства была изначально заложена на клиенте, иначе чит пройдет только в симуляции читера и произойдет рассинхронизация.
Впрочем я уже нашел куда можно копать дальше благодаря ответу на другом форуме.Всем спасибо за ответы. C# рулит.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:02.
|