URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 85023
[ Назад ]

Исходное сообщение
"Представлен детальный обзор кода DOOM 3"

Отправлено opennews , 13-Июн-12 00:41 
Fabien Sanglard опубликовал (http://fabiensanglard.net/doom3/index.php) результаты анализа более 600 тысяч строк кода игры Doom 3 и игрового движка id Tech 4, открытых (http://www.opennet.me/opennews/art.shtml?num=32372) корпорацией Zenimax в ноябре прошлого года. Опубликованные сведения являются своеобразным путеводителем по коду, дающему возможность начать использование технологий Doom 3  в свободных игровых проектах, без необходимости проведения многомесячного предварительного разбора кода.


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

URL: http://fabiensanglard.net/doom3/index.php
Новость: http://www.opennet.me/opennews/art.shtml?num=34086


Содержание

Сообщения в этом обсуждении
"Представлен детальный обзор кода DOOM 3"
Отправлено Shoronchik , 13-Июн-12 00:41 
Даешь DOOM 3 на Linux! =)

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 00:45 
он давно там есть

"Представлен детальный обзор кода DOOM 3"
Отправлено EuPhobos , 13-Июн-12 00:51 
Даёшь tremulous с физикой и тенями! =)

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 14:29 
> Даёшь tremulous с физикой и тенями! =)

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


"Представлен детальный обзор кода DOOM 3"
Отправлено bratsinot , 13-Июн-12 11:32 
Он там изначально и планировался.

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 12:12 
> Даешь DOOM 3 на Linux! =)

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 00:45 
спасибо им за это!

"Представлен детальный обзор кода DOOM 3"
Отправлено б.б. , 13-Июн-12 06:39 
> Среди рассматриваемых в интервью тем можно отметить вопрос перехода с языка Си на Си++, который по словам Джона Кармака полностью оправдался для крупных проектов, развиваемых большой командой разработчиков и требующих высокой производительности.

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


"Представлен детальный обзор кода DOOM 3"
Отправлено тоже Аноним , 13-Июн-12 08:33 
Зря. ООП - это просто средство сфокусироваться не на низкоуровневой реализации, а на высокоуровневой логике. Для ядра это неактуально, вся его логика работает на низком уровне.

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 12:35 
ага, в дополнение к низкоуровненвости ещё добавляется мозготрах с ООП выкрутасами плюсов

"Представлен детальный обзор кода DOOM 3"
Отправлено Пользователь Дебиан , 13-Июн-12 16:36 
«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


"Представлен детальный обзор кода DOOM 3"
Отправлено fdcervc , 13-Июн-12 20:38 
> «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/Симула



"Представлен детальный обзор кода DOOM 3"
Отправлено Пользователь Дебиан , 15-Июн-12 16:42 
Ну, если ты ответ Кэя целиком прочитал, то там написано, что по его мнению индустрия, вцепившаяся в идею "объектной ориентации", побежала с ней не в ту сторону, куда Кэй хотел бы, чтобы она побежала. Так что его фразу про C++ я интерпретирую по-другому.

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 09:02 
>Ядро насторожилось...

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


"Представлен детальный обзор кода DOOM 3"
Отправлено д , 13-Июн-12 10:17 
чойта-он?

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 11:00 
http://harmful.cat-v.org/software/c++/linus

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 11:47 
Но кстати, даже самые жирные из наших местных троллей, типа Вани, по сравнению с Линусом просто узники Освенцима какие-то...

"Представлен детальный обзор кода DOOM 3"
Отправлено zhuk , 13-Июн-12 15:22 
завидуешь, что он работает в мировом масштабе?

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 21:14 
> завидуешь, что он работает в мировом масштабе?

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 21:27 
> Лох мирового масштаба работающий за подачки в виде права на аренду копии
> байтиков. "Человек - это звучит гордо! А обезьяна - перспективно!"

(думаю несложно догадаться что это не про Торвальдса :P)


"Представлен детальный обзор кода DOOM 3"
Отправлено AdVv , 14-Июн-12 02:32 
Вообще к нему подходит. Совершенно не умеет фильтровать речь соответственно статусу. Хоть и повезло оказаться в нужное время в нужном месте.

"Представлен детальный обзор кода DOOM 3"
Отправлено XoRe , 14-Июн-12 22:13 
> Хоть и повезло оказаться в нужное время в нужном месте.

Сильно)


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 15-Июн-12 20:57 
> Вообще к нему подходит. Совершенно не умеет фильтровать речь соответственно статусу.

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 12:20 
> http://harmful.cat-v.org/software/c++/linus

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


"Представлен детальный обзор кода DOOM 3"
Отправлено тоже Аноним , 13-Июн-12 13:47 
Да он все правильно сказал.
Для его задач не нужен и даже вреден язык, дающий возможность программисту не думать о деталях.
Ну, и средняя компетентность С-программистов красноречиво показывает, что быдлокодеров среди них куда меньше, чем в целом по отрасли. Язык обязывает.

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

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 14:31 
> Линус - не эксперт по С++,

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


"Представлен детальный обзор кода DOOM 3"
Отправлено тоже Аноним , 13-Июн-12 15:59 
Нет, не считаю и выше об этом прямо сказал.
Сейчас же сказал, что аргументированно ругать С++ Линус может только в своей конкретной нише - низкоуровневые утилиты, драйвера, ядро. И это не "ненависть", а вполне практичное и здравое заявление о непригодности инструмента к конкретному использованию.
А любые обобщения и додумывание того, чего он не говорил - ложны.

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 21:18 
> Нет, не считаю и выше об этом прямо сказал.

Ну и отлично, тогда квиты :)

> Сейчас же сказал, что аргументированно ругать С++ Линус может только в своей
> конкретной нише - низкоуровневые утилиты, драйвера, ядро.

Так никто и не спорит что гамезы, особенно с всякими там юнитами 200 типов, которые похожи друг на друга как 2 капли, но вот тут и там пара атрибутов чуть иная и пара действий новые - самое оно на си++ писать. На сях такое писать будет довольно утомительно. А на чем-то кроме си++ получается тормознуто. Поэтому игрушечники дружно любят си++ :). А системщики - си. Прикладушники - в зависимости от все что угодно, от ассемблера до питона^W гугловского, визуального, как его там, в соседней новости :)

> И это не "ненависть", а вполне практичное и здравое заявление о непригодности
> инструмента к конкретному использованию.  А любые обобщения и додумывание того,
> чего он не говорил - ложны.

Так я вроде и не обобщал. Хотя может быть это кто-то другой сделал...



"Представлен детальный обзор кода DOOM 3"
Отправлено www2 , 15-Июн-12 19:30 
>но вот тут и там пара атрибутов чуть иная и пара действий новые

Атрибуты - поля структуры, методы - указатели на функции, работающие со структурой. Все плюсы сиплюсплюс заключаются в автоматическом управлении таблицей методов и синтаксическом сахаре вроде struct->function и struct.function. Всё.


"Представлен детальный обзор кода DOOM 3"
Отправлено fdcervc , 13-Июн-12 20:44 
> Ну, и средняя компетентность С-программистов красноречиво показывает, что быдлокодеров  среди них куда меньше, чем в целом по отрасли. Язык обязывает.

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 21:20 
> И при этом создают столько уязвимостей что их на всех остальных хватает.

(глядя на новость про дыру в Ruby) почему-то так получается что уязвимости - они не только в сишных программах. Ну вон в вебне навалом уязвимостей и без всяких сей. Как же так? :)

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

Сразу видно овоща который думает что инструмент сможет компенсировать его тупизну и халатность...



"Представлен детальный обзор кода DOOM 3"
Отправлено cfrfvrgv , 14-Июн-12 03:09 
>> И при этом создают столько уязвимостей что их на всех остальных хватает.
> (глядя на новость про дыру в Ruby) почему-то так получается что уязвимости - они не только в сишных программах. Ну вон в вебне навалом уязвимостей и без всяких сей. Как же так? :)

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

https://github.com/ruby/ruby/commit/e39eb9dab50eaa681467e511...

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


"Представлен детальный обзор кода DOOM 3"
Отправлено тоже Аноним , 14-Июн-12 08:43 
Если немного подумать головой, легко прийти к мысли, что ошибки в программах, о которых широко известно - это ошибки в широко используемых программах.
То, что нет новостей об уязвимостях в критичном по безопасности ПО, написанном на чем-то, кроме С/С++, говорит в первую очередь о том, что критичное ПО пишут именно на С/С++.
Вот и вся "статистика".

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 15-Июн-12 21:00 
> Ну можете сами поглядеть на чем ваш руби сам написан

Вы еще скажите что заткнутая дырка как-то связана с тем на чем он написан, уважаемый гастроном :)

> о проблемах овощеводства и дальше, уважаемый агроном.

Да, вот чего-чего, а овощей на опеннете почему-то хватает. Кстати вы один из них.


