Можно ли считать игры системами реального времени?

Я читал о системах реального времени и, как они работают и т. д. Я также просматривал статью в Википедии, в которой говорилось, что игра в шахматы с таймером на ход может считаться системой реального времени, потому что программа должна вычислить ход за это время. Как насчет других игр? Как мы знаем, игры обычно пытаются работать на 25 + FPS, можно ли считать мягкой системой реального времени, так как если она падает ниже 25 (я использую 25 в качестве предварительно определенного порога btw), это не конец света, просто попасть на представление, которое мы хотели?

также-игры имеют события, которые они должны обрабатывать, а также. Пользователь использует клавиатуру / мышь, и система должна ответить на эти события соответственно в течение (снова) заранее определенного времени, прежде чем игра будет считаться "неудачной".

О, и я говорю один игрок на данный момент, чтобы держать вещи простыми.

похоже, что игры соответствуют мягким критериям системы реального времени, но я хотел бы знать, не пропущу ли я что-нибудь... спасибо.

9 ответов


с Википедия,

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

таким образом, я бы сказал, что эти игры FPS определенно являются примерами мягких систем реального времени. Это нормально, если некоторые кадры отбрасываются. Тем не менее, Википедия также указывает, что шахматный движок, который не может дать ход в отведенные сроки, считается критическим сбоем, и, следовательно, это сложная система реального времени.

другой мысль об ИИ в FPS-es. Вероятно, можно рассматривать ИИ как "неисправную систему", если ему не удается вернуть результаты за достаточное время и, следовательно, в конечном итоге замерзает.


да, но с большим упором на софт в режиме реального времени.

быть в реальном времени не так много о том, чтобы быть быстрым - это просто то, что получение результата "достаточно скоро" является частью определения этого результата быть правильным.


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

"Interactive" будет применимым словом. Что касается видеоигр, то "FPS" фактически стал термином, используемым для классификации таких программ, которые характеризуются циклом многократного обновления графики и расчета игровой механики.


на самом деле я не думаю, что игры действительно системы реального времени. На самом деле большинство из них довольно инвариантны к расписанию, особенно во время загрузки.

когда вы сидите и смотрите на панель загрузки, система увязает с пропусками кэша и, как правило, связана с вводом-выводом. И все находят это вполне приемлемым.

на самом деле работает, конечно, вы можете рассмотреть игру в режиме реального времени. Но если игра становится I / O связанной из-за загрузки новой текстуры на лету, и снова люди находят это приемлемым, если это случается достаточно редко. То же самое для пошаговых игр, когда вы ждете очереди компьютера.

вещи становятся еще более запутанными, когда вы думаете о многопользовательских играх. Особенно MMO, которые работают "в прошлом", чтобы замаскировать проблемы с задержкой. Все, что делает это маскировка, как не в реальном времени игра на самом деле.

edit: мое определение системы реального времени-это система, которая использует каждый цикл процессора для значимой работы. Если система запланирована из-за ввода/вывода, например, это не система реального времени.


"Реальное время" является нечеткой категорией. Точнее говорить о системах реального времени по шкале "жесткости". Характеристики, которые делают систему реального времени сложнее:

  • ограниченная задержка (крайние сроки)
  • ограниченное дрожание (т. е. изменение времени отклика)
  • последствия несоблюдения сроков и возможность системы "отказоустойчивости", если сроки пропущены или система выходит из строя полностью.
  • короткие сроки. Системы реального времени обычно должны реагировать в течение секунды, и большинство в пределах 100 мс.

следовательно, хотя шахматная игра технически соответствует определению "реального времени", на практике она настолько мягкая, что термин на самом деле не применяется. На другой крайности будет" летать по проводам " авионики в истребителе, где несоблюдение требований времени может привести к крушению самолета.


Принц Персии, работающий на моем x386, казался мне реальным временем без заметных задержек. Однако, если бы условия были не подходит, производительность, безусловно, ухудшилась бы с видимыми задержками, и, конечно, в игре не было никаких гарантий производительности для таких случаев.

для игры, чтобы быть действительно в реальном времени, это не может быть просто игра. Он должен взять на себя управление оборудованием, ОС, доступными ресурсами и определить условия, при которых эти гарантии являются действительными. Я не думаю, что есть какие-то игры, которые идут на этом участке.

хотя я бы частично согласился с мягким определением в реальном времени. Не думаю, что какие-либо игры публикуют какие - либо показатели SLA, но делают все возможное, чтобы быть в режиме реального времени в большинстве случаев-это в их интересах. Тем не менее, и определения отдельно, большинство игровых консолей - XBox, PS[x], Wii и т. д. оптимизированы для в реальном времени и выполнить это. Может быть очень мало случаев, когда он падает на производительность, например, когда комнатная температура приближается к точке кипения, но это относится к большинству так называемых систем реального времени. Для их оптимальной работы в режиме реального времени необходимо выполнить определенный набор условий, иначе ситуация ухудшится.


Я бы описал игры как жесткие системы реального времени. Возьмите стрелка - если вы не стреляете в врага, прежде чем он стреляет в вас, возможность стрелять в него бесполезна, и вы проиграете. Вы можете провести аналогичные аналогии для многих других типов игр. Любая игра, в которой игрок играет в режиме реального времени, может быть описана таким образом.

возможно, их реализация не сложна в режиме реального времени, но играть в них обязательно.


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

чтобы поместить все в 16.6 ms, мы часто будем делать работу с более низкой точностью в местах, где она предположительно не изменяет результат, но она дает результат (измеряемый "изображениями, мигающими на экране"), которые тонко отличаются от них, если бы мы взяли меньше ярлыков. Очевидный высший уровень ярлыки сглаживают и глубину резкости, более тонкие и менее очевидные для наблюдателя изменения в "lo-fi" интеллекты врагов, если у нас их много на экране. Например. некоторые из первых игр, над которыми я работал, у нас не было времени обновлять "взгляд на мир" каждого, поэтому мы вокруг робинизировали врагов, а также чередовали персонажа игрока с врагами. Поэтому, если бы было пять врагов, потребовалось бы десять кадров, чтобы обновить всех (поскольку игрок обновлялся каждый другие кадры.) Это не сделало анимацию прерывистой или что-то еще, хотя, поскольку мы все еще запускали правильную анимацию, но принятие решений врагами, возможно, будет основано на старых или других теперь недействительных данных.

Как оказалось, это имело интересный эффект, что враги будут делать вещи, как если бы им потребовалось некоторое время, чтобы понять, что происходит. Е. Г. они будут продолжать стрелять в игрока, даже если он был мертв, или они могут занять некоторое время, прежде чем они заметили, что их соотечественники все были убиты, вызвав их испуганное состояние бегства через некоторое время после того, как они решили бы бежать, если бы мы запускали "полную" sim-карту каждое обновление.

Итак-делает расчеты low-rez, чтобы вписаться в ваше время приемлемым компромиссом для прозвища в реальном времени?


Википедия говорит (и это то, чему меня учили в колледже):

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

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

Как вы упомянули, шахматный движок является примером системы реального времени. Однако это часто жесткий применение в реальном времени, потому что превышение результатов контроля времени в автоматической потере и результате вычисления бесполезный.