Директплей
Эту статью необходимо обновить . ( октябрь 2021 г. ) |
DirectPlay является частью Microsoft от DirectX API . Это библиотека сетевых коммуникаций, предназначенная для разработки компьютерных игр , хотя ее можно использовать и для других целей.
DirectPlay — это программный интерфейс высокого уровня между приложениями и службами связи, который позволяет подключать игры через Интернет , модемную связь или сеть . Он содержит набор инструментов, которые позволяют игрокам находить игровые сессии и сайты для управления потоком информации между хостами и игроками. Он предоставляет приложениям возможность взаимодействовать друг с другом независимо от используемой онлайн-службы или протокола. Он также решает многие проблемы с подключением, такие как трансляция сетевых адресов (NAT).
Как и остальная часть DirectX, DirectPlay работает в COM, и доступ к нему осуществляется через объектной модели компонентов (COM) интерфейсы . По умолчанию DirectPlay использует методы многопоточного программирования и требует тщательного подхода, чтобы избежать обычных проблем с многопоточностью. Начиная с версии DirectX 9, эту проблему можно решить за счет эффективности.
Сетевая модель
[ редактировать ]В основе DirectPlay лежит протокол пользовательских датаграмм (UDP), обеспечивающий быструю связь с другими приложениями DirectPlay. Он использует порты TCP и UDP с 2300 по 2400 и 47624. [1]
DirectPlay находится на уровнях 4 и 5 модели OSI .
- На уровне 4 DirectPlay может выполнять следующие задачи по запросу приложения:
- Упорядочение сообщений, обеспечивающее поступление данных в том же порядке, в котором они были отправлены.
- сообщений Надежность , которая гарантирует гарантированное получение данных.
- сообщений Управление потоком , которое гарантирует, что данные отправляются только со скоростью, с которой получатель может их получить.
- На уровне 5 DirectPlay всегда выполняет следующие задачи:
- Инициирование и завершение соединения.
Интерфейсы
[ редактировать ]- Основными интерфейсами (методами доступа) для DirectPlay являются:
- IDirectPlay8Server, который обеспечивает доступ к сервера . функциям
- IDirectPlay8Client, который обеспечивает доступ к клиента . функциям
- IDirectPlay8Peer, который обеспечивает доступ к одноранговым функциям.
- Вторичные интерфейсы:
- Различные интерфейсы лобби, которые позволяют игрокам находить и готовить игру еще до ее начала.
- Интерфейсы управления потоками, которые позволяют программисту точно настраивать использование ресурсов. Это также позволяет в целом отключить рабочие потоки , чтобы избежать сложных многопоточных проблем за счет снижения скорости реагирования.
- Различные интерфейсы трансляции сетевых адресов (NAT), которые упрощают игрокам, находящимся за маршрутизаторами хостинг игр . Большинство игроков, использующих широкополосное подключение к Интернету, сталкиваются с этой проблемой.
- Различные интерфейсы голосовой связи, известные как DirectPlay Voice , которые упрощают поддержку аудиосвязи и голосового ввода в играх.
- Различные интерфейсы мониторинга очереди, которые позволяют приложению получать информацию о том, сколько данных было отправлено и получено по запросу. Это позволяет приложению уменьшать/увеличивать объем отправляемых данных в соответствии с возможностями получателя.
Голос DirectPlay
[ редактировать ]DirectPlay Voice был представлен в Windows Me как часть DirectX 7.1 для многопользовательских игр. [2] Это API голосовой связи, записи и воспроизведения, который позволяет геймерам использовать голосовой чат в играх, написанных с использованием преимуществ API, через сам сеанс сетевого транспорта DirectPlay.
Текущий статус
[ редактировать ]DirectPlay традиционно был одним из компонентов DirectX, которому уделялось меньше внимания, но в версии DirectX 8 он был серьезно переработан и стал относительно легкой сетевой библиотекой. Однако в рамках презентации XNA компанией Microsoft в 2004 году Microsoft объявила, что DirectPlay будет устаревшим в пользу технологии Games for Windows — Live, уже доступной на Xbox и портируемой для использования на с Windows ПК . DirectPlay будет поддерживаться в библиотеках DirectX DLL на протяжении всего срока службы Microsoft Windows XP, но с осени 2007 г. [3] заголовки и библиотеки — жизненно важные компоненты, если разработчики хотели разрабатывать новые программы, использующие эту технологию, — отсутствовали в DirectX SDK.
В Windows Vista DirectPlay устарел, а DirectPlay Voice и NAT Helper DirectPlay были удалены. [4]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «[MC-DPL4CS]: Протокол DirectPlay 4: поставщики ядра и услуг» .
- ^ «Microsoft DirectX будет использовать технологию голосовой связи в реальном времени» . Центр новостей Майкрософт . 2012-10-23. Архивировано из оригинала 23 октября 2012 г. Проверено 25 января 2020 г.
- ^ «DirectX SDK — (август 2007 г.)» . Центр загрузки Microsoft . Архивировано из оригинала 25 января 2020 г. Проверено 25 января 2020 г.
- ^ Уайт, Стивен. «Часто задаваемые вопросы по DirectX — приложения Win32» . Центр разработки Windows . Архивировано из оригинала 25 января 2020 г. Проверено 25 января 2020 г.
Внешние ссылки
[ редактировать ]- Документация Microsoft DirectPlay
- Microsoft DirectX 9. Последний SDK, поставляемый с заголовками и библиотеками DirectPlay.
Некоторые альтернативные библиотеки, которые служат той же цели, что и DirectPlay.
- HawkNL в Wayback Machine (архивировано 8 июля 2014 г.)
- OpenTNL на Wayback Machine (архивировано 23 апреля 2016 г.)
- Ракнет