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

11

26.07.2008, 17:17

Danke für deine Hilfe, drakon!

Zitat von »"drakon"«

Viele einzelne Tiles rendern ist (mit 99%) Wahrscheinlichkeit langsamer. Im übrigen ist Rendern nicht konstant. Das ist extrem exponentiell.

Inwiefern exponentiell? Aber bei einem VB werden doch viel zu viele unnötige Tiles gezeichnet, oder? Ich benutze SFML und weiss nicht genau, wie das intern abläuft, aber von der Performance hab ich eigentlich kein schlechtes Gefühl. Ich hab allgemein keine Ahnung von Rendering, aber scheinbar werden nicht nur Pixel für Pixel kopiert...

Zitat von »"drakon"«

Naja. Ich habe dir nur erlärt, wie ich es gelöst habe. Die genaue Implementierung kannst du natürlich anderst machen, aber ich habe da sehr viel ausprobiert, um eine Tilemap performant zu rendern und am Schluss ist dann eben das rausgekommen. ;)

Ich glaube dir schon, nur kann ich das ehrlich gesagt nicht ganz nachvollziehen ;)

Zitat von »"drakon"«

Aber um ehrlich zu sein, weiss ich immer noch nicht, warum du überhaupt so einen Klasse haben willst.

Ich will nicht um jeden Preis meine eigene Klasse benutzen, ich wollte eigentlich nur wissen, was denn konkret ein Grund gegen meine Klasse ist :)

P.S.: Ist "naja" dein Lieblingswort? :p

@ Das Gurke

Zitat von »"Das Gurke"«

Solltest du eine relativ kleine, statische Tilemap haben (z.B. ein einzelner Raum) kann es sich lohnen, diesen nur einmalig auf eine Textur zu rendern und dann mit der Textur weiterzuarbeiten. Es zwingt dich ja niemand etwas neu zu rendern, was sich nicht ändert ;)

Sowas kommt grad bei Tilemaps häufiger vor als man denkt.

Bei mir werde ich eben relativ viele animierte Tiles haben...

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

12

26.07.2008, 17:57

Aso. Dann sieht die Sache natürlich ganz anders aus, wenn du SMFL benutzt. :)
Das wird intern sicher gut gelöst, aber du wirst nicht die performance kriegen, wie die, wenn du es selber speziell auf dein Vorhaben zugeschneidert machst, aber es wird schon reichen. :)

Zitat

Grund gegen meine Klasse

Naja. :) - Es ist zwar hart, aber wenn du etwas mit Standardmittel machen kannst, solltest du das auch tun. Mit sehr grosser Wahrscheinlichkeit hast du mit etwas, was du selber schreibst mehr Probleme. Sei es nun bei der Implementierung, oder später, wenn du ein spezielles Problem bekommst, dass nur schwer zu finden ist. Da wirst du dich dann Ärgern, wenn es an etwas in deiner Klasse gelegen hat und du einen Tag danach gedebuggt hast. ;)

Mit animierten Tiles sieht die Sache mit der Optimierung natürlich auch wieder ganz anders aus. (Auch wenn du das mit dem einfachen Zugriff ebenfalls relativ einfach lösen könntest).

Zitat

P.S.: Ist "naja" dein Lieblingswort?

Naja.. Ja, eins davon.. :lol:

13

26.07.2008, 19:00

Was ist denn bei SFML ganz anders als sonst, beziehungsweise wie wird "normalerweise" gerendert? Und weshalb exponentiell?

Und ist in diesem Falle ein 2-dimensionaler Vector und meine lineare Render-Methode (2 For-Schleifen, nur das rendern, was auf dem Bild ist) legitim?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

14

26.07.2008, 19:14

Zitat von »"Nexus"«

Was ist denn bei SFML ganz anders als sonst, beziehungsweise wie wird "normalerweise" gerendert? Und weshalb exponentiell?

Und ist in diesem Falle ein 2-dimensionaler Vector und meine lineare Render-Methode (2 For-Schleifen, nur das rendern, was auf dem Bild ist) legitim?


Hmm. Ich weiss nicht, wie SMFL das intern macht, aber es ist sicher allgemeiner und somit langsamer. Aber probierst mal aus, dann siehst dus, wies läuft. ;)
Aber du kommst da wahrscheinlich nicht drum herum das so zu machen, wie du das vorhast. (Kenne SMFL nicht so genau).

Exponentiell weiss ich nicht, ob wir dasselbe gemeint haben. Ich habe damit gemeint, dass wenn du 1 Tile renderst die Leistungseinbusse nicht nicht mal 100 rechnen kannst für 100 Tiles. (Ist aber allgemein rendering).

15

26.07.2008, 19:41

Zitat von »"drakon"«

Hmm. Ich weiss nicht, wie SMFL das intern macht, aber es ist sicher allgemeiner und somit langsamer. Aber probierst mal aus, dann siehst dus, wies läuft.

Ich denke, das wird schon gehen, SFML ist relativ schnell... Bei meinem letzten Jump'n'Run benutzte ich SDL und kam mit den Tiles hart an die Grenzen der Performance. Wenn zu viele Tiles auf dem Bildschirm waren, wurde das Spiel unglaublich langsam...

Zitat von »"drakon"«

Exponentiell weiss ich nicht, ob wir dasselbe gemeint haben. Ich habe damit gemeint, dass wenn du 1 Tile renderst die Leistungseinbusse nicht nicht mal 100 rechnen kannst für 100 Tiles. (Ist aber allgemein rendering).

Doch, ich habe es eigentlich auch so gemeint, aber weshalb ist das so? Dass es nicht ganz linear ist, ist klar, aber wirkt es sich extrem aus bei vielen einzelnen Renderings?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

16

26.07.2008, 19:45

Naja. Das kommt hald ganz drauf an, wies inter gemacht ist. Wobei ich jetzt mal stark bezweifle, dass SMFL an die Performance rankommt, die ich habe. ;) - Das ist ja aber auch nicht zentral, wenns reicht ist gut. (Ich bin da hald ein wenig kleinlich. :D)

Dass es nicht linear ist, kommt dir sogar noch entgegen. ;) Wenn du mal auf 100 FPS runter bist, musste ich die Anzahl gerenderten Sprites verdoppeln, dass ich etwas gemerkt habe. :)

17

26.07.2008, 22:21

Zitat von »"drakon"«

Naja. Das kommt hald ganz drauf an, wies inter gemacht ist. Wobei ich jetzt mal stark bezweifle, dass SMFL an die Performance rankommt, die ich habe. ;) - Das ist ja aber auch nicht zentral, wenns reicht ist gut. (Ich bin da hald ein wenig kleinlich. :D)

Ich hab mich auf deiner Homepage mal umgesehen und da stand, dass du vieles selber implementieren willst. Das bewundere ich. Mir selber reicht aber SFML, ich hab auch nicht die Zeit und das Wissen, um so vieles selber zu schreiben ;)
Benutzt du SDL als Grundlage? Rendering implementierst du selber? Ich war wie gesagt nicht sehr begeistert von SDL, SFML passt für mich besser...

Zitat von »"drakon"«

auf 100 FPS runter

Auf 100 FPS runter? Wie viel sinds bei dir normalerweise?
Ich hab als Frame-Intervall normalerweise etwa 0.03 Sekunden, also 33 Frames pro Sekunde. Das sieht flüssig aus - im Übrigen wäre mein PC eh nicht genug schnell für eine riesige Framerate...

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

18

26.07.2008, 22:50

:shock:
Schon wieder auf der Seite.. Mist. Die muss wirklich Weg. ;)
Hast du mal auf Datum geschaut? - Die ist uralt.. ;)

Ich arbeite mit DirectX und das einzige, was auf der Seite noch in etwa stimmt ist, dass auch alles selber implementiert ist. (Aber um einiges besser, als das Zeugs, was ich da mal gemacht habe) ;)

Mit DirectX und der Tilemap bin ich (bei meinem System) um die 1000-2000 FPS locker, kommt hald auf die Grösse drauf an. atm habe ich ne kleine Testmap, um meine schönen Tiles anzuschauen, die ist bei 400 Tiles auf 2000 FPS. Wenn ich jetzt 200x200 Tiles mache (40'000 Tiles), dann habe ich so mitten in der Map immernoch 1000 FPS.

19

26.07.2008, 23:19

Da bin ich echt beeindruckt. :shock:

Hast du übermenschliche Augen, oder wieso brauchst du 2000 FPS? :D

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

20

26.07.2008, 23:26

Zitat von »"Nexus"«

Da bin ich echt beeindruckt. :shock:

Hast du übermenschliche Augen, oder wieso brauchst du 2000 FPS? :D


Bruauch ich nicht. Vor allem Macht der Screen ja eh nur 60HZ,aber Geschwindigkeit kann man nie genug haben. ;) - Ich stells dann schon auf max 60 FPS runter, aber atm will ichs hald wissen. ;)

Werbeanzeige