![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 18.01.09]
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
|
Цитата:
Если вы знаете как реализовать взамодействие объектов не выполняя последовательный регулярный обсчет всей сцены - скажите мне, буду должен ![]() Пока видение таково: "Универсальный контролер" (мышь+клавиши) посылается от клиента к серверу на регулярной основе (минимум раз 10 в секунду - буду подбирать экспериментально). Кроме того клиент отсылает запрос на "кадр мира" - сцену (как закончит отрисовывать текущий). Сервер складывает управление от клиента в базу (файл) или отсылает "кадр мира". Отдельный поток сервера, все время циклически обсчитывает "мир" - сцену, забирая из базы данные управления клиентов. И обновляет базу расположения объектов. Вот 2B, да вторым был "легкий вид ответного хамства" ![]() |
|
|||||
|
стервочка (я мужик)
|
ответного хамства на что?
по вашей схеме у ваш сервер выдержит максимум 50 человек одновременно, не считая всех ваших астероидов и т.п. вообще-то, взрослые дяди делают так: 1. в поле зрения клиента появился объект.
2. сервер сообщает клиенту, что появился такой-то объект
3. синхронизируем координаты:
3.1. находится в такой-то точке в такое время ( момент синхронизации )
3.2. движется по такой-то траектории
3.3. в такое-то время он будет в такой-то точке.
4. клиент на основании этих данных показывает объект и перемещает.
5. этих данных достаточно, что синхронно перемещать объект на клиенте и на сервере, пока не наступит рассинхронизация:
5.1. объект сменил траекторию движения.
5.2. наступило критическое время рассинхронизации, которое зависти от:
5.2.1. скорости движения:
5.2.1.1. скорость = 0, время --> бесконечность
5.2.1.2. скорость --> бесконечность, время <-- 0
5.2.1.3. вся схема регулируется коэффициентами зависимости
5.2.2. сложности траектории. ( тут коэффициенты константы, для различных траекторий )
Последний раз редактировалось BlooDHounD; 18.01.2009 в 21:14. |
|
|||||
|
[+1 18.01.09]
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
|
2B, ваша схема подразумевает что и клиент и сервер обладают одинаковым алгоритмом расчета положений объекта, и всей необходимой базой. То есть данными о массе, размере и т.п. Или хотя бы возможностью строить одинаковые B-сплайны траекторий.
Это как с толстым клиентом. Я работаю над "тонкой" версией. Вернее "полутонкой". Вроде 3D X-сервера. Но на flash. Клиент шлет управление, сервер считает, посылает "опорные точки" траекторий. Клиент расчитывает апроксимацию. И рисует сглаженное движение. |
|
|||||
|
4AM Games
|
Цитата:
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
стервочка (я мужик)
|
TimID, то, что Вы описываете, не будет работать вообще. алгоритм расчёта положений, это пожалуй самое малое, что можно впихнуть в тонкий клиент
Ваша версия с плохим нетом будет выглядить как слайдшоу, из-за плохого пинга, а половина сообщений будет рубиться по таймауту из-за объёма передаваемой инфы. и при этом точно не получите однозначную и своевременную доставку сообщений на сервер.а теперь из теории: * тонкий клиент - это, когда расчётами занимается сервер. например я посылаю "хочу туда", а сервер говорит "иди туда, так-то и так-то". * толстый клиент - это, когда сервер в половине случаев работает в режиме приёма оповещений, ничего не сообща взамен. возможно только проверяет корректность. так работает например ВОВоский сервер. даже если соединение неожиданно порвётся пользователь продолжает играть не подозревая о подвохе, так как сообщения посылаются на сервер и не требуют ответа. выглядит так: клиент говорит "я иду туда, так-то и так-то", а сервер ничего не говорит и думает "учтём". Последний раз редактировалось BlooDHounD; 18.01.2009 в 22:28. |
|
|||||
|
[+1 18.01.09]
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
|
2N, не морфий, какой-нибудь галюциноген, вроде LSD
2B, ну да, сервер и будет заниматься расчетами. По открытому каналу сервер (хост) будет отсылать список объектов в зоне видимости клиента, с указанием координат и ориентации. "Полутолстым" клиент будет потому, что будет обладать базой данных форм и текстур объектов, и будет отрисовывать их сам. Хотя, может тут сложности с термином X-сервер (UNIX). И принцип работы OpenGL там же? |
|
|||||
|
Цитата:
|
|
|||||
|
ветеран форума
|
Цитата:
![]()
__________________
4am is time to rock |
|
|||||
|
4AM Games
|
Ага представил себе сервер который рисует все 50 клиентам. Самый большой на моей памяти сервер это Starwars Galaxy, мир держал массив из 20 серверов. Правда там сервер тоже ничего не рисовал.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|