Трохи про DirectX
Поки в природі не існувало DirectX, більшість ігрових програм для персональних комп’ютерів працювали під управлінням Ms Dos.
Щоб запустити такі ігри, користувачам доводилося боротися, в прямому сенсі цього слова, з конфігураційними файлами системи, такими як AUTOEXEC.BAT, CONFIG.SYS і з настройками драйверів, типу EMM386.EXE і т. д… лише заради того, щоб отримати кілька додаткових вільних байт, з доступних 640Кб базової пам’яті, навіть, якщо на комп’ютері встановлено 16Мб оперативної пам’яті.

Життя розробників програмного забезпечення була не цукор, тому, що для подолання обмеження в 640Кб, доводилося використовувати різні драйвери для кожного різновиду відеокарт і звукових карт.

З виходом у світ технології компанії Microsoft DirectX для Windows 95 всі зазначені вище проблеми стають історією.

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

Але розробка ігор з використанням DirectX залишається непростим завданням. Іноді, все ще досить важко знайти грамотну документацію і початківці розробники витрачають багато часу на пошук знань про те, як використовувати такі нововведення, як DirectDraw, Z-буфер або DirectSound, а також багато інші складні, але корисні інструменти.

Мета цієї статті — допомогти розробникам, що використовують DirectX, за рахунок декількох порад, заснованих на моєму власному досвіді написання програм. Звичайні користувачі зможуть отримати з цього огляду загальне уявлення про те, що таке DirectX.

Якщо Вам потрібна додаткова документація, то її Ви тут не знайдете, однак, кілька корисних порад і прикладів можна отримати, слідуючи по посиланнях нижче.

Поради з програмування ігор для Windows 95
Приклади прграммирования з використанням DirectDraw
Що таке DirectX ?
DirectX являє собою набір з декількох API (application programming interface — інтерфейс прграммирования додатків), що дозволяють розробникам ігор та інших інтерактивних додатків отримувати доступ до специфічних функцій апаратного забезпечення, без необхідності написання апаратно-залежного програмного коду. DirectX заснований на наборі інтерфейсів COM або класів. СОМ розшифровується як Component Object Model (Компонентна об’єктна Модель), і являє собою специфікацію інтерфейсу, у якому функції викликаються через покажчики. Таким чином, COM об’єкти можуть описуватися такими мовами програмування, як C/C++, Delphi або навіть Basic. Всі приклади, посилання на які була вище, написані на C++, т. к. я користуюся саме цією мовою. Інтерфейс COM використовується не тільки в DirectX, але і на рівні операційної системи в якості моделі об’єктів і є серцем однією з найбільш широко застосовуваної технології — OLE (Objects Linking and Embedding — зв’язування та вбудовування об’єктів).

Остання версія DirectX має порядковий номер 5.0 і включає в себе наступні API:

DirectDraw — Забезпечує доступ до апаратних засобів, що відповідають за зображення. Пропонується можливість працювати з двовимірною графікою і безпосередньо управляти відеопам’яттю, оверлеями та зміною відеосторінок.
DirectSound — Як видно з назви, цей компонент забезпечує аппаратнонезависимый інтерфейс відтворення звуку. DirectSound дозволяє програмам повністю використовувати можливості апаратних компонентів, що забезпечують роботу зі звуком, наприклад, мікшування без часових затримок.
DirectInput — Забезпечує аппаратнонезависимый введення даних в систему в режимі реального часу. Події, оброблювані DirectInput, формуються Клавіатурою, Мишкою і Джойстиком.
DirectPlay — Являє собою незалежний протокол для здійснення зв’язку між комп’ютерами. Може застосовуватися для багатокористувацьких ігор, зв’язок у яких здійснюється через Інтернет, локальну мережу або пряме послідовне з’єднання за допомогою кабелю. Інтерфейс, іменований DirectPlay Lobby, дозволяє створювати онлайнові місця зустрічей в інтернет, потрапляючи в які, безліч людей можуть об’єднуватися і спільно брати участь в іграх.
Direct3D — Ця підсистема створення тривимірних графічних зображень. Складається з API низького рівня, який забезпечує кілька базових можливостей створення зображення, і API високого рівня, який здійснює комплекс операцій, що утворюють зображення.
DirectX 5.0 SDK (Software Development Kit — Комплект розробника програм), доступний для завантаження з сайту Microsoft за адресою www.microsoft.com/mediadev.

