Можно ли считать игры системами реального времени? - PullRequest
7 голосов
/ 26 апреля 2010

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

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

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

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

Ответы [ 9 ]

16 голосов
/ 26 апреля 2010

Из Википедия ,

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

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

Еще одна мысль об ИИ в FPS-е. Вероятно, можно было бы рассматривать ИИ как «отказавшую систему», если ему не удается вернуть результаты в течение достаточного времени и, следовательно, он останавливается.

5 голосов
/ 26 апреля 2010

Да, но с большим акцентом на soft в реальном времени.

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

1 голос
/ 26 апреля 2010

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

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

0 голосов
/ 03 ноября 2013

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

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

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

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

0 голосов
/ 26 апреля 2010

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

Чтобы вписать все в 16,6 мс, мы часто выполняем работу с более низкой точностью в местах, где, по-видимому, это не меняет результат, но дает результат (как измеряется «изображениями, мигающими на экране»). ) которые немного отличаются от того, какими они были бы, если бы мы использовали меньше ярлыков. Очевидные сочетания клавиш верхнего уровня - это сглаживание и глубина резкости, более тонкие и менее очевидные для наблюдателя - это изменения в «lo-fi» интеллекте врагов, если у нас их много на экране. Например. В некоторых из первых игр, над которыми я работал, у нас не было времени обновить «взгляд на мир» у всех, поэтому мы провели круговую проверку врагов, а также чередовали персонажа игрока с врагами. Таким образом, если присутствовало пять врагов, для обновления каждого потребовалось бы десять кадров (так как игрок обновлялся каждый второй кадр). Это не делало анимацию прерывистой или чего-то в этом роде, поскольку мы по-прежнему выполняли правильные анимации, но принятие решений врагами, возможно, основывалось бы на старых или недействительных в настоящее время данных.

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

Итак, выполняются ли расчеты с низким коэффициентом резерва, чтобы соответствовать вашему времени приемлемым компромиссом для прозвища в реальном времени?

0 голосов
/ 26 апреля 2010

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

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

0 голосов
/ 26 апреля 2010

«Реальное время» - это нечеткая категория. Точнее говорить о системах реального времени в масштабе «твердости». Характеристики, которые усложняют систему реального времени:

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

Следовательно, хотя технически игра в шахматы соответствует определению «реального времени», на практике она настолько мягкая, что этот термин на самом деле не применяется. Другой крайностью будет авионика «летать по проводам» в истребителе, где несоблюдение требований по срокам может привести к падению самолета.

0 голосов
/ 26 апреля 2010

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

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

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

0 голосов
/ 26 апреля 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...