BlitzBasic-Community-Tutorial

Aus Wikibooks
Wechseln zu: Navigation, Suche
Gnome-applications-office.svg

Dieses Buch steht im Regal Programmierung.

Zusammenfassung des Projekts[Bearbeiten]

(Ich versuche erst einmal aus diesem schlecht stukturierten Müll, mit den unübersichtlichen und teilweise nicht funktionierenden Programmen etwas sinnvolles zu gestalten, aus dem auch Anfänger etwas lernen können) Jedoch wird der ganze Bereich Blitzbasic in der Buchreihe BlitzBasic neu, aber vor allem richtig und vollständig dargestellt werden
  • Sind Co-Autoren gegenwärtig erwünscht?
Bitte nur Autoren, die über gute Blitz3D- und Blitzplus-Kenntnisse verfügen auf der meiner Diskussionsseite melden. (Bitte keine copy/paste-Jongleure, die ungeprüft fremde Tutorials und Programme hier rein schieben).
  • Richtlinien für Co-Autoren:
Gibt es direkt von Mirco1989 oder Axel Prignitz, wenn man sich meldet.

Einführung[Bearbeiten]

Vorwort[Bearbeiten]

Programmieren ist kein Kinderspiel, aber auch keine Hexerei. Das soll bedeuten, dass man einerseits nicht einfach schnell einige vorgefertigten Elemente wie Bauklötze aufeinander stellt, um auf die Art in kurzer Zeit ein Programm zu erstellen, andererseits ist es aber nicht unbedingt erforderlich, jahrelang zu studieren um dann vielleicht mit etwas Glück und Geduld ein Programm zu zaubern.

Programmieren liegt irgendwo zwischen diesen beiden Extremen. Wo es genau einzuordnen ist, hängt im wesentlichen von der gewählten Programmiersprache ab. Mit einem Computer kann man theoretisch jede denkbar mögliche Ausgabe an jedes angeschlossene Gerät durchführen und dafür von jedem angeschlossenen Eingabegerät jede mögliche Eingabe auswerten. Man kann sich leicht vorstellen, dass dafür eine große Anzahl von kleinen Einzelschritten erforderlich ist. Mit Assembler (auch als Maschinensprache bezeichnet) kann man wirklich jede der genannten Aktionen ausführen, da Assembler direkt die Steuercodes des Prozessors in verständlichen Symbolen (Mnemonics) verwendet. Jedoch sind in Assembler oft zigtausende Anweisungen nötig, um irgend eine erkennbare Reaktion zu zeigen. Eine hardwarenahe Programmiersprache wie C++ fasst mehrere Assembleranweisungen zu einer leichter lesbaren Form zusammen, doch egal wie viele Anweisungen mit C++ möglich sind, es bleiben immer irgend welche Funktionen, die mit Assembler möglich sind, aber mit C++ nicht programmiert werden können. Leichte lesbare und programmierbare Sprachen wie Blitzbasic fassen wiederum mehrere C++ Anweisungen zu Anweisungsblöcken zusammen. Aber auch hier gilt, selbst sehr viele Anweisungen in Blitzbasic können niemals alles erreichen, was mit C++ möglich wäre. (und damit erst recht nicht alles, was mit Assembler geht) Aber es geht immer noch einfacher, Programme wie Gamemaker bauen bauen tatsächlich nach dem Bauklötze-Prinzip vorgefertigte Elemente aufeinander, ohne das man dabei irgend etwas programmieren muss. Jedoch haben solche Programme wiederum erheblich mehr Einschränkungen, als die Möglichkeiten, die eine Programmiersprache bietet.

Zwischen dieser groben Einteilung, die ich hier dargestellt habe, gibt es jedoch noch sehr viele Abstufungen in Form von anderen Programmiersprachen, die mehr oder weniger Einschränkungen gegenüber der Assemblerprogrammierung bieten, aber auch mehr oder weniger Programmieraufwand erfordern. Doch dieses Buch soll nicht Programmiersprachen allgemien beschreiben, sondern die Programmierung in Blitzbasic erklären. Darum ist die grobe Einteilung ausreichend. Etwas näher möchte ich nur auf Unterschiede zu anderen Basic-Sprachen eingehen, wo Blitzbasic deutlich näher zur C++ Programmierung liegt. Dazu ein Beispiel: Die meisten Basic-Sprachen haben eine Messagebox-Funktion, mit der man ein kleines Fenster öffnet, um den Anwender mit einem Text auf irgend etwas hinzuweisen. Gewöhnlich kann man mit der Funktion den Text der nachricht und den Text der Titelleiste festlegen, manchmal auch ein Icon, dass dazu gezeigt werden soll, sowie den Text, der auf dem OK-Button angezeigt werden soll. Eine solche Funktion gibt es bei Blitzbasic nicht. Dafür gibt es die Möglichkeit, ein in Farbe, Form und Transparenz völlig den eigenen Wünschen entsprechendes Fenster auf eine selbst definierte Art in den Bildschirm gleiten zu lassen. Der Hintergrund des Fensters, die Titelleiste, der Informationstext, der OK-Button und das angezeigte Bild können beliebig gestaltet werden. Entweder nur das Bild, oder sogar das ganze Fenster sowie alle Anderen Elemente können als gerenderte 3D-Grafik erstellt werden. Ob all das sinnvoll ist, um den Anwender nur eine Information zukommen zu lassen, ist erst einmal belanglos, wichtiger ist eher, das der Programmierer nicht zu einer bestimmten vorgefertigten Form gezwungen wird, sondern eine Gestaltung nach eigenen creativen Möglichkeiten vornehmen kann. All das genannte und noch weitere Möglichkeiten sind mit C++ (und erst recht mit Assembler) natürlich auch möglich, jedoch erfordert das erheblich mehr Programmieraufwand, als mit Blitzbasic.

Blitzbasic wird auf seiner Homepage als "für die Spieleprogrammierung optimiert" bezeichnet, aber natürlich ist auch die Programmierung anderer Anwendungen mit Blitzbasic möglich. Trotzdem wird Blitzbasic von Programmierern anderer Programmiersprachen eher abwertend als "nur eine Spiele-Sprache" bezeichnet. Doch wenn man sich das genau überlegt, wo wären wir denn heute, wenn es keine Computerspiele gäbe? Erst einmal werden die meisten Computer in Privathaushalten nur zum Spielen genutzt, ohne Computerspiele würden wesentlich weniger Computer gekauft werden und sie wären dadurch deutlich teurer. Spiele stellen die deutlich höchsten Anforderungen an einen Computer. Gerade für immer mehr und bessere Möglichkeiten in Spielen werden immer bessere Grafik- und Soundkarten entwickelt. Ohne Spiele hätten PCs wohl standardmäßig 256 Farben und nur Pieptöne, die für viele Anwendungen ausreichend wären, auch weil bessere Grafik- und Soundkarten mangels großem Absatz deutlich teurer wären. Daher sehe ich die Bezeichnung "Spiele-Sprache" keineswegs abwertend, sondern eher als ein Qualitätsmerkmal.

Wie teuer ist BlitzBasic und wo bekommt man es?[Bearbeiten]

BlitzBasic ist GRATIS, es gibt auch keine "versteckten Kosten" oder Folge-Kosten. Um BlitzBasic zu erhalten und uneingeschränkt zu verwenden, braucht man nur einen Internetzugang. Auf der Homepage www.blitzbasic.com kann man schon Bilder einiger BlitzBasic-Programme sehen. Aber auf der Seite bitte nicht auf die deutsche Flagge klicken. (denn die führt zum deutschen Blitz-Forum. (Wenn man da doch geklickt hat, kommt man von BlitzForum mit der amerikanischen Flagge zurück)

Auf Höhe der Tableiste steht ganz rechts "Login or Signup". Wenn man dort auf "Signup" klickt, kann man für die Seite einen Account erstellen, mit dem man sich danach mit "Login" einloggen kann. Danach erscheint in der Tableiste    Account   . Durch einen Klick darauf erscheinen unter der Tab-Leiste neue Verlinkte Texte: "View profile", "Edit profile", "Product updates", "Register product" und "Logout". Zuerst sollte man auf "Register product" klicken, und die 3 Versionen "Blitz3D", "BlitzPlus" und "BlitzMax" registrieren. Dort, wo der "Registration code:" eingegeben werden soll, gibt man je nach Programm FREEBLITZ3D, FREEBLITZPLUS oder FREEBLITZMAX ein. Danach kann man bei "Product updates" beliebige Versionen der Programme GRATIS downloaden. Auch spätere Updates oder Installationen auf anderen PCs sind bei BlitzBasic IMMER GRATIS (und waren es auch schon bevor die Programme gratis angeboten wurden) Noch fairer kann eine Softwarefirma zu ihren Kunden gar nicht sein!

Wo bekommt man Hilfe?[Bearbeiten]

Zunächst einmal ist in jeder Blitzbasic-Version eine Hilfe (auf englisch) mit einer kompletten Funktionsreferenz integriert. Wenn man Blitzbasic gestartet hat, wird bereits die Startseite der Hilfe angezeigt, von der man auch viele gut dokumentierte Beispielprojekte(Samples) erreichen kann. Auch ein (kleines) Tutorial der wichtigsten Elemente ist enthalten, sowie 3 komplette Spiele als Quelltext. Ein umfangreiches deutsches Forum vielen Tutorials und Befehlsreferenz (alles auf deutsch) findet man auf der Seite http://www.blitzforum.de jedoch erhält man auch dort keine fertigen Programmteile, die man nur noch zusammensetzen muss, (Das soll es auch in diesem Buch nicht geben) sondern man sollte schon verstehen, wie ein Programmablauf funktioniert, um eine Grundstruktur in eigenen Programmen zu verwenden und nach eigenem Bedarf zu erweitern.

Unterschiede der 3 BlitzBasic-Versionen[Bearbeiten]

Wikipedia hat einen Artikel zum Thema:
BlitzBasic

BlitzBasic basiert auf der Basic-Syntax; das bedeutet, dass es eine der am leichtesten zu erlernenden Sprachen ist. Allerdings wurde BlitzBasic (kurz: BB) um einige neue Features ergänzt (Directx-Unterstützung, Grafikbefehle) und auf Windows und andere neuere Betriebssysteme übertragen. Dabei wurde die einfache Basic-Syntax auf weite Strecken beibehalten. Auch wurden einige Optimierungen vorgenommen.

Blitz3D (kurz: B3D) ist eine Erweiterung zu dem normalen Blitz. Wie der Name schon sagt, wird die Sprache durch einige spezifische 3D-Grafikbefehle erweitert. So können Würfel und andere 3D-Objekte durch einfache Befehle erstellt werden. Aber auch jede andere Form von 3D-Objekten kann programmiert werden, nur sind dafür mehr Kenntnisse zu Blitz3D erforderlich. Jede Art von Effekten, die es in neuen 3D-Spielen gibt, ist mit Blitz3D programmierbar. Blitz3D basiert auf dem Befehlssatz von DirectX7, was jedoch eher ein Vorteil als ein Nachteil ist, denn dadurch sind heute mit Blitz3D erstellte Programme ohne Anpassungen mit mit fast jeder Windowsversion seit Windows98 kompatibel. Neuere DirektX-Versionen bieten nur einige zusätzliche Funktionen, für deren Umsetzung man bei Blitz3D nur etwas mehr Programm schreiben muss. Doch auch für Blitz3D gilt, (wie für jede Programmiersprache) dass man nicht "mal eben schnell" ein Top-Programm erstellen kann, sondern es gehört sehr viel Übung dazu, bis man gute Programme schreiben kann.

BlitzPlus (kurz: B+) ist ebenfalls eine Erweiterung zu BlitzBasic. Wie auch B3D kann es fast alle 2D-Funktionen, aber keine 3D-Funktionen. Stattdessen kann mit B+ das sogenannte GUI (Graphical User Interface) verwendet werden. Damit lassen sich viele verschiedene Steuerelemente in Windows-typischem Aussehen schnell und einfach erstellen. Damit sind von einfachen Buttons über Texteingabefelder, Radiobuttons, Checkboxen und Listfelder bis zu Panels, Tab-Leisten und Menüs kein Problem mehr. Auch Farb-, Schrft- und Dateirequester, Messageboxen und auch ein kompletter Web-Browser sind mit wenigen Anweisungen erstellbar und steuerbar.

BlitzMax (kurz: BMax) ist eine weitere Version von Blitzbasic. Es hat wie BlitzPlus einen Blitz2D-Teil und einen BlitzGUI-Teil, ist jedoch Obejktorientiert. Außerdem ist BlitzMax Plattformübergreifend, also die Programme können ohne weitere Anpassungen auch auf Mac- oder Linux-Systemen compiliert werden. Dafür muss man sich nur (gratis) auf www.blitzbasic.com die entsprechenden BlitzMax-Versionen downloaden. Zu BlitzMax gibt es außerdem noch eine auf OpenGL basierende 3D-Erweiterung "MiniB3D", die jedoch gegenüber Blitz3D nur einen eingeschränkten Funktionsumfang hat.

Demoversionen mit stark eingeschränktem Funktionsumfang für die 3 Blitzbasic-Versionen gab es schon, als die Programme noch nicht gratis waren, heute besteht jedoch kein Grund mehr, die Demoversionen zu nutzen.

Ich empfehle Blitz3D zum Lernen von Blitzbasic, es hat zwar nicht die von anderen Sprachen gewohnten (und in B+ enthaltenen) Anweisungen für »Messagebox«, »Loadrequest«, »Colorrequest«, »Fontrequest«, dafür aber kann man diese Requester sehr viel flexibler und grafisch schöner selber programmieren. Auch hat B3D einen vollständigen Satz aller Blitz2D-Funktionen (bei B+ fehlen einige) und alle BlitzPlus-Funktionen sind in B3D programmierbar. (umgekehrt ist das nicht möglich)

Inhalt[Bearbeiten]

Hier werden die Grundlagen der BlitzBasic-Programmierung und -Syntax vermittelt.
Hier liegt der Quelltext eines Textadventures vor. Fertige Codes sind ideal, um sich selbstständig in eine Programmiersprache einzuarbeiten.
Hier werden die Grundlagen der visuellen Darstellung von Inhalten in BlitzBasic vermittelt.
Hier wird die Abfrage auf Kollisionen in BlitzBasic erläutert.
In diesem kapitel wird beschrieben, wie man in BlitzBasic Sounds einbindet bzw. abspielt.
Hier wird anhand eines Tutorials gezeigt, wie man Spiele in BlitzBasic schreibt.
Hier wird der Umgang mit dem Dateisystem in BlitzBasic näher erläutert.
Hier wird die Möglichkeit in BlitzBasic, über das Netzwerk und über das Internet zu kommunizieren, erläutert.
BlitzBasic unterstützt sogar die Wiedergabe von Videos. Wie man die Videowiedergabe realisiert, wird hier erklärt.
Hier wird der Umgang mit Speicherbänken in Blitz beschrieben.
In diesem Abschnitt liegt eine kurze Einführung in Blitz3D (B3D) vor.
Hier liegt ein unfertiges Tutorial vor, dass den Umgang mit 3d-Objekten verdeutlichen soll.

Zusatzprogramme[Bearbeiten]

Sicher, ein Spiel funktioniert auch wenn man eine Meute brauner einfarbiger Ovale über den Schirm wetzen lässt und an jeden "Keks" dranschreibt. Aber zufriedenstellend ist das für die meisten Programmierer nicht. Deshalb hier eine Zusammenstellung praktischer Zusatzprogramme:

2D-Programme/Bildbearbeitungsprogramme[Bearbeiten]

Mit ihnen lassen sich Bilder und Texturen erstellen:

Die kostenlose, erheblich umfangreichere Alternative von Paint. Die Software ist schnell geladen und bietet neben Ebenen genug Funktion professioneller zu zeichnen.
Ein sehr mächtiges Bildbearbeitungsprogramm, was schon sehr nah an kommerzielle Programme wie Photoshop heranreicht.

3D-Programme[Bearbeiten]

Kostenloser und einfach zu benutzender 3D-Modeller. Gerade für Anfänger ist dieses Programm ein Segen, da es auf den ersten Blick nicht so überladen ist und trotzdem viele wichtige Funktionen bereit stellt, so zum Beispiel auch einen UV-Editor. Die Engine basiert auf dem 3D-Modeller Nendo und kann sich daher gut sehen lassen, allerdings hat Wings 3D Schwächen im Bereich Rendering und Animation. Wings 3D ist besonders gut für Low-Poly Modelle geeignet.
Sehr leistungsstarkes, kostenloses Open Source-3D Programm. Es werden viele gängige 3D-Formate und Betriebssysteme (u.a. Windows9x/ME/2000/XP/Vista/7/Mobile, Linux, MacOS X) unterstützt. Es ist vor allem für Anfänger empfehlenswert, da es viele kostenlose Anleitungen gibt.
3D-Modeller, der auf das Wesentliche reduziert ist. Glänzt vor allem durch haufenweise Import- und Exportformate, speichert auch in ".b3d". Nach 30 Tagen kostet die weitere Nutzung der Speicherfunktion von Milkshape 25 Euro.
Auch als "6CE"-Version erhältlich, welche aber nur sehr selten auf Heft-DVDs/CDs erscheint. Kostet allerdings dann auch nicht mehr als 10 Euro. Ansonsten ist es in der oberen Preisklasse angesiedelt, bietet aber auch dementsprechend viel Professionalität.

Sonstige Programme[Bearbeiten]

Sehr nützlich zur Komprimierung fertig kompilierter EXE-Dateien.
Programm zum Ändern der Ressourcen ausführbarer Dateien, u.a. die Icons von EXE-Dateien. Alternativ kann das Programm kann aber auch bei Chip heruntergeladen werden.

Was aber auch geht...[Bearbeiten]

Mit fortgeschrittenen BlitzBasic-Kenntnissen kann man sich regelmäßig benötigte Zusatzprogramme selber schreiben, was gleich mehrere Vorteile bringt:

  • Das Einarbeiten in fremde Programme entfällt.
  • Eigene Programme können um jede gewünschte Programm-Funktion erweitert werden.
  • Eigene Dateiformate unterbinden den Diebstahl von Grafiken und 3D-Objekten.

Siehe auch[Bearbeiten]