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)
  • Sind Co-Autoren gegenwärtig erwünscht?
Bitte nur Autoren, die über gute Blitz3D- und Blitzplus-Kenntnisse verfügen bei Mirco1989 melden!
Bitte keine copy/paste-Jongleure, die ungeprüft fremde Tutorials hier rein schieben.
  • Richtlinien für Co-Autoren:
Gibt es direkt von Mirco1989, 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 "www.blitzforum.de". (Wenn man da doch geklickt hat, kommt man von BlitzForum mit der amerikanischen Flagge zurück)

Unter der Tab-Leiste steht der Text "Register", einmal da drauf klicken und man kann GRATIS auf der Seite einen Account erstellen. Danach erscheint nach dem Einloggen ein weiterer Tab "Account" in der Tab-Leiste. 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.

Über Basic[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.

BlitzBasic3D (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. Außerdem kann man die Kamera sehr einfach mit den Befehlen für Meshs an seine Bedürfnise anpassen. Ein vollständiges Kollisionssystem ist genauso vorhanden, wie die Möglichkeit, Heightmaps zu erstellen. Das Ganze basiert zwar noch auf DirectX-7-Basis, aber trotzdem lassen sich immer wieder erstaunliche Effekte auf den Bildschirm zaubern. Allerdings ist dafür mehr Übung notwendig, als für den Umgang mit einfachen 2D-Sachen.

BlitzPlus (kurz: B+) ist ebenfalls eine Erweiterung zu BlitzBasic. Wie auch B3D kann es alle 2D-Funktionen, aber keine 3D-Funktionen. Stattdessen kann mit b+ die sogenannte GUI (Graphical User Interface) verwendet werden. Damit lassen sich einfache Anwendungen realisieren, z.B. Grafikprogramme, Internet-Browser und Taschenrechner.

BlitzMax (kurz: BMax) ist eine erweiterte Version von BB. Es arbeitet mit z.T. anderer Syntax (anderen Befehlen) als die vorigen Versionen. Außerdem ist es betriebssystemübergreifend. Sprich: Ein Programm, das du in Windows entwickelt hast, kannst du auch für Linux oder Mac-Intosh PCs nutzbar machen.

Demoversionen der Editoren für die jeweiligen Versionen kann man sich hier herunterladen. Sie sind allerdings wie bei Demoversionen üblich stark eingeschränkt: http://blitzbasic.de/download.htm

Ich empfehle zum Ausprobieren Blitz3D.

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.
  • Ressource-Hacker
Programm zum Ändern der Ressourcen ausführbarer Dateien, u.a. die Icons von EXE-Dateien. Die Webseite des Herstellers ist offline. Das Programm kann aber bei Chip heruntergeladen werden.

Siehe auch[Bearbeiten]