Неуправляемый directx

(Играем и обсуждаем игры)

Модератор: Buxyr

Аватара пользователя
Buxyr

Коммандо Активист Друг форума Кот Леопольд
Рейнджер
Сообщения: 451
Рег. Вс май 02, 2010 10:07 am
Награды: 4
Репутация: 429
Вклад в проект: 27
Откуда: --
Поблагодарили: 6 раз

Неуправляемый directx

Сообщение Buxyr » Пт июн 18, 2010 12:31 pm

ЧТО .NET ГЕЙМДЕВЕЛОПЕРАМ ГОТОВИТ
НЕ СЕКРЕТ, ЧТО ТЕХНОЛОГИЯ .NET ПОЯВИЛАСЬ ИЗ-ЗА ЗАВИСТИ MS УСПЕХУ JAVA: «КАК ЖЕ ТАК? В МОБИЛЬНЫХ ТЕЛЕФОНАХ НЕ СТОЯТ ОКНА И РАБОТАЮТ ПРОГРАММЫ НА КАКОЙ-ТО JAVA?! КАК ЖЕ ПРЕДПРИЯТИЯ СТРОЯТ СЕРВИСЫ НА ЧУЖОЙ ТЕХНОЛОГИИ J2EE?!!» И ВОТ, ВЫПУСКАЯ ИЗ БУТЫЛКИ ДЖИНА ПО ИМЕНИ .NET, MS СОЗДАЛА СЕРЬЕЗНУЮ ПРОБЛЕМУ ДЛЯ КОНКУРЕНТОВ В ВИДЕ БИБЛИОТЕКИ MANAGED DIRECTX (УПРАВЛЯЕМЫЙ DIRECTX). ДЕЙСТВИТЕЛЬНО ЛИ БЫЛ СОЗДАН СЕРЬЕЗНЫЙ АРГУМЕНТ? ПОПРОБУЕМ РАЗОБРАТЬСЯ

Кто таков?
Как известно, Managed DirectX — это поддержка DirectX из управляемого кода, то есть из программ, написанных на платформе .NET и для нее. Изначально эта технология даже называлась DirectX .NET, но позже была переименована в Managed DirectX.

Первый раз я услышал о новом DirectX примерно в 2003 году. Информация, которая просачивалась в интернет, была обрывочной, а на официальном сайте появилась бета-версия управляемого DirectX. По всей видимости, эта библиотека была написана на C# на базе устаревшего к тому времени DirectX8. Я не видел эту библиотеку в действии, потому что в те времена пользовался телефонным подключением к интернету и был не в состоянии качать большой файл. Судя по отзывам, библиотека была провальной и тормозила как ржавый «Запорожец» по сравнению с «Мерседесом» (классическим DirectX).

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

Первый релиз
И вот перед самым появлением DirectX 9 мы узнаем, что MS рассылает бета-версию обновленной библиотеки Managed DirectX, а в девятую версию DX SDK должен попасть полный вариант. Бета-версию мне таки не удалось увидеть, но когда на жестком диске появился установочный файл DX SDK 9.0, то в мои глаза бросилось прежде всего наличие в папке Help двух файлов помощи directx9_с.chm и directx9_m.chm. Первый файл описывает классический DirectX для С++, а второй — DirectX 9.0 for Managed Code или просто Managed DirectX.

После установки DX SDK сразу заглядываем в директорию Samples и видим директории C# и VB.NET с примерами использования DirectX для соответствующих языков. Да, если раньше создавать игры на VB было проблематично, то с помощью VB.NET — милости просим, легко и непринужденно создавай любое приложение DirectX.

Поддержка
Библиотека Managed DirectX разделена на следующие пространства имен:

MICROSOFT.DIRECTX.DIRECT3D — ИНТЕРФЕЙСЫ ДЛЯ РЕАЛИЗАЦИИ 3D-ГРАФИКИ;
MICROSOFT.DIRECTX.DIRECTDRAW — СТАРЫЕ, НО ОЧЕНЬ ДОБРЫЕ ФУНКЦИИ ДЛЯ РАБОТЫ С 2D-ПОВЕРХНОСТЯМИ И СООТВЕТСТВУЮЩЕЙ ГРАФИКОЙ;
MICROSOFT.DIRECTX.DIRECTSOUND — ИНТЕРФЕЙСЫ ДЛЯ РАБОТЫ СО ЗВУКОМ;
MICROSOFT.DIRECTX.DIRECTINPUT — ИНТЕРФЕЙСЫ ДЛЯ РАБОТЫ С УСТРОЙСТВАМИ ВВОДА.
Это основные пространства, и уже становится ясно, что у нас есть все необходимое для создания игр. Кроме того, в managed DirectX есть интерфейсы для реализации средств безопасности и поддержка сети.

Все эти интерфейсы можно использовать в следующих языках программирования:

MICROSOFT VISUAL C#;
MICROSOFT VISUAL BASIC .NET;
MICROSOFT VISUAL C++;
MICROSOFT JSCRIPT .NET.
Самое интересное — последний язык. Судя по всему, Managed DirectX планируют использовать в интернете для создания сервисов с поддержкой 3D-графики!

