GLBasic, 2008/2009 Planungen

Previous topic - Next topic

trucidare

SDL port ist doch schon vorhanden. das komplette open2x sdk ist vorhanden. sonst hätten die wohl kaum so schnell so viel porten können.
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

minor

Quote from: Kitty Hello on 2008-Jul-16
[...] dass GLBasic in Zukunft langsam umstrukturiert wird [...]
Ich hoffe man kann zumindest als Benutzer einige Ideen einbringen, ob sie umgesetzt werden ist eine andere Geschichte =D

Hier sind zwei kleine Punkte:


  • Der Compiler sollte die Bezeichner aus GLBasic mit einem Prefix versehen damit man unter letzterem auch Schlüsselwörter aus C/C++ verwenden kannn. So wäre "LOCAL private, public" u.a. möglich. Der Aufwand müsste gering sein, Macros + Prefix müssten in den generierten Dateien geändert werden. Alte sowie neue Programme würden ohne Änderungen laufen.

  • Ich würde es begrüßen wenn man beim Befehl "LOADSPRITE bmp$, num#" beim Argument "num#" einen negativen Index angeben kann. Der Befehl würde dann einen fortlaufenden Index generieren. Beispiel: "block = LOADSPRITE "block.png", -1". Ich hoffe der Grund ist ersichtlich =P. Der Aufwand sollte ebenfall gering sein. Alte sowie neue Programme würden ohne Änderungen laufen.

Bitte um Kritik.

Gruß,
minor

Schranz0r

Beide Sachen NAJA...

Grade bei Punkt 2 frage ich mich nach dem Sinn, kann mir das grad nicht wirklich erklären, wieso negative Werte von Vorteil sind?!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

minor

Quote from: Schranz0r on 2008-Jul-26
Grade bei Punkt 2 frage ich mich nach dem Sinn, kann mir das grad nicht wirklich erklären, wieso negative Werte von Vorteil sind?!
Vielleicht wird es an einem Beispiel klarer;
Code (glbasic) Select

pl1 = LOADSPRITE "player_01.png", -1
pl2 = LOADSPRITE "player_02.png", -1
scum1 = LOADSPRITE "scum_01.png", -1
scum1 = LOADSPRITE "scum_02.png", -1
[...]

DRAWSPRITE pl1, 200, 0
DRAWSPRITE pl2, 200, 64
DRAWSPRITE scum1, 200, 64
DRAWSPRITE scum2, 200, 64
[...]

Der negative Index steht symbolisch für eine automatische vergabe von Indizes.

Gruß,
minor

minor

Quote from: Ocean on 2008-Jul-26
Wenn dies wirklich eine wünschenswerte Syntaxerweiterung sein sollte, dann wäre es einfacher, der letzte Argument (-1) optional zu machen.  Wenn's nicht spefiziert wird, soll die Spritenummer automatisch zugeteilt werden...
Ich wusste nicht das es optionale Argumente gibt =P. Dann wäre es sicherlich sinnvoller diese weg zu lassen.

Gruß,
minor


mull

Kannst dir doch ein Funktiönchen machen.
Ich lade alle meine Bilder mit meiner Function LoadImage (ist schnell, kurz und schmerzfrei) z.B:


GLOBAL Haus ; LoadImage(Haus, DatenPfad$ + "Haus.png")


FUNCTION LoadImage: BYREF Image, Datei$
   STATIC EwigeImgNr
   IF DOESFILEEXIST(Datei$) = 0
       //Msg(Datei$+"| |existiert nicht.", 1, 2)
   ENDIF
   INC EwigeImgNr, 1 ; Image = EwigeImgNr ; LOADSPRITE Datei$, Image
ENDFUNCTION
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Schranz0r

Code (glbasic) Select
FUNCTION LoadSprite2: name$
STATIC ID

IF DOESFILEEXIST(name$)
LOADSPRITE name$,ID
INC ID,1
RETURN ID-1
ENDIF

ENDFUNCTION



Also Bild wird so geladen:
Code (glbasic) Select

GLOBAL Bild1 = LOADSPRITE2("MeinBild.png")
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

mull

Code (glbasic) Select

GLOBAL Bild1 = LOADSPRITE2("MeinBild.png")

[/quote]

Das geht nicht ganz so, das Programm kackt einfach beim Start ab und gibt auch leider keine Fehlermeldung aus.
An so einem Fehler hab ich mir mal den Wolf gesucht.

So gehts, wenn die Variable bei Global nicht direkt einen Wert bekommt:

GLOBAL Bild1
Bild1 = LOADSPRITE2("MeinBild.png")
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Schranz0r

Ist wohl ein Bug im GLOBAL!

Werds melden
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Grrr. Der initialisiert die GLOBAL schon im Konstuktor, das hat zur Folge, dass u.U. das Arbeitsverzeichnis nicht gesetzt ist.
Muss man andersrum machen.

Sebastian

#25
Was auch noch recht cool wäre (wenn du wirklich GUI etc. anstrebst): Kontrolle über Threads, sprich: Multithreading. Ich kann mir vorstellen, dass es dir da ein wenig eiskalt den Rücken runterläuft (vor allem weil ich meine gelesen zu haben, dass GLBasic bisher nicht threadsafe ist, d.h. du müsstest die komplette Codebase teilweise erneuern oder überarbeiten) aber nächstes Jahr werden wahrscheinlich keine DualCore Prozessoren mehr hergestellt, dann wird Tripple und Quad Core der Standard sein und gerade für mathematische Programme ist das wichtig. Ach ja, wo ich gerade bei Mathe bin (^^): wir brauchen Typen, die grössere und genauere Zahlen speichern können. Und komplexe Zahlen (k.A. ob die aus C++ einfach übernommen werden können, ich weiss, dass C99 komplexe Zahlen eingeführt hat)  :S

Edit: und kann es sein, dass glbasic.de auf 1&1 gehostet wird und glbasic.com auf Strato? Nur wg. neuer Internetauftritt und so...

Kitty Hello

Threads kann ich mal einbauen, über Synchronisation muss halt jeder selbst Bescheid wissen. Ich hab' da nicht viel Lust Neulingen Hilfestellung zu geben, weil's echt komplex ist, wenn's Geschwindigkeit bringen soll.

Für Komplexe Zahlen würde ich eine 3rd Party library verwenden. Wobei ich die noch nie gebraucht habe. Kommt in der Praxis nie vor.

Ja, glbasic.de ist auf 1&1 gehostet, verweist aber auf diese Seite.

Sebastian

Jap, als ich Threaded Programmierung gelernt hab hatte ich auch oft das Gefühl, dass eine Migräne im Anflug ist  :whistle:
Im Prinzip würde es ja ausreichen, eigene Funktionen als Threads zu definieren. Ich hab nämlich das Gefühl, dass es bei Renderfunktionen nicht so viel bringen wird ;) Aber zum Laden der Modelle und Texturen wäre es halt schön und für eigene Berechnungen.

Kitty Hello

Nachdem das nächste Update größer sein wird (neuer WIZ compiler) hab ich vorgenommen weitere Änderungen einfließen zu lassen. So wird es z.B. jetzt natürliche (auch negative) Ganzzahlen geben (integer), die man mit "#" am Variablennamen erkennen wird.
Somit wird es möglich sein noch schnellere Spiele für GP2X/WIZ zu schreiben, da die ARM Prozessoren keine FPU (Gleitkommazahlencoprozessoreinheiten - geiles Wort) haben.
Um sich schonmal darauf vorzubereiten kann man die Zahlen mit "_N" hinten anstellen und später durch "#" ersetzen. Ich muss dadurch leider Befele wie READLONG usw. abändern. Wird aber nicht weiter tragisch werden.


Schranz0r

hört sich dochmal gut an :)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard