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

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

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

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 10.10.2011, 15:38   #76
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Universe Of Wars

Сообщение от EvilChaotic Посмотреть сообщение
Блин, если я привел схематичный цикл что и как это не зачит что там все так примитивно. Вечером домой приду покажу как и что. Под игрой у меня апдейт камеры. Сам апдейт проиходит в обновлении игрока. т.к. там есть раздел с хоткеями и функция обновлении камеры принимает кучу блокировок, фильтрованных нажатий и тп..
Я не имел ввиду что так всё примитивно. Я про то что когда камера привязана к объекту с физикой, и должна следовать ему, то её позиция должна быть обновлена только После обновления физики, иначе получение позиций физ. объектов и т.п. будет с прошлого кадра и другие мелкие артефакты, которые ты видишь.

H@NON, это не дельта тайминг, а разделение игрового цикла от рендера, и фиксация количества тактов в секунду. Как и говорил, этот вариант не всегда может подойти под игру.не читай, сразу отвечай - я балда.
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 15:43   #77
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Universe Of Wars

разделение игрового цикла от рендера это тайм твиннинг(обновляем участок логики столько раз на сколько отстали от требуемого фпс), а это дельта тайминг(умножение параметров на затраченное время с прошлого такта).
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 15:45   #78
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Universe Of Wars

Ой, слишком быстро прочёл что там у тебя..
ТЕМУ НЕ ЧИТАЙ, СРАЗУ ОТВЕЧАЙ..
Уху, это дельта..
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
H@NON (10.10.2011)
Старый 10.10.2011, 15:59   #79
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Universe Of Wars

разделение игрового цикла от рендера это тайм твиннинг(обновляем участок логики столько раз на сколько отстали от требуемого фпс), а это дельта тайминг(умножение параметров на затраченное время с прошлого такта
кстати по моему опыту, дельтатайм соснул у фиксед фпса с твинингом.
т.к. дельта основывается на прошлом кадре, при изменении фпс случаются рывки, лечится только вертикальной синхронизаций и только в случае что фпс не ниже скорости обновления моника. твинингом гораздо плавнее выходит даже на 30 фпс.
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 16:03   #80
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Universe Of Wars

Просто дельту ограничивай по максимальному лимиту, будет плавно
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 16:22   #81
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Universe Of Wars

Для меня тоже соснул. Особенно если нужна сеть и т.п. Где на сервере том же игровая логика очень чётко фиксирована к участку времени цикла (должно быть чёткое начало цикла, в определённый момент). Если клиенты начинают дельтить, то там уйма гемора всплывает, так что проще всего заюзать фиксацию игрового цикла, с отделением визуализации, например те же партиклы, можно дельтить, или кучу других не синхронизируемых сущностей.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (10.10.2011)
Старый 10.10.2011, 16:51   #82
EvilChaotic
Мастер
 
Аватар для EvilChaotic
 
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений
(для 3,006 пользователей)
Ответ: Universe Of Wars

Сообщение от MoKa Посмотреть сообщение
Дык в игра() у тебя будет как раз обновление положений, и т.п. Получается что снова, позиция будет не корректной. Должно быть:

1. игровая логика с перемещениями и т.п.(..)
2. xUpdateWorld()
3. привязка к физ объектам визуальных элементов, типа камеры и того что на экране должно быть.
4. Render()
5. Draw()
6. Flip()

Вообще делают также разделение рендера и игровой логики, для стабилизации тиков чтобы не делать всякие дельтатайминги и т.п. Но это не всегда вариант..
твиниг, изменяемая скорость игры был еще с самого начала.
Может я тупой и не имею отношения к программированию. Но.
Я ставлю в начало UpdateWorld(), обновляется физика, перемещаются тела, анимация играется и тп. у меня начинают хреново работать шоткаты, если я вверх кидаю логику.
Дальше апдейт логики получаем новые позиции физ тел, на них перемещаем камеру. Все по идее должно быть гладко. Обе фунции закручены в ограничение скорости игры. wtf?
__________________

EvilChaotic About
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 16:55   #83
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Universe Of Wars

Почему не стоит делать синхру через тики:
1. лишние проходы логики за тормозящей графикой добавляют тормозов.
2. при наоборот быстрой графике, всего один проход логики в несколько кадров, как результат загрузка GPU полная, фпс высокий, но ощущения как при среднем фпс т.к. кроме твининга анимации остальное на кадрах будет одинаковое.
3. это просто метод для ленивых.
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
Dream (10.10.2011), moka (10.10.2011)
Старый 10.10.2011, 17:07   #84
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Universe Of Wars

"ощущения как при среднем фпс" не замечал. почему это метод для ленивых - тоже не понял, т.к. дельтатайм куда проще. а что ты предлагаешь?
(Offline)
 
Ответить с цитированием
Старый 10.10.2011, 18:14   #85
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Universe Of Wars

Дельта выглядит проще, но чтобы реализовать нормальную механику игры с учётом возможных лагов, намного сложнее.
Имхо, делать гибриты можно, совмещая, порой это лучше, т.к. нужно чётко фиксировать.
Mr_F_, смотри, у тебя позиция игрока обновляется в логическом цикле. Берём UPS == 30. При FPS 90, у нас будет 3 кадра стоять игрок, а потом за один кадр прыгать к следующей позиции. Это вызовет эффект дёрганья.
При этом я заметил, что не все люди способны увидеть это, менее половины, но способны и весьма бросается в глаза. Разница между плавным, и такими дёргами ощутима большинством.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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