Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
6:28
1817
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->
1|2|3

АвторКрутые вещи #6
id Tech series ..

ничего сьерьезней чем серия игроывх engin'ов легендарного программиста всех времен Джона Кармака мне неизвестно ..

попробу в этой теме кратко разказать о каждом из серии в силу своих знаний ..

вдруг кто шарит в таких вещях тоже буду рад вашим уточнениям ..

id Tech 1, id Tech 2, id Tech 3, id Tech 4, id Tech 5, id Tech 6, id Tech 7 ..

Let' Zzz go ..
Al Brovko!!
хз кому это интересно будет
здравствуйте, это анонимный клуб наркоманов?
я туда попал?)
для Qwainos:
Алло, это бюро шуток за 30! Вы попали туда, куда нужно, вы приняты!
для кранес:
мои шутки стоят 32!
Это клуб al Brovko!! My friends!
Al Brovko!!
My friends!
Nice ту see ю, comrad!
Лет ми спик from my heart!
id Tech 1 ..

id Tech 1 — движок, разработанный американской компанией id Software и применяемый в компьютерных играх Doom, Heretic, HeXen, Strife, HacX и других играх, созданных по лицензии. Так же является псевдотрехмерным движком, но в этот раз упор в разработке был не на быстродействие движка, Wolfenstein 3D engine стал основой, которую следовало доработать. Первоначально написан на компьютерах NeXT, затем, для первого релиза Doom был портирован под DOS, а позднее ещё на несколько игровых консолей и операционных систем.

отличия от Wolfenstein 3D engine:

* Пол и потолок могут иметь любую высоту.

* Стены не обязательно ориентированы в направлении «север-юг» или «запад-восток».

* Изменяющаяся освещённость, повышавшая реалистичность графики.

* Лифты, дистанционно открывающиеся двери, опускающиеся и придавливающие потолки, поднимающиеся ступеньки и другие движущиеся элементы.

* Персонажи могут прыгать, падать с крыш и летать по воздуху (впрочем, пройти под летящим врагом или пролететь сверху в прыжке всё равно невозможно).

* Звуковая подсистема поддерживала стереозвук и микширование до 8 эффектов одновременно.

* Персонаж при движении покачивался вверх-вниз, что создало бо́льшую иллюзию ходьбы (в Wolfenstein точка обзора находилась на постоянной высоте примерно на уровне живота, игрок словно ехал в инвалидной коляске).

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

Движок был написан на Си на рабочих станциях Next в операционной системе
NEXTSTEP. Изначально использовался компилятор Intel C, но в дальнейшем был использован Watcom C. Утилиты были написаны под NeXT на Objective-C. Движок Doom был прогрессивным для своего времени. Несмотря на то, что Си — язык процедурного программирования, движок Doom написан в явно выраженном объектном стиле.

Все вычисления проводятся с частотой 35 тактов в секунду, в фиксированной запятой 16,16, с машинной единицей, равной одному текселю (рост игрока 56 текселей — значит, 1 тексель примерно равен 4 см). Для угловых величин применяется фиксированная запятая, в которой 2 в степени 32 = 360°. Впрочем, большинство угловых расчётов были грубее — например, повороты игрока рассчитываются с точностью в 360° = 2 в степени 16 = 65536, а тригонометрическая таблица состояла всего из 8192 (2 в степени 13) величин.

В 1994 году открыли исходные тексты сетевых драйверов. Энтузиасты начали разрабатывать собственные драйверы: например, для LPT-кабеля (PARSETUP) и даже для цепочки COM-кабелей (HX8).

В декабре 1997 года полный исходный текст Doom для Linux был опубликован под несвободной бесплатной лицензией (версия для DOS не публиковалась из-за платной звуковой библиотеки DMX). Уже в январе 1998 года появился первый порт этого кода для DOS — DosDoom. Вместо DMX использовали открытый Allegro.
Кармарк - программист тех времён, когда не надеялись "да у нас нейросеть под НВидиа дорисует все отражения, тени и улучшит картинку".
Это человек, который понимал как работает код, и хотел его улучшить не в ущерб атмосфере или производительности, но с жертвой часов работы.

Нынешние детишки всех этих переработок и нетолерантности боятся больше, чем отсутствия лавандового рафа в кафешке.
когда не надеялись "да у нас нейросеть под НВидиа дорисует все отражения, тени и улучшит картинку

А сейчас "покупайте новую видеокарту, оперативку, процессор, да и вобще новый комп..."
.. id Tech 1

интеренсые факты!

На дворе 1992 год, США. У тебя нет никаких эрыксов, джитииксов, эртэиксов. Никакого 3D ускорителя, только 16-ти битный Intel 80286, 40 Мегабайт на жестком диске и 1.5 Мегабайта оперативы. Это ты еще гордиться должен, для домашнего компьютера этих лет вполне неплохо. Хоть настоящие 3D игры уже существуют, о них ты во-первых не знаешь, во-вторых, вместо какой-либо графики, там какие-то палки летают, в-третьих, они еще и лагать будут на твоем агрегате. Кароче, не надо оно тебе, лучше в Prince of Persia поиграть.

Примерно в это время, может чуть раньше, Джон Кармак загорелся идеей заделать 3D шутер. Ну, как я уже выше написал, честное 3D компьютер начала 90х потянуть не мог. Хорошо, если у него получится отрисовывать куб хотя бы пару раз в секунду, но, насколько я знаю, он отрисовывался все-таки раз в пару секунд. Кароче, прямой путь тут был не самым быстрым. Вернее не самым производительным. Кармак это понимал. Но понимал он также и то, что человеческий глаз достаточно легко обмануть. Существует множество оптических иллюзий. Компьютерное 3D тоже в общем-то является таковой. Просто хитрые комбинации трогонометрических функций, которые присваивают размерные коэффициенты плоским текстурам.

Узнав про raycasting (да, точно не raytracing) Джон Кармак достаточно быстро написал движок, использующий для рендера эту технологию. Суть raycasting'а состояла в том, что используя данные из двухмерного макета уровня, рисовалась его 3D версия. А может правильней сказать 2.5D версия? Никаких вершин, образующих полигны, ведь не было.
Крутые вещи #6

солдатская удача вроде норм... ну тут некоторые её не берут на ивент(
И не говори. МР-ы вообще ничего не понимают в нормальных вещах.
.. id Tech 1

Джоном Кармаком было принято решение использовать уже реализованный raycasting для определения того, какие объекты проходимы для игрока, а какие нет. Нюанс в том, что обычно raycasting тратит на расчеты достаточно много времени, а компьютеру нужно успевать отрисовать хотя бы 24 кадра за секунду, чтобы картинка казалась плавной. В кончном итоге, скорость расчета удалось увеличить, но в жертву была принесена геометрия уровней. В Wolfenstein 3D стены на уровне выровнены по квадратной сетке. Т. е. если сторона квадрата в сетке 160 пикселей, то стена может быть шириной или 160 пикселей, или 320, или 480, в общем, кратной 160. Стена могла располагаться только вдоль линий сетки, т. е. ни о каких диагональных стенах речи не шло. Зато теперь движку достаточно посчитать положение точек пересечения линий сетки, а отрезок, их соединяющий, сделать непроходимым, если на нем расположена стена, или наоборот, оставить проходимым, если на нем ничего нет.

Binary Space Partitioning, кратко BSP.

BSP это жесткий математический алгоритм.
Итак, мы имеем уровень. Этот уровень во время компиляции в редакторе разбивается на некоторые сектора, а затем эти сектора записываются в структуру, напоминающую дерево. Так и называется, BSP-дерево.
Во время игры, перед отрисовкой кадра, движок проходится по этому дереву и для каждого сектора считает, видим он или нет. Если сектор видим, то рисуется нужная текстура, если нет, то зачем тратить время на отрисовку? Кроме того, во время обхода определялось, с какой стороны сектора стоит игрок. Если игрок пытается перейти на другую сторону помеченного непроходимым сектора через, собственно, сам сектор, игра засчитывала столкновение и не пропускала его. Т.е. BSP теперь вместо raycasting'а занимался обработкой столкновений, и делал это значительно быстрее, что позволило увеличивать размеры комнат практически без снижения производительности. А еще он может обрабатывать уровни любой формы, поэтому карты в Doom теперь выглядят несравнимо более интересными, чем в
Wolfenstein.
..

.. Текстуры также стали сложнее. Из-за того, что пол и потолок теперь могут менять свою высоту, пришлось ввести дополнительные виды текстур: текстуры верха и текстуры низа. Текстуры верха рисуются на стенках, получившихся в результате изменения уровня пола, текстуры низа используются аналогично. Но и это еще не все. Для секторов опционально можно задать текстуру «середины». Полезно, если требуется отрисовать решетку или окно.

.. Движок Doom, будучи эволюцией движка Wolfenstein 3D, все так же превращал 2d макет уровня в его (псевдо)объемную версию, но делал это в несколько раз круче. Лестницы и лифты придавали ощущение того, что игра оперирует третьим измерением, и я только могу предствить, как это было круто в 1993 году. Да, нельзя было создать комнату под комнатой, да потолок был всегда перпендикулярен стенам, но кого это волнует, когда после игр с видом сбоку тебе дают стать глазами doomguy'а, который под звуки переживавшего расцвет металла без страха идет по адскому лабиринту и без сожаления уничтожает чертей, стоящих у него на пути.

.. Бесспорно, Doom провел жирную черту, разделяющую игры на те, которые вышли до него, и те, которые вышли после. Ну а Джон Кармак как минимум карандашиком уже вписал свое имя в историю, положив начало развитию игровых движков. Нестираемым маркером он это сделает спустя 2 года, выпустив Quake и совершив прорыв в уже настоящей 3D графике, но это уже совсем другая история, которую я, может быть, расскажу позже.
для Al Brovko: Ты Blender пользуешь?
не 3D\2D моделлинг не сильно ..
.. Quake engine

Quake engine («движок Quake») — игровой движок, разработанный в 1996 году американской компанией id Software для использования в шутере от первого лица Quake. Quake engine стал одним из первых движков, способным обрабатывать в реальном времени полностью трехмерную графику. Наработки движка были применены компанией при разработке игровых движков следующего поколения — id Tech 2 и id Tech 3, которые были созданы для игр Quake II и Quake III Arena соответственно.

Согласно традиции Id Software, спустя некоторое время после успешного коммерческого лицензирования движок стал доступен для бесплатного использования по условиям лицензии GNU General Public License, которая подразумевает под собой право копировать, модифицировать и распространять его содержимое. Это оказало большое влияние на развитие мира открытого программного обеспечения, а также породило большое количество форков — сторонних игровых движков, основанных на Quake engine.

Подобно движку Doom, Quake engine использует систему BSP-деревьев. Движок также использует затенение по методу Гуро для подвижных объектов и карт освещения - для статических.

Первоначальной версией движка поддерживаются операционные системы DOS и Windows, однако открытый исходный код и использование стандарта OpenGL обеспечивают широкие возможности для переноса программы на другие операционные системы или платформы (например, на игровую приставку).

...
1|2|3
К списку тем
2007-2024, онлайн игры HeroesWM