Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Вниз

Реально ли на Delphi написать _конкурентноспособный_ трехмерный движок?   Найти похожие ветки 

 
Дмитрий Катаев   (2002-01-26 19:12) [0]

Здраствуйте! Я не знаю, задавался ли этот вопрос ранее, я нечастый гость в инете. Скажите, реально ли на Delphi написать конкуретноспособный трехмерный движок? Не подумайте, это не очередная вселенская идея, пришедшая после очередного похмелья. :) Просто я уже пишу движок на Delphi, и меня все терзают сомнения - неужели в конце концов он не потянет? Стоит ли переучиваться на C-шные языки?

Заранее спасибо за ответ.


 
wicked   (2002-01-26 19:56) [1]

думаю реально.... в крайнем случае, всё что тормозит, можно переписать на ассемблере...


 
Дмитрий Катаев   (2002-01-26 20:12) [2]

А существуют ли вообще более-менее известные трехмерные игры, написаные на Delphi?
Куда ни ткни, везде С. На С скомпилированный код получается вроде оптимальнее. Но что же выходит, если и действительно все критичные куски можно переписать на ассемблере, то тут дело в обычной лени? Или же здесь сильно влияют сроки (настолько сильно, что это оказывает влияние на выбор программного продукта)?

Ну не может же Delphi быть хуже, чем остальные...


 
wicked   (2002-01-26 20:22) [3]

а тебе никто и не скажет, на чём игра написана.... насчёт оптимальности кода - я где-то статью видел - сравнение известных компиляторов на предмет скорости сгенерированного ими кода... занимательно - delphi в большинстве тестов шла примерно в середине.... один тест - на скорость манипуляций с памятью - delphi выиграла.... тест со строками - проиграла...
а насчёт выбора программного продукта - есть категория людей, которая будет считать тебя человеком второго сорта, если ты скажешь, что пишешь на delphi... :)


 
Дмитрий Катаев   (2002-01-26 20:57) [4]

:) Понятно.


 
Yaro   (2002-01-27 03:22) [5]

Дело не в математических вычислениях, хотя в них, даже очень можно выиграть, если пишешь на ассемблере... и дело не в написании "оптимизорованного" кода... Дело в ХММ и ММХ - вот СИЛА! НО, виндоуз, собака, не дает все это использовать на полную катушку... :( Да и с видеовыводом проблемы.... В итоге итог один - //помним песенку про ДОС?
А язык, имеется ввиду не возможности компилятора, а ЯЗЫК с большой буквы - это дело желания и привычки.
Все-равно в конце концов все сведется либо к ASM"у либо к комбинированному коду.

ЗЫ: Дя. я тоже пишу движок, который УЖЕ может конкурировать с некоторыми Аппаратными "возможностями".

Проблема одна - вывод на экран... все, чем я пользуюсь нужной скорости не дают!


 
MJH   (2002-01-27 04:46) [6]

у тебя что за проц, если ты говоришь что твой движок может конкурировать с железками?


 
MetallAdm   (2002-01-27 11:44) [7]

Yaro ©
значит дело не в том чем ты пользовался при выводе на экран а
проблема в алгоритме
вот и тормоза


 
MetallAdm   (2002-01-27 11:47) [8]

Да и В принципе на сколько я слышал (можете поправить если я не прав)
Си болле гибкий язык !

А написать движок можно в принципе на любом языке
главное что бы лень не приставала


 
drpass   (2002-01-27 14:28) [9]

Си нисколько не гибче Паскаля. Просто компилятор Сей задает меньше вопросов, чем паскалевский.
Я писал движок под DirectX7 для моделирования трехмерных поверхностей - работал прекрасно даже на PowerVP PCX2 + P233, при том, что в сцене было около тысячи полигонов.
Ассемблер тут абсолютно не причем, основная расчетка-то выполняется либо DirectX, либо железом акселератора.
По поводу установки полигонов - я предварительно попробовал реализовать эти процедуры и на Паскале,и на Сях, и посмотрел на них сквозь дебаггер. Ассемблерный код получился почти идентичным :)
Правда, небольшое замечание - функции по модели stdcall в Сях вызываются немного быстрее, чем в Delphi.
>Yaro
У меня был студент, который тоже сделал движок на АСМе и говорил, что это круче, чем использовать железо. Я попросил его добавить фильтрацию текстур. После этого скорость упала до полфрейма в секунду на PII-450


 
Дмитрий Катаев   (2002-01-27 16:56) [10]

Большое спасибо, теперь ситуация немного прояснилась. Почему я задал этот вопрос: как-то в компании я сказал, что пишу движок на Delphi. На меня посмотрели так, будто бы я сказал, что хочу выиграть Формулу-1 на Запорожце.

Вообще мне до сих пор не понятна этакая дискриминация Delphi-стов по сравнению с С-шниками. :(


 
VuDZ   (2002-01-28 00:43) [11]

на счёт скорости С vs Delphi - с выходом 5 версии (о 6 ничего не знаю) скорость почти сравнялось, т.е. нет такого разрыва, как было в первых версиях делфи
на сколько мне известно. есть готовые движки, не коммерческие, написанные на делфи, если найду - приведу ссылки

Дмитрий Катаев
Вообще мне до сих пор не понятна этакая дискриминация Delphi-стов по сравнению с С-шниками.
мне то же :)

MetallAdm
Да и В принципе на сколько я слышал (можете поправить если я не прав)Си болле гибкий язык !
правильно слышал - С позволял во все времена переопределять операторы, наличие остальных фич то же радует - это всё таки чисто системный язык, на нём писались и будут писаться ОСи... если хочешь различия - заведи ветку или поищи в инете С vs Pascal || C++ vs Delphi :D


 
VuDZ   (2002-01-28 00:46) [12]

http://www.az.ru/yp/engines/3del_1419_src_lang_dp.html
http://www.freeware32.ru/download.php3?id=496
http://ya.ru/yandsearch?text=3d+engine+Delphi


 
Aaz   (2002-01-28 04:10) [13]

Не знаю, не знаю ...
Лично я стал сомневаться ...
1. Скорость.
По моему действительно, скорость обработки не сильно отличается. Значительно отличается размер генерируемого кода. Но его говорят можно исправить выкинув VCL из кода.
2. Документация
Самое смешное, что документация для программирования на DirectX пишется для С++ и еще для VB! На Delphi практически ее нет. Из этого следует - начинающие будут юзать VB. Те примеры что есть, отрывочны, и в основном показывают что на delphi можно хоть что-то сделать.
3. Движки
Единственный ДВИЖОК, который хоть что-то может, это Morfit. Но он написан на Си. И просто МОЖЕТ еще работать и из под делфи. К сожелению он не приспособлен для создания космического симулятора. Встроенная физика не позволяет. DelphiX не движок. D3D тоже.

Отсюда, зная Си сделать свой движок проще и быстрее. Знал бы -давно сделал бы игру... Ну не люблю я Си, не люблю...

В принципе, меня всегда это убивало - зачем тратить время и создавать СВОЙ 3d движок? Есть DirectX, OpenGL, ну документировать их по лучше и все, создать библиотеки наподобие DelphiX и работать.

А всем желающим написать игру, совет - УЧИТЕ АНГЛИЙСКИЙ.
И маленькая просьба - пишите документацию по русски :-)

PS. Сам я пытаюсь раскалупать DelphiX, мучусь с фоном...






 
VuDZ   (2002-01-28 06:40) [14]

Aaz
Но его говорят можно исправить выкинув VCL из кода.
забей на VCL - если писать что-то для DX or OGL - чистый С, опс, сорри, паскаль и всё. Честно говоря, всякие приблуды типа классов и пр. то же не особо нужны

Самое смешное, что документация для программирования на DirectX пишется для С++ и еще для VB! На Delphi практически ее нет. Из этого следует - начинающие будут юзать VB.
Вся шутка юмора в том, что VB заточен под СОМ - там работа с СОМ серверами делается элементарно, практически ичего не надо знать - в этом то причина, почему есть примеры для васика.

Отсюда, зная Си сделать свой движок проще и быстрее
ну, ещё ведь надо время на обучение, то есть на то, что бы научиться делать нормальные вещи, а не только вращать треугольник и пр. Это есть неправильно

Ну не люблю я Си, не люблю...
Я плакаль. Скажу по большому секрету, когда то именно из DX я перешёл на С++ и забил на Делфи. С/С++ - вещь очень рульная, только надо понять его... Но это на твоё усмотрение

В принципе, меня всегда это убивало - зачем тратить время и создавать СВОЙ 3d движок? Есть DirectX, OpenGL, ну документировать их по лучше и все, создать библиотеки наподобие DelphiX и работать.
Просто движок делает сл. вещи:
1. обсчитывает всю физику
2. производит обработку примитивов
3. и прочии фичи, типа спец. эффектов

А всем желающим написать игру, совет - УЧИТЕ АНГЛИЙСКИЙ.
ну а куда ж без этого :D


 
Владимир Васильев   (2002-01-28 10:27) [15]

http://www.pythianproject.org/cgi-bin/PPServer.exe


 
Aaz   (2002-01-29 04:53) [16]

>>... что документация для программирования на DirectX >> пишется для ... VB!
> Вся шутка юмора в том, что VB заточен под СОМ - там
> работа с СОМ серверами делается элементарно,
> практически ичего не надо знать ...


Ну в Delphiях работа с COM тоже не очень сложная. На мой взгляд, дока пишется Мicrosoft только для продуктов Vicrosoft, так как "ничего стоящего кроме продуктов Microsoft нет". Мелочь, а сколько юзеров юзает VB :-(.
По поводу ничего не надо знать: берем простую функцию SetBackgroundDepth - что она делает? Как с ней работать?
(Это мое больное место :-), кто знает подскажите ) COM сам нужные параметры не поставит и в нужное место не воткнет.

>>Отсюда, зная Си сделать свой движок проще и быстрее
> ну, ещё ведь надо время на обучение, то есть на то, что бы
> научиться делать нормальные вещи, а не только вращать
> треугольник и пр. Это есть неправильно
Можно подумать на Delphi учится делать нормальные вещи не надо? О том и речь, что с докой обучение будет идти быстрее и проще. На худой конец, можно слямзить пример из открытых движков. А они в основном на - Сях.
Да блин, более-менее приличные движки все требуют Cи компиллер. Так бы и поюзал какой, ан фиг - учите си, изучайте си++.:-(

>>Ну не люблю я Си, не люблю...
> Я плакаль. Скажу по большому секрету, когда то именно из DX я
> перешёл на С++ и забил на Делфи...
Так вот, к этому все и идет ... Любовь и необходимость две разные вещи.

>> В принципе, меня всегда это убивало - зачем ... создавать
>> СВОЙ 3d движок?
> Просто движок делает сл. вещи...
Да это то понятно, непонятно почему еще нет универсального движка ? Который можно былоб расширять по своему усмотрению и физикой и спец.приблудами?


 
VuDZ   (2002-01-29 07:09) [17]

Aaz
На мой взгляд, дока пишется Мicrosoft только для продуктов Vicrosoft
это называется маркетингом :D

Так вот, к этому все и идет ... Любовь и необходимость две разные вещи.
как перешёл на С - до сих пор не жалею... Да и работа к этому располагает

Да это то понятно, непонятно почему еще нет универсального движка ? Который можно былоб расширять по своему усмотрению и физикой и спец.приблудами?
Э... ну просто по тому, что он будет морально устаревать и всё... Сделать его расширяемым - потеря в быстродействие. так как это должна быть очень тонкая операция...
Да и сколько разработка такого движка будет стоить?


 
Дмитрий Катаев   (2002-01-29 19:43) [18]

VuDZ: Спасибо за ссылки. Пойду изучать то, что скачал...


 
elf2   (2002-03-18 15:27) [19]

Хотелось бы подитожить все здесь сказанное(написанное):
-DELPHI позволяет работать с 3D графикой
-Главное-уметь
-3D графику можно делать и в BASIC под DOS
-Рекомендую книгу"DirectX.Графика в проектах DELPHI


 
Baron   (2002-03-18 16:23) [20]

Мда..у меня был недавно похожий вопрос...Вот только, что я скажу - написать движок на Делфи РЕАЛЬНО, работающий с нормальной
скоростью! Я вот уже видал один...Только дело вот в чём:
1)сейчас для содания 3д моделей в основном юзается 3д студио макс. Она написана на С++, следовательно загрузить её не оставит труда, зная алгоритм, а для того, чтобы загрузить её в дельфи
нужно нписать плагин.
2)Си изначально создавался альтернативой ассму, в нём система лежит на поверхности, а в делфи это далеко зашито... А при программировании игр чяаще всего встречаются задачи низкого уровня...
Мой совет - учите Си. Дело не в том, что он такой
плохой, а просто нужно вникнуть в суть дела. Этот язык удобен,
но винда всячески превращает его в китайский язык, так
как сама она написана на Си, а не на Си++, сл - но объектно - ориентированной её можно назвать с большой натяжкой.


 
drpass   (2002-03-20 01:08) [21]

>Baron
1) Какое отношение может иметь язык, на котором сделана 3DSM, к формату объектов ???? И какой еще плагин ???? для загрузки в ДЕЛЬФИ ????
2) Паскаль ничем не сдерживает программиста, тем более, от низкоуровневого программирования. Он только не дает ему делать трудноуловимых ошибок.
Вообще, хорош тот язык, которым ты лучше владеешь. Поэтому этот спор бесполезен.


 
VuDZ   (2002-03-20 09:52) [22]

drpas а счёт языка ты прав


> Этот язык удобен,
> но винда всячески превращает его в китайский язык, так
> как сама она написана на Си

не пойму? У С изначально простой синтаксис, а китайским его можно сделать только чере макросы, тогда это может реально выглядеть так:

for (int i = 0; i < 100; ++i)
begin
if (1 == (i % 2))
then begin
printf("Opan"ki\n");
end
else begin
printf("Opan"ki in square\n");
end
end

:E


> так
> как сама она написана на Си, а не на Си++, сл - но объектно
> - ориентированной её можно назвать с большой натяжкой.

Покажи мне того, кто сказал, что win32 - это ОО система. Не думаю, что тогда смогли бы писать под неё на чём то, кроме MS VC++, так как экспорт классов - это не ф-ии С :>

> Си изначально создавался альтернативой ассму, в нём система
> лежит на поверхности, а в делфи это далеко зашито... А при
> программировании игр чяаще всего встречаются задачи низкого
> уровня...

Например, работа с СОМ для DX :>
А всё критичное ко времени можно писать на асме, благо, что 3dNow! & SSE крайне просты (за исключение пары инструкций)

ну а про 3DSM я умолчу - для экспорта .max -> .x C не требуется


 
Baron   (2002-03-21 17:17) [23]

Ладно ладно завалили :) я просто торопился тоды, поэтому
и написал кое как...вы у простите господа ;).
Но факт в том, чо 99 процентов всех игр, написанных
в последние годы были написаны на С++...в среде Visual C++.
Почему? Догадайтесь...вариантов ответа много...
насчёт плагина советую зайти на www.gamedev.ru и почитать
в кодинге



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.66 MB
Время: 0.046 c
1-95415
Igor_
2002-07-16 13:30
2002.07.29
информация о полях объекта


14-95532
Alx2
2002-07-03 12:08
2002.07.29
Задачка :)


1-95357
Alex SV
2002-07-18 10:44
2002.07.29
Как работать с принтером


1-95394
AlexanderVasjuk
2002-07-15 16:55
2002.07.29
Lame API


8-95451
I/O
2002-03-20 17:52
2002.07.29
MP3





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский