Форум: "Игры";
Текущий архив: 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.038 c