Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Можно ли написать полноценную игру в Delphi???   Найти похожие ветки 

 
General   (2003-04-13 20:38) [0]

Или обязательно придётся учить ещё и Си? А можно будет как-нибудь не используя WinAPI?..


 
k-man ©   (2003-04-13 20:49) [1]


> Или обязательно придётся учить ещё и Си?

На чем писать дело твое. Ну пишут же на Delphi хорошие игры..

> А можно будет как-нибудь не используя WinAPI?..

Как связаны WinApi и игры в этом вопросе?
Или, может ты имеешь ввиду программирование без VCL


 
Плохой человек   (2003-04-13 22:11) [2]

Написать можно. Можно без WinAPI.


 
DrPass ©   (2003-04-13 22:37) [3]

Написать можно. WinAPI учить не нужно. А вот DirectX API подучить не помешает


 
Darthman   (2003-04-13 23:49) [4]

Точно можно. Можно и на OpenGL, Можно и на WinAPI, можно и на DirectX, можно и самому че-нить придумать. Воля ваша!


 
Mop   (2003-04-14 04:13) [5]

Делфи годится на написание плоских или низко-полигонных трехмерных игр. Без использования VCL скорость намного возрастает. А на С++ можно написать все, что угодно.


 
TButton ©   (2003-04-14 07:29) [6]

2 Мор
Кроме 3х мерных игр существуют еще и 2Д и 2.5Д! возможно для тебя ето новость но для многих - факт.

Если очень хорошо разобраться с ДелфиХ, можно обойтись и без АПИ. Но всеравно знание АПИ никогда не помешает.


 
Хранитель_7К   (2003-04-14 08:02) [7]

Delphi - без VCL!


 
Хранитель_7К   (2003-04-14 11:57) [8]

Я бы задал вопрос по другому - а написал ли кто из присутствующих (отстутствующих) на этом форуме сабж???
Вот в чем вопрос!


 
k-man ©   (2003-04-14 14:01) [9]


> Delphi - без VCL!

Делфи без VCl это С подобный код. Очень подобный.
Поэтому если делать что-то серьезное лучше использовать С++


 
Хранитель_7К   (2003-04-14 14:40) [10]


> Делфи без VCl это С подобный код. Очень подобный.
> Поэтому если делать что-то серьезное лучше использовать
> С++

Полностью согласен!
Но не люблю я си :)
Хотя может со временем...


 
k-man ©   (2003-04-14 15:35) [11]


> Но не люблю я си :)

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


 
General   (2003-04-14 15:40) [12]

Я недавно купил книжку DirectX. Графика в проектах Delphi. Занимательно :) Но самому разбираться всё равно сложно. Без WinAPI - в смысле используя приемущества визуального проектирования, когда за создание окон, компонентов будет думать сама дельфя. Может, в трёхмерной игре это не так важно, но всё же. Чистота кода, конечно, страдает, но зато насколько проще!


 
Хранитель_7К   (2003-04-14 15:45) [13]

Хотя частенько в последнее время приходится сишные процедуры в делфи перелопачивать вручную без всяких там конвертеров.
Поэтому по большому я считаю все равно на чем писать
Делфи или Си - ДиректХ или ОпенГЛ
Я сейчас делаю свой проект на Делфях и под ОпенГЛ, вот закончу и попробую сделать на сях или под Директ - это даже интересно будет!



 
General   (2003-04-14 16:16) [14]

Вся документация (ну, если не вся, то большая часть) на тему DirectX API в сети с примерами на Си. Перевести, в принципе, несложно. Но даже DirectX SDK на мелкософт.ком написана для С-программистов. Мне стоило немалых трудов найти заголовочные файлы для Object-Pascal"я. Пробовал ставить DelphiX - лажа... Там нормально реализована только работа с DirectDraw. А на нём сейчас далеко не уедешь. И ещё. Может кто-нибудь помочь с реализацией алгоритма огонька? Я сделал примерно так: дан 2-мерный массив 256x256 типа TRGB:
type
trgb = record
r, g, b: byte;
( 60)
Вся документация (ну, если не вся, то большая часть) на тему DirectX API в сети с примерами на Си. Перевести, в принципе, несложно. Но даже DirectX SDK на мелкософт.ком написана для С-программистов. Мне стоило немалых трудов найти заголовочные файлы для Object-Pascal"я. Пробовал ставить DelphiX - лажа... Там нормально реализована только работа с DirectDraw. А на нём сейчас далеко не уедешь. И ещё. Может кто-нибудь помочь с реализацией алгоритма огонька? Я сделал примерно так: дан 2-мерный массив 256x256 типа TRGB:
type
trgb = record
r, g, b: byte;
end;

В цикле нижняя строка заполняется случайным оттенком красного:
flame[i,j].r:=255;
flame[i,j].g:=random(60);
flame[i,j].b:=random(60);

А потом снизу вверх идёт усреднение по каждой компоненте цвета. Пламя получается невыразительным :( Стоит стеной. Снизу ещё виден эффект random"а, а выше плавный градиент от красного к чёрному. Хотелось бы видеть настоящие языки пламени! Частицы, вылетающие из огня! Помогите, а? Хотя, это скорее тема для новой ветки.


 
cyborg ©   (2003-04-14 17:00) [15]

>>k-man © (14.04.03 14:01)> Delphi - без VCL!
>>Делфи без VCl это С подобный код. Очень подобный.

Бред три раза, и что тут подобного?


X:=Sprite^.X;
Y:=Sprite^.Y;

if ScreenCoord then
begin
Dec(X,ScreenX);
Dec(Y,ScreenY);
end;

{$B+}
if (not ((X+Sprite^.SrcRect.Right>0)
and (X<WindowWidth)
and (Y+Sprite^.SrcRect.Bottom>0)
and (Y<WindowHeight))) then Exit;
{$B-}
if Sprite^.Surface^.DD7Surface=nil then
begin
if not Create16BitSurfaceFromDataFile(FDD,Sprite^.Surface^.DD7Surface,
Sprite^.Surface^.W,Sprite^.Surface^.H,
Sprite^.Surface^.FileName,Sprite^.Surface^.SpriteNum,
Sprite^.Surface^.Videomemory)
then exit else
if Sprite^.Surface^.BltFlags and DDBLTFAST_SRCCOLORKEY<>0 then
DDSetColorKey(Sprite^.Surface^.DD7Surface,
(Sprite^.Surface^.ColorKeyR or
(Sprite^.Surface^.ColorKeyG shl 8) or
(Sprite^.Surface^.ColorKeyB shl 16))
);
end;

SrcRect:=Sprite^.SrcRect;

if X<0 then begin Dec(SrcRect.Left,X); X:=0; end;
if Y<0 then begin Dec(SrcRect.Top,Y); Y:=0; end;
if X+SrcRect.Right-SrcRect.Left>=WindowWidth then SrcRect.Right:=SrcRect.Left+(WindowWidth-X);
if Y+SrcRect.Bottom-SrcRect.Top>=WindowHeight then SrcRect.Bottom:=SrcRect.Top+(WindowHeight-Y);

Result:=FDDSBuffer.BltFast(X,Y,Sprite^.Surface^.DD7Surface,@SrcRect,Sprite^.Surface^.BltFlags);
if Result=DDERR_SURFACELOST then
begin
Sprite^.Surface^.DD7Surface._Restore;
end;


 
neuro ©   (2003-04-14 17:01) [16]

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


 
neuro ©   (2003-04-14 17:56) [17]

2cyborg:

Различия только в синтаксисе.Вобщем C++ идеальная релизация ООП, поэтому чем ООПешней язык, тем больше он похож на C++.А Object Pascal претендует на ООПшность..Отсюда и подобность.


 
cyborg ©   (2003-04-14 18:09) [18]

Ну естественно в синтаксисе, а так все языки похожи.
Интересное выражение про претендование на ООПность :)


 
Darthman   (2003-04-14 18:18) [19]

Кстати, с седьмой версии язык уже не обжект паскаль, а ДЕЛФИ :) гы.
О чем спор собственно. Форум-то для делфистов, не так ли?


 
neuro ©   (2003-04-14 18:31) [20]

2cyborg: вот это ты зря..Бэйсик никак не похож на C/C++, даже VB.
И потом, ЛИСП тоже =)

Это правильное выражение =) Вот ты юзал когда-нть BP7.x?Типа ООП..Я долго плевался..Все-таки Дельфи до C++ долго еще расти =)

2Darthman: спора нет =)

Чтобы не оффтопить: имхо civevo полноценная игра..вроде как на delphi написана..


 
cyborg ©   (2003-04-14 18:48) [21]