Тест производительности
Попробуем провести достаточно простой тест производительности. Так как примеры, которые идут в поставке с DX SDK, схожи по выполняемым функциям и притом выводится FPS, нам будет достаточно сначала запустить на одном компьютере пример на классическом DirectX, а потом — с использованием Managed DirectX. В качестве примера возьмем плавающего дельфина DXSDK\Samples\C#\Direct3D\DolphinVS.

На ноутбуке Pentium M 1.7 (видео от ATI Mobility Radeon 9700) получились следующие результаты FPS для плавающего дельфина: 1) программа на C# с использованием Managed DirectX в среднем показала 540 FPS; 2) программа на C с использованием классического DirectX в среднем показала 620 FPS.

Разница в 80 FPS (в данном случае — примерно 15%) оставляет двусмысленное впечатление. С одной стороны, разработчики хорошо постарались и для управляемого кода получилась достаточно высокая производительность. Не забываем, что код C# выполняется как бы в виртуальной машине. С другой стороны, падение производительности на 15% неоправданно, я бы просто зажал их. Лучше потратить драгоценные потерянные такты процессора на что-то пополезнее.

И все же для Managed DirectX найдется применение в простых играх, а разработчики на таких языках, как C# и VB.NET, будут очень довольны. Раньше создание игр на VB было сущей каторгой!

Источники информации
Как все уже заметили, пока распространилось очень мало информации о Managed DirectX, потому что технология новая и многие относятся к ней с опаской. Самый лучший источник — это блог Тома Миллера. Том является одним из разработчиков API для Managed DirectX. Кто как не он знает все тонкости и последние новости?

Кроме того, Том написал даже целую книгу, в которой подробно описал Managed DirectX девятой версии. Книга посвящена разработке графики и игр и называется Managed DirectX 9 Graphics and Game Programming (Sams Publishing, 2004). В России эта книга была переведена в издательстве «КомБук», причем название книги и ее обложка не изменились.

Субъективные размышления
Технология Managed DirectX — мощное средство создания игр. Представь себе игру, написанную на C# в сочетании с Managed DirectX. По заявлениям MS, программы .NET могут выполняться на любой платформе при наличии соответствующего .NET Framework, следовательно, мы получаем межплатформенную игру. Однако с последним есть серьезные проблемы. Во-первых, не существует .NET, нормально портированной на системы, отличные от Windows. Есть лишь попытки сделать что-то под Linux, но они неработоспособны на все 100%.

Как мне кажется, нормальные люди вообще не будут портировать DirectX, потому что не хотят нарываться на серьезные проблемы. Managed DirectX использует библиотеки неуправляемого DirectX, портировать который - мегасложно из-за применения технологии COM. Одну эту технологию много раз пытались перенести на Linux, половина попыток закончилась неудачно, а остальные накрылись медным тазом. То же самое может ожидать Managed DirectX. Если вспомнить, что есть еще такие ОС, как Sun, FreeBSD, MacOS, в которые не ступала нога .NET, то все поймут, что межплатформенность — мечта, которая может и не сбыться.

На первый взгляд, вырисовывается страшная картина. Это мое, субъективное мнение, но оно основано на подтвержденных фактах. С другой стороны, MS уже вложила сумасшедшие соответствующие деньги, и вероятность провала всей технологии .NET стремится к нулю.

Итого
Что же ожидает технологию Managed DirectX? Я думаю, она будет развиваться, но только в сегменте стационарных компьютеров и мобильных устройств с ОС от Microsoft. Так как наладонники и вкарманники пока не обладают графическими возможностями ATI и GeForce, развитие будет протекать медленно и печально. Я отслеживаю это развитие и одним глазком подглядываю в планы, чтобы в случае чего вскочить на коня и начать разработку игр на этой технологии. Сейчас же…наверное, нет смысла тратить время на подобное, так как Managed DirectX работает только на стационарах, на которых есть быстрый классический DirectX. Как только появятся мобильники с полноценной поддержкой, сразу можно будет броситься изучать Managed, благо он не очень сложен и не сильно отличается от классики

МЕТОДЫ MANAGED DIRECTX ЧАЩЕ ВСЕГО ИМЕЮТ ТАКИЕ ЖЕ ИМЕНА, КАК И В КЛАССИЧЕСКОМ DIRECTX. ДАЖЕ ИМЕНА И КОЛИЧЕСТВО ПАРАМЕТРОВ ЧАСТО СХОЖИ — УДАЛЕНЫ ТОЛЬКО ОТКРОВЕННО СТАРЫЕ И НЕИСПОЛЬЗУЕМЫЕ ПАРАМЕТРЫ

БУДУЩЕЕ MANAGED DIRECTX ПРИЗРАЧНО, НО ЕСЛИ ЕГО СУМЕЮТ ПОРТИРОВАТЬ НА РАЗНЫЕ ПЛАТФОРМЫ, ТО МЫ СМОЖЕМ СОЗДАТЬ QUAKE, КОТОРЫЙ БУДЕТ РАБОТАТЬ КАК В LINUX, ТАК И В WINDOWS

ФЛЕНОВ МИХАИЛ AKA HORRIFIC (http://WWW.VR-ONLINE.RU)


Искусство это жизнь

Вернуться в «Игромир»

 

 

cron