Seite 3 von 3

Verfasst: 21.05.2009 08:45
von DarkDragon
Job hat geschrieben:@All
Bez. des "Fehlers" bei "ElapsedMilliseconds()", ich habe deshalb das Wort Fehler extra in Anführungszeichen gesetzt, wobei ich etwas enttäuscht bin, daß es damit erledigt ist.
Denn wenn es für einen scheinbaren Fehler in einer API Funktion eine Lösung gibt, warum wird dann diese nicht verwendet?
Weils auch ein Nachteil ist. PureBasic produziert kleine EXE Dateien. Und wenn man jeden Befehl vollstopfen würde mit Bugfixes vom OS, dann wär das kleinste Programm plötzlich doppelt so groß und kein Grund mehr für Leute das zu kaufen. :wink:

Desweiteren wird Microsoft schon einen Grund dafür haben den Befehl nicht standardmäßig mit hoher Genauigkeit auszuführen. Vielleicht hängt das mit dem Scheduling zusammen wie bei Sleep_(ms) mit kleinen Werten.

Verfasst: 21.05.2009 09:10
von Vermilion
Job hat geschrieben:wenn es seit 4 Jahren keine neuen Befehle für sie gegeben hätte?
Die Lebendigkeit einer Bibliothek kommt doch nicht durch ihre dauerhafte Erweiterung. Außerdem, was willst du noch, außer dem was da ist? Und was kannst du nicht einfach selber machen?

Dein 2D Spiel in 3D, das kannst du in PureBasic machen, oder baue dir deine eigene OpenGL Engine. Es kann nur an dir scheitern.

Verfasst: 21.05.2009 12:56
von Job
Gut, ich gebe mich geschlagen und der Thread kann geschlossen werden.
PB ist fertig, was den Spielebereich angeht und kann nicht mehr verbessert werden.
Aber eigentlich war es dann schon mit Version 3.94 fertig, hat aber auch den Vorteil, daß ich auf keine neue Version
mehr warten brauche, weil ich ja schon alles habe, um tolle Spiele zu machen.
Sollten dennoch neue Versionen von PB erscheinen, werde ich mich doch etwas wundern, falls wieder einige
sich sehr überschwenglich für neue Gadgets oder Befehle für Anwenderprogramme freuen
und bedanken, oder ist die Anwenderseite noch nicht fertig und kann man dort immer noch neue Befehle
gebrauchen und ist nie zu dumm zum selber programmieren?

vote4close

Ich geh radfahren :lol:

*

Verfasst: 21.05.2009 15:53
von Kaeru Gaman
yay, kannst du provokativ sein.

was sich getan hat, ist z.b. das Flag #PB_Sprite_AlphaBlending.
In der nächsten Version kommt umfangreiches Händling des Alpha-Channels für 2D-Drawing hinzu.

überhaupt die Auswahl DX7 / DX9 / oGL zu ermöglichen war ein Riesenschritt.
Natürlich unter der Haube, an den Befehlen hat sich da sichtbar nicht so viel geändert.

wenn ich mir dann weiterhin ansehe, was alles allgemein geändert wurde seit der 3.94,
was auch der Spieleentwicklung zugute kommt, sehe ich keinen Grund da rumzumosern.



> Denn wenn es für einen scheinbaren Fehler in einer API Funktion eine Lösung gibt, warum wird dann diese nicht verwendet?
weil es grundsätzlich kein Fehler ist!

Das Betriebssystem verteilt die vorhandene CPU-Zeit auf dutzende von Prozessen.
normalerweise wird diese Verteilung anhand von Timeslices / Zeitscheiben vorgenommen.

diese sind ca. 16ms groß, da bleibt genügend Raum um alle Daten sauber hin und her zu schieben
und alle Ressourcen zu verteilen und die ganze Verwaltungsarbeit zu erledigen,
und für die meisten Anwendungen (Brief schreiben, Film runterladen, Email checken, Forum surfen, etcpp) ist eine genauigkeit von 16ms fett ausreichend.

wenn jetzt eine Anwendung der Meinung ist (bzw. ihr Programmierer), ihr genüge diese Genauigkeit nicht,
dann muss sie explizit eine höhere Genauigkeit beim Betriebssystem anfordern.

Es besteht aber kein Grund, das immer zu tun nur weil man es kann.

Dadurch harmoniert eine Anwendung nämlich auch schlechter mit der Multi-Tasking-Umgebung,
sprich, sie klaut deinen Downloads und allen deinen anderen Tasks Ressourcen.

Warum sollte sie das tun, wenn sie es nicht explizit benötigt?

Verfasst: 21.05.2009 18:37
von Delle
So, was ich gerade wieder mal als negativ empfunden habe:

Ich versuche einen alten Code zu starten und es geht nicht.

Warum? Weil ein Befehl irgendeine Userlib verwendet, welche nicht in 4.30 nicht mehr supported wird.

Jetzt darf ich a) drauf hoffen, dass der Coder ev. mal nen Update nachschießt oder b) den Befehl entfernen, c) wieder V3.94 verwenden oder d) versuchen selber den Befehl irgendwie mit eigenem Code zu ersetzen.

Das wäre eben bei nativen Befehlen in PB NICHT der Fall!

Vielleicht sollte man mal ne Umfrage machen, WAS konkret für Befehle in dem Bereich noch fehlen und oft verwendet werden in Form von Userlib oder einen Konstrukten.

Verfasst: 21.05.2009 19:10
von Kaeru Gaman
> Weil ein Befehl irgendeine Userlib verwendet, welche nicht in 4.30 nicht mehr supported wird.

also, da ist ein Befehl aus einer veralteten Userlib drin?

... oder wie soll ich das verstehen.

die Problematik mit Userlibs ist nicht neu.

die Frage ist jetzt, was ist das für eine Funktion, die diese Userlib zur verfügung stellt?
dir bleibt die Wahl, sie zu ersetzen, also selber zu schreiben,
oder aber parallel die 3.94 zu installieren, was ich aber nicht für sinnvoll halte.

Keine UserLib im Game-Bereich stellt irgendetwas zur Verfügung,
was man nicht mit ausreichend Recherche und Arbeit selber auf die Beine stellen könnte.

wenn du mir sagst, von welchem Code wo du sprichst, kann ich vielleicht was genaueres sagen.