neuro я не веду к тому что круче, что нет, а ты это делаешь, насчёт похожести я сказал, что все языки делают одно и тоже, присваивание, запись/чтение, вызовы функций и сравнение только синтаксисом и отличаются.

BP и шестой и седьмой ковырял, ООП я так и непонял ихний, небыло ни литературы, ни учителей, поэтому у меня такой стиль остался процедурный в каком я пишу, ООП я понял только сев за Дельфи, удобная штука, только не по мне :), мне проще закатать всё в записи и обрабатывать простыми процедурами.

А насчёт полноценной игры, дык у меня есть вполне полноценные и писались в Дельфи :). Первая использовала OOP, вторую делаю всётаки в процедурном стиле.


 
neuro ©   (2003-04-14 18:57) [22]

гм..и я не говорил -- кто круче..я лишь сказал, что дельфи не совсем ООП.Это не значит, что Дельфи сакс, просто другая идеология.
Кстати, не все языки (одинаково полезны =)) делают одно и тоже..Вот тот же ЛИСП многострадальный =).


 
Плохой человек   (2003-04-14 20:35) [23]

>Вобщем C++ идеальная релизация ООП, поэтому чем ООПешней язык, тем больше он похож на C++.А Object Pascal претендует на ООПшность..Отсюда и подобность.

Фуфло. Object PAscal не претендует, а задаёт моду. В С++ ООПешность была просто присобачена к простому С. Другое дело Java - здесь уже забацано посерьёзней. Так что Object Pascal - это спору нет.


 
neuro ©   (2003-04-14 20:40) [24]

Хм..Object Pascal задает моду? Это сильно..Особенно если брать во внимание реализацию раннюю..Но это хрен бы с ней..А кто, скажи мне, дал моду на шаблоны?
А вот про то что к C++ присобачили реализацию -- тут ты не прав.Она к C++ (эта реализация) просто идельно подходит, типа все в кассу, все на месте.
Так что Object Pascal все-таки процедурным остался.Наивысшая стадия развития процедурного программирования.


 
k-man ©   (2003-04-14 22:12) [25]

2All
Прочитайте сабж! все еще не понятно? прочитайте сабж!
может дойдет какой вы бред тут понаписали в последней 10-ке постов.
Господи неужели опять затеяли спор что лучше С++ или Object Pascal!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Когда этот спор закончится? Наверно только тогда когда модеры
такие ветки будут гасить в зачатке. Ей богу надоело!
Ведь спрашивали можно ли написать полноценную игру на Делфи!
neuro привел пример - доказательство этой возможности!
Но нет - опять этот бесконечный спор!
Скажите измениться ли у кого нибудь точка зрения после этого спора? Все остануться при своих... Я например абсолютно не согласен с cyborg"ом, но я не буду спорить... Иначе конца не видно...


 
Arch-vile ©   (2003-04-14 22:19) [26]

Я, допустим, и не полноценную игру написал, но все-таки... А из серьезных проектов знаю Ricochet - подобие Арканоида, только с классным графоном. Написан он на Delphi - гарантирую (большое удовольствие :)


 
Плохой человек   (2003-04-14 23:57) [27]

2 neuro:
Есть два варианта:
1) Открой историю программирования и убедись в своей неправоте.
2) Спрограммируй что-нить ООПешной на С++ и убедись в своей неправоте.

Хех, Object Pascal - процедурное, это покруче моды. Видимо ты не видел последних новшеств Object Pascal по работе со строковыми типами.


 
General   (2003-04-15 15:16) [28]

Я начинал программировать с паскаля. Ну, не считая того, что нам на старых "четвёрках" преподавали Qbasic v1.1 ;) BP я изучал сам, и, как не пытался, в ООП так и не въехал :( Слишком там всё заморочено. Надоел мне паскаль, потому что нельзя там делать полноценные приложения для Win32. И в графику без знания асма можно не лезть. Потом в один прекрасный день узнал о Delphi. Воистину, инструмент для ленивых программистов! Расставляй себе кнопочки-списки да пиши процедуры обработки. Поэтому, после такой благодати, начинающему сложно разобраться с апями. neuro, спасибо за подсказку с огоньком, обязательно попробую!


 
neuro ©   (2003-04-15 16:27) [29]

2Плохой человек:
Скажи мне, такие слова как MFC,WTL,ATL тебе о чем-нибудь говорят?Если да, то почему тогда все эти навороченные (активно использующие ООП) пишуться именно на "недоООПшном" C++? Почему же нету им ObjectPascal-эквивалента?
Знаешь, я много раз писал на C++ =) и всякий раз получалось =), и получалось именно с ООП..Так что в неправоте своей ну никак не получаеться убедиться..
Кстати, строковые типы это маленькая фича =).Согласен, что в OPascal"е это сделано покруче.Хотя слишком много, мне С++"шных хватает.

2All: не подумайте, что пытаюсь обо%$ать Delphi, я просто хочу очертить границы его применения и его мощность в отдельных вопросах. =)


 
Arch-vile ©   (2003-04-15 16:41) [30]

Почитайте еще раз последний пост от k-man, ПЛИЗ


 
stream ©   (2003-04-15 16:42) [31]

Если я не ошибаюсь, Age of Wonders 1/2 писались именно на Delphi- очень даже неплохие игрушки


 
neuro ©   (2003-04-15 16:51) [32]

2Arch-vile: никто и не спорит.Просто так..Языками чешем =)

Насколько я знаю =), любую игру можно написать на Delphi.Даже Doom 3. Только это нецелесообразно. Все-таки Delphi больше для БД и прочего коммерческого софтописания предназначена. Типа "ускоренная корпоративная разработка".

Больше скажу -- на Basic"е тоже можно Дум3 написать.=)

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

Я все сказал (c) =)


 
cyborg ©   (2003-04-15 18:07) [33]

neuro © (15.04.03 16:51)
Может тебе ещё и ключи от квартиры в которой деньги лежат?
Исходник можешь посмотреть на DelphiGFX.
http://delphigfx.mastak.ru/game5.htm

Теперь в ответ жду твой исходник на С++ посмотреть, а-то твоя демагогия объектов в игре не катит.


 
neuro ©   (2003-04-15 18:10) [34]

гы =) Сходи в гугл и скажи -- Wolf3D Sources, Doom sources..будут тебе примеры =)..ей-богу, как маленький


 
cyborg ©   (2003-04-15 18:27) [35]

Ладно бамбуком прикидываться, свои давай, демагог.


 
neuro ©   (2003-04-15 18:39) [36]

Я не утверждал, что я писал игры на C++. Я и не просил ЛИЧНО ТВОЙ пример..Требовалось лишь ПРЕДъЯВЛЕНИЕсорсов РАБОЧЕЙ НОРМАЛЬНОЙ гамы..Читать надо внимательней =)


 
cyborg ©   (2003-04-15 18:56) [37]

Как раз я читаю внимательно, и поэтому придирался, придираюсь и буду придираться к словам адресованным мне. Будь добр предъяви свой код, либо твои размышления, что ООП в Дельфи никуда не годится и всё лучше писать в С++ не имеет под собой основания.

P.S. Много таких развелось, кричат много, а сделали мало.
Интересна твоя посылка меня на просмотр исходников Дума, мол "Вот как я тебя сделал!".


 
neuro ©   (2003-04-15 19:03) [38]

Да никто тебя не "делал"..Нужен ты больно..Посылка к примеру Дума -- я всего лишь дал тебе понять, что на сях почти все серьезные гамы и пишуться или для тебя это тоже открытие?
Далее, я НЕ говорил, что ООП в дельфи никуда не годиться, я говорил, что оно там не столь хорошо вписываеться в общую семантику и синтаксис языка, да и не очень-то и должно..
По поводу, сделали мало -- иди на www.klocwork.comи любуйся, Кармак блин..


 
cyborg ©   (2003-04-15 19:11) [39]

1) Какая удобная позиция "на сях почти все серьезные гамы и пишуться".

2) Всё там вписывается.

3) И что я там должен найти?


 
neuro ©   (2003-04-15 19:15) [40]

1)А ты хочешь сказать, что нет?
2)Да уж..
3)Место моей работы..

Сходил я по твоему линку..И это все "нормальные" игры? Я плакал..




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

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.05 c
1-41390
AndreyA
2003-11-04 16:41
2003.11.13
Окна


3-41065
Sugrob
2003-10-23 19:38
2003.11.13
SELECT!!! Извлечение данных по дню месяца и месяцу года.


3-40881
rob
2003-10-20 22:45
2003.11.13
как импортировать данные из excel в DBgrid


6-41833
Urvin
2003-09-07 02:14
2003.11.13
Помогите научиться работать с сетями


1-41481
zapped
2003-10-28 15:29
2003.11.13
Service debugging