Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как получить время в наносекундах - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скорость выполнения, а так же работа с дв. файлами http://www.cyberforum.ru/cpp-beginners/thread613087.html
Здравствуйте. У меня есть несколько вопросов, на которые я уже давненько ищу ответы, а именно : 1) Для таких классов, как vector/set/map и прочих, что быстрее - iterator или ? 2) Тот же...
C++ Односвязный кольцевой список, реализовать Помогите написать и реализовать кольцевой список http://www.cyberforum.ru/cpp-beginners/thread613081.html
Работа со структурой C++
Немогу правильно скоректировать функцию удаления.Место победителей неправильно записываеться т.е удаляя первого победителя то при выводе победителей остануться только 2 и 3 место а 1 уже не будет.И...
Найти ошибку в коде. C++
#include <iostream> using namespace std; int main() { setlocale(0, ""); int c, b, a; //a - первое число; b - второе число; c - выбор операции +, -, /, *, cout << "Введите число от 1 до...
C++ Вещественный массив http://www.cyberforum.ru/cpp-beginners/thread613025.html
Дан вещественный массив А . Определить значения вещественного массива Е по правилу: E=Сумме значений i-ой строки массива А, если А>0 E=0 A<=0 Значение переменной i меняется от 0 до 4.
C++ Найти минимальную длину пути На поверхности планеты, являющейся шаром с радиусом R, заданы две точки со своими широтой и долготой. Найти минимальную длину пути по поверхности этой планеты из одной точки в другую.... подробнее

Показать сообщение отдельно
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.06.2012, 11:06
Цитата Сообщение от The special one Посмотреть сообщение
Игра будет многопользовательская и у каждого игрока перерисовка должна происходить строго через 16.8 мс.
Ещё и сетка на сервачном рендере. А про пинги ты в курсе? А про пропускную способность сети? В зависимости от канала и расстояния вылезут даже пятисекундные паузы, а временами так вообще на любом канале в локалке будут паузы где то по секунде-две, а может и по пол минуты. Элементарно, пять компов, трое юзверей играют, а четвертый вдруг решил на пятный комп отправить файл в пару гигабайт и узким местом стал хаб, через который идёт твой трафик. И хорошо ещё, если на пятый, а не на игровой, тогда хоть можно поставить неблокирующий комммутатор, ему внутренней скорости хватит, чтоб пауза не возникла. А если на один из игровых, то упадёшь больше, чем на пять минут и выйдешь по тайм-ауту.

Добавлено через 14 минут
Цитата Сообщение от The special one Посмотреть сообщение
Я знаю есть игровой двиг написанный на С++ директикс, там можно установить любую частоту смены кадров (20, 60, 70, 120 кадров в секунду). И если я установил, например, частоту 72 кадра в секунду, то на разных компах с разными частотами процессоров игра будет перерисовывать сцену 72 раза в секунду (примерно, хотя я не проверял). Вот как они это сделали? Ладно, буду разбираться, всем спасибо за помощь.
Во-первых можно 72 раза в секунду, нельзя только через 1/72-ю секунды. Два кадра следуют через 1/72, потом третий через 1/144, а четвёртый через 3/144х. За секунду выравнивается на 71-73, но в пределах секунды могут быть паузы и по 2/72, а потом вдруг взлетит выше 144-х герц. 72 - это средняя, а ты пытаешься выровнять каждый интервал, что не возможно. А во-вторых на уровне кода 72 не задаются явно, а получаются и если на уровне интерфейса (считая таковым и API) частоту именно задать, то исполнить на незнакомой машине способен лишь адаптивный алгоритм и делается это не по часам, а детализацией, числом объектов и количеством шагов вперёд, на которые планируют боты. Задал эти параметры, измерил частоту, если не получилось, корректируешь, если ошибся в другую строну, то следующая коррекция не только имеет обратный знак, но и меньше по величине. А если коррекция дала эффект строго меньше половины разницы, по поводу которой выполнялась, то следующая коррекция больше. Я даже на квикбейсике сделал одну прогу, регулировавшую время исполнения пользовательской команды детализацией и расходовавшую примерно 100 миллисекунд на команду на любой машине. От 386-х и если сейчас откопать прогу и пустить на 12-ти ядерном маке, то и там тоже. Не смотря на кратную разницу в быстродействии. И время специально округлял до секунд. То есть единица измерения в десять раз больше периода требуемой частоты.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru