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

Superwayne

Treue Seele

Beiträge: 242

Beruf: Student & App Entwickler (Xamarin)

  • Private Nachricht senden

1 811

02.12.2015, 10:02

Mein "Profiler" nennt sich System.DateTime.Now und Debug.Log() :whistling:
Ne, Spaß beiseite, mit dem Thema Profiler habe ich mich noch nicht beschäftigt. Ich habe lediglich bemerkt, dass die Initialisierung zu lange dauert und dann direkt die Zeit gemessen und verglichen.
Macht es Sinn, sich schon am Anfang der Entwicklung mit dem Thema zu befassen? Ich versuche das Projekt möglichst Modular aufzubauen, so dass ich einzelne Komponenten (zum Beispiel die Noise Klasse) später optimieren oder komplett austauschen kann.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

1 812

02.12.2015, 10:48

Grundsätzlich spricht nichts gegen Modularität, allerdings kann eine schlecht gewählte Schnittstelle einer optimalen Nutzung im Wege stehen. Bei einem Array ist es egal, ob man erst prüft, ob ein Element enthalten ist (Suche nach Index) und dann anhand des Index das Element abruft, bei einer verketteten Liste könnte das dazu führen, dass die Liste doppelt durchlaufen wird, wenn beim 2. Aufruf nur der Index übergeben wird, ohne dass das Listenelement zwischengespeichert wurde.
Sinnvoll wäre es, wenn entsprechende Implementierungen einen Iterator zur Verfügung stellen würden, anhand dessen alle Elemente der Liste abgelaufen werden könnten, da so geprüft werden kann, ob das Element enthalten ist, um es direkt verwenden zu können.

Das würde aber wieder den Vorteil sortierter Listen/Bäume/... zu Nichte machen, da in diesen schneller gesucht werden kann, wenn man davon ausgehen kann, dass alle Elemente immer sortiert sind, also wenn die Suche innerhalb der Liste durchgeführt wird.
Eine Lösung dafür wäre es, eine "TryGet"-Methode zu implementieren, deren Rückgabe aussagt, ob ein entsprechendes Element enthalten ist, damit über eine(n) übergebene(n) Referenz/Pointer das Element selbst zurückgegeben werden kann. Letzteres wird nicht in allen Sprachen direkt unterstützt, ließe sich aber über einen kleineren Umweg (Rückgabe beider Informationen in einem einzigen Objekt) erreichen.


Wenn man Performnce-kritischen Code schreibt, ist es offensichtlich, dass man sich möglichst frühzeitig auch ansehen sollte, an welchen Stellen wie viel Zeit verbraucht wird. Wenn man sich den Profiler aber auch schon "vorher" ansieht, wird man tendenziell auch davon abgehalten, (aus Performancesicht) schlechten Code zu schreiben. Sinn macht es also.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Superwayne

Treue Seele

Beiträge: 242

Beruf: Student & App Entwickler (Xamarin)

  • Private Nachricht senden

1 813

02.12.2015, 12:00

Wirklich Performance-Kritisch ist mein Code nicht. Ich weiß, dass meine Noise-Implementierung ca. 10x so lange braucht, wie die Unity PerlinNoise Methode. Allerdings liefert meine Implementierung "bessere" Ergebnisse für mein Spiel, da ich mehr Parameter beinflussen kann. Und da die Implementierung für meine Zwecke immer noch schnell genug läuft (3 Sekunden für die Initialisierung von 65536 Tiles inklusive berechnen des Meshs und der Collider), versuche ich erst einmal andere Funktionen für das Spiel zu implementieren. Irgendwann will ich ja auch einmal eine spielbare Version haben ;)

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

1 814

02.12.2015, 14:35

Juhu mein i7, neues Mainboard und mehr RAM ist da!
Außerdem ist nächste Woche Freitag Urlaub, die übernächste Woche darauf 2 Wochen Urlaub und dann Theoriephase!

Das Jahr ist gelaufen Leute.

Julién

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

1 815

08.12.2015, 11:18

Heute ist es endlich vorbei. Um 14:30 darf ich eine 20 min lange Präsentation über meine Seminararbeit (vgl. Facharbeit) halten
und ich behaupte, dass die Präsentation an sich gut gelungen ist. :thumbsup:

Ohne die Leute, die mir bei meinem "mathematischen Problemen" geholfen habe, wäre das nicht möglich gewesen.
Vor allem gilt mein Dank "dot", der mir gezeigt hat, wie man Quaternionen aus einem Quell- und Zielvektor überführt :thumbup:

LG Julien
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

1 816

08.12.2015, 11:20

congrats :)

eisenmad

Treue Seele

Beiträge: 84

Wohnort: Heute hier, morgen dort

Beruf: Denker

  • Private Nachricht senden

1 817

08.12.2015, 21:32

Code::Blocks ist so geil :love:

QtCreator checke ich nicht... :wacko:

1 818

09.12.2015, 12:25

emacs ist so geil :love:

nano checke ich nicht :wacko:

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

1 819

09.12.2015, 21:59

What about Vim? :P
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

1 820

09.12.2015, 22:14

Kommt alles nicht an Visual Studio ran... :P

PS: nano ftw ;)

Werbeanzeige