|
Xors3D Графический движок с поддержкой DirectX9 |
10.10.2011, 15:38
|
#76
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Universe Of Wars
Сообщение от EvilChaotic
Блин, если я привел схематичный цикл что и как это не зачит что там все так примитивно. Вечером домой приду покажу как и что. Под игрой у меня апдейт камеры. Сам апдейт проиходит в обновлении игрока. т.к. там есть раздел с хоткеями и функция обновлении камеры принимает кучу блокировок, фильтрованных нажатий и тп..
|
Я не имел ввиду что так всё примитивно. Я про то что когда камера привязана к объекту с физикой, и должна следовать ему, то её позиция должна быть обновлена только После обновления физики, иначе получение позиций физ. объектов и т.п. будет с прошлого кадра и другие мелкие артефакты, которые ты видишь.
H@NON, это не дельта тайминг, а разделение игрового цикла от рендера, и фиксация количества тактов в секунду. Как и говорил, этот вариант не всегда может подойти под игру.не читай, сразу отвечай - я балда.
|
(Offline)
|
|
10.10.2011, 15:43
|
#77
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Universe Of Wars
разделение игрового цикла от рендера это тайм твиннинг(обновляем участок логики столько раз на сколько отстали от требуемого фпс), а это дельта тайминг(умножение параметров на затраченное время с прошлого такта).
|
(Offline)
|
|
10.10.2011, 15:45
|
#78
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Universe Of Wars
Ой, слишком быстро прочёл что там у тебя..
ТЕМУ НЕ ЧИТАЙ, СРАЗУ ОТВЕЧАЙ..
Уху, это дельта..
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.10.2011, 15:59
|
#79
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Universe Of Wars
разделение игрового цикла от рендера это тайм твиннинг(обновляем участок логики столько раз на сколько отстали от требуемого фпс), а это дельта тайминг(умножение параметров на затраченное время с прошлого такта
|
кстати по моему опыту, дельтатайм соснул у фиксед фпса с твинингом.
т.к. дельта основывается на прошлом кадре, при изменении фпс случаются рывки, лечится только вертикальной синхронизаций и только в случае что фпс не ниже скорости обновления моника. твинингом гораздо плавнее выходит даже на 30 фпс.
|
(Offline)
|
|
10.10.2011, 16:03
|
#80
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Universe Of Wars
Просто дельту ограничивай по максимальному лимиту, будет плавно
|
(Offline)
|
|
10.10.2011, 16:22
|
#81
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Universe Of Wars
Для меня тоже соснул. Особенно если нужна сеть и т.п. Где на сервере том же игровая логика очень чётко фиксирована к участку времени цикла (должно быть чёткое начало цикла, в определённый момент). Если клиенты начинают дельтить, то там уйма гемора всплывает, так что проще всего заюзать фиксацию игрового цикла, с отделением визуализации, например те же партиклы, можно дельтить, или кучу других не синхронизируемых сущностей.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.10.2011, 16:51
|
#82
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Universe Of Wars
Сообщение от MoKa
Дык в игра() у тебя будет как раз обновление положений, и т.п. Получается что снова, позиция будет не корректной. Должно быть:
1. игровая логика с перемещениями и т.п.(..)
2. xUpdateWorld()
3. привязка к физ объектам визуальных элементов, типа камеры и того что на экране должно быть.
4. Render()
5. Draw()
6. Flip()
Вообще делают также разделение рендера и игровой логики, для стабилизации тиков чтобы не делать всякие дельтатайминги и т.п. Но это не всегда вариант..
|
твиниг, изменяемая скорость игры был еще с самого начала.
Может я тупой и не имею отношения к программированию. Но.
Я ставлю в начало UpdateWorld(), обновляется физика, перемещаются тела, анимация играется и тп. у меня начинают хреново работать шоткаты, если я вверх кидаю логику.
Дальше апдейт логики получаем новые позиции физ тел, на них перемещаем камеру. Все по идее должно быть гладко. Обе фунции закручены в ограничение скорости игры. wtf?
|
(Offline)
|
|
10.10.2011, 16:55
|
#83
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Universe Of Wars
Почему не стоит делать синхру через тики:
1. лишние проходы логики за тормозящей графикой добавляют тормозов.
2. при наоборот быстрой графике, всего один проход логики в несколько кадров, как результат загрузка GPU полная, фпс высокий, но ощущения как при среднем фпс т.к. кроме твининга анимации остальное на кадрах будет одинаковое.
3. это просто метод для ленивых.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
10.10.2011, 17:07
|
#84
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Universe Of Wars
"ощущения как при среднем фпс" не замечал. почему это метод для ленивых - тоже не понял, т.к. дельтатайм куда проще. а что ты предлагаешь?
|
(Offline)
|
|
10.10.2011, 18:14
|
#85
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Universe Of Wars
Дельта выглядит проще, но чтобы реализовать нормальную механику игры с учётом возможных лагов, намного сложнее.
Имхо, делать гибриты можно, совмещая, порой это лучше, т.к. нужно чётко фиксировать.
Mr_F_, смотри, у тебя позиция игрока обновляется в логическом цикле. Берём UPS == 30. При FPS 90, у нас будет 3 кадра стоять игрок, а потом за один кадр прыгать к следующей позиции. Это вызовет эффект дёрганья.
При этом я заметил, что не все люди способны увидеть это, менее половины, но способны и весьма бросается в глаза. Разница между плавным, и такими дёргами ощутима большинством.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:08.
|