"Представлен детальный обзор кода DOOM 3"
Отправлено fdcervc , 13-Июн-12 20:50 
> И что он неправильно сказал? Если в гамезе могут быть задрюченные алгоритмы  и сложные конструкции, то вот в ядре всего этого следует максимально избегать. Ну и си++ там поэтому никуда не уперся.

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



"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 21:21 
> Возобновлено соревнование по написанию самого запутанного кода на языке Си

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


"Представлен детальный обзор кода DOOM 3"
Отправлено cfrfvrgv , 14-Июн-12 02:52 
>Техническая возможность просверлить себе сдуру руку дрелью еще вовсе не обязывает меня начать это делать.

Меня ну совершенно не интересуют ваши возможности и обязательства. Ну абсолютно не. Речь о глупейшем утверждении вашем и Линуса что на ц++ обязательно писать запутанно, а на ц это типа почему то не получится. Вот этом вот

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

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


"Представлен детальный обзор кода DOOM 3"
Отправлено тоже Аноним , 14-Июн-12 08:46 
> ... абсолютно ... обязательно ... И естественно ... ну вообще ...

Очевиднейший вброс без каких-либо попыток подкрепить пафос пруфами и логикой. Новичок?



"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 15-Июн-12 21:08 
> Меня ну совершенно не интересуют ваши возможности и обязательства. Ну абсолютно не.

Да я вообще так, кушаю с толстого и неопытного нуботролля.

> Речь о глупейшем утверждении вашем и Линуса что на ц++ обязательно писать запутанно,
> а на ц это типа почему то не получится. Вот этом вот

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

> Не ну я понимаю что лучше не писать на обоих этих языках,

Ну так не пишите, а мне на си вполне нравится и я как-то не вижу вот так сходу ничего лучше для системного программирования. Ассемблер? Геморнее и не кроссплатформенно.

> но это уже другая история. А так ессно понятно что на ц++ легче написать
> незапутанную программу чем на ц.

Да, конечно. Например, угловые скобки используются неоднозначным способом. Оно и в си то уже было так, так что на некоторых конструкциях можно словить mindf#ck. А в си++ еще сверху добавили, так что иную конструкцию без поллитры вообще не разберешь.

> И естественно язык реализации ну вообще никакого отношеня к сложности нужных алгоритмов не имеет.

Cпасибо, Кэп!


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 10:28 
Only Assembler. Only Hardcore!

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 12:20 
> Only Assembler. Only Hardcore!

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Ваня , 13-Июн-12 13:20 
У Менуэта 64 закрытый исходный код и запрет на изучение, декомпиляцию и пр. ядра, а вот Колибки под GPL. Ой... А Колибри то сдохла... RIP.

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 14:33 
> У Менуэта 64 закрытый исходный код и запрет на изучение, декомпиляцию и пр. ядра,

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 14-Июн-12 14:57 
> У Менуэта 64 закрытый исходный код и запрет на изучение, декомпиляцию и пр. ядра

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 15-Июн-12 21:09 
> ассемблерщикам они побоку.

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 12:16 
> Ядро насторожилось...

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

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


"Представлен детальный обзор кода DOOM 3"
Отправлено XoRe , 14-Июн-12 22:19 
> Даже MS не рискнул настолько упороться чтоб ядро на
> плюсах писать.

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 15-Июн-12 21:10 
> MS, как обычно, пошел ещё дальше в направлении маразма

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


"Представлен детальный обзор кода DOOM 3"
Отправлено XoRe , 14-Июн-12 22:29 
> Ядро насторожилось...

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Kodirr , 13-Июн-12 11:57 
Движок всё равно вещь дюже большая, такое тремя энтузазистами не потянешь. :(

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 12:25 
> Движок всё равно вещь дюже большая, такое тремя энтузазистами не потянешь. :(

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


"Представлен детальный обзор кода DOOM 3"
Отправлено AdVv , 14-Июн-12 02:38 
>> Движок всё равно вещь дюже большая, такое тремя энтузазистами не потянешь. :(
> Кармак писал первые движки практически единолично. Более того, он по сути создал
> этот вид индустрии, придумав ряд алгоритмов которые в ходу по сей
> день.

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 15-Июн-12 21:11 
> К сожалению игры состоят не только из движка.

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


"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 12:53 
Кармак один пишет и ничего.

"Представлен детальный обзор кода DOOM 3"
Отправлено Аноним , 13-Июн-12 21:25 
> Кармак один пишет и ничего.

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