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

Вниз

Чем DelphiX хуже Direct API. (Это не вопрос)   Найти похожие ветки 

 
Ev_genus   (2002-05-10 12:41) [0]

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

Начал я год назад писать свою "игру" (демка недеделанная, но "игрой" называть её приятнее) в Delphi с помощью DelphiX. Вдохновлённый разными демками и сэмплами я начал воять. Всё хорохо и управление устраивает и графика класс. Но тут решил я проверить свой движок на скорость (а за одно и на прочность), зарядил в него 1500 объектов и увидел все прелести покадрового слайд шоу (3 fps). Может это движок тормозит,- подумал я. Взал и отрубил вывод спрайтов. О чудо: скорость взлетела до потолка. И тут я задумался... Пошел с горя на базар и купил книжку по Direct API. Три дня помучился, зато теперб 2000 спрайтов на экране, а мне хоть-шо - 50 fps. А главное: я понял как всё это работает до мелочей и подробностей.

Вот и сказочке конец, а кто слушал .......

PS Но у Direct API есть и недостатки. Например Alpha-Blending. Там его просто нет, поэтому нужно писать самому (на ассемблере) или взять де то.


 
ION T   (2002-05-10 20:18) [1]

А альфаблендинг выдрать из DelphiX:))


 
Автор   (2002-05-10 21:17) [2]

Я пытался. Не получилось. Если заешь как то поделись опытом.


 
ION T   (2002-05-11 10:50) [3]

Я тоже не пытался (надобности не было) Но если приспичит, то думаю можно....


 
HellTrooper   (2002-05-16 11:38) [4]

Хм... Альфа блендинг делается довольно быстро даже без ДХ :)Главное знать формулу :)
Я тоже предпочитаю API имхо он проще и понятней (особенно когда читаешь СДК на сях, и пишешь на дельфях %-) и такое случается) хотя из ДелфиХ использую обычно таймер и TDXPlay(В СДК я до этого места недошёл :)). Но я думаю всё же, что тут приходится выбирать, как в давнешние времена, высокий или низкий уровень.


 
Владимир Васильев   (2002-05-16 14:03) [5]

> Ev_genus вы не правы с fps.

UnTitledRTS c отключённым AI (поиск врагов , обработка столкновений и атака ) - только вывод графики - ведь именно про это идёт речь
- 1500 Sprites + ScrollBackGraund ~ 40fps.

Можете проверить сами.
http://www.gamedev.narod.ru/index.htm ( к сожалению почти годичной давности, новый код закрыт) .



 
GL   (2002-05-17 16:52) [6]

Вообще писать игры (да и просто приложения, использующие графику) с применением компонентов - это ОТСТОЙ. Все нормальные игры написаны на чистом Win API и используют функции непосредственно из OpenGL или Direct3D. При этом скорость существенно возрастает, да и не возникает таких проблем, как например отсутствие Alpha Blending в каком-то компоненте.

P.S. Наилучший вариант для программирования графики - MSVC++ & WinAPI.


 
Урб   (2002-05-18 02:51) [7]

Для GL.
Ты находишся на: http://delphi.mastak.ru/
Тут обсуждается как делать игры на DELPHI.

Я понимаю, что 99% игр пишутся на С, С++, и есть форумы где Сишники обсуждают, как круто писать игры на С++. И этих форумов на много больше, чем тот, на который ты читаешь сейчас.
Пожалуйста, перейди туда и посться там.

И не думал наезжать. ;) Честное слово.

А я пока еще верю, что найдется человек чтобы дополнить список из: Эйдж оф Вонды и Сьеджа оф Авалона... ;)


 
Автор   (2002-05-20 12:09) [8]

Уважаемый Владимир Васильев. На счёт fps: Конкретные числа зависят от аппаратного обеспечения (железа). Я только хотел показать разницу.

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


 
Aspid_Papa   (2002-05-20 15:14) [9]

Почитал. Спасибо.


 
Сергей Чурсин   (2002-09-07 19:40) [10]

2Ev_genus & All

было бы интерестно, почитать еще про возможности/невозможности в DelphiX ? Не только касательно скорости.. Например, там есть возможность прямого доступа к поверхности ? (Lock->Unlock).. И возможность использовать прямые функции DirecX Api к объектам DelphiX ? (ну как Form.Handle - это Hwnd :) )

2GL
Полностью одобряю сказанное Урб-ом.



 
artemiy   (2002-09-07 23:17) [11]

Ev_genus ©

Извините........а можно посмотреть ваш движок на ДельфиХ(который тормозит) ???


 
Pasha676   (2002-09-10 10:52) [12]

Про двухмерную графику ничего не скажу. Скажу про трехмерную. Использую самый препоганый вариант в плане скорости - DelphiX, 3DRM интерфейс (вот это тормоз так тормоз, но уж больно просто конвентируются в нем из 3DMAX объекты), есть полупрозрачности, наверное даже более 6000, а то и 7000 полигонов, точно не смотрел, оконный режим - ну и ничего. Свои 70 фреймов в секунду делает. Мне хватает.
Да я знаю, что если писал бы на Direct API, было бы лучше, да я знаю что если б писал на IDirectDraw интерфейсе - было бы лучше. Даже может когда-ниб и перепишу. Но скорость разработки на DelphiX, имхо, выше. А это далеко не последний фактор, заказы надо делать в срок.


 
Крупье   (2002-09-10 11:10) [13]

После выхода каждой новой версии приходится дожидаться появления заголовочников, а при юзании DelphiX-еще и надо ждать, когда его обновят (энтузиасты).

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


 
Sapersky_   (2002-09-10 12:53) [14]

2Pasha676:
Если выводится один-единственный объект, особой разницы между D3D RM и IM (Immediate Mode, непосредственный режим) не будет (т.к. RM реализован на IM). Тем более не будет разницы, используется при этом DelphiX или нет - т.к. DelphiX контролирует только 2D-графику.
Проблемы с D3D RM начинаются, если нужно сделать что-то продвинутое - альфа-текстуру (взрыв, дым...) или динамический (изменяющийся с течением времени) объект. Мультитекстурирование, бамп-мэппинг и т.д. вообще невозможны.
Опять же, невозможно контролировать весь процесс рендеринга. Это иногда приводит к забавным казусам - например, я как-то СЛУЧАЙНО получил Motion Blur...
И общая корявость... всё это создание фреймов, присоединение того к этому сильно напоминает пляску шамана с бубном. Сейчас, изучив IM (рекомендую для начала 7-ю версию - самая простая), на RM смотреть не могу - противно. Если уж работать на высокоуровневом API, то лучше, пожалуй, GLScene. В плане интеграции с Delphi и вообще.

2Все:
DelphiX... штука неплохая. Но при самостоятельном написании всего можно учесть особенности своей программы и получить бОльшую производительность... и меньший размер exe-шника (мелочь, а приятно :)).
Альфа-блендинг можно утащить из FastLIB http://gfody.com/ или делать его через Direct3D (это не так уж и сложно, см. мой пример Points на DelphiGFX).


 
Fog   (2002-09-10 18:37) [15]

Использовать компоненты - себя не уважать и пользователей тоже!


 
Владимир Васильев   (2002-09-10 21:58) [16]

>fog , простите, а вы уже что-то коммерческое успели написать,-без компонентов - в одиночку????


 
a_n_t   (2002-09-11 05:23) [17]

2Fog: Пользователь (среднестатистический) в жизнь не отличит: использованы компоненты при разработки или нет. Он и понятия не имеет что такое компоненты и вообще как это можно написать программу :)


 
Pasha676   (2002-09-11 13:42) [18]

2Sapersky_
А нельзя ли, плиз, по GLScene порекомендовать мне что-ниб почитать или примерчики или сайтики и вообще откуда мне плясать начать, чтоб освоить его. И вообще что это такое и хде это взять.


 
Pasha676   (2002-09-11 13:44) [19]

Ой спасибо. Уже не надо в соседнем топике нашел. Сорри за торможение



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

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

Наверх





Память: 0.5 MB
Время: 0.009 c
1-38315
harismatik
2003-02-03 13:14
2003.02.13
Выделение в ListView


14-38470
werr
2003-01-30 17:52
2003.02.13
сколько взять за прогу?


14-38481
Ketmar
2003-01-25 17:34
2003.02.13
клиент для чата мастаков, альфа версия.


6-38405
Крокус
2002-12-05 12:12
2003.02.13
удаленное соединение


14-38507
Anatoly Podgoretsky
2003-01-27 07:53
2003.02.13
Именинники 27 января





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский