forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Universe Of Wars (http://forum.boolean.name/showthread.php?t=14564)

moka 10.10.2011 15:38

Ответ: Universe Of Wars
 
Цитата:

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

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

H@NON, это не дельта тайминг, а разделение игрового цикла от рендера, и фиксация количества тактов в секунду. Как и говорил, этот вариант не всегда может подойти под игру.не читай, сразу отвечай - я балда.

H@NON 10.10.2011 15:43

Ответ: Universe Of Wars
 
разделение игрового цикла от рендера это тайм твиннинг(обновляем участок логики столько раз на сколько отстали от требуемого фпс), а это дельта тайминг(умножение параметров на затраченное время с прошлого такта).

moka 10.10.2011 15:45

Ответ: Universe Of Wars
 
Ой, слишком быстро прочёл что там у тебя..
ТЕМУ НЕ ЧИТАЙ, СРАЗУ ОТВЕЧАЙ..
Уху, это дельта..

Mr_F_ 10.10.2011 15:59

Ответ: Universe Of Wars
 
Цитата:

разделение игрового цикла от рендера это тайм твиннинг(обновляем участок логики столько раз на сколько отстали от требуемого фпс), а это дельта тайминг(умножение параметров на затраченное время с прошлого такта
кстати по моему опыту, дельтатайм соснул у фиксед фпса с твинингом.
т.к. дельта основывается на прошлом кадре, при изменении фпс случаются рывки, лечится только вертикальной синхронизаций и только в случае что фпс не ниже скорости обновления моника. твинингом гораздо плавнее выходит даже на 30 фпс.

H@NON 10.10.2011 16:03

Ответ: Universe Of Wars
 
Просто дельту ограничивай по максимальному лимиту, будет плавно

moka 10.10.2011 16:22

Ответ: Universe Of Wars
 
Для меня тоже соснул. Особенно если нужна сеть и т.п. Где на сервере том же игровая логика очень чётко фиксирована к участку времени цикла (должно быть чёткое начало цикла, в определённый момент). Если клиенты начинают дельтить, то там уйма гемора всплывает, так что проще всего заюзать фиксацию игрового цикла, с отделением визуализации, например те же партиклы, можно дельтить, или кучу других не синхронизируемых сущностей.

EvilChaotic 10.10.2011 16:51

Ответ: Universe Of Wars
 
Цитата:

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

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

Вообще делают также разделение рендера и игровой логики, для стабилизации тиков чтобы не делать всякие дельтатайминги и т.п. Но это не всегда вариант..

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

SBJoker 10.10.2011 16:55

Ответ: Universe Of Wars
 
Почему не стоит делать синхру через тики:
1. лишние проходы логики за тормозящей графикой добавляют тормозов.
2. при наоборот быстрой графике, всего один проход логики в несколько кадров, как результат загрузка GPU полная, фпс высокий, но ощущения как при среднем фпс т.к. кроме твининга анимации остальное на кадрах будет одинаковое.
3. это просто метод для ленивых.

Mr_F_ 10.10.2011 17:07

Ответ: Universe Of Wars
 
"ощущения как при среднем фпс" не замечал. почему это метод для ленивых - тоже не понял, т.к. дельтатайм куда проще. а что ты предлагаешь?

moka 10.10.2011 18:14

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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot