Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 02.04.2013, 21:49   #16
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Стандарт процессора IEEE 754

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

Вообще я не эксперт в сетях, я просто предполагаю как это должно работать.

И на самом деле позиции 8к юнитов будут занимать 96кб памяти. Можно обновлять координаты порциями. по 500 юнитов в секунду например.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 02.04.2013, 21:54   #17
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Стандарт процессора IEEE 754

Сообщение от Fockerian Посмотреть сообщение
Согласно вашей логике кто должен просчитывать игровой мир (перемещение,удаление,добавление юнитов ) ?
Сервер+клиент? не?
.тут
Клиент кидает на сервер координату клика и остальную лабуду.
Сервер думает что да как и возвращает результат клиенту.
Клиент принимает, обрабатывает их как-то.
Клиент шлет результат получившегося, а сервер сравнивает.
goto тут
Даже мне, далекому от сетевой игры все ясно и понятно...
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 02.04.2013, 22:39   #18
Fockerian
Оператор ЭВМ
 
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
Ответ: Стандарт процессора IEEE 754

Сообщение от pax Посмотреть сообщение
Перемещение пусть считают клиенты, они знают конечную позицию юнита, время начала движения, скорость => время, за которое должен пройти путь этот юнит и дойти до какого места. Если Юнит не дошел до нужного места - посылает серверу сообщение об остановке и текущих координатах, сервер их рассылает. Снова все знают координаты юнита.

Вообще я не эксперт в сетях, я просто предполагаю как это должно работать.

И на самом деле позиции 8к юнитов будут занимать 96кб памяти. Можно обновлять координаты порциями. по 500 юнитов в секунду например.
В этом основная проблема,все клиенты делают разные расчеты из за разных float, поэтому мне и нужно заставить все системы считать абсолютно одинаковый float. вот супрем командер считает одинаково благодаря тому,что использует стандарт IEEE 754
(Offline)
 
Ответить с цитированием
Старый 02.04.2013, 22:43   #19
Fockerian
Оператор ЭВМ
 
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
Ответ: Стандарт процессора IEEE 754

Сообщение от RegIon Посмотреть сообщение
Сервер+клиент? не?
.тут
Клиент кидает на сервер координату клика и остальную лабуду.
Сервер думает что да как и возвращает результат клиенту.
Клиент принимает, обрабатывает их как-то.
Клиент шлет результат получившегося, а сервер сравнивает.
goto тут
Даже мне, далекому от сетевой игры все ясно и понятно...
Это будет работать если расчеты float будут на сервере и клиенте идентичны.
(Offline)
 
Ответить с цитированием
Старый 02.04.2013, 23:04   #20
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Стандарт процессора IEEE 754

Да блин, какие расчеты флоатов? Клиент получает конечную координату, все, никаких расчетов. Только промежуточное перемещение до нее.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 02.04.2013, 23:15   #22
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Стандарт процессора IEEE 754

Топикстартер сам не знает что хочет.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SBJoker (03.04.2013)
Старый 02.04.2013, 23:39   #23
Fockerian
Оператор ЭВМ
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Стандарт процессора IEEE 754

Прочитал там
В комментариях к нему Elijah обсуждает именно Supreme Commander. Если заставить процессор чётко следовать стандарту IEEE754, это решает большинство проблем. Но такое решение означает снижение производительности и игра не может выполнять вычислений с неопределйнным результатом (впрочем этого и так не следует делать).
Т.е. ты хочешь намеренно снизить производительность?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 03.04.2013, 00:42   #25
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Стандарт процессора IEEE 754

Ну на юнити3в ру уже ответили. Согласно стандарту на язык C# от Микрософт тип Single соответствует стандарту IEEE754. Юнити использует стандартный C#. Следовательно его float соответствуют стандарту IEEE754. Что Вы еще хотите?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Fockerian (03.04.2013)
Старый 03.04.2013, 00:43   #26
jimon
 
Сообщений: n/a
Ответ: Стандарт процессора 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
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (03.04.2013)
Старый 03.04.2013, 01:04   #27
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Стандарт процессора IEEE 754

В общем то да, если писать убер стратегию, то писать на чем-то другом.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Nex (03.04.2013), Reizel (04.04.2013)
Старый 03.04.2013, 01:08   #28
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Стандарт процессора IEEE 754

тут где то проскакивала дельная мысль - что всю геймплей-важную информацию ДОЛЖЕН просчитывать сервер. не хватит производительности - покупайте еще сервера. считать на клиенте не выход, ИМХО.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
Arton (03.04.2013), St_AnGer (03.04.2013)
Старый 03.04.2013, 05:04   #29
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Стандарт процессора IEEE 754

Fockerian, я далёк от сетей, но уверен что даже для одноранговой сетевой игры ненужны такие извращения.

В нормальных онлайн играх все вычисления идут на сервере и всё!



То что ты пытаешься описать это гибридная сеть, когда часть вычислений идут на клиенте, только нужно ли оно вам, это головная боль! ИМХО
(Offline)
 
Ответить с цитированием
Старый 03.04.2013, 10:13   #30
Fockerian
Оператор ЭВМ
 
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
Ответ: Стандарт процессора IEEE 754

Сообщение от HolyDel Посмотреть сообщение
тут где то проскакивала дельная мысль - что всю геймплей-важную информацию ДОЛЖЕН просчитывать сервер. не хватит производительности - покупайте еще сервера. считать на клиенте не выход, ИМХО.
Господа. Вы не поняли. Если клиент считает это разгружает сервер от ненужной работы. Сервер лишь проверяет синхронизацию и передает вводы данных, (кликанья мышкой) а по скольку,симуляция у всех на клиентах идет по отдельности,чтобы совершить чит (например прибавить здоровье или телепартировать танки) нужно чтобы возможность читерства была изначально заложена на клиенте, иначе чит пройдет только в симуляции читера и произойдет рассинхронизация.

Впрочем я уже нашел куда можно копать дальше благодаря ответу на другом форуме.Всем спасибо за ответы. C# рулит.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 20:03.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com