amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Welches Basic??? [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- 2 3 4 [ - Beitrag schreiben - ]

04.05.2007, 18:13 Uhr

AlexanderK
Posts: 7
Nutzer
Hallo,

ich hab mal wieder richtig Lust ein wenig auf dem Amiga zu programmieren. Habe das vor laaaanger Zeit schon mal unter Amiga Basic gemacht und suche nun erst einmal einen passenden Compiler.

Habe gerade bei einem bekannten Auktionshaus nachgesehen und da wird gerade das Maxon Basic 3 und ein HiSoft Basic 2 angeboten. Jetzt bin ich aber etwas aus der Übung und frage mich, was wohl besser ist oder doch was ganz anderes? Was könnt ihr empfehlen?

Das Maxon Basic scheint die letzte Version zu sein und ist mit nem deutschen Handbuch, was mir schon weiterhelfen würde. Amiga Basic will ich auf jeden Fall nicht mehr benutzen, das war sch.... ;)

Dank Euch,

Der Alex

[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 21:12 Uhr

Honitos
Posts: 200
Nutzer
@AlexanderK:
Maxon Basic orientiert sich - so habe ich das in Erinnerung - an der ISO-BASIC-Syntax und war ein guter kommerzieller Compiler.

Der einzige, auch heute noch weiterentwickelte BASIC-Dialekt für den Amiga ist AmiBlitz.

Schau mal unter http://www.amiforce.de nach.
Da gibt es auch ein Forum und die wichtigsten Leute sind da zu treffen.

Die Syntax ist nicht ganz am Standard, aber der Compiler (und die Executables) ist das schnelleste, was man so gesehen hat.

Gruss,
Sven

[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 23:37 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Wenn es eher "Standard" Basic sein soll, dann evtl. Maxon Basic.

Wenn es aber richtig rocken soll, und ruhig etwas extravaganter sein darf, dann auf jeden Fall Amiblitz.

Amiblitz wird bis heute intensiv weiterentwickelt und hat sowohl den schnellsten Compiler als auch die schnellsten Exectuables, mit Abstand. Die Speed der Exectuables entspricht etwa C, der Compiler ist aber bestimmt 100mal so schnell wie GCC.

... und es ist OpenSource und frei erhältlich. Der Befehlssatz wird kontinuierlich erweitert (Includes) und deckt daher auch "aktuelle" Themen ab, wie AHI Sound, 24bit Grafiken, TCP/IP, OpenGL usw., was man bei anderen Basic Dialekten erst mühsam selbst zusammen coden muss.

Die Exectuables laufen, wenn man sich an gewisse Regeln hält, auf OS4, MOS, Amithlon und WinUAE, und natürlich Classic. Man kann aber auch wahlweise Hardware Banging Code schreiben, wenns ein Spiel für A500 oder sonstige Classic Hardware sein soll.

Und was wichtig ist, dass es noch einige Leute gibt die damit coden und Ahnung haben, die dir bei Problemen helfen können.
--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

05.05.2007, 08:45 Uhr

Ralf27
Posts: 2779
Nutzer
Also wer vorher AmigaBasic programmiert hat, der sollte sich vorher MaxonBasic ansehn, da der Syntax 99,99% gleich ist. Außerdem läuft MaxonBasic auch auf alten Amigas ab OS1.3. Nachteil: Der Speed kommt bei weitem nicht an AmiBlitz oder BlitzBasic ran.
Zum Testen gibt es davon im Aminet eine Demoversion.

AmiBlitz ist wahrlich um Welten schneller, sieht aber eher aus wie C (sorry, meine bescheidene Meinung :D ) und braucht schon einen ordenlichen Amiga mit Grafikkarte.

Es gibt auch noch PureBasic, was vor kurzem für den Amiga freigegeben wurde, was aber auch denn Vorteil hat, das der Quellcode auch auf z.b. Windows compiliert werden kann, sofern die Packete vorhanden sind. Hab es mir auch mal kurz angesehn, sieht aber auch mehr nach AmiBlitz aus als nach AmigaBasic oder MaxonBasic. :)

Zum schnnellen testen gibt es auch noch ACE aus dem Aminet. Ein schneller, frei Compiler der denn gleichen Syntax wie AmigaBasic oder MaxonBasic benutzt und bei Integerberechnungen sogar schneller ist als das kommerzielle MaxonBasic. Aber bei Floatberechnungen bricht es relativ stark ein, die aber eh seltener sind.
--
http://www.alternativercomputerclub.de.vu

[ Dieser Beitrag wurde von Ralf27 am 05.05.2007 um 08:46 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

05.05.2007, 12:01 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Amiblitz Beispiel mit Inlcudes:

code:
XINCLUDE "image.inlcude.bb2"
XINCLUDE "ahi_device.inlcude.bb2"

WBToScreen 0 ; WB als screen nutzen
Window 0,0,0,320,200,$E,"MyWindow",1,0 ; ein Fenster öffnen

image_Load{0,"Dh0:Pics/myPic.png"} ; bild laden
image_Blit{0,x,y} ; blitten ...

ahi_LoadSound{0,"Dh0:sfx/mySound.wav"} ; sound laden
ahi_PlaySound{0} ; sound abspielen via AHI

End ; byebye


Das obige Proram würde so bereits laufen.
Es lädt ein Bild via Datatypes (also png, gif, jpeg, iff usw.usw)
und blittet es in das Fenster, egal ob 1 oder 24 bit screen.

Dann wird ein Sound geladen (wav, aiff, iff, cdda, maud, mp3, sysx, mod usw.usw) und via AHI device abgespielt.

Die Befehle fallen auch nicht vom Himmel, sondern sind browsebar und per HELP über einem Befehl bekommt man die Syntax angezeigt, die meisten haben einen Help-Guide, den man per SHIFT-HELP aufpoppen kann.
Man kann also in aller Ruhe in dem Befehlssatz "stöbern" und sich raussuchen, was man braucht. Ausserdem gibts jede Menge Beispiel programme, z.B. fast alle Programme in meiner Signatur sind als Source dabei. (Amiblitz3)

Wenn C so einfach wäre ...

--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de



[ Dieser Beitrag wurde von Der_Wanderer am 05.05.2007 um 12:42 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

05.05.2007, 18:56 Uhr

cgutjahr
Posts: 2782
[Administrator]
AmiBlitz (AB) ist kostenlos, also würde ich es mir auf jeden Fall mal anschauen. Ganz so rosig, wie Der_Wanderer es hier darzustellen versucht, ist die AB-Situation allerdings nicht:

AB ist eine Art Zwitter. Ursprünglich wurde es (vereinfacht ausgedrückt) mal entwickelt, um auf einem (fast) nackten Amiga schnelle Spiele zu schreiben. Das kann es besser als jedes andere BASIC, und dieser Aspekt ist auch ziemlich gut dokumentiert.

Allerdings kann man von AB aus auch Betriebssystem-Routinen aufrufen und es relativ einfach mit eigenen Befehlen erweitern - das Beispiel-Listing das Wanderer oben gepostet hat, besteht fast ausschließlich aus Befehlen, die er selbst entwickelt hat und die im eigentlichen AB-Befehlssschatz gar nicht vorkommen. Durch diese Erweiterbarkeit hat sich AB inzwischen zu einer Art eierlegenden Wollmichsau entwickelt, mit der du auch sehr schön systemkonforme Anwendungen mit Reaction- oder MUI-GUI entwickeln kannst die auch unter OS4 oder MorphOS problemlos laufen.

Diese ganze zusätzliche Funktionalität ist aber nur suboptimal dokumentiert. Das eigentlich sehr gute Handbuch ist 10-15 Jahre alt und hört dort auf, wo die kommerzielle AB-Entwicklung aufgehört hat. Die ganzen mächtigen Erweiterungen auf die Wanderer sich bezieht, sind dann alle nur mittels Readme-Dateien die irgendwo im Verzeichnisbaum herumliegen erläutert. Der Sprung vom einfachen "Hello World"-Programm zu etwas Nützlichem, das auch noch auf Grafikkarte laufen soll, ist so - vor allem für jemanden der seit AmigaBasic nichts mehr programmiert hat - wahrscheinlich mit einigen Fragezeichen versehen.

Wenn du aber hauptsächlich hardwarenahe Spiele machen willst, ist AB definitiv die erste Wahl.

Falls dir Grafikkarten-Unterstützung wichtig ist, kommt auch noch Hollywood in Frage. Das ist kommerziell, basiert auf Lua (nicht BASIC, aber extrem BASIC-ähnlich) und setzt eine Grafikkarte zwingend voraus. Hollywood ist sehr gut dokumentiert (inklusive zahlreicher Tutorials und Beispiel-Quellcodes) und extrem einsteigerfreundlich. Nachteile: Keine Unterstützung für die Custom Chips, keine Möglichkeit Betriebssystem-Routinen aufzurufen (beispielsweise um eine MUI-GUI zu erstellen).
--
Gutjahrs Amiga Seiten

[ - Antworten - Zitieren - Direktlink - ]

06.05.2007, 01:15 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@gutjahr

Da muss ich dir aber ein bisschen wiedersprechen.

Seit Blitzbasic2 nicht mehr kommerziel weiterentwickelt wurde,
sind tonnenweise Bugfixes und Komplettierungen vorgenommen worden,
sodass vieles nun problemlos auf allen Platformen läuft.
Auch der Compiler und das Compilat wurden deutlich beschleunigt,
Compiler etwa Fatkor 10 und Exectuables etwa Faktor 2-3 bei Integer
und Faktor 20 bei Floats (dank FPU).

Die "Includes", deren Befehle ich in dem Code Beispiel verwendet habe,
sind quasi Befehlssatzerweiterungen, die bei AB3
offiziell dabei sein werden und die sich ähnlich "anfühlen" wie
Befehle. Fast alle Befehle sind documentiert, also während man "image_Load" tippt, wird einem die Syntax
angezeigt, bei SHIFT+HELP springt man direkt in den Guide, das ist
besser als jedes Handbuch. Man kann aber auch Befehle browsen und nach
was passendem suchen. Die Guides liegen also nicht passiv "irgendwo" im Verzeichnisbaum rum, sondern sind immer direkt erreichbar.

Es gibt auch einen Main Guide, der das Konzept der Inlcudes erklärt und von wo aus man alle Inlcudes aufgelistet sieht und durchstöbern kann. Das sind quasi Befehle für Amiblitz in Amiblitz geschrieben, das
hat den Vorteil dass jeder sehen kann wie es gemacht wurde und evtl. auch bugfixen kann. Open Source soz.
Es ist auch jede Menge documentierter Beispiel-Code vorhanden,
einfache Game Loops bis zu komplexen Programmen.

Also ich denke von "Hello World" zum einfachen 2D Shooter ist kein so großer Schritt nötig.

--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

06.05.2007, 01:20 Uhr

Cj-Stroker
Posts: 1343
Nutzer
Hi cgutjahr

Gerade Grafikkartenunterstützung ist eine der Stärken von Amiblitz.
Dank der Includes werden alle modernen Standards unterstützt.
Hardwarenahe Programmierung kann man eher als Altlast von Amiblitz ansehen, da hier eigentlich nichts mehr gemacht wurde.

Amiblitz wird intensiv weiterentwickelt. Programme wie z.B. PerfectPaint, Hd-Rec und auch Amiblitz selbst demonstrieren die Leistungsfähigkeit.

Wer sich diverse Projekte von der_Wanderer ansieht wird auch sehr schnell merken, daß Spiele-Entwicklung auch nicht gerade uninteressant in Amiblitz ist.

In Sachen Doku hast du allerdings nicht unrecht. Ein Handbuch in der Form von Falk Nieders Werk gibt es nicht mehr.

Innerhalb des Editors kann man aber alles abrufen, was notwendig ist. Das geht sogar äuserst kompfortabel. Wenn dann mal doch unklarheiten bestehen, gibt es einen sehr aktiven Support, der gerne bei Problemen mit Rat und Tat zur Seite steht.

MFG

Cj-Stroker
--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
(Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ - Antworten - Zitieren - Direktlink - ]

06.05.2007, 04:43 Uhr

cgutjahr
Posts: 2782
[Administrator]
@CJ/Wanderer:

Nur damit mich keiner falsch versteht - ich will nichts gegen die Fähigkeiten von AB gesagt haben, auch mein Hinweis dass die Includes eigentlich nicht Teil des Befehlsvorrats sind war nicht abwertend gemeint, sondern als Einleitung für den Kritikpunkt "Dokumentation" gedacht.

Ich habe mir AB vor ein paar Monaten angesehen. Was ich als Einsteiger in eine Programmiersprache brauche ist eine Einleitung die Syntax, Variablentypen, Operatoren u.ä. erläutert und dann eine nach Themen gegliederte Funktions- bzw. Befehlsübersicht.

Das ist zwar bei AB teilweise gegeben, aber eben auf dem Stand von 1996. Da werden mir gleich zu Beginn Blitter- und Copperbefehle vorgestellt, der "Blitzmode" (der vermutlich besser so-systemfeindlich-wie-möglich-mode heissen sollte) wird erläutert etc. Bei manchen Befehlen ist sofort klar, dass ich die wohl nicht benutzen sollte wenn ich Chipsatz-unabhängig bleiben will, bei anderen bleibt mir nur raten oder ausprobieren. Der Schritt an dem ich am meisten interessiert war (etwa: "schon gut, die Syntax habe ich kapiert - jetzt will ich ein JPEG-Bild in einem Fenster anzeigen") wäre irgendwie mit ziemlich viel Stöbern in Guide-Dokumenten verbunden gewesen - vermute ich zumindest, ich hab da aufgegeben.

Das der Editor mir auf Knopfdruck sämtliche Informationen zu einer Funktion anzeigen kann, hilft mir nicht viel wenn ich keine Ahnung habe welche Funktion mein aktuelles Problem lösen könnte ;)


--
Gutjahrs Amiga Seiten

[ - Antworten - Zitieren - Direktlink - ]

06.05.2007, 06:37 Uhr

whose
Posts: 2156
Nutzer
@cgutjahr:

Ich schätze, bei den beiden macht sich eine gewisse Betriebsblindheit bemerkbar, die jeden befällt, der sich länger mit einer Sache beschäftigt.

Mir zum Beispiel kommt C inzwischen so einfach, simpel und vertraut vor, daß ich meine Schwierigkeiten am Anfang fast vergessen habe. Mir fällt einiges aus dieser Zeit erst wieder ein, wenn ich eine entsprechende Frage lese. Manches ist mir völlig entfallen. Dementsprechend schüttele ich dann (unberechtigterweise manchmal) den Kopf, wenn einer sagt, er verstünde C nicht.

Ähnlich ist es bei Blitz. Man muß sich erst einmal daran gewöhnen und aufgrund der fehlenden, guten Dokumentation ist genau dieser Vorgang etwas... aufwändig. Die meisten (ich eingeschlossen) schrecken vor der Arbeit zurück, die diese Eingewöhnung mit sich bringt (von den frustrierenden Mißerfolgen die das mit sich bringt rede ich noch nicht einmal).

Ich kann jedenfalls nur zustimmen, wenn jemand sagt, daß die Dokumentation von AmiBlitz nicht wirklich anfängergerecht ist. Was eindeutig fehlt, ist ein leichter Einstieg, der all das erklärt, was in der "üblichen" Doku untergeht. Datentypen und der Umgang damit z.B.

Bei manchen AmiBlitz-Programmen steige noch nicht mal ich als Cler durch, obwohl die Syntax/Semantik in weiten Teilen sehr ähnlich ist. Es gibt aber echt Fälle, wo ich nicht den leisesten Schimmer habe, was dieser Teil gerade bedeuten soll und, was noch schlimmer ist, wo ich entsprechende, klare Erläuterung finde.

@CJ/Der_Wanderer: Das soll, wie cgutjahrs Erläuterungen auch, kein "Schlechtreden" sein. Ich zähle einfach nur das auf, was mir persönlich an AmiBlitz aufgefallen ist.

Das solltet ihr als Anregungen nehmen und verarbeiten. Mit guter Dokumentation ist AmiBlitz sicher eine wirklich gute Alternative zu C, wenn auch kein wirklicher BASIC-Ersatz (dazu hat sich AmiBlitz von Syntax und Semantik her viel zu weit vom altbekannten BASIC entfernt).

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

06.05.2007, 13:31 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ein bisschen habt ihr natürlich recht, dass man einge Probleme nicht mehr sieht, wenn man sich mit etwas intensiv befasst.

Aber seit geraumer Zeit gibt es wirklich eine Docu zu den Includes, und Befehle sowohl auch Funktionen sind Browsebar oder durch einen übergeordneten Guide erreichbar, sodass man nicht aufgeschmissen ist wenn man einen Befehl nicht kennt, da man die alle aufgelistet hat und nachschauen kann was geeignet erscheint.

Amiblitz2 nutzt allerdings nicht die herkömmliche Basic syntax, das ist klar.

Aber sobald man mehr machen will als die ersten 20 Fibonatschi Zahlen ausrechnen, kommt man mit dem Standard Basic eben nicht weit, oder muss eben doch auf OS Funktionen direkt zugreifen und ist somit mehr oder weniger bei C gelandet.

Oder wie lädt man dort ein Bild, resized es und speichert es als JPEG ab ? Dafür gibts soweit ich weis keine Befehle.

In Amiblitz2 geht das so:
code:
If image_Load{0,"dh0:pics/mypic.png"}
  image_Resize{0,320,200} ; auf 320 x 200 resizen
  image_Save{0,"dh0:pics/mypic320x200.jpg",@"JPEG"}
End If



.. oder einen Screenshot von der WB als IFF speichern ...
code:
WBToScreen 0
*scr.Screen = Peek.l(Addr Screen(0)) ; Screen Adresse holen
If image_CutRP{0,*scrRastPort} ; grabben
  image_Save{0,"dh0:pics/WBScreenShot.iff",@"ILBM"}
End If


Da Amiblitz optionale Parameter hat, sehen einfache Dinge auch einfach aus, aber man hat gleichzeitig viele erweiterte Möglichkeiten, z.B. wenn ich nur einen bestimmten Bereich des Screens gabben will, kann man den Befehl erweitern und schreibt...

code:
If image_CutRP{0,*scrRastPort,x1,y1,x2,y2} ; grabben
...


Somit hat man gleichzeitig eine einfach API und eine Experten API.
Einfacher gehts ehrlich gesagt kaum noch, auch in Hollywood nicht.

--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de



[ Dieser Beitrag wurde von Der_Wanderer am 06.05.2007 um 13:37 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

06.05.2007, 14:25 Uhr

Honitos
Posts: 200
Nutzer
@whose, cgutjahr:

Dem Punkt Dokumentation muß ich auf jeden Fall zustimmen.
Es gibt von Blackbird auf amiforce.de immerhin ein Tutorial, aber das kann auch nur hier und da erläutern.

Wenn die Arbeiten an AmiBlitz3 abgeschlossen sind, klick ich, oder einer der aktiven "Kollegen" mal ein entstaubtes Handbuch zusammen. Arbeiten in Richtung HTML-Version laufen da auch schon...

Gruss,
Sven

[ - Antworten - Zitieren - Direktlink - ]

07.05.2007, 21:33 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Der_Wanderer:
Aber sobald man mehr machen will als die ersten 20 Fibonatschi Zahlen ausrechnen, kommt man mit dem Standard Basic eben nicht weit, oder muss eben doch auf OS Funktionen direkt zugreifen und ist somit mehr oder weniger bei C gelandet.


Das mag schon sein, aber man könnte (theoretisch) die Befehle genau so erweitern wie in AmiBlitz.. also neue Befehle in den Includes deklarieren... bzw. wurde das ja auch schon in der Originalversion von MBasic gemacht.

Insofern nichts anderes als in MBasic, nur setzt sich keiner mehr an MBasic, weil es einfach grottenlangsam ist.

Aber egal, es macht mir Spaß mit MBasic programme zu schreiben und das mach ich nur ab und zu. Ich wäre gerne zu AmiBlitz umgestiegen, wenn der Unterschied in den Sprachen nicht so hoch wäre. Schade.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 11:30 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Achtung, im folgenden rühre ich jetzt die Werbetrommel für Amiblitz. Ich bin nicht verrückt oder fanatisch.

Zitat:
Das mag schon sein, aber man könnte (theoretisch) die Befehle genau so erweitern wie in AmiBlitz.. also neue Befehle in den Includes deklarieren... bzw. wurde das ja auch schon in der Originalversion von MBasic gemacht.
Ja, natürlich, theoretisch. "UltraBasic" ist theoretisch das aller beste Basic was super duper schnell ist und alles kann, ich muss es nur noch implementieren. :O
Du verstehst was ich meine ?
Das kann man natürlich mit jeder Sprache, die Zugriff auf die OS
Funktionen erlaubt. Nur hat es eben niemand gemacht ausser mir für Amiblitz. Das war jahrelange Arbeit, mit viel trial&error verbunden, bis man das know-how hat und alles auf allen Platformen läuft.
Wenn also jemand ein anderes Basic nutzt, muss er das erstmal nachholen, wenn er eine so einfache und mächtige API haben will,
die vor allem auf dem aktuellen Stand ist, also aktuelle Standards
unterstützt und auch Möglichkeiten neuerer Hardware, wie z.B. Alpha Blending usw.

Ein Basic besteht eigentlich nur zu <25% aus Compiler, den Rest machen die zur Verfügung stehenden Befehle aus. Da steckt mehr Arbeit drin als im Compiler.
Z.B. könnte Bernd mit moderatem Aufwand Amiblitz für x86 kompilieren lassen. Das Problem ist nur, dass die ganzen Blitzbefehle in 68K Assembler gecodet sind. Und das sind tausende, das wäre eine enorme Arbeit. Deshalb habe ich alle Includes in Amiblitz selbst gecoded, da sie dann automatisch auch im Code der Ziel-CPU sind. So ähnlich wie man es in C machen würde.
Leider ist das nicht zu 100% durchgezogen, d.h. man müsste schon noch ein paar Dinge ändern, aber zu 99% ist es Amiblitz Code mit OS Funktionen.

Zitat:
Insofern nichts anderes als in MBasic, nur setzt sich keiner mehr an MBasic, weil es einfach grottenlangsam ist.

Das "grottenlahm" resultiert nicht nur in langsamer Speed, sondern
limitiert auch die Möglichkeiten. z.B. kannst du keine Aufwendigen
Sachen in Echtzeit berechnen, wie Alphablending oder DSP Effekte.

Zitat:
Aber egal, es macht mir Spaß mit MBasic programme zu schreiben und das mach ich nur ab und zu.
Wie ich schon sagte, es kommt immer auf die Anwendung drauf an.
Die ersten 20 Fibonatschi Zahlen oder ein Palindrom-Test ist
sicher kein Problem, aber ein Spiel wie das hier:

Bild: http://www.hd-rec.de/pics/map.include4.jpg

So was wirst du in MaxonBasic wohl nicht hinbekommen.
So eine Grafik wie oben ist auch nicht schwieriger als ein PacMan Level, es sind nur andere Grafiken und dank der Speed muss man nicht an jedem Bit drehen dass auch alles rund läuft.

Für Amiblitz gibt es jetzt einen Map Editor, und obige Grafik lässt sich so einfach in einen beliebigen RastPort zaubern:

code:
Window 0,0,0,320,200,$E,"MyGame",1,0
*rp.RastPort = RastPort(0)
mymap.l = map_Open{"Dh0:maps/mymap.map"}
If mymap Then map_Render{mymap,*rp,0,0,320,200}


Zeichnen kann man das im Editor, ganz easy, auch ganz andere Games:
Bild: http://www.hd-rec.de/pics/mapedit2.png

Zitat:
Ich wäre gerne zu AmiBlitz umgestiegen, wenn der Unterschied in den Sprachen nicht so hoch wäre. Schade.
Du musst jede API neu lernen. Der Bonus ist eben dass man mehr
Möglichkeiten bekommt und viel schneller, bessere, mächtigere Programme entwickeln kann.

Wie ich schon geschrieben habe:

code:
If ahi_LoadSound{0,"Dh0:sfx/mysound.aiff"}
  ahi_PlaySound{0}
  ahi_SaveSound{0,"Dh0:sfx/mysound.mp3",@"MP3"}
End If

If image_Load{0,"Dh0:gfx/mypic.jpeg"}
  image_Blit{0,x,y}
  image_Save{0,"Dh0:gfx/mypic.png",@"PNG"}
End If


Zeig mir wie es einfacher geht. Wem das zu kompliziert ist, sorry, der wird in keiner Sprache was Vernünftiges proggen können.

--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 13:52 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Ralf27:
Das mag schon sein, aber man könnte (theoretisch) die Befehle genau so erweitern wie in AmiBlitz.. also neue Befehle in den Includes deklarieren... bzw. wurde das ja auch schon in der Originalversion von MBasic gemacht.

Du kannst nicht die Fähigkeiten der Sprache selbst ändern. Und Strukturen gibt es in MBasic nicht. Und die meisten der in diesem Forum diskutierten MBasic-Programmier-Probleme waren durch genau diesem Mangel verursacht. PEEK und POKE sind kein Ersatz.

Außerdem kannst Du allenfalls Prozeduren oder Funktionen hinzufügen, mit Befehlen hat das nichts zu tun. Falls Dir der Unterschied nicht klar ist:
PRINT "BLA"
PRINT AT(2,2),"BLA"
PRINT #1,"BLA"

Könntest Du diesen Befehl mit den Sprachmitteln von MBasic hinzufügen, wenn es ihn nicht schon geben würde? Du könntest eine PRINT-Funktion der ersten Variante implementieren, aber das war's auch schon.
Zitat:
Insofern nichts anderes als in MBasic, nur setzt sich keiner mehr an MBasic, weil es einfach grottenlangsam ist.
Und weil die "Entwicklungsumgebung" grottenschlecht ist. Und weil der Compiler falsche Zeilennummern für die Fehlerbehandlung generiert. Und weil man es ja erst mal kaufen müsste, was ja gar nicht mehr geht.
Zitat:
Aber egal, es macht mir Spaß mit MBasic programme zu schreiben und das mach ich nur ab und zu. Ich wäre gerne zu AmiBlitz umgestiegen, wenn der Unterschied in den Sprachen nicht so hoch wäre. Schade.
Tja...
Aber vielleicht wäre C ja das richtige für Dich?
Mit dem Komfort von MBasic kann es locker mithalten...

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 14:51 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Vielleicht sollte mal AlexanderK wieder zu Wort kommen.

Für was man sich entscheidet, hängt auch davon ab, was man damit machen will.

In C ist natürlich alles Möglich, aber es ist eben etwas komplizierter, d.h. man benötigt mehr Disziplin und Wissen über strukturiertes Programmieren und über das AmigaOS selbst.

In Amiblitz kann man auch alles machen. Man kann es "zu Fuss" machen, so wie in C, aber auch auf "höhere" Funktionen zugreifen, in einer guten Entwicklungsumgebung mit Debugger. Nachteil ist ganz klar, das bis jetzt nur 68K Code rauskommen wird, dafür aber sehr schneller, so wie in C.

Das MBasic so "schlecht" ist wusste ich nicht. Strukturen sind ein Muss, sobald das Program ein bisschen größer wird und man mit dem OS interagieren will.


--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 16:11 Uhr

Honitos
Posts: 200
Nutzer
Zitat:
Aber egal, es macht mir Spaß mit MBasic programme zu schreiben und das mach ich nur ab und zu. Ich wäre gerne zu AmiBlitz umgestiegen, wenn der Unterschied in den Sprachen nicht so hoch wäre. Schade.
--
http://www.alternativercomputerclub.de.vu


Hallo Ralf,

kannst du bitte mal ein Bild von der Entwicklungsumgebung posten ?
Mich würde interessieren, wie das Arbeiten damit so aussieht ;-)

Gruss,
Sven

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 18:22 Uhr

MaikG
Posts: 5172
Nutzer
>PRINT "BLA"
>PRINT AT(2,2),"BLA"
>PRINT #1,"BLA"
>Könntest Du diesen Befehl mit den Sprachmitteln von MBasic hinzufügen, wenn es ihn nicht schon geben würde? Du könntest eine PRINT-Funktion der ersten Variante implementieren, aber das war's auch schon.

Wenn du das Format so änderst ja:

Print 0,0,"BLA",0
Print 2,2,"BLA",0
Print 0,0,"BLA",1


x,y,String, Kanal

Schlüsselwörter kann man unter MB auch deaktivieren.

unter MaxonBasic ist dafür das String handling viel leichter
als unter C. Ich sag nur left$, right$, mid$.

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 20:26 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Honitos:
kannst du bitte mal ein Bild von der Entwicklungsumgebung posten ?
Mich würde interessieren, wie das Arbeiten damit so aussieht ;-)


Da gibt's nicht viel zu sehen. Wenn Du ein Basicprogramm, sagen wir mal "Programm.bas" hast, kannst Du einfach mal in der Shell
ed Programm.bas eingeben.

Die "Entwicklungsumgebung" von MBasic sieht genauso aus.

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 20:32 Uhr

Honitos
Posts: 200
Nutzer
@Holger:
Oh.

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 20:33 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Wenn du das Format so änderst ja:

Print 0,0,"BLA",0
Print 2,2,"BLA",0
Print 0,0,"BLA",1

Dir sollte schon auffallen, dass ich beim echten Print Befehl keinen Kanal angeben brauche, wenn ich nicht in eine Datei schreiben will. Und auch keine Koordinaten, wenn ich an die aktuelle Cursorposition schreiben will. Und: "an die Koordinaten 0,0 zu schreiben" ist nicht identisch mit "an die aktuelle Cursorpostion schreiben".
Zitat:
unter MaxonBasic ist dafür das String handling viel leichter
als unter C. Ich sag nur left$, right$, mid$.

Das ist aber auch schon alles. Und Strings gibt's in den anderen Basic-Dialekten auch. Also kein Grund, an MBasic kleben zu bleiben.

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 20:47 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Holger:
Zitat:
Original von Honitos:
kannst du bitte mal ein Bild von der Entwicklungsumgebung posten ?
Mich würde interessieren, wie das Arbeiten damit so aussieht ;-)


Da gibt's nicht viel zu sehen. Wenn Du ein Basicprogramm, sagen wir mal "Programm.bas" hast, kannst Du einfach mal in der Shell
ed Programm.bas eingeben.

Die "Entwicklungsumgebung" von MBasic sieht genauso aus.


So mies sieht das nun aber doch wieder nicht aus.
Befehle werden z.b. hervorgehoben. Beim compilieren werden Fehler direkt angezeigt, etc. Insgesamt wahrlich nicht berauschend, aber mindestens genausoviel wie bei AmigaBasic(ok, issen Interpreter).
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 20:54 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Honitos:
@Holger:
Oh.

Ich weiß :D

Es gibt auch ne Demoversion im Aminet. Die zeichnet sich dadurch aus, dass man keine includes für die direkte Programmierung des AmigaOS beigelegt hat, dafür aber vier "Beispielprogramme", die sich alle dadurch auszeichnen, dass sie nur eben jene direkte Programmierung des AmigaOS (keine wirklichen Basic-Fähigkeiten) demonstrieren, was aber nicht so schlimm ist, weil man sie ohnehin nur in ausführbarer Form ohne den zugehörigen Basic-Quellcode beigelegt hat. Eine Anleitung existiert auch nicht, auch nicht in abgespeckter Form, damit auch ja kein potentieller Kunde etwas von den Fähigkeiten dieses Compilers mitbekommt. Ich denke, das sagt alles. Na ja, kaufen kann man's heute eh nicht mehr.

http://aminet.net/biz/demo/MaxonBASIC3_D.lha

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 20:59 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Ralf27:
So mies sieht das nun aber doch wieder nicht aus.

Doch. vi bietet mir mehr Komfort. Inkl. ordentlichem Syntax-Highlighting, auch für Basic.
Zitat:
Befehle werden z.b. hervorgehoben.
Äh, Großbuchstaben nennst Du hervorheben?
Zitat:
Beim compilieren werden Fehler direkt angezeigt, etc. Insgesamt wahrlich nicht berauschend, aber mindestens genausoviel wie bei AmigaBasic(ok, issen Interpreter).

AmigaBasic zeigt aber bei Fehlern im Gegensatz zu MBasic die richtige Zeile an. Außerdem ist AmigaBasic wohl kaum der Maßstab.

mfg
--

[ Dieser Beitrag wurde von Holger am 08.05.2007 um 20:59 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 21:47 Uhr

Honitos
Posts: 200
Nutzer
Ich schau mir die Demo mal an.

Wenn das aber stimmt, was ich hier so gelesen habe, dann gibt es keinen Grund NICHT nach AmiBlitz zu wechseln, sofern C nicht in Frage kommt.

Allein die Funktionalität der IDE ist ungleich mächtiger und unterstützt den Programmierer erheblich. Ich denke jemand mit Programmiervorkenntnissen zumal in BASIC wird sich in 1-2 Wochen gut zurechtfinden. Die paar Schlüsselwörter und Kontrukte, die anders sind, hat man schnell drauf.

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 21:48 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Holger:
Äh, Großbuchstaben nennst Du hervorheben?

Nun, man könnte das so nennen. Es muß ja nicht immer eine andere Farbe sein. :D
Zitat:
AmigaBasic zeigt aber bei Fehlern im Gegensatz zu MBasic die richtige Zeile an. Außerdem ist AmigaBasic wohl kaum der Maßstab.
Aber ok, wie schon geschrieben, MBasic ist nicht gerade der große Wurf. Und gerade da kann man den Vergleich mit AmigaBasic machen. Ich sehe MBasic eigentlich schon als Nachfolger von AmigaBasic an. Es ist genau spatanisch, genau die gleiche Sprache, läuft aber auch mit OS>1.3. :D

Jedenfalls ist mir schon seit Jahren klar das ich eigentlich die Sprache wechseln müßte, wenn ich den Amiga richtig programmieren möchte.
In der Hinsicht hab ich mir ja auch damals mal BlitzBasic zugelegt und hab damit ein paar kleine Programme geschrieben. Ein bekanntes Manko von AmiBlitz ist ja der Mangeln an Doku. Jo, mir ist schon bekanntd das es Dokus gibt, aber ich Blick da nicht so richtig durch. Und leider läuft AmiBlitz auch nicht auf meiner kleinen Nr1. (hat keine Grafikkarte).
Vielleicht schaff ich ja noch irgendwann mal den Absprung. :)
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 21:52 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Honitos:
Ich schau mir die Demo mal an.

