Стриминг

Поделись знанием:
Перейти к: навигация, поиск
К:Википедия:Статьи без источников (тип: не указан)

Стриминг (англ. streaming) — в компьютерных играх подгрузка игровых данных, которые «скоро потребуются», прямо по ходу игры. Например: как только игровой персонаж приближается к городу, в фоновом режиме загружаются модели и текстуры города.





Потребность в стриминге

При повышении линейной плотности записи дискового накопителя в n раз (при тех же геометрических размерах, количестве головок и частоте вращения) в те же n раз повысится и скорость чтения; объём же увеличится в n² раз. Другими словами, при увеличении объёма жёсткого диска в 100 раз его скорость повысится всего в 10 раз. Поэтому загрузка игр, антивирусное сканирование, дефрагментация, форматирование и т. д. на современных (2009) компьютерах длится куда дольше, чем на компьютерах 10-летней давности. Хотя в играх эта разница несколько «скрадывалась» сжатием игровых данных, цифры налицо: Warcraft II на мощных компьютерах своего времени загружался за одну-две секунды; Warcraft III на мощных компьютерах своего времени — примерно за полминуты.[1]

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

Помимо решения проблемы долгой загрузки, стриминг позволяет делать огромные уровни, не умещающиеся целиком в памяти. Это важно для телевизионных приставок, у которых памяти, как правило, меньше, чем у ПК своего времени: например, у первой PlayStation было всего 4 мегабайта памяти (включая видеопамять).[2]

Подходы

Программисту приходится решать следующие вопросы.

  • Как загрузить игровые данные таким образом, чтобы пользователь не ощутил замедление.
  • Как не допустить «гонок» между загрузчиком и движком.
  • Что выгружать, что оставлять в памяти, что загружать.
  • Что делать, если нужных данных в памяти не оказалось.
  • Как максимально полно задействовать быстродействие диска.

В каждом из проектов эти вопросы решаются по-своему — в зависимости от соотношения объёмов моделей, текстур, звуков и т. д.

Обычно поступают так. Наиболее низкий уровень детализации графики никогда не выгружается и служит «аварийным» решением, когда соответствующая модель или текстура внезапно потребовалась. Для того, чтобы не было «гонок», после каждого кадра загрузчик синхронизируется с движком, помечая уже загруженные части игры как «доступные». Остаётся только разработать некоторую метрику, которая определяет, насколько скоро текстура или модель будет нужна. Здесь уже шаблонов нет: например, в автосимуляторе трассу можно разбить на некоторое количество секторов и подгружать ближайшие к машине игрока; в шутере — на квадраты. Если игрок приближается к сектору, в котором спрятан гранатомёт, надо полагать, что потребуется не только модель гранатомёта, лежащего на уровне, но и модель того же гранатомёта в руках игрока, модель летящей гранаты, звуки стрельбы гранатомёта и эффекты взрыва.

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

Напишите отзыв о статье "Стриминг"

Примечания

  1. Длительная, почти в минуту, загрузка Doom обусловлена неоптимальностью движка, подробнее см. Движок Doom; другие игры, как Quake или Duke Nukem 3D, укладываются в статистику.
  2. PlayStation очень удобен для сравнения с ПК: у более старых приставок есть ПЗУ картриджа, которого работающий с компакт-диска PlayStation, естественно, лишён.

См. также

Ссылки

  • Роман Лут. [dtf.ru/articles/read.php?id=52134 Стриминг и эффективное чтение с DVD] 4. DTF.ru (6 августа 2008 года). Проверено 22 марта 2011. [www.webcitation.org/66WVIV4MW Архивировано из первоисточника 29 марта 2012].
  • Fredrik Lönn. [www.gamasutra.com/view/feature/1769/streaming_for_next_generation_games.php?print=1 Streaming for Next Generation Games] (англ.) 3. Gamasutra (30 ноября 2006 года). Проверено 22 марта 2011. [www.webcitation.org/66WVJHfcu Архивировано из первоисточника 29 марта 2012].

Отрывок, характеризующий Стриминг

