Pure Basic und seine Entwicklung im 2D Spiele Bereich

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag 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.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Job
Beiträge: 13
Registriert: 08.05.2009 10:26

Beitrag 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:

*
Zuletzt geändert von Job am 21.05.2009 21:07, insgesamt 1-mal geändert.
Wer keine Fragen mehr hat, hat auch das Denken aufgegeben.
Und wer keine Antworten erhält, sollte sich mehr Mühe bei der Fragestellung geben.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag 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.
PB 6.21 | Win 11
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten