Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

21

08.03.2011, 14:40

Komplexitätsklasse hin oder her: Das hängt vom Anwendungsfall ab, pauschal kann man das nicht sagen was besser geeignet ist...

Für ein einfaches Tilebasiertes Game seh ich z.B. nicht wirklich warum man da gleich mit Quadtrees anfangen muss, da hat ein einfaches Grid evtl. sogar massive Vorteile was die Laufzeit angeht da der Zugriff auf das Array im Gegensatz zum Quadtree nämlich eine bessere Kompelxitätsklasse hat und die Konstanten in der Laufzeit vom Quadtree wenns wirklich um Performance geht auch nicht unbedingt zu vernachlässigen sind ;)

Natürlich kann man auch beide Ansätze kombinieren. Für den Threadersteller ist das alles wie gesagt wohl sowieso irrelevant...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (08.03.2011, 14:45)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

22

08.03.2011, 14:44

Schön, dass Du meine Argumente bestätigst, obwohl Du scheinbar das Gegenteil willst, denn diese Optimierung (Grid) ist dann noch immer kein einfacher Array und somit wieder eine Optimierung des Algorithmus und nicht der Zugriffsart oder gar die Zerhackstückung der OOP-Objekte in andere Datenstrukturen.
Und genau letzteres habe ich als unsinnig angesehen und nicht eine generelle Optimierung. Mir ist es pupsegal, welche Optimierung er konkret nutzt, mir geht es nur darum, dass OOP eben nicht die Quelle von Performance-Problemen ist, sondern der erzeugte Berechnungsaufwand des verwendeten Algorithmus.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

23

08.03.2011, 14:47

Willst du damit sagen dass Algorithmus und Datenstruktur deiner Meinung nach entkoppelte Konzepte sind? Das wär nämlich ziemlicher Schwachsinn.

Und Laufzeitkomplexität ist wichtig aber nicht alles. Auf den Ebenen auf die buggypixels angespielt hat spielen die Konstanten die durch die Landausymbole bewusst unterschlagen werden sehr wohl eine Rolle.

Was die Sache mit OOP angeht hab ich übrigens nichts dergleichen gesagt, im Gegenteil...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

24

08.03.2011, 14:50

Willst du damit sagen dass Algorithmus und Datenstruktur deiner Meinung nach entkoppelte Konzepte sind?

Nein, aber dass eine Cache-freundlichere Datenstruktur ein komplexes Problem eben nicht weniger komplex gestalten wird. Du wirst mir doch aber nicht widersprechen wollen, dass zunächst einmal der verwendete Algorithmus relevant ist bevor man anfängt das verwendete Paradigma als schlecht hinzustellen?
Und ich glaube dass wir mit dieser rhetorischen Frage das Offtopic-Gesülze dann auch beenden können.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

25

08.03.2011, 14:51

Nein, aber dass eine Cache-freundlichere Datenstruktur ein komplexes Problem eben nicht weniger komplex gestalten wird. Du wirst mir doch aber nicht widersprechen wollen, dass zunächst einmal der verwendete Algorithmus relevant ist bevor man anfängt das verwendete Paradigma als schlecht hinzustellen?

Nein, niemand hat in diesem Thread dieser Aussage je widersprochen, auch wenn du, warum auch immer, ständig versucht das so hinzustellen...und genau darauf wollte ich vorhin eben hinweisen...

EDIT: Ok, buggypixels erster Post liest sich ein wenig so, auch wenn ich vermute dass das nicht wirklich ist was er damit gemeint hat.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

26

08.03.2011, 14:53

Dann lies bitte das Topic nochmal.

Edit nach deinem Edit:
Das liest sich mich aber doch sehr konkret wie "Array oder Quadtree ist egal, denn OOP ist dein Problem". Und das ist schlicht Quatsch.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

27

08.03.2011, 14:55

Das hab ich. Und ich bin auch nachdem ichs ein weiteres Mal getan hab davon überzeugt dass ihr hier die ganze Zeit aneinander vorbeiredet. Und genau darauf wollte ich hinweisen...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

28

08.03.2011, 14:58

Ich denke nicht, dass ich an irgendwas vorbei geredet habe. Ich habe ganz deutlich gemacht, dass eine Zerhackstückung von Game-Objekten als Verteufelung von OOP nicht die Lösung des hier vorgestellten Problems ist und dass eine solche Optimierung keinen Sinn macht und auch, dass solche Optimierungen für Draw-Calls relevant sein können, FALLS es sich um Draw-Daten handelt, welche hier im Thema aber nicht von Interesse sind (denn es geht ja mehr um Boundings) und auch dass es nicht um Draw-Call-Efficiency geht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

29

08.03.2011, 14:59

Das liest sich mich aber doch sehr konkret wie "Array oder Quadtree ist egal, denn OOP ist dein Problem". Und das ist schlicht Quatsch.

Das liest sich ein wenig so entspricht aber, wie aus den folgenden Posts imo eindeutig herauszulesen ist, nicht ganz dem was er damit sagen wollte. Ob das Quatsch ist oder nicht hängt davon ab auf welcher Ebene man sich befindet. Man kann das pauschal weder als richtig noch als falsch werten. Was ich aber Quatsch findet ist darüber zu diskutieren, da die beiden Dinge sich nämlich nicht gegenseitig ausschließen. Wie gesagt ist das für die ursprüngliche Frage imo aber sowieso alles irrelevant.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

30

08.03.2011, 15:02

Wir befinden uns auf der Ebene einer Hochsprache, welche offensichtlich Objekt-Orientiert ist. Daher stellt sich die "Frage": "Du solltest wirklich kein OOP benutzen" meiner Meinung nach nicht. Es geht um eine ganz triviale Frage:
"Wie kann ich meinen Algo so optimieren, dass ich bei 20.000 Objekten keine Probleme bekomme". Man bemerke das Wort "Objekte". Die Antwort: "Nimm eine andere Sprache", bzw. "OOP ist dein Problem" ist hier offensichtlich fehl am Platz.
Die klare Antwort wurde ja ebenfalls schon gegeben: "Nimm eine Datenstruktur, die die Zahl der Ausschlüsse von vornherein reduzieren kann".
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige