The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Представлен детальный обзор кода DOOM 3

12.06.2012 23:23

Fabien Sanglard опубликовал результаты анализа более 600 тысяч строк кода игры Doom 3 и игрового движка id Tech 4, открытых корпорацией Zenimax в ноябре прошлого года. Опубликованные сведения являются своеобразным путеводителем по коду, дающему возможность начать использование технологий Doom 3 в свободных игровых проектах, без необходимости проведения многомесячного предварительного разбора кода.

Отчёт состоит из 6 частей, среди которых информация об организации системы рендеринга, результаты профилирования кода, данные о скриптовом движке. В качестве дополнения опубликовано интервью с Джоном Кармаком (John Carmack), одним из основателей компании id Software. Среди рассматриваемых в интервью тем можно отметить вопрос перехода с языка Си на Си++, который по словам Джона Кармака полностью оправдался для крупных проектов, развиваемых большой командой разработчиков и требующих высокой производительности.

  1. Главная ссылка к новости (http://fabiensanglard.net/doom...)
  2. OpenNews: Исходные тексты игры Doom 3 открыты под лицензией GPLv3
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/34086-doom
Ключевые слова: doom, game
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Shoronchik (?), 00:41, 13/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Даешь DOOM 3 на Linux! =)
     
     
  • 2.3, Аноним (-), 00:45, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +19 +/
    он давно там есть
     
  • 2.4, EuPhobos (ok), 00:51, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Даёшь tremulous с физикой и тенями! =)
     
     
  • 3.23, Аноним (-), 14:29, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Даёшь tremulous с физикой и тенями! =)

    А в xonotic тени давное есть. Да и физика до некоторой степени.

     
  • 2.11, bratsinot (?), 11:32, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он там изначально и планировался.
     
  • 2.14, Аноним (-), 12:12, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Даешь DOOM 3 на Linux! =)

    Вы из какой криокамеры, сэр?

     

  • 1.2, Аноним (-), 00:45, 13/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    спасибо им за это!
     
  • 1.5, б.б. (?), 06:39, 13/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    > Среди рассматриваемых в интервью тем можно отметить вопрос перехода с языка Си на Си++, который по словам Джона Кармака полностью оправдался для крупных проектов, развиваемых большой командой разработчиков и требующих высокой производительности.

    Ядро насторожилось...

     
     
  • 2.6, тоже Аноним (ok), 08:33, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Зря. ООП - это просто средство сфокусироваться не на низкоуровневой реализации, а на высокоуровневой логике. Для ядра это неактуально, вся его логика работает на низком уровне.
     
     
  • 3.19, Аноним (-), 12:35, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ага, в дополнение к низкоуровненвости ещё добавляется мозготрах с ООП выкрутасами плюсов
     
  • 3.28, Пользователь Дебиан (?), 16:36, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    «I made up the term 'object-oriented', and I can tell you I didn't have C++ in mind» — Alan Kay, OOPSLA '97

    http://programmers.stackexchange.com/q/46592

     
     
  • 4.29, fdcervc (?), 20:38, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > «I made up the term 'object-oriented', and I can tell you I didn't have C++ in mind» — Alan Kay, OOPSLA '97
    > http://programmers.stackexchange.com/q/46592

    Ну Кэй то всего навсего придумал новое название давно существовавшим вещам, что он собственно и сам не отрицает

    From: Alan Kay [removed for privacy]
    Subject: Re: Clarification of "object-oriented"
    At Utah sometime after Nov 66 when, influenced by Sketchpad, Simula ... I thought of an architecture for programming. It was probably in 1967 when someone asked me what I was doing, and I said: "It's object-oriented programming".

    ну а ц++ тогда и в проекте конечно не было, а была симула

    >В современной терминологии Simula 67 можно охарактеризовать как объектное расширение Algol 60.

    http://ru.wikipedia.org/wiki/Симула


     
     
  • 5.48, Пользователь Дебиан (?), 16:42, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, если ты ответ Кэя целиком прочитал, то там написано, что по его мнению индустрия, вцепившаяся в идею "объектной ориентации", побежала с ней не в ту сторону, куда Кэй хотел бы, чтобы она побежала. Так что его фразу про C++ я интерпретирую по-другому.
     
  • 2.7, Аноним (-), 09:02, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Ядро насторожилось...

    Какое ядро? Линус ненавидит C++, так что линукса на C++ не будет.

     
     
  • 3.8, д (?), 10:17, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    чойта-он?
     
     
  • 4.10, Аноним (-), 11:00, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://harmful.cat-v.org/software/c++/linus
     
     
  • 5.12, Аноним (-), 11:47, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Но кстати, даже самые жирные из наших местных троллей, типа Вани, по сравнению с Линусом просто узники Освенцима какие-то...
     
     
  • 6.26, zhuk (?), 15:22, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    завидуешь, что он работает в мировом масштабе?
     
     
  • 7.32, Аноним (-), 21:14, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > завидуешь, что он работает в мировом масштабе?

    Лох мирового масштаба работающий за подачки в виде права на аренду копии байтиков. "Человек - это звучит гордо! А обезьяна - перспективно!"

     
     
  • 8.37, Аноним (-), 21:27, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    думаю несложно догадаться что это не про Торвальдса P ... текст свёрнут, показать
     
     
  • 9.38, AdVv (ok), 02:32, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще к нему подходит Совершенно не умеет фильтровать речь соответственно стат... текст свёрнут, показать
     
     
  • 10.45, XoRe (ok), 22:13, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Сильно ... текст свёрнут, показать
     
  • 10.50, Аноним (-), 20:57, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Чем выгодно отличается от янки с их политкорректностью Которая предписывает улы... текст свёрнут, показать
     
  • 5.16, Аноним (-), 12:20, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > http://harmful.cat-v.org/software/c++/linus

    И что он неправильно сказал? Если в гамезе могут быть задрюченные алгоритмы и сложные конструкции, то вот в ядре всего этого следует максимально избегать. Ну и си++ там поэтому никуда не уперся.

     
     
  • 6.22, тоже Аноним (ok), 13:47, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да он все правильно сказал.
    Для его задач не нужен и даже вреден язык, дающий возможность программисту не думать о деталях.
    Ну, и средняя компетентность С-программистов красноречиво показывает, что быдлокодеров среди них куда меньше, чем в целом по отрасли. Язык обязывает.

    Распространение этих простых принципов на программирование в целом - факты, имеющие место только в головах наиболее одиозных читателей.

    Насчет нападок на язык С++ и его библиотеки.
    Возможно, он знает, о чем говорит. Или это информация 1992 года и она несколько устарела. Это совершенно неважно. Очевидно, Линус - не эксперт по С++, и его мнение заслуживает ровно столько внимания, как и любое другое.

     
     
  • 7.24, Аноним (-), 14:31, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Линус - не эксперт по С++,

    Он - эксперт по ядру ОС. Чем и знаменит. Остальное не роялит. Считаете что на си++ можно сделать ядро лучше? Круто - сделайте Торвальдса и прочих, тогда и поговорим.

     
     
  • 8.27, тоже Аноним (ok), 15:59, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не считаю и выше об этом прямо сказал Сейчас же сказал, что аргументирован... текст свёрнут, показать
     
     
  • 9.33, Аноним (-), 21:18, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и отлично, тогда квиты Так никто и не спорит что гамезы, особенно с всяким... большой текст свёрнут, показать
     
     
  • 10.49, www2 (??), 19:30, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Атрибуты - поля структуры, методы - указатели на функции, работающие со структур... текст свёрнут, показать
     
  • 7.30, fdcervc (?), 20:44, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну, и средняя компетентность С-программистов красноречиво показывает, что быдлокодеров  среди них куда меньше, чем в целом по отрасли. Язык обязывает.

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

     
     
  • 8.34, Аноним (-), 21:20, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    глядя на новость про дыру в Ruby почему-то так получается что уязвимости - они... текст свёрнут, показать
     
     
  • 9.41, cfrfvrgv (?), 03:09, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну можете сами поглядеть на чем ваш руби сам написан, если до этого такая мысль ... текст свёрнут, показать
     
     
  • 10.42, тоже Аноним (ok), 08:43, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если немного подумать головой, легко прийти к мысли, что ошибки в программах, о ... текст свёрнут, показать
     
  • 10.51, Аноним (-), 21:00, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вы еще скажите что заткнутая дырка как-то связана с тем на чем он написан, уважа... текст свёрнут, показать
     
  • 6.31, fdcervc (?), 20:50, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > И что он неправильно сказал? Если в гамезе могут быть задрюченные алгоритмы  и сложные конструкции, то вот в ядре всего этого следует максимально избегать. Ну и си++ там поэтому никуда не уперся.

    Возобновлено соревнование по написанию самого запутанного кода на языке Си
    http://www.opennet.me/opennews/art.shtml?num=32294


     
     
  • 7.35, Аноним (-), 21:21, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Возобновлено соревнование по написанию самого запутанного кода на языке Си

    Техническая возможность просверлить себе сдуру руку дрелью еще вовсе не обязывает меня начать это делать.

     
     
  • 8.40, cfrfvrgv (?), 02:52, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Меня ну совершенно не интересуют ваши возможности и обязательства Ну абсолютно ... текст свёрнут, показать
     
     
  • 9.43, тоже Аноним (ok), 08:46, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Очевиднейший вброс без каких-либо попыток подкрепить пафос пруфами и логикой Но... текст свёрнут, показать
     
  • 9.52, Аноним (-), 21:08, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да я вообще так, кушаю с толстого и неопытного нуботролля В конкретно кернеле о... большой текст свёрнут, показать
     
  • 3.9, Аноним (-), 10:28, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Only Assembler. Only Hardcore!
     
     
  • 4.17, Аноним (-), 12:20, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Only Assembler. Only Hardcore!

    Надеюсь, ты это писал из Menuet OS :)

     
     
  • 5.21, Ваня (??), 13:20, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    У Менуэта 64 закрытый исходный код и запрет на изучение, декомпиляцию и пр. ядра, а вот Колибки под GPL. Ой... А Колибри то сдохла... RIP.
     
     
  • 6.25, Аноним (-), 14:33, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У Менуэта 64 закрытый исходный код и запрет на изучение, декомпиляцию и пр. ядра,

    Я так расстроен по этому поводу что по давней традиции сбрею брови :'(. Ведь мне так не хватало исходников этого неуловимого 64-битного Джо...

     
  • 6.44, Аноним (-), 14:57, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У Менуэта 64 закрытый исходный код и запрет на изучение, декомпиляцию и пр. ядра

    Лицензии и запреты на декомпиляцию — удел высокоуровневых программистов. Хардкорным ассемблерщикам они побоку.

     
     
  • 7.53, Аноним (-), 21:09, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ассемблерщикам они побоку.

    По местным законам - да, но в США лучше не выезжать. Ну так, на всякий случай.

     
  • 2.15, Аноним (-), 12:16, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ядро насторожилось...

    Иди напиши ядро на си++. А лучше сразу на яве, чтоб изен был счастлив. Даже MS не рискнул настолько упороться чтоб ядро на плюсах писать.

    Hint: то что хорошо для игрового движка не обязательно хорошо для системного программирования.

     
     
  • 3.46, XoRe (ok), 22:19, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже MS не рискнул настолько упороться чтоб ядро на
    > плюсах писать.

    MS, как обычно, пошел ещё дальше в направлении маразма
    http://ru.wikipedia.org/wiki/Microsoft_Singularity

     
     
  • 4.54, Аноним (-), 21:10, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > MS, как обычно, пошел ещё дальше в направлении маразма

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

     
  • 2.47, XoRe (ok), 22:29, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ядро насторожилось...

    Линус заблаговременно внес в исходники некоторые из операторов ООП в качестве макросов.
    ООП конструкции тупо не скомпилятся.
    Эдакая защита от шибко умного.

     

  • 1.13, Kodirr (?), 11:57, 13/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Движок всё равно вещь дюже большая, такое тремя энтузазистами не потянешь. :(
     
     
  • 2.18, Аноним (-), 12:25, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Движок всё равно вещь дюже большая, такое тремя энтузазистами не потянешь. :(

    Кармак писал первые движки практически единолично. Более того, он по сути создал этот вид индустрии, придумав ряд алгоритмов которые в ходу по сей день.

     
     
  • 3.39, AdVv (ok), 02:38, 14/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Движок всё равно вещь дюже большая, такое тремя энтузазистами не потянешь. :(
    > Кармак писал первые движки практически единолично. Более того, он по сути создал
    > этот вид индустрии, придумав ряд алгоритмов которые в ходу по сей
    > день.

    К сожалению игры состоят не только из движка. Лидерство в области производства и движков, и шутеров на их базе, ID Software под его руководством успешно слила. Но дядька без сомнения великий программист.

     
     
  • 4.55, Аноним (-), 21:11, 15/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > К сожалению игры состоят не только из движка.

    Перец про движки говорил ;)

     
  • 2.20, Аноним (-), 12:53, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Кармак один пишет и ничего.
     
     
  • 3.36, Аноним (-), 21:25, 13/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Кармак один пишет и ничего.

    Ну вон тот кодирр - это ж дотнетчик. В дотнете наверное готового класса для какого-нибудь BSP и чего там еще не оказалось. А у таких кодирров - это все, хана: слишком сложно, задача нерешаема в принципе. Это ж не готовый класс дернуть, самому думать надо. А с этим у таких небогато :)

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру