Autor Beitrag
igel457
Hält's aus hier
Beiträge: 12

Win XP Home
Turbo Delphi Explorer
BeitragVerfasst: Fr 26.01.07 20:50 
user defined image

Wer von euch hat nicht schon von DelphiX gehört oder sogar damit gearbeitet?
Bei DelphiX handelt es sich um ein populäres System mit dem man einfach graphische Spiele und dergeleichen programmieren kann. Allerdings ist DelphiX in der letzten Zeit ein wenig aus der Mode geraten. Es verwendet nähmlich nur DirectX 7 und wurde von seinem Entwickler nicht weiterentwickelt. Es gibt zwar einige Projekte, die versucht haben DelphiX wieder aufzumöbeln doch nur mit mäßigem Erfolg: Dinge wie Alphablending lassen die Framerate in den Keller sinken. (Mehr über DelphiX erfahrt ihr hier)

Ich selbst verwende DelphiX in meinem Spiel CrashPoint und funktioniert dort auch sehr gut. Jedoch vermisse ich einige Effekte: Warum kann ich keine Lichtquellen einbauen? Warum ist Alphablending so langsam? Warum kann ich keine Texturen mit Alphachannel erzeugen?
Aus diesen Gründen habe ich mich daran gesetzt eine eigene 2D Engine zu schreiben: Andorra 2D.
Sie verwendet die 3D Schnittstelle wodurch im 2D Bereich Effekte möglich werden, die man sonst nur aus 3D Spielen kennt.

Eine weitere Besonderheit von Andorra 2D ist, dass sie nicht nur mit DirectX läuft: Alle Graphikausgaben werden über ein Plugin dargestellt. So kann man auch OpenGL mit Andorra 2D verwenden und seine Programme unter Linux laufen lassen, ohne eine Zeile Code auszutauschen.

Weitere Informationen gibt es auf der Projektwebsite (englisch)
andorra.sourceforge.net/.
Dort findet ihr auch Demos, Tutorials und Screenshots...

Wenn ihr Fragen, Kritik oder Anregungen habt, dann könnt ihr diese entweder hier oder bei SourceForge posten.

Downloads:
Momentan gibt es die Version 0.15. Einen Überblick über alle Downloads gibt es hier.

Das Package mit allen Demos, Prerequisiten und Binaries gibt es in der neusten Version hier:
Andorra 2D All-In-One-Package 6,39MB

Tutorials:
Die Tutorials gibt es nicht nur auf der Website, sondern auch in der DP (die Sterne stellen die Schwierigkeit dar):
user defined imageuser defined imageuser defined imageuser defined imageuser defined imageTutorial 1 - Installieren und Initialisieren
user defined imageuser defined imageuser defined imageuser defined imageuser defined imageTutorial 2 - Das erste Bild
user defined imageuser defined imageuser defined imageuser defined imageuser defined imagePartikelsysteme

Danke für euer Interesse,
Igel457

PS: Crosspost zu Delphipraxis


Zuletzt bearbeitet von igel457 am So 11.03.07 15:51, insgesamt 1-mal bearbeitet
rizor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 209

WIN XP
Delphi 2005 PE, Visual C++
BeitragVerfasst: So 18.02.07 14:41 
Hi,

ich habe ein Problem mit AdClasses.

Beim Kompilieren bekomme ich folgende Fehlermeldung.

[Pascal Fataler Fehler] AdClasses.pas(846): F2039 Ausgabedatei '..\..\dcu\AdClasses.dcu' kann nicht erstellt werden

Wie kann ihc das beheben?
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: So 18.02.07 16:20 
in den optionen den ausgabepfad ändern?

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: So 18.02.07 16:34 
Also basiert die Engine jetzt auch auf DirectX7 oder auf OpenGL oder wie?
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 18.02.07 16:40 
user profile iconigel457 hat folgendes geschrieben:
Eine weitere Besonderheit von Andorra 2D ist, dass sie nicht nur mit DirectX läuft: Alle Graphikausgaben werden über ein Plugin dargestellt. So kann man auch OpenGL mit Andorra 2D verwenden und seine Programme unter Linux laufen lassen, ohne eine Zeile Code auszutauschen.

Wie du siehst, läuft diese scheinbar standardmäßig mit DirectX (8/9) und kann alternativ dazu auch mit OpenGL betrieben werden.
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: So 18.02.07 17:24 
mal ein paar tipps zu deiner Engine :

Plugin ist gut, aber so ist es zu lahm. Stichwort : Funktionszeiger-Mapping. Callaufrufe kosten zeit. Also wenn es geht, nicht durch TAdDraw zum Plugin routen, sondern gleich das vom Plugin aufrufen. in einer grafik-engine ist alles zeitkritisch.

Schalt das painting von deiner form ab (WM_ERASEBKGND und WM_PAINT), das geht mit überschreiben der windows-nachrichten. Bringt dir einige fps.

Performancecounter sollte man nicht im Object machen, sondern in deiner main-render-loop.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  FPSCount : Integer = 0// FPS-Counter
  g_dwCurrentTime : DWORD; // aktuelle zeit, wenn 1000 millisekunden um sind
