При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Разработка игр > Xash3D Engine
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.06.2014, 03:06  #1
gfdjr5
gfdjr5
[NULL]
Регистрация: 25.11.2012
Сообщения: 554


По умолчанию Xash3D: Обсуждение

Хочется иметь на форуме тему, подобную этой. Для вопросов по движку, и в целом для его обсуждения.

Конкретно я хотел бы знать следующее. В Xash есть код от DarkPlaces? Скелетная анимация работает (вроде на вики в источниках кода видел DarkPlaces, а в нём скелетка реализована)? Просто игрок тупо при перезарядке у другого игрока не делает ничего (да и у самого него, думаю, в thirdperson будет то же самое), а при движении скользит как по льду. Хотя анимации держания оружия по типу оружия (пистолет/рокетланчер) вроде есть.

А много ли в Xash кода от QuakeWorld? Весь предикт-код там, а Xash, как я заметил как-то частично имеет этот код. Предикт на локального игрока вроде проходит, после, как я заметил отсюда:

http://fabiensanglard.net/quakeSour...ePrediction.php

а конкретно это:
Код:
   		CL_SetUpPlayerPrediction(false)
   		CL_PredictMove 
   		|	/* Local player is moved */
   		|	CL_SetSolidPlayers
   		|	|	CL_PredictUsercmd
   		|	|		PlayerMove
   		|	Interpolate linearely
   		CL_SetUpPlayerPrediction(true)
   		CL_EmitEntities 
   			CL_LinkPlayers
   			|	/* Other players is moved */
   			|	for every players
   			|	|	CL_SetSolidPlayers
   			|	|	CL_PredictUsercmd
   			|	|		PlayerMove
   			CL_LinkPacketEntities
   			CL_LinkProjectiles
   			CL_UpdateTEnts
   

показывает, что в Xash предикт на остальных игроков не устанавливает.
CL_EmitEntities, как и SetupPlayerPrediction на Xash'e просто нет.
Да и PredictUserCmd нет, но он вроде внедрен в CL_PredictMovement.

Что ещё странно, так это то, что я, когда играл с двух машин одновременно, на одной из которой был дедик, но оба были подключены к одному соединению. Пинг, думаю, как на локалке при этом был. Странность заключается в том, что когда я смотрел на одном компьютере, как двигаюсь на другом, то заметил, что я вижу его нормально (другим же игроком в это время управлял, рандомил вперед, назад, влево и вправо). В общем, после быстрого нажимания поочередно влево и вправо несколько раз игрок оказывается в итоге чуть дальше, чем зафиксировал сервер (я после остановки ввода вижу, что у другого игрока я уже стою, а у себя я немного смещён от этой позиции исходя из последней кнопки ввода (левее или правее); ещё раз замечу, что у другого игрока я уже стою). После этого через 0.5-1.0 секунд я переношусь назад к серверной позиции, где меня видит другой игрок. При этом ещё могу подёргаться между своей и серверной позицией. Отсюда вопрос: разве при предиктинге интерполяция не должна смягчать позицию? При правильных данных клиента, и при его отличной от сервера позиции (продвинулся дальше, по сравнению с сервером, но данные правильные), не должен ли сервер согласиться с клиентом и принять его новую позицию?

Ну и насколько я знаю, передачу ресурсов по сети Xash тоже не поддерживает, да?
gfdjr5 вне форума Ответить с цитированием
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 13:22.


Designed by FT-502, TRUP@C. Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2017 by CS-Mapping.com.ua Community