Воскресенье, 26 Января 2020, 18:58

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [323]
Статьи об общих понятиях связанных с созданием игр.
Программирование [74]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [126]
Статьи о программах для создания игр, уроки и описания.
Софт [29]
Различные программы, в том числе в помощь игроделам.
2D-графика [12]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [11]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [131]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [84]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какой ЯП вы знаете?
Всего ответов: 27560
Главная » Статьи » Создание игр

Тотальная интеграция путем выбрасывания ненужных органов (или Поставил я DirectX8)
Тотальная интеграция путем выбрасывания ненужных органов (или Поставил я DirectX8)

Здраствуйте мальчики и девочки. Как вы уже наверное знаете, большой и умный Microsoft (aka ®) выпустил восьмую версию своей библиотеки для программирования игр, а также профессиональных мультимедиа-приложений DirectX под номером 8.

Вот так. Кормите его теперь чем хотите. Докачав последние метры Software Development Kit, я распаковал его в специально подготовленную заранее папочку. Затем проинсталлировал этого гада куда-попало, ну и наконец сел разбираться.

Посмотрев примерчики и сказав "Н-да.... Где-то я уже это видел...." я полез в документацию. Среди бесчисленных килобайтов расписывания какие мы крутые и как это все у нас хорошо, я нашел статейку под заголовком What's New in DirectX 8.0

Интеграция, батенька и еще раз интеграция. То бишь воссоединение народов в едином трудовом порыве. Под жизнеутверждающим утверждением, что наступает новая эра, Microsoft объединяет свои самые важные части DX: DirectDraw и Direct3D в одно целое, которое не долго думая назвало DirectX Graphics. Но простите, после беглого просмотра документации, кое что бросается прямо в глаза. Это кричит и орет одним своим отстутствием! Где DirectDraw????? Нету его. Все, отпрыгался курилка.

То есть он конечно есть, но в виде поддержки предыдущих частей DirectX. Например вы можете использовать объект DirectDraw7 (Тсс... Пока VB-шники не услышали!!! Они то этого не могут!.... =80[] Так что, получается под громкими криками об интеграции MS подразумевало просто выкидывание одной части? Вместо формулы 1+1=1 получилось нечто 2-1=1 Математически, конечно, правильно, но верните нам Blt!

На самом деле MS оставила нам, отсталым, возможность баловаться со спрайтами. Но теперь это у нас происходит через 3D. Мне понравилось фраза "...2D симулируется через 3D."
Радуйтесь! Мы дожили до такого времени, когда симулируется 2D, а не наоборот! В чем тут дело? Ну представьте себе спрайт. Плоский, никому не нужный кусок картинки. Давайте слепим вместе два треугольника, так чтобы получился прямоугльник, натянем на него текстуру - вот вам и спрайт. Пользуйтесь на здоровье.
Особенности такого способа:

Коллосольная скорость рендеринга на хороших машинах с акселераторами
Посредственная скорость 2D на быстрых машинах, но без акселераторов (ну как теперь секретаршам в Принца играться???)
Возможность крутить-вертеть модель-прямоугольник вместе со спрайтом. Это жрет меньше памяти под картинки разных позиций, сберегает время художников
Возможность накладывать на спрайты много разных эффектов типа альфа-блендинга и т.п. как на модели
Многократно возросшая сложность программирования этого псевдо-2D по сравнению с DirectDraw. Всякие там матрицы, кватернионы... Страшно?... А что у нас по математике в институте было?..
Собственно все это можно было делать и во всех предыдущих версиях Direct3D, но тогда это всякими умными вещами типа опостылевшей "интеграции" не называлось!!!!!!!!! А было просто Direct3D.
Вобщем все тут с ними ясно.

Помните такую вещь как Direct3D:Retained Mode? Помните как MS грозилась ее прикрыть, обещая светлое наступление Farengheit'а? Вы не поверите, но D3D:RM остался! Чего-то у них там с силиконами не срослось, ну и чтобы не позориться вытащили на свет божий D3D:RM, немножко отряхнули, тут подмазали, там загладили, назвали все это дело умным словом Direct3DX (ну букв-то мало, а слово придумывать надо) и запустили в производство. Так что у нашего рабочего класса осталась-таки возможность загружать полюбившиеся .x-файлы и натягивать текстуры без всякой там возни с треугольниками, стримингом вершин и тому подобное требухи.

Чего у нас там дальше по плану? DirectSound? А нет больше такого! Знакомьтесь с еще одним гибридом от Microsoft - DirectX Audio. Что они там наваяли с DirectSound - не скажу, сам еще не сильно разобрался. Вобщем решили они объединить его с DirectMusic. Кому и на что вообще сдался последний я не знаю. Вставлять MIDI в коммерческие блокбастеры по моему перестали еще со времен Warcraft (ну был там еще AoE от одного малоизвестного производителя. Наверное они ради него всю затею с DirectMusic провернули). Так же идея с Downloadable Sounds поперхнулась еще в начале тарелки. Обыкновенная трэкерная идея, которая работала еще на Спектруме, сейчас аппаратно не поддерживается даже на моей Ямахе XG. А оставлять MS-драйверы от Виндов ради совтверной поддержки непонятно чего????..... Ну вы меня поняли smile

А кто-то там кажется встроенный EAX обещал? Кстати в DirectX Audio оставили предыдущую градацию на DirectSound и DirectMusic, так что никто никуда таинственно не пропадал.

Больше, на счастье, Microsoft ничего интегрировать не стал, оставив DirectInput и DirectPlay существовать по отдельности. Наверное из-за поло... ой!... программной несовместимости.... smile

В DirectInput у нас аж четыре (!) нововведения:

Action Mapping - я не очень понял, но по моему теперь мы на уровне DX сможем создавать виртуальные устройства для каких-либо физических устройств скажем джойстика. То-есть теперь мы будем не отслеживать положение оси X джойстика и в соответсвие с ней рулить вправо или влево, а создадим виртуальное устройство DIAXIS_DRIVINGR_STEER и будем получать информацию с него.
Нафига козе баян.......
Объект DirectInput теперь представлен классом DirectInput8
Целых два (!!) новых свойства клавиатуры DIPROP_KEYNAME и DIPROP_SCANCODE, которые получают соответственно локализованное имя клавиши и скан-код клавиши.
Какая-то реорганизация в разделе джойстика, при которой положение оси Z теперь можно получать не из пары отдельных типов, а из массива этих же самых типов.
Согласитесь, что уже ради этого стоило выпускать восьмую версию библиотеки!

В DirectPlay более-менее увеличенное количество нововведений. Полностью переписан объектный код и теперь у нас есть объекты DirectPlay8Peer, DirectPlay8Client и DirectPlay8Server. Так же добавлена возможность голосового общения (Которая применима лишь в условиях городских локальных сетей на 100 мегабит в нескольких закрытых Городах Науки нашей необъятной Родины за символическую плату в месячный доход американца средней упитанности)

Вобщем MS на месте как вы видите не сидит, а усердно на нем топчется. Теперь придется сидеть и переписывать во всех туториалах цифирки 7 на 8, да и вдобавок отправлять все учебники по DirectDraw на свалку или в лучшем случае в какой-нибудь заплесневелый архив НЕЧасто зАдаваемых ВОпросов.
А что поделаешь - интеграция.....

Категория: Создание игр | Добавил: GC-Vic (31 Января 2008)
Просмотров: 6359 | Комментарии: 1 | Рейтинг: 4.7/3 |
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 1
+1-
1 Realsalewa   (11 Апреля 2012 13:58)
RealsalewaКруто! cool

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Lavgine
  • Mokoi Gaming
  • Lightfeather
  • ezRPG
  • Green Elf Game Engine
  • 0m3ga VNE
  • Sandy3D
  • G3D Engine
  • RPGDTE
  • Banshee
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2020 Рейтинг