Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, dr.Chaos, Вы писали:
DC>>Вернемся к началу. Т.е. ты считаешь что С++ из области написания графических движков вытеснит другой инструмент типа Немерле или ОКамл? S>Лично у меня нет сомнения в том, что это таки произойдет. Я, конечно, дилетант в гейминдустрии, но свои две копейки вставлю. S>Насколько мне известно, плюсы — вовсе не такой уж суперпопулярный в ГД язык. Грубо говоря, современная игра состоит из трех уровней: S>- низкоуровневые битхаки для рисования (ассемблер)
Это уже давно все в видеокарте.
S>- ядро движка (С/С++)
Низкоуровневая физика отчасти тоже уже переезжает на видеокарту.
Остается просчет геометрии и физики на более высоком, глобальном, уровне (BSP, Quadtrees там всякие) и логика игры.
S>- геймплей (язык описания уровней)
S>Оказывается, что очень большой вес играет именно последний уровень. Вон — почитай отзывы на конкурсах по разработке уровней. Банальное дописывание скрипта, который закрывает двери за героем может ускорить игру в два-три раза.
Чего? Если игрок эту дверь не видит, то она сразу отсекается в любом нормальном движке еще задолго до растеризации вне зависимости от того закрыта она или нет.
S> Потому как главное в 21 веке — не выплевывание пикселов со скоростью шины, а аккуратное отсечение лишних треугольников
Главное в 21 веке — хороший геймплей и реклама .
S>Опять же большую роль в скорострельности играет способность ядра использовать метаинформацию с верхнего уровня — в частности, просекать отсутствие необходимости рисовать треугоьники за закрытой дверью. Здесь рулят алгоритмы, а С++ не слишком-то хорошо подходит для написания сложных алгоритмов. Граблеват, знаете ли.
Граблеват-то он граблеват. Но вот policy-based дизайн (т.е. параметризованные типы) замутить можно пока только в C++ или D нормально. Наверное, в Хаскеле (его Темплейт-вариации) тоже можно, но там ленивость...
S> Конечно, там очень удобно писать умножение матриц благодаря наличию шаблонов. Но все равно, специализированный DSL с поддержкой умножения матриц будет позволять записать алгоритмы компактнее, и оптимизироваться еще сильнее, чем С++.
Да ждем-с. Вот Fortress вышел, правда пока только интерпретатор.
S> Так что есть у меня подозрение, что и для верхнего уровня, и для среднего слоя в геймдевелопменте должны рулить DSL.
S>Nemerle, в частности, выглядит как хороший кандидат для платформы для построения DSL.
Вообще для DSL — да. Для игр — есть сомнения. Для этого нужны хотя бы slices для работы с матрицами (как в MATLAB, Python и D). Думаю поговорить об этом с авторами. Ну и опционально отменять поддержку выхода за границы массивов (в сложных алгоритмах может быть непоследовательный перебор элементов, и тут уже автоматом вывести то что проверять не надо сложновато).
S>Конечно, старую гвардию на него не переведешь. Тот же Кармак собаку съел на С, он и на плюсы-то переходить не хочет (несмотря на то, что у них значительно более сильный оптимизатор). Так что платформа ждет своего героя — если вдруг появится хороший DSL для 3d-engine на Nemerle, народ достаточно быстро перелезет туда.
Как бы переход managed-unmanaged не стал узким местом.
S>Особенно c учетом перспективы получить поддержку снизу в виде компилятор типа Бартока для генерации нативного кода (чтобы успокоить тех, кто считает JIT слишком дорогим) и мегапроекта от МС с compile-time profile-based optimization.
А я не понимаю, чего MS не выпустит его (Барток)
Здравствуйте, dr.Chaos, Вы писали:
DC>Стандарт С++ их и не регламентирует. Влад я думаю ты прекрасно знаешь принцип работы простейшего компоновщика, который заменяет имена функций и переменных, определенных в др единице компиляции, на их адрес. Не знаю есть ли стандарт или какие-то регламентирующие документы, если тебе это так важно могу поискать.
Я то как раз знаю. Стандартов нет. Точнее у каждого свои. Борланд с МС еще как-то пытались кооперироваться, но толку было мало. Интел еще что-то там под МС косить пытается. Но те же GCC и VC не совместимы. Так что С++ — переносим только на уровне исходников.
DC>А по поводу задач: задачи системного программирования: написание ОС, драйверов, компиляторов и т.п.
ОС, драверы и темболее компиляторы пишутся на управляемых языках ничем не хуже, и даже лучше. И если первое пока, что находится в эксперементальной стадии, то компиляторы уже давно пишутся как на управляемых языках так и на неуправляемых функцинальных. Причем все кто пробовал использовать хорошие ФЯ для написания компиляторов находят, что это значительно удобнее нежели использовать С/С++ для этой цели.
Так что это утверждение ошибочно. Это всего лишь самообман.
DC> Хотя я думаю, что для написания компиляторов есть более подходящие инструменты, но я тут профан .
Зато я кое что понимаю. С++ — это самый неудобный иструмент для этогою.
DC> По поду прикладного ПО — вполне можно использовать С++ для написания ядра системы, а сверху накручивать прикладную логику каким-нибудь интерпретируемым языком, если грамотно сделать то будет и эффективность и скорость разработки.
Остается вопрос зачем использовать С++ для того, что в несколько раз проще пишется на других языках? Я еще понимаю супер-корпорации вроде МС которые вполне могут позволить себе создать прототип, а потом приказать переписать его на С++ просто ради оптимизации. Но лишние мегабаксы есть только у 5-6 компаний в мире. Остальные живут в рамках жесточайшей конкурениции. И стло быть использовать С++ равносильно надеванию на себя гандикапа.
VD>>А какая разница? К задачам это отношения не имеет. Средства могут различаться в зависимости от задач.
DC>Тогда зачем спрашивал?
Затем, что С++ практически всегда наихудший выбор. Вот и интересно с какой целью люди выбирают именно его? Не уж то так тяжело переучиваться?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, eao197, Вы писали:
E>Копец начался еще раньше, когда появились различные и несовместимые между собой форматы OBJ-файлов статических библиотек. Даже в рамках одной платформы. Причем C++ не имел к этому никакого отношения.
Согласен. Но Страуструп был в силах это изменить. Если не в первой версии, то хотя бы во второй. Тогда он уже имел вес и мог диктовать условия.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, dr.Chaos, Вы писали:
DC> Влад я сказал, что в MC не смогут разработать нормальный фреймворк для этого? Мало того после требований Висты, что-то у меня возникают сильные опасения, что "приемлемым по производительности" оно станет благодаря новым железкам, а не разработчикам в MC.
Виста как и другой софт выпскаемый МС создается в рассчете на сегодняшнее зелезо. И это правильно, так как если у меня в машине 3D-акселератор с поддержкой DX 9.0, двух-ядерный процессор и 1-2 гига памяти, то глупо не задействовать это богатство для улучшения комфорта и удобства. Лично Вистой я очень доволен.
DC>Рендерер = Движок ?
По вычислетльной нагрузке это значительно больше. По сложности алгоритмов — тоже.
DC>>>Здорово, вот сошлась куча специалистов отрасли, потрындела 10 лет и в итоге выдала полный бред??
VD>>Я говорю о конкретных требованиях конкретного человека. Блин, скачай ppt-у и пчитай. В его требованиях основными критериями являются надежность и безопасность. Ни шагу в этом направлении в новм стандарте нет.
DC>Хм, ну С++ вобщем то универсальный язык,
Ага. А в Киеве дядка. И что?
DC>полагаю комитет руководствовался не пожеланиями конкретного человека. Верю что решения комитета могут не решить его проблем. Но утверждать, что улучшения которые появятся в 2009 году — бред, который ничего не изменит — глупо, по меньшей мере.
Я не утверждал, что это бред. Я сказал, что С++ как раз то, что они исползуют и в чем находят (на мой взгляд совершенно обоснованно) море проблем. Интересно, что в качестве сравнения они использую C#, Java и Хаскель. Причем находят у всех языков ряд недостатков (впрочем как идостоинств).
DC>Сразу видно команда . Ты пойми Влад, я не против новых инструментов, если они появятся и решат проблемы в какой-то отрасли это просто здорово. Но просто не понимаю смысла говнять имеющийся инструментарий. Язык С++ далеко не идеален, но он достаточно хорош для решения большинства задач.
Он недостаточно хорош почти для любой задачи. Может в те времена когда Страуструп произнес эту фразу, она и была справедлива, но сейчас это не так.
DC>Вернемся к началу. Т.е. ты считаешь что С++ из области написания графических движков вытеснит другой инструмент типа Немерле или ОКамл?
Это дело времени. С++ если и останется, то как средство оптимизации узких мест.
DC> Поскольку требования к языку в статье и немало рендереров на ОКамле являют какую-то тенденцию. Когда это по твоему произойдет?
Срок может оказаться большим из-за косности мышления. Первые управляемые движки уже появились. Думаю, что через лет 5-10 можно ожидать, что народ перейдет на некую альтернативу. Нужда в ней назрела. Пока об этом говорят, только действительно дальновидные люди, но чем дальше, тем больше людей будет это понимать. Даже D и тот намного лучше чем С++.
Применение же дотнета в играх пока может сдерживаться тем фактом, что он доступен только на Xbox 360 и Windows. Но моно уже работает на туче платформ и если его подкрутят (и реализуют XNA), то проблема будет очень неплохим решением.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Низкоуровневая физика отчасти тоже уже переезжает на видеокарту.
Да, да, слышали. Только не на видеокарту, а на специальный физический ускоритель. Конкретную ссылку нет времени искать, могу только посоветовать по этому поводу порыться на ferra.ru. Где-то там промелькнула статья по поводу платы для ускорения физики.
Здравствуйте, dr.Chaos, Вы писали:
DC>Собственно, С++ хорош не для ГД, а для 3D движка. В ГД — купил движок, накрутил скриптов, заплатил художникам — игра готова.
Ну, так продемонстрируй хоть что-то что делало бы С++ предпочтительным для этих самых движков.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, FDSC, Вы писали:
AF>>Самолет, которого нет, летает с нулевой скоростью. "Профессионалы", которые строят гипотетические самолеты, которые должны летать быстрее в 5 раз, но не летают вообще — это не профессионалы.
FDS>Может быть правильней сказать, что одни делают электровозы, а другие — самолёты? FDS>Конструктор электровоза самолёт не спроектирует, а наоборот — вполне.
Скорее нужно делить на игрушечные и настоящие. А уж электровозы там или самолёты... Настоящему индейцу, тьфу, программисту, ему — и самолёт, и корабль, и вёртолёт, и сеялка с вертикальным взлётом — программа и программа.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndreiF, Вы писали:
AF>Самолет, которого нет, летает с нулевой скоростью. "Профессионалы", которые строят гипотетические самолеты, которые должны летать быстрее в 5 раз, но не летают вообще — это не профессионалы.
А из чего следует, что их нет ? Я вроде такого не утверждал.
Если уж на то пошло...
Поставлена задача — к 2010 году обеспечить каждого пользователя собственным самолетом (прошу прощения, каждую контору "Рога и Копыта" собственым сайтом). Причем каждому нужен свой, серийное производство не годится. Професиональных самолетостроителей в таком количестве для этого взять негде. Поэтому реквизируются все, кто отличает шасси от крыла, и их сажают делать самолеты. Они их делают. Внешне это больше похоже на дельтаплан, но горючего он потребляет как космическая ракета, размеры имеет с Боинг, скорость — как у кукурузника, максимальная дальность — 100 километров. Но летает. Падает иногда, конечно, но это не страшно — его поднимают и опять запускают. Фирма довольна — теперь уполномоченный по копытам Шура Балаганов может летать в соседние деревни за копытами на этом самолете.
Ну а Боинг, Локхид и Туполев продолжают своими делами заниматься — изготовляют качественные самолеты. И с некоторым удивлением смотрят на это авиамоделирование
Здравствуйте, eugene0, Вы писали:
E>Та, в которой написано, что объем кода на скриптовых языках в современных играх больше, чем объекм кода на С++. Как правило
Там не написано, что он больше. Там написано, что он просто большой.
Здравствуйте, dr.Chaos, Вы писали: DC>Ооо. Ты открыл мне глаза
Я рад
DC>А ты себе представляешь сложность задачи? Унифицировать представление объектов в памяти на ВСЕХ возможных платформах.
Да, представляю. Благо решения есть. Велкам в управляемые среды. Java, .Net. DC>Кроме того к языку программирования это относится слабо. Кстати именно благодаря такому способу линковки С++ получил такое распространение и может использовать модули написанные на С, Fortran и т.д.
Ничего подобного. Не благодаря, а вопреки. Обратный пример: дотнет, с совершенно другим способом линковки, может использовать модули написанные на С, Fortran и т.д. И С++ тоже очень бы сильно выиграл, если бы автор вовремя спустился с небес на землю. DC>CORBA выросла примерно там же, только еще и с транспортом.
Я в курсе.
DC>Я вот не пойму что вы мне пытаетесь доказать? То что сборки под дот нет или компоненты Делфи лучше?
Нет, мы просто иллюстрируем тебе какую-то фатальную близорукость комитета в совершенно очевидных вещах.
DC>С чем ты споришь? Я понимаю что такая линковка — это тормозная и часто неудобная штука.
Не, пока не понимаешь. Проблема не в линковке. Ведь работают же компиляторы С++ поверх неё? Вот и нужно было уточнить спецификацию протокола. Безо всякого изменения механизма линковки — тем более, что комитет на линкер не влияет, а только на компиляторы. DC>Я понимаю что неунифицированное представление объектов — это проблемы совместимости платформ и компиляторов.НО!!! Простой как сибирский валенок механизм линковки, обеспечивает простоту реализации этого инструмента на любой платформе!! Мало того очень трудно сделать одинаково хорошее представление для микроконтроллера/PC/RISC-сервера/... Ты еще не забывай, что на специфических платформах нет ни шаблонов, ни множественного наследования и т.д. Т.е. создав единый стандарт представления — не угодили бы никому.
Всем бы прекрасно угодили. Это всё достижимо, нужно только понимать, что заниматься этим необходимо.
DC>Помимо всего прочего — кто мешает, собраться MC, GNU GCC и Comeau — и сделать стандарт представления и ему следовать??
Ну а комитету, который некоммерческий, кто мешает? Эрго: Хайнлайн прав.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, AndreiF, Вы писали:
E>>Та, в которой написано, что объем кода на скриптовых языках в современных играх больше, чем объекм кода на С++. Как правило
AF>Там не написано, что он больше. Там написано, что он просто большой.
Написано.
Позволю себе процитировать еще раз:
На самом деле, большая (по объему) часть современных игр пишется как раз на скриптах, в том числе и Питоне. Эта часть как правило больше, чем часть кода написанного на С++.
Ну так что, аргументы какие-нибудь будут или признаем что в процитированом ты ничего не смыслишь и написано оно в надежде на то, что оппонент в специфике отрасли не разбирается и возразить по этой причине не сможет?
Здравствуйте, konsoletyper, Вы писали:
АХ>>Низкоуровневая физика отчасти тоже уже переезжает на видеокарту.
K>Да, да, слышали. Только не на видеокарту, а на специальный физический ускоритель. Конкретную ссылку нет времени искать, могу только посоветовать по этому поводу порыться на ferra.ru. Где-то там промелькнула статья по поводу платы для ускорения физики.
Вот сайт производителя этого ускорителя
Только что-то пока ничего особенного с поддержкой этого ускорителя не вышло.
Во многом потому, что навороченная физика для большинства компьютерных игр довольно сомнительное приобретение.
Многие без нее обходятся и живут отлично.
Здравствуйте, eugene0, Вы писали:
E>Здравствуйте, konsoletyper, Вы писали:
АХ>>>Низкоуровневая физика отчасти тоже уже переезжает на видеокарту.
K>>Да, да, слышали. Только не на видеокарту, а на специальный физический ускоритель. Конкретную ссылку нет времени искать, могу только посоветовать по этому поводу порыться на ferra.ru. Где-то там промелькнула статья по поводу платы для ускорения физики.
E>Вот сайт производителя этого ускорителя E>Только что-то пока ничего особенного с поддержкой этого ускорителя не вышло. E>Во многом потому, что навороченная физика для большинства компьютерных игр довольно сомнительное приобретение. E>Многие без нее обходятся и живут отлично.
Потому что есть альтернативные решения для подобных числодробилок, например, PlayStation 3
Здравствуйте, eugene0, Вы писали:
E>Ну так что, аргументы какие-нибудь будут или признаем что в процитированом ты ничего не смыслишь и написано оно в надежде на то, что оппонент в специфике отрасли не разбирается и возразить по этой причине не сможет?
Я сказал то, что считаю верным. Если у тебя есть точная статистика — предъяви, и я соглашусь что был не прав.
Пока же я вижу только, что это ты пытаешься взять наглостью и переходишь на обсуждение личностей вместо обсуждения темы.
Здравствуйте, Sinclair, Вы писали:
S>Ничего подобного. Не благодаря, а вопреки. Обратный пример: дотнет, с совершенно другим способом линковки, может использовать модули написанные на С, Fortran и т.д.
Где можно посмотреть, как дотнет линкуется с модулями Fortran с платформ AIX или Solaris SPARC?
S> И С++ тоже очень бы сильно выиграл, если бы автор вовремя спустился с небес на землю.
Автор C++ сделал язык. Инструменты для этого языка писали совсем другие люди и конторы, которые при этом преследовали свои корысные интересы.
Пора бы уже понять, что C++ возник в совсем иных условиях. И достиг критической массы, после которой уже нельзя было ничего менять, C++ в условиях, когда принципа write once run everywhere в мейнстриме еще не было. Это потом уже богатая контора Sun учла опыт, в том числе и C++. И затратив N мегадолларов на разработку Java и еще M мегадолларов на ее раскрутку (причем не понятно насколько N меньше/больше M) поначалу получила медленного уродца, который более-менее оправился только к 99-му-2000-му. Вполне возможно, что на разработку C++ было потрачено даже меньше средств за все время его существования, чем на рекламу Java.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, VladD2, Вы писали:
E>>Копец начался еще раньше, когда появились различные и несовместимые между собой форматы OBJ-файлов статических библиотек. Даже в рамках одной платформы. Причем C++ не имел к этому никакого отношения.
VD>Согласен. Но Страуструп был в силах это изменить. Если не в первой версии, то хотя бы во второй. Тогда он уже имел вес и мог диктовать условия.
Не мог. Первые версии компилятора C++, даже с поддержкой шаблонов и исключений, были всего лишь препроцессорами, генерившими C-шный код. Далее работали штатные C-компиляторы и линкеры конкретной целевой платформы. Первый "родной" компилятор C++, Zortech C++, был написан в конце восьмидесятых для MS-DOS и не поддерживал самых продвинутых возможностей языка.
И я не очень представляю себе, как в 87-м или 89-м можно было выработать единый стандарт объектных файлов для 16-ти битовой MS-DOS с разными моделями памяти и 32-х битовыми мейнфреймами и RISC-рабочими станциями.
Тем более, что в отличии от нынешних времен, когда компиляторы менстримовых языков (Java и C#) принято раздавать бездвоздмездно (т.е. даром), в то время на продажах компиляторов деньги зарабатывали.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, AndreiF, Вы писали:
AF>Здравствуйте, eugene0, Вы писали:
E>>Ну так что, аргументы какие-нибудь будут или признаем что в процитированом ты ничего не смыслишь и написано оно в надежде на то, что оппонент в специфике отрасли не разбирается и возразить по этой причине не сможет?
AF>Я сказал то, что считаю верным. Если у тебя есть точная статистика — предъяви, и я соглашусь что был не прав.
Вообще-то, процитированный тезис выдвинул ты, тебе его и подтверждать. (Кстати, ты больше не отказываешься от него, как в предыдущем посте?) Судя по тому, что ты до сих пор этого не сделал, подтверждения у тебя нет, а тезис взят с потолка.
AF>Пока же я вижу только, что это ты пытаешься взять наглостью и переходишь на обсуждение личностей вместо обсуждения темы.
Да я что, я так Сижу на работе, пишу игру, почитываю форум в перерывах. Вижу, человек пишет вещи, не соответствующие действительности, данной мне в ощущениях, да еще гнобит тех, кто пытается его поправлять
Здравствуйте, eugene0, Вы писали:
E>Да я что, я так Сижу на работе, пишу игру, почитываю форум в перерывах. Вижу, человек пишет вещи, не соответствующие действительности, данной мне в ощущениях, да еще гнобит тех, кто пытается его поправлять