Довідник з DirectX для початківців
Якщо Ви не є розробником ігрових програм, але Вам подобається грати на персональному комп’ютері, Ви точно повинні були чути про DirectX. Чому?

Бо DirectX широко використовується в сучасному поколінні комп’ютерних ігор. Кожна іграшка, що має логотип «for Windows 95», перш ніж запуститися на Вашому комп’ютері, вимагає наявності встановленого в системі DirectX. Ось чому, DirectX це не просто «щось для програмістів», це принципово необхідна щось для гравців.

У теж час, якщо якась із таких сучасних ігор встановлена на Вашому комп’ютері, значить DirectX теж встановлений, і Ви можете дізнатися про це, звернувши увагу на декілька нових файлів, які з’явилися в каталозі WindowsSystem, наприклад DDRAW.DLL або DPLAY.DLL. Це компоненти DirectX, які використовуються всіма іграми, встановленими у Вашій системі і працюють через інтерфейс DirectX.

DirectX використовується для обробки подій, які повинні відбуватися в кожній грі, таких, як виведення зображення на екран або зчитування вхідних даних з клавіатури, миші або джойстика.

З появою все більшої і більшої кількості ігор, що використовують DirectX, користувачі помічають деякі відмінності, наприклад:

Поліпшені багатокористувацькі ігри
Причина, чому хороших багатокористувацьких ігор не так багато, в тому, що вони дуже складні у створенні. DirectPlay робить створення таких ігор менш болючою проблемою і спрощує їх установку. Ось чому, ми вправі очікувати збільшення кількості нових класних багатокористувацьких ігор.
Чарівні 3D ігри
Ви знаєте, чому тривимірні ігри йдуть на Вашому комп’ютері так повільно? Причина в тому, що зображення 3D об’єктів на плоскому екрані вимагає величезного количиства математичних обчислень, якщо ці обчислення здійснюються центральним процесором системи, то такі процеси обчислюються занадто повільно, так як процесор виконує ще й інші системні операції. Одним з рішенням цієї проблеми є покладання завдань по обробці тривимірних процесів на спеціальні 3D видеоакселлераторы.
Такі картки є у продажу, але багато гри не використовують апаратні можливості спеціалізованих плат, тому що творці гри повинні написати відповідний драйвер, а іноді переписати заново цілі фрагменти коду, для того, щоб використовувати переваги апаратної обробки 3D. Компонент Direct3D, вперше включений у другу версію DirectX, забезпечує стандарт на використання відеоадаптерів, що забезпечують апаратну 3D акселлерацию, і його застосування, безсумнівно, змусить тривимірні іграшки працювати швидше.

Крім цього, Direct3D емулює програмну реалізацію 3D для комп’ютерів, не оснащених апаратною підтримкою обробки тривимірної графіки.

Спрощена установка програм
Ігри, відповідні специфікації DirectX, повністю використовують можливості, надані інтерфейсом Windows 95, і їх установка проста, як інсталяція Вашого улюбленого текстового процесора.
Це означає, що система більше не буде питати Вас про те, яке переривання використовує звукова карта або, хто є виробником відеоадаптера.
Звичайно, існує ймовірність несумісності вашого апаратного забезпечення з драйверами DirectX, однак, з часом, цих проблем не буде, так як всі сучасні компоненти комп’ютера надходять в продажду вже сертефицированными на відповідність стандарту DirectX.

Зображення в іграх стало набагато краще
Більшість ігор, написаних для DOS, використовують низька роздільна здатність зображення, зазвичай 320×240, це пояснюється тим, що такий дозвіл максимально для стандартних VGA відеокарт, що підтримують відображення тільки 256 кольорів.
Для того, щоб використовувати більш високу, а отже більш якісне, дозвіл, таке, як 640×480 або 800×600, розробникам необхідно писати ігри, які працюють з відеокартами стандарту Super VGA, а це означає збільшення обсягів робіт.
DirectX підтримує VGA і SVGA відеорежими при 64К кольорів (Hi-color) без додаткових витрат ресурсів. З кожним днем зростає продуктивність відеоадаптерів, отже DirectX гри будуть виглядати все більш реалістично і привабливо.