procedure TfMainForm.FormIdle(Sender: TObject; var Done: Boolean);
begin
  MainScene.RenderScene; // kann raus, ist ja mein Renderer
  If GetTickCount - g_dwCurrentTime >= 1000 then begin
    g_dwCurrentTime := GetTickCount;
    Caption := 'FPS : ' + IntToStr(FPSCount); // bei mir in die caption, wo du es hinhaben willst, weiss ich ned
    FPSCount        := 0;
  end else
    Inc(FPSCount);
  Done := False;
end;

Das ganze erspart dir nen call-aufruf in dein object... und das bei jedem Rendervorgang. Ich weiss, dass es sche**** ist, da es dann bei jeder anwendung gemacht werden muss, aber man kann sich ja ein Template-formular schreiben, welches jedes Projekt später benutzt.

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
theromi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Sa 24.02.07 17:16 
user profile iconrizor hat folgendes geschrieben:
Hi,

ich habe ein Problem mit AdClasses.

Beim Kompilieren bekomme ich folgende Fehlermeldung.

[Pascal Fataler Fehler] AdClasses.pas(846): F2039 Ausgabedatei '..\..\dcu\AdClasses.dcu' kann nicht erstellt werden

Wie kann ihc das beheben?

Ich habe das selbe Problem :(
Kann da jemand weiterhelfen?

user profile iconHelgeLange hat folgendes geschrieben:
in den optionen den ausgabepfad ändern?

Wie?

Danke schonmal,
Roman
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Sa 24.02.07 17:29 
Man geht in die Projekt-Optionen und unter Verzeichnisse/Bedingungen änderst Du den Ausgabepfad für DCU's

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
igel457 Threadstarter
Hält's aus hier
Beiträge: 12

Win XP Home
Turbo Delphi Explorer
BeitragVerfasst: So 11.03.07 15:49 
Hallo erstmal,

ist schon ein weilchen her, dass ich hier das letzte mal rein geschaut habe.

Mittlerweile ist auch schon Version 0.1.5 meiner Engine draußen.

Zitat:
Plugin ist gut, aber so ist es zu lahm. Stichwort : Funktionszeiger-Mapping. Callaufrufe kosten zeit. Also wenn es geht, nicht durch TAdDraw zum Plugin routen, sondern gleich das vom Plugin aufrufen. in einer grafik-engine ist alles zeitkritisch.

Kannst du mir das nochmal erklären? Soll ich es etwa wieder so machen? Das war mir alles viel zu "unstrukturiert".

Zu dem Problem mit den DCUs: Ihr müsst die Verzeichnisstruktur beibehalten um die Demos ohne Probleme compilieren zu können, ansonsten müsst ihr die Ausgabepfade anpassen, wie schon geschrieben.

Danke fürs Testen,
Igel457
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: So 11.03.07 16:29 
ja, ungefähr so solltest Du das machen. Und es ist eigentlich nicht unstrukturiert, beim Init stellst Du deinen Renderer fest, DirectX oder OpenGL und mappst halt deren Funktionen auf die Funktions-Variablen. Ab dann sollte es Dir dann egal sein, ob Deine Engine mit OpenGL oder DirectX läuft. Und genauso kann das mit anderen Sachen gemacht werden, die du häufig brauchst und welche zeitkritisch sind.

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
igel457 Threadstarter
Hält's aus hier
Beiträge: 12

Win XP Home
Turbo Delphi Explorer
BeitragVerfasst: Do 15.03.07 16:58 
Hallo,

ich habe jetzt mal nochmal nachgeschaut: Zweimal genau das selbe Programm, nur die anders aufgebaute Engine: Beides mal hatte ich in etwa die gleichen FPS... Also scheint der Unterschied, der entsteht nicht gravierend zu sein. Außerdem denke ich, dass es so stark darauf ankommt, ob ein 2D-Spiel jetzt mit 200,1000 oder nur 85 FPS läuft.

Bei dem TPerformanceCounter zwinge ich ja niemanden dazu ihn zu verwenden. Es ist für viele Entwickler halt einfacher, wenn sie einfache Objekte haben, die gewisse Funktionalität kapseln. Viele, die einfach ein kleines Spielchen mit Delphi schreiben möchten, schreckt es schon ab, weil sie mit meinem Andorra 2D keine Komponentensammlung wie in DelphiX haben.

Igel457
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 15.03.07 17:20 
schreiben die forenrichtlinien nicht einen direkten downloadlink vor ?
sobald ich auf den mirror klicke passiert bzgl download nicht mehr sonderlich viel,

mfg
igel457 Threadstarter
Hält's aus hier
Beiträge: 12

Win XP Home
Turbo Delphi Explorer
BeitragVerfasst: Do 15.03.07 17:56 
Leider schreiben die Regeln von SourceForge vor, dass ich keinen direkten Downloadlink verbreiten darf, sondern auf den Mirror, wie oben geschehen, linken muss.

Aber anscheinend ist SF mal wieder überlastet.