Wenn das aber stimmt, was ich hier so gelesen habe, dann gibt es keinen Grund NICHT nach AmiBlitz zu wechseln, sofern C nicht in Frage kommt.

Allein die Funktionalität der IDE ist ungleich mächtiger und unterstützt den Programmierer erheblich. Ich denke jemand mit Programmiervorkenntnissen zumal in BASIC wird sich in 1-2 Wochen gut zurechtfinden. Die paar Schlüsselwörter und Kontrukte, die anders sind, hat man schnell drauf.


Da geb ich dir vollkommend recht. AmiBlitz ist schon besser als MBasic.

Für mich ist der Unterschieden zwischen dem StandardBasic und AmiBlitz genauso groß wie zwischen dem StandardBasic und C(meine Meinung). Allerdings versteh ich zur Zeit C besser als AmiBlitz, aber vermutlich auch nur, weil ich mehr mit C zu tun habe als mit AmiBlitz.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 21:57 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Holger:
Du kannst nicht die Fähigkeiten der Sprache selbst ändern. Und Strukturen gibt es in MBasic nicht. Und die meisten der in diesem Forum diskutierten MBasic-Programmier-Probleme waren durch genau diesem Mangel verursacht. PEEK und POKE sind kein Ersatz.

Da hast du natürlich auch wieder recht.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

08.05.2007, 22:09 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Der_Wanderer:
Ja, natürlich, theoretisch. "UltraBasic" ist theoretisch das aller beste Basic was super duper schnell ist und alles kann, ich muss es nur noch implementieren. :O
Du verstehst was ich meine ?

Ja, das ist mir schon klar. Deswegen auch theoretisch. Denn diese Arbeit wird wohl keiner mehr machen, wenn ich das nicht selbst machen würde.
Mir ist auch schon klar das AmiBlitz schon besser wäre. Ich sollte wirklich mal meine Programmiersprache wechseln. Ein paar kleine Testprogramme mit BlitzBasic haben mich schon umgebauen, das kann ich dir tippen. :)
Ich brauch wirklich mal mehr Anlauf um endlich mal die Sprache zu wechseln. :)
Bild: http://www.hd-rec.de/pics/map.include4.jpg
Himmel, was issen das für ein Spiel? *neugierig*
Zitat:
So was wirst du in MaxonBasic wohl nicht hinbekommen.
So eine Grafik wie oben ist auch nicht schwieriger als ein PacMan Level, es sind nur andere Grafiken und dank der Speed muss man nicht an jedem Bit drehen dass auch alles rund läuft.

Vielleicht könnte man(ich noch nicht :) ) das schon in MBasic hinbekommen, aber vermutlich nicht so einfach und logischerweise nur mit OS-Funktionen. Aber mir ist schon klar was du meinst. MBasic=ASM auf einem Z80 mit Handbremse mit Entwicklerumgebung auf einem Taschenrechner...)
[quote]
Mein Problem beim Umstieg ist viel mehr der Syntax, bzw. der Unterschied zwischen den Sprachen. Das AmiBlitz einfacher ist als MBasic (sofern man einmal bei AmiBlitz durchgestiegen ist) ist ja für mich verständlich.


--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

09.05.2007, 08:48 Uhr

MaikG
Posts: 5172
Nutzer
>Dir sollte schon auffallen, dass ich beim echten Print Befehl keinen
>Kanal angeben brauche, wenn ich nicht in eine Datei schreiben will.
>Und auch keine Koordinaten, wenn ich an die aktuelle Cursorposition
>schreiben will. Und: "an die Koordinaten 0,0 zu schreiben" ist nicht
>identisch mit "an die aktuelle Cursorpostion schreiben".

Ist mir klar, bei Basic hast du eine vorgegebene anzahl von Parametern
in Subs und Functions. Du kannst aber auch Variablen COMMON SHARED
machen, dann über gibst du nur den String und falls du Optionen
brauchst per Variable.
Ja, 0,0 ist klar, mach -1 draus dann stimmts.
In der Function interpretierst du -1,-1 als "ändere die aktuelle Position nicht".
0 Als Kanal interpretierst du als "benutze keinen Kanal sondern Bildschirmausgabe".

[ - Antworten - Zitieren - Direktlink - ]


-1- 2 3 4 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Welches Basic??? [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.