Наполеон, стоя на кургане, смотрел в трубу, и в маленький круг трубы он видел дым и людей, иногда своих, иногда русских; но где было то, что он видел, он не знал, когда смотрел опять простым глазом.
Он сошел с кургана и стал взад и вперед ходить перед ним.
Изредка он останавливался, прислушивался к выстрелам и вглядывался в поле сражения.
Не только с того места внизу, где он стоял, не только с кургана, на котором стояли теперь некоторые его генералы, но и с самых флешей, на которых находились теперь вместе и попеременно то русские, то французские, мертвые, раненые и живые, испуганные или обезумевшие солдаты, нельзя было понять того, что делалось на этом месте. В продолжение нескольких часов на этом месте, среди неумолкаемой стрельбы, ружейной и пушечной, то появлялись одни русские, то одни французские, то пехотные, то кавалерийские солдаты; появлялись, падали, стреляли, сталкивались, не зная, что делать друг с другом, кричали и бежали назад.
С поля сражения беспрестанно прискакивали к Наполеону его посланные адъютанты и ординарцы его маршалов с докладами о ходе дела; но все эти доклады были ложны: и потому, что в жару сражения невозможно сказать, что происходит в данную минуту, и потому, что многие адъютапты не доезжали до настоящего места сражения, а передавали то, что они слышали от других; и еще потому, что пока проезжал адъютант те две три версты, которые отделяли его от Наполеона, обстоятельства изменялись и известие, которое он вез, уже становилось неверно. Так от вице короля прискакал адъютант с известием, что Бородино занято и мост на Колоче в руках французов. Адъютант спрашивал у Наполеона, прикажет ли он пореходить войскам? Наполеон приказал выстроиться на той стороне и ждать; но не только в то время как Наполеон отдавал это приказание, но даже когда адъютант только что отъехал от Бородина, мост уже был отбит и сожжен русскими, в той самой схватке, в которой участвовал Пьер в самом начале сраженья.
Прискакавший с флеш с бледным испуганным лицом адъютант донес Наполеону, что атака отбита и что Компан ранен и Даву убит, а между тем флеши были заняты другой частью войск, в то время как адъютанту говорили, что французы были отбиты, и Даву был жив и только слегка контужен. Соображаясь с таковыми необходимо ложными донесениями, Наполеон делал свои распоряжения, которые или уже были исполнены прежде, чем он делал их, или же не могли быть и не были исполняемы.
Маршалы и генералы, находившиеся в более близком расстоянии от поля сражения, но так же, как и Наполеон, не участвовавшие в самом сражении и только изредка заезжавшие под огонь пуль, не спрашиваясь Наполеона, делали свои распоряжения и отдавали свои приказания о том, куда и откуда стрелять, и куда скакать конным, и куда бежать пешим солдатам. Но даже и их распоряжения, точно так же как распоряжения Наполеона, точно так же в самой малой степени и редко приводились в исполнение. Большей частью выходило противное тому, что они приказывали. Солдаты, которым велено было идти вперед, подпав под картечный выстрел, бежали назад; солдаты, которым велено было стоять на месте, вдруг, видя против себя неожиданно показавшихся русских, иногда бежали назад, иногда бросались вперед, и конница скакала без приказания догонять бегущих русских. Так, два полка кавалерии поскакали через Семеновский овраг и только что въехали на гору, повернулись и во весь дух поскакали назад. Так же двигались и пехотные солдаты, иногда забегая совсем не туда, куда им велено было. Все распоряжение о том, куда и когда подвинуть пушки, когда послать пеших солдат – стрелять, когда конных – топтать русских пеших, – все эти распоряжения делали сами ближайшие начальники частей, бывшие в рядах, не спрашиваясь даже Нея, Даву и Мюрата, не только Наполеона. Они не боялись взыскания за неисполнение приказания или за самовольное распоряжение, потому что в сражении дело касается самого дорогого для человека – собственной жизни, и иногда кажется, что спасение заключается в бегстве назад, иногда в бегстве вперед, и сообразно с настроением минуты поступали эти люди, находившиеся в самом пылу сражения. В сущности же, все эти движения вперед и назад не облегчали и не изменяли положения войск. Все их набегания и наскакивания друг на друга почти не производили им вреда, а вред, смерть и увечья наносили ядра и пули, летавшие везде по тому пространству, по которому метались эти люди. Как только эти люди выходили из того пространства, по которому летали ядра и пули, так их тотчас же стоявшие сзади начальники формировали, подчиняли дисциплине и под влиянием этой дисциплины вводили опять в область огня, в которой они опять (под влиянием страха смерти) теряли дисциплину и метались по случайному настроению толпы.