Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Spiele programmieren mit Delphi. (https://www.delphipraxis.net/78896-spiele-programmieren-mit-delphi.html)

arbu man 13. Okt 2006 11:55

Re: Spiele programmieren mit Delphi.
 
Richtig GLScene ist für 3D...
Aber im DF gibt es die Fear2d Engine wie der Name schon sagt ist die für 2d.

Oxmyx 13. Okt 2006 12:11

Re: Spiele programmieren mit Delphi.
 
Zitat:

Zitat von SirTwist
Hallo smart,

es gab vor einigen Jahren (2000-2001?) eine recht ausführliche Serie in der c't über DirectX-Programmierung in Delphi. Sehr gut geschrieben und wirklich mit Grundlagen beginnend. Leider war das damals für DirectX 7 geschrieben, heute sind wir bei Version 9, man muss also einige Sachen anpassen. Aber um überhaupt zu verstehen, wie DrectX arbeitet, ist die Serie klasse.

Die alten c'ts sollte man in Uni-Bibliotheken finden, ansonsten könnte ich dir die Artikel kopieren.

Darüber hinaus gibt es ein Buch "Spieleprogrammierung in Direct3D", grottenschlecht geschrieben und eigentlich für C gedacht. Aber hatte ich mir mal gekauft und ein paar hilfreiche Tricks waren da noch drin.

Und wenn ich irgendwann mal viel Zeit habe, werde ich mich wieder an meine Eisenbahn-Simulation machen....

Gruß
SirTwist

Jetzt noch DirectX 7 zu lernen, halte ich nicht für besonders sinnvoll. Der Grund dafür ist, dass bei Version 8 die Grundlagen von DirectX komplett umgestellt wurden. Der gesamte 2D-Teil wurde gestrichen, ebenso Retained und Immediate Mode. Ich würde lieber gleich Version 9 lernen.

Sidorion 13. Okt 2006 12:39

Re: Spiele programmieren mit Delphi.
 
Genau aus dem selben Grund würde ich von dem Erlernen von DelhiX abraten. Hier stößt man sehr schnell an die Grenzen des Machbaren (3d und so) und wenn man dann umsteigen will auf ne ordentliche API muss man alles neu lernen. Dann lieber gleich OpenGl oder DirectX.
Welche der beiden ist Deinem persönlichen Gusto überlassen.
Der einzige wirkliche Unterchied besteht darin, das DirectX vom Microsoft ist und OpenGl hauptsächlich in der professionellen Graphik (CAD usw.) verwendet wird.

p.s.: OpenGL kann man prima im 2D Modus nutzen und wenn man dann auf 3D umsteigt, weiss man das Wichtigste schon.
p.p.s.: das mit dem ich warte auf DelphiX war ironisch gemeint

smart 13. Okt 2006 15:12

Re: Spiele programmieren mit Delphi.
 
Hi.

Ich habe mir jetzt mal OpenGL, DirectX und DelphiX angesehen. Bei OpenGL und DirectX konnte ich kein 2D Demo finden, eigentlich schade. Bei OpenGL habe ich mir mal ein Demo mit einem Sternenhimmel angesehen. Da habe ich nicht schlecht gestaunt, 100% Prozessorauslastung für einen Sternenhimmel? Das finde ich ein wenig happig, oder? Ein Bild in allen Richtungen bewegen, auch 100% ? OK, ist auch in 3D, aber trotzdem. Bei DirectX ist es auch nicht viel anders. Es kommt mir auch so vor, als müsse ich vorher eine neue ‚Programmiersprache’ lernen. Nichts gegen lernen, aber für so ein Spiel lohnt sich im Prinzip der ganze Aufwand nicht. Das ist meiner Meinung nach etwas für 3D Autorennen oder so was. DelphiX scheint mir da etwas einfacher zu sein, allerdings habe ich auch hier kein Demo gefunden. Ich wüste jetzt nicht wie ich da mehrer ‚Images’ darstellen sollte. Hier in der DP sind wohl einige Bespiele wie man Linien zeichnet. Das klappt ganz gut und ist auch nicht schwer.

Gruß
Heike

Oxmyx 13. Okt 2006 15:16

Re: Spiele programmieren mit Delphi.
 
In den allermeisten Fällen programmiert man ein Spiel so, dass es immer so schnell wie möglich läuft. Das unterscheidet ein Spiel von anderen Anwendungen. Aus diesem Grund werden die meisten Spiele immer 100% Prozessorauslastung haben.

Meistens hat man in einem Spiel eine sogenannte Hauptschleife, in der zuerst alle Berechnungen durchgeführt werden, und dann die Grafik dargestellt wird. Ziel ist es, diese Hauptschleife so schnell wie nur möglich zu durchlaufen. Man spricht dann von "Bildern pro Sekunde", und meint die Anzahl der Schleifendurchläufe pro Sekunde.

smart 13. Okt 2006 15:25

Re: Spiele programmieren mit Delphi.
 
Zitat:

Zitat von Oxmyx
In den allermeisten Fällen programmiert man ein Spiel so, dass es immer so schnell wie möglich läuft. Das unterscheidet ein Spiel von anderen Anwendungen. Aus diesem Grund werden die meisten Spiele immer 100% Prozessorauslastung haben.

Das wusste ich nicht. Ich dachte immer der Grafikprozessor nimmt die Arbeit ab. Aber ich habe hier 2D Spiele die kommen mit 3% aus. Oder das Apfelwürmchen- Spiel, gerade mal 1% und ist schon fast zu schell.

Gruß
Heike

smart 13. Okt 2006 15:27

Re: Spiele programmieren mit Delphi.
 
Zitat:

Zitat von Oxmyx
Man spricht dann von "Bildern pro Sekunde", und meint die Anzahl der Schleifendurchläufe pro Sekunde.

Ja, OK das habe ich jetzt verstanden.

Gruß
Heike

Sidorion 13. Okt 2006 16:02

Re: Spiele programmieren mit Delphi.
 
Es gibt zwei Arten des Haupschleifenaufrufs: Über Timer und über OnIdle.
-Über Timer sorgt man dafür, dass die Berechnungen alle n Millisekunden durchgeführt werden(auch das Zeichnen). Dann ist die Prozessorauslastung je nach System verschieden. Diese Methode nutzt man hauptsächlich, um bei Notebooks die Akkus szu schonen.
-Über OnIdle sorgt man dafür, dass, wenn ein Berechnungszyklus(mit Zeichnen) abgeschlossen ist, sich sofort ein neuer anschließt. Das führt dazu, dass das System unter Vollast läuft und man die maximale Anzahl an fps rausholt. Bei dieser Methode muss man allerdings beachten, dass im Graphikkartentreiber eventuell die vsync angeschaltet sein kann, dann berechnet er nicht mehr Bilder pro Sekunde, als die Bildwiederholrate. Dann läuft das System natürlich nicht mehr unter Vollast.

Cöster 13. Okt 2006 16:14

Re: Spiele programmieren mit Delphi.
 
Was ist denn überhaupt das Problem, wenn Spiele die CPU zu 100% auslasten? Also bei nem Notebook hab ich jetzt gelernt, dass der Akku dadurch zu schnell verbraucht wird (ist ja auch logisch). Wenn man im Hintergrund aber keine weiteren Programme laufen hat, wo liegt dann noch das Problem? Nur am Stromverbrauch?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz