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

Вниз

Можно ли написать полноценную игру в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.037 c
14-41895
Тролль
2003-10-20 10:48
2003.11.13
ListBox


14-42071
Valentin
2003-10-22 12:30
2003.11.13
Internet mail


1-41650
Буланов Дмитрий
2003-10-25 07:48
2003.11.13
ActiveMovie


1-41345
ghost_by
2003-11-03 16:52
2003.11.13
Встраивание компонентов в TStringGrid


1-41277
.0.
2003-10-31 14:30
2003.11.13
как сделать чтобы функция вернула не одно ,а несколько значений с





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