Game development: Некерований DirectX / Що. 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. Як приклад візьмемо плаваючого дельфіна DXSDKSamplesC # Direct3DDolphinVS.

На ноутбуці 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


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*