Was w?rde in GLBasic noch Sinn machen ? (Sammelthread!)

Previous topic - Next topic

minor

Quote from: Kitty Hello on 2008-Aug-06
Ja, PNG kann auch 4 farb-paletten. Problem ist: wenches Programm kann die speichern?
Habe gerade mal getestet, Gimp[1] verwendet beim Speichern von Bildern anscheinend immer die kleinst mögliche Farbpalette bei < 8-Bit.

[1] http://www.gimp.org

Kitty Hello


D2O

Functionen innerhalb von Type -> Methoden()

Nein, es soll nicht Oop werden aber wär nicht schlecht für Codekapselung und sauberer/schönerer zuweisung.

Pseuducode:

Code (glbasic) Select
Type Tobj
index
x
y
  methode draw:x,y,i = index
    zeichne was
  endmethode
endtype

player as Tobj
player.index = 0

player.draw(10,100)


I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Schranz0r

Vergiss es ;)
Hab ich bei Gernot auch schonmal versucht zu erbetteln :(

Oder Gernot... wie schauts den jetzt damit aus... bekommst auch nen Gangstamässigen hug (umarmung)  :good:  :whistle:
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

Sebastian

Ich wäre eher dafür, Methoden als globale Funktionen einzuführen, die dann für Typen definiert werden können. So in etwa:
Code (glbasic) Select
METHOD idLoad:file$,id
  blabla
  Laden
ENDMETHOD

METHOD drawSomething:x,y,id
  blabla
  Zeichnen
ENDMETHOD

TYPE Spaceship
  myId
  idLoad:file$,id=myId
  drawSomething:x,y,id=myId
ENDTYPE

mySpaceship AS Spaceship
mySpaceship.idLoad("spaceshipSprite.bmp")
mySpaceship.drawSomething(20,10)


Warum so? Auf diese Art und Weise werden die Funktionen wiederverwendbarer. D2Os Vorschlag würde dazu führen, dass man - um Methoden für mehrere Typen verwenden zu können - quasi Objektorientiert Programmieren muss. Mein Vorschlag konzentriert sich eher auf Types, quasi Type orientiertes Programmieren.

D2O

Jepp, genau in diese richtung sollte es gehen, wusste nicht das es auch so möglich wäre.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Schranz0r

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

Ich find's zu kompliziert für BASIC.
as schreckt doch ab. Und wenn man sowas machen will, warum statt:
Auto.Drive()
Nicht:
Drive(Auto)
schreiben!? Ist sogar ein Zeichen kürzer :D

Oder dann eben:
TYPE TCar
..
ENDTYPE

FUNCTION TCarDrive: c as TCar, ...
ENDFUNCTION


Der Vorschlag von Pwnlicious wäre der totale Oerkill, weil ich eine Template Funktion machen müsste, und dann für jedes Objekt, das sie aufrufe checken müsste, ob die verwendeten Argumente vorhanden sind.

Wenn's jamand ach so dringend braucht: INLINE.

Sebastian

Ich meinte ja nur WENN du sowas einbauen würdest wäre das mein Favorit um generellen OOP Zwang zu verhindern. Brauchen tu ichs net ;)

Sebastian

Wie sieht's mit dem Problem der Schattenfragmente aus?
Sonst würde ich nochmal sagen: Shadow Mapping http://de.wikipedia.org/wiki/Shadow_Mapping  :whistle:

Jaja, ich weiss. Ich fange an zu nerven  :nana:

Kitty Hello


Sebastian

Ok, ich dachte mir bei einem Thread mit 24 Seiten sollte man mal alle Wünsche irgendwie zusammenfassen. Hab ich gemacht und mit ein Paar eigenen Vorschlägen versehen die evtl. ganz sinnvoll sein könnten:

Bessere Newton Integration (u.a. multiplatform) und Tutorial
Newton ist in GLBasic integriert aber keiner benutzt es. Das hat bestimmt den Grund, dass es immer noch wahnsinnig umständlich zu benutzen ist (oder es zumindest abschreckt, dass kein Tutorial in der Hilfedatei verfügbar ist) und es evtl. nicht auf allen Platformen verfügbar ist (?). Alternative: Bullet Physics SDK, welches afaik statisch ins Programm gelinkt werden kann und ziemlich Platform unabhängig sein soll (wird sogar in Playstation 3 Spielen verwendet).

/* */ für mehrzeilige Kommentare
Eine grundlegende Sache, die GLBasic tatsächlich irgendwie noch fehlt sind mehrzeilige Kommentare. /* */ wurde bereits vorgeschlagen und bietet sich auch an.

Antialiasing und Anisotropischen Texturfilter on the fly ändern
Antialiasing (= Multisampling) lässt sich derzeit nur vor dem kompilieren einstellen und die Texturfilterung (Anisotropischer Filter, siehe HIER) gar nicht wirklich. Beides sollte aber on the fly möglich sein und kann zu einer viel schöneren und saubereren Optik im Spiel beitragen!

Robuste Stencilschatten ;-)
Da bist du ja schon am Schauen und Problemlösen, ich wollte es nur der Vollständigkeit halber erwähnt wissen ^^

Multithreading für eigene Funktionen
War ja auch schon öfter im Gespräch. Als erweitertes Feature für Userdefinierte Funktionen und Subs ist das im Zeitalter der Quadcore CPUs sicher mehr als sinnvoll!

SFML als Basislib
Ok, das ist neu. Über die SFML bin ich erst heute gestolpert. Das ist eine Art moderne SDL, ebenfalls portabel (platformunabhängig) und unterstützt als 2D Grafikformate bmp, dds, jpg, png, tga, psd. Schriften werden als ttf, cff, pcf, bdf unterstützt, Audio per ogg, wav, aiff, au, raw (und zwar hardwarebeschleunigt und mit 3D Effekten) und die Netzwerkfunktionen dürften das leidige Thema in GLBasic auch endlich beseitigen schätze ich. Einfache OpenGL Integration scheint gegeben zu sein und die Library steht unter der zlib/libpng Lizenz. Wäre sicherlich ein Gewinn für uns alle und GLBasic, fragt sich bloss wie gross der Aufwand wäre. Link: http://www.sfml-dev.org. Eine Alternative die Ähnliches leisten könnte wäre die ClanLib: http://www.clanlib.org

Tenorm

PLAYSOUND um TONHÖHE erweitern, damit man z.b. bei Autogames den beschleunigungssound machen kann (je schneller, desto höher) oder für coole Beam-geräusche...

GRuß

Schranz0r

Nein Tenorm, das ist mit herkömlichen Methoden so nicht lösbar.
Schau dir mal Bassmod oder FMod 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

S. P. Gardebiter

Mehrere Stücke Musik die zur gleichen Zeit gespielt werden können :P
So könnte man z.B. Fadeout für das eine machen und zur gleichen Zeit Fadein für das andere.
~ Cave Story rules! ~