Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Spieleprogrammierung (https://www.delphipraxis.net/43988-spieleprogrammierung.html)

Neotracer64 17. Aug 2005 16:27

Re: Spieleprogrammierung
 
Zitat:

Allerdings ist eines in den meisten PC-Magazinen deutlich zu sehen:
Wenn man OpenGL verwendet, hat man mit weniger Frames eine passable Spielbarkeit, bei DirectX ist das nicht so!
Also bei mir funktioniert CS viel besser mit OpenGL als mit DirectX. Auf einem älteren PC hab ich es fast aufgegeben CS zum laufen zubringen. Aber OpenGL schafft da dann 30 Frames während DirectX mir eine DiaShow bietet.

Naja vlt. kommt es auch drauf an wie die Spieleprogrammierer OpenGL und DirectX implentiert haben.

JasonDX 17. Aug 2005 17:00

Re: Spieleprogrammierung
 
ich will hier auch mal was loswerden: Es gibt kein besser oder schlechter, schneller oder langsamer, einfacher oder komplizierter bei OpenGL vs. DirectX. Alles ist Meinungssache bzw. Abhängig von der Programmierung.
Ein Spiel läuft mit OpenGL schneller als mit DX, ein anderes umgekehrt. Und nochmal das ganze umgedreht auf einer anderen Grafikkarte.
Es gibt zu viele variable Faktoren um sagen zu können, das eine wäre besser, schneller oder sonstwas. Am Ende sieht so aus: Eine 3D-API ist immer so schnell, wie man sie auslastet. D.h. die Geschwindigkeit ist eher unabhängig von der API, sondern eher von der Programmierung, wie das ganze eingebunden wurde ect. Zudem spielt logisch die Hardware eine wichtige Rolle.

Lange rede, kurzer Sinn: Es hat keinen Sinn darüber zu streiten, was man nehmen soll. Mein Tip: Probier beides aus. Les dich in beides ein bisschen ein, und schau was dir besser gefällt.

Und noch ein Wort zu Dingen wie DelphiX oder GLScene: lass die Finger davon. Es ist so, alsob du lernen möchtest, ein Flugzeug fliegen und dabei den Autopiloten einschaltest...


PS: Bezüglich OpenGL kann man mit weniger Frames spielen: Hä? Ein Frame ist ein Frame. Bei einer FpS-Rate fängts irgendwann an zu stocken und wird unspielbar. die FpS-Rate ist aber nicht API-Abhängig, sondern Abhängig von der Abtastungsrate unserer Augen. Ich versteh das Argument irgendwie nich :gruebel:

Joachim Rohde 17. Aug 2005 17:34

Re: Spieleprogrammierung
 
An diejeniegen, die bei OpenGL als Vorteil die Plattformunabhängigkeit ins Feld geführt haben: habt ihr schonmal eine Anwendung geschrieben, die auf mehreren Plattformen läuft? Für einen Anfänger halte ich dieses Argument für völlig überflüssig.
Dann zur Aussage, dass OpenGL ja nur für Grafik sei: ja und? Wozu gibt es denn Libraries wie FMOD, Bass, HawkNL oder ähnliche?

Ansonsten werf ich nochmal in den Raum, dass es auf meiner Webseite (www.joachimrohde.com) eine Übersetzung der NeHe-OpenGL-Tutorials gibt und enthalte mich jeder weiteren Meinung ;-)

Mr_T 17. Aug 2005 20:22

Re: Spieleprogrammierung
 
Ja, habe ich :)
Und ich denke auch, das geradebei kleinen Projekten es durchaus sinn macht die nach Linux zu portieren! Warum? Naja, recht einfach: es gibt sehr wenige Native Linux Spiele, die mit einer zeitgemäßen Grafik daherkommen. Die, welche es tun (komerzielle Projekte wie Quake, Doom oder Unreal Tournament) feiern unter Linux einen ziemlich guten Marktanteil am Game-Markt, halt einfach, weil es wenig Konkurenz in dem Segment gibt.
Auch wenn man sich kleinere Games ansieht wie z.b. Tux-Racer: unter Linux kennt es fast jeder und viele haben es auf ihrer Festplatte ... aber ich wage es zu bezweifeln, dass das Spiel, wenn es für Windows only wäre so viele Leute begeistern würde. Selbst wenn es Freeware wäre nicht, weil der Markt überlaufen ist. Deshalb halte ich sehr viel von portierbarkeit, welche man teilweise ja sogar umsonstr bekommt ... man nehme nur mal Freepascal / Lazarus, SDL als Initialisierungsschnittstelle, OpenGl für die Grafik und von mir aus OpenAi für 3D-Sound und Newton für die Physik. Alle diese Packete sind genauso unter Linux vorhanden... man muss nur wenige Zeilen in den Headern des Quellcodes ändern um ein solches Projekt auch unter Linux-Systemen zu kompilieren. Ich finde der sehr geringe Aufwand ist für das was man bekommt (nämlich mitunser eine doch größere Zeilgruppe für sein Projekt) sicherlich angebracht in meinen Augen.
Naja ... aber darum geht es an sich ja eigentlich nicht in diesem Thread ... es geht um OpenGl oder Direct 3d (DX wäre unfäir ... primär gehts ja um die Grafik-API) und da muss ich sagen haben wir ein nahezu Patt ....

Joachim Rohde 17. Aug 2005 22:14

Re: Spieleprogrammierung
 
Prinzipiell hast du ja recht. Wenn man ein kleines (vorzeigbares) Spiel hat, erreicht man natürliche ein größeres Publikum, wenn man dieses sowohl für Windows als auch Linux (oder andere Plattformen) anbieten kann.
Wenn aber jemand fragt, ob er DirectX oder OpenGL lernen soll, ist ja davon auszugehen, dass derjenige Windows benutzt (sonst würde er erst gar nicht nach DirectX fragen).
Häufig fehlt am Anfang auch noch das mathematische Verständnis, so dass einiges an Zeit vergeht, bis man etwas vorzeigbares hat. In der Regel fängt man ja mit rotierenden Würfel, o.ä. an, bevor man sich an 'größere' Projekte wagt. Und deshalb finde ich es anfangs völlig unerheblich, ob man plattformunabhängig programmiert oder nicht. Zumal es auch bei der Portierung erhebliche Schwierigkeiten geben kann.

Nachdem ich aber noch mal den Anfangs-Post gelesen habe, in dem es heißt, dass der Threadersteller, schon mal ein Spiel programmiert hat, muss ich dir natürlich recht geben, dass es eine Rolle spielen könnte.

Gandalfus 17. Aug 2005 22:23

Re: Spieleprogrammierung
 
Für DirectX ist das Buch von Martin gut. http://www.martinpyka.de/?postid=329

Phobeus 18. Aug 2005 00:08

Re: Spieleprogrammierung
 
@joachim: Aber halt! Sicherlich ist es für einen Einsteiger sekundär uninteressant, ob es auch auf anderen Plattformen läuft. Aber z.B. SDL hat ja keine Nachteile als solche... die Unabhängigkeit gibt es quasi als Goodie dazu. Wenn also jemand auch nur im entferntesten daran denkt seine Anwendung irgendwann einmal unter Linux laufen zu lassen (aus den von MrT) genannten gründen, würde ich stets SDL (als Ergänzung OpenGL) empfehlen und zwar nur aus einem Grund: Gleich ein Gefühl dafür zu entwickeln, wo Grenzen der Lib und des darunter liegenden Systemes ist. Dies gleich zu beginn zu lernen ist für jemanden, der in dem Bereich sich fortbilden will, enorm wichtig. Das bei der darauf folgenden erfolgreichen Karriere man vermutlich nicht darum herum kommt auch die "Konkurrenz" zu erlernen und keine API einem die Optimierung von Algorithmen abnimmt, ist hoffentlich jedem Einsteiger klar. Letztendlich sollte die Frage nach der API von zwei Dingen abhängig gemacht werden a) Ideologie (Der OSS-Flagge schwingende Linux-Nuter im Delphi-Forum ist mit DX sicher nicht gut bedient b) (vermutlich wichtiger) ... wie er mit der Dokumentation der jeweiligen API zurecht kommt.
Umso mehr Frage ich mich immer wieder, warum solche Fragen "Was ist besser" eigentlich aufkommt. Trifft man seine Entscheidung nicht immer nach der Verfügbarkeit von Informationen und nicht danach, was andere Leute sagen? ... Utopie, hm? Schon gut, ich troll mich wieder ;)

Sidorion 18. Aug 2005 10:28

Re: Spieleprogrammierung
 
Zum Thema DirectX steht auf der Spieleverpackung wollte ich nur noch sagen:
Das steht darum drauf, damit man weiss, welche Version man benötigt. (wenn z.B.: DirectX9 draufsteht und diene GraKa kanns nicht, dann brauchst Du das Spiel garnicht erst kaufen).
Bei OpenGL ist das anders. Da liefert spätestens der Treiber für die Graphikkarte die dll mit und wenn die da ist, ist eigentlich egal, welche Version sie ist.
Normalerweise prüft ein Programm mit einem Aufruf, ob eine best. extension/version vorhanden ist und wenn nicht, werden die Aufrufe weggelassen. Die Folge ist eigentlich nur eine schlechtere Graphik, aber spielen kann mans.

Joachim Rohde 18. Aug 2005 13:19

Re: Spieleprogrammierung
 
Zitat:

Zitat von Phobeus
Das bei der darauf folgenden erfolgreichen Karriere man vermutlich nicht darum herum kommt auch die "Konkurrenz" zu erlernen und keine API einem die Optimierung von Algorithmen abnimmt, ist hoffentlich jedem Einsteiger klar.

Genau das denke ich eben nicht. Warum sonst fragen viele Leute anfangs (wie auch hier), was denn von beidem nun 'schneller' sei.
Zitat:

Trifft man seine Entscheidung nicht immer nach der Verfügbarkeit von Informationen und nicht danach, was andere Leute sagen?
Ich glaube, dass hier das Problem darin besteht, dass man zu beiden APIs recht viele Informationen findet, welche meist auch noch suggerieren, dass die jeweilige API die bessere sei. Deswegen plädiere ich ja immer noch dafür, dass man beides einmal ausprobiert, wenn man sich nicht entscheiden kann.

mimi 20. Aug 2005 20:23

Re: Spieleprogrammierung
 
Ich habe mich versucht in beiden Apis einzuarbeiten: erst mit OpenGl und dann mit DX.
Bei beiden APIS stoße ich an ein großes problem, ich verstehe den Mathe kram nicht, jetzt wird gesagt das kein mahte benötig wird das machen die APIS selbst(habe ich oft genug gelesen). Aber du brauchst mathe z.b. Zusammenstöße, Licht, Isomap,... berechnen.

Und wenn ich immer den aufwand sehe wie viel zeilen code ich schreiben muss damit ich ein einfachen kleinen 3D Raum sehen kann verschwindet irgenwie die lust weiter zumachen und dann noch die sachen mit Sin und Cos und den Bogenmaß....

Ich habe auch verscuht mich in SDL einzuarbeiten aber dafand ich keine Deutsche dokumenation und auch keine Tutors.

Also kreife ich jetzt eifnach auf PowerDraw zurück(eine Kapslung von DX) wird upgedatet ist schneller und besser als DelphiX(in machen fällen).

Und für kleine spiele wie z.b. Packman, Brakout, Sokubahn, Snak,... reichen solche kapslungen vollkommen aus. Du musst klein anfang erst lerhnen wie Spiele geschrieben werden(egal welche API) dann den mahte kram verstehen und auch anwenden. Zum schluss kannst du eine API Lerhnen das ist finde ich der beste weg.

nachtrag:
und wengen meiner grafikarte habe ich mit dem versuchen aufgehört :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.
Seite 3 von 4     123 4      

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