Spiele-Programmierfrage (Allgemein)

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benubi
Beiträge: 187
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Spiele-Programmierfrage (Allgemein)

Beitrag von Benubi »

Ja, genau darauf ziele ich auch ab. Sollte nur ein 2D Screen Buffer zum Schluss bei rauskommen, der per FlipBuffers() (oder selstgebrauter Befehl) angezeigt wird. Aber die Beschwerdeführer in den C Foren (bin da kein Mitglied, nur beim Surfen entdeckt) meinen die 2D Kopierfunktionen seien zu lahm für hohe FPS, selbst unter reinem OpenGL sowie besonders bei SDL+Dekstop Kombinationen (eventuell ändert sich das viel je nachdem was da eingestellt und benutzt wird). Und da hatte jemand diesen Königsweg verraten. Zum Schluss kann man vielleicht sogar etwas Strom sparen, oder die Reaktivität erhöhen, wenn man diesen Shader-Trick nutzt, und Delay() einbaut.

Mein eigenes spezifisches Problem ist, dass ich Fenster in Fenster, also Sprites in Sprites oder Images in Images, schnell und häufig rendern muss bzw. neu erstellen (UseBuffer gibt's seit Jahren nicht mehr, und es war nur für DX7 verfügbar). Bei vor-gerenderten Sprites ist das dann nicht so schlimm, oder wenn man ein paar transparente "Text-Sprites" schnell sich zusammenbaut.

ABER WaponeZ und das Sprite.pb Beispiel laufen ohne Zeitmessungen/Synchro, und da laufen die Darstellungsgeschwindigkeiten/Frameraten schon stark auseinander, wenn ich diese "zeitgleich" auf Raspi und PC laufen lasse. Dabei sind beide Rechner bzw. Displays auf 60Hz getaktet. Ich habe aber auch eine Auflösung von 1920x1080, was mE groß für einen typischen Raspi ist.

Die Ogre Beispiele laufen fließend bis halbfließend, Framerate bleibt über 20 und meistens unter 30. Aber meine simple GUI liegt derzeit bei 0.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Spiele-Programmierfrage (Allgemein)

Beitrag von ccode_new »

Benubi hat geschrieben: 08.01.2023 20:02 Aber die Beschwerdeführer in den C Foren (bin da kein Mitglied, nur beim Surfen entdeckt) meinen die 2D Kopierfunktionen seien zu lahm für hohe FPS, selbst unter reinem OpenGL sowie besonders bei SDL+Dekstop Kombinationen (eventuell ändert sich das viel je nachdem was da eingestellt und benutzt wird). Und da hatte jemand diesen Königsweg verraten. Zum Schluss kann man vielleicht sogar etwas Strom sparen, oder die Reaktivität erhöhen, wenn man diesen Shader-Trick nutzt, und Delay() einbaut.
Hä?

Shader sind kleine GPU-Programme und ein gesondertes Thema für sich. (Ist für mich aktuell nicht wichtig.)
Da muss man sich schon intensiver mit den OpenGL-Einstellungen beschäftigen und OpenGL2.1 vs ES 2.0 sind da auch nur der Anfang.

Die 2D - Funktionen nutzen doch auch nur die OpenGL-Bibliothek. Warum sollen die zu langsam sein? (Quatsch!)

Und ein kurzes Delay in einer Eventschleife bewirkt oft schon Wunder.

Anbei:
Eine Ebene tiefer würde sich dann noch die GLFW-Bibliothek direkt anbieten.
Diese ist auch die Grundlage für die RayLIb oder das AppGameKit (Studio), etc.

Die SDL-Bibliothek wird z.B. per Standard für die PyGame-Lib benutzt.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Spiele-Programmierfrage (Allgemein)

Beitrag von Mijikai »

Im englischen Forum habe ich einen 2D Software Render gepostet ist evtl. interessant https://www.purebasic.fr/english/viewtopic.php?t=80083
Ich kann gerne ein paar Perfomance Tests machen.
Bzw. testen ob was umsetzbar ist bzw. wie langsam es mit der Lib ist :)
Antworten