GamBu – Game-Engine
Auszeichnung: besonders gute Seite Auszeichnung: besonders interessant Auszeichnung: besonders lustig Auszeichnung: sehr gut für den Unterricht geeignet Auszeichnung: verbindet den Inhalt gut mit der wirklichen Welt Auszeichnung: komplizierter Inhalt einfach zu verstehen

GamBu-Anleitung

GamBu-Anleitung

GamBu ist eine einfach zu bedienende 2D-Game-Engine. Man kann mit ihr Spiele aus verschiedenen Genres und Spieltypen erstellen und veröffentlichen. GamBu ist in SchuBu so eingebunden, dass mit dem Lernfortschritt kontinuierlich neue Möglichkeiten freigeschaltet werden.
Inhaltsverzeichnis
  • Allgemein
  • Erfinden
  • Spielen
  • Veröffentlichen
  • GamBu-Script

Allgemein

Mögliche Spiel-Genres:

  • Single- oder Multiplayer-Rennspiele
  • Top-Down-Rätsel und Labyrinthe in Echtzeit
  • Platformer
  • einfache Rollenspiele
  • Single- oder Multiplayer-Scripting-Challenges
  • 2D-Geschicklichkeitsspiele

Mögliche Steuerungen:

  • kontinuierliche Maus- oder Touch-Steuerung
  • Tastatursteuerung
  • Drag-Schuss mit Maus- oder Touchsteuerung
  • Script-Steuerung

In GamBu gibt es zwei Ansichten, den Spielmodus und den Erfindungsmodus.

Achtung: Viele der hier beschrieben Funktionen werden erst nach und nach freigeschaltet.

Erfinden

Screenshot von der Ansicht in GamBu, in der man Spiele entwickeln und editieeren kann.
Abb. 1
Der Erfinden-Modus von GamBu

In dieser Ansicht kann man alle Spielelemente einbauen und verschieben.
Mit dem Button NEU erhält man eine leere gerasterte Spielfläche mit ein paar Spielelementen in der Mitte.

Wenn man unten auf SPIELEN klickt, kann man immer sofort ausprobieren, wie das Spiel gerade funktioniert. Das soll man oft machen.

Elementtypen

Es gibt fünf runde und sechs viereckige Elementtypen.

Viereckige Elementtypen sind im Spiel fixiert, sie können nicht verschoben werden und bewegen sich nie.

Wand
Wand
Ziel
Fixiertes Ziel. Ein Spiel ist gewonnen, wenn alle Ziel-Elemente verschwunden sind, weil sie von einer Spielfigur berührt wurden.
Tod
Fixiertes Tod-Element. Ein Spiel ist verloren, wenn eine Spielfigur ein Tod-Element berührt.
Magnet
Ein fixierter Magnet stößt alle runden Elemente ab.
Zeit
Wenn eine Spielfigur über ein Zeit-Element fährt, wird die Stoppuhr gestartet.
Stop
Stop-Element. Wenn Spielfiguren das Stop-Element berühren, bleiben sie augenblicklich stehen. Das ist zum Beispiel hilfreich, um gute Platformer zu erstellen.

Runde Elementtypen bewegen sich physikalisch korrekt innerhalb des Spielfeldes. Entweder in einer Seitenansicht mit Gravitation oder von oben gesehen ohne Gravitation.
Alle runden Elementtypen können durch ein GamBu-Script gesteuert werden, sie werden dann Bots genannt.

Spielfigur
Dieser Elementtyp ist die Spielfigur. Spielfiguren sind ein bisschen größer als alle anderen Elementtypen.
Ball
Ein Ball bewegt sich, wenn er von einem anderen Element angestoßen wird. Auch ++ Elemente können sie in Bewegung versetzen, wenn sie in der Nähe sind.
bewegliches Ziel
Bewegliches Ziel. Ein Spiel ist gewonnen, wenn alle Ziel-Elemente verschwunden sind, weil sie von einer Spielfigur berührt wurden.
beweglicher Tod
Bewegliches Tod-Element. Ein Spiel ist verloren, wenn eine Spielfigur ein Tod-Element berührt.
beweglicher Magnet
Ein beweglicher Magnet stößt alle runden Elemente ab und bewegt sich auch selbst von ihnen in gleicher Weise weg.

Spieltyp

Spieltypen

Je nach Spieltyp unterscheidet sich automatisch auch das Aussehen aller Elemente und des Hintergrunds während des Spielens.

  • Schießen ohne Gravitation: Die Spielwelt ähnelt einer Eisfläche von oben. Die Spielerinnen und Spieler haben einen Schuss, um alle Zielelemente zu treffen.
  • Schießen mit Gravitation: Die Spielwelt ist für Platformer geeignet. Mit einer Maus oder Touch-Steuerung kann die Spielfigur springen.
  • Nachziehen ohne Gravitation: Die Spielwelt ist eine Obenansicht einer Landschaft mit Mäusen, Käse, Schlangen, Käfer und Mausefallen. Die Spielfigur (Maus) wird mit Maus- oder Touch-Steuerung gezogen.
  • Nachziehen mit Gravitation: In dieser Affen-Spielwelt kann man die Spielfiguren mit Maus- oder Touch-Steuerung so bewegen und werfen, als würden sie an einer elastischen Schnur hängen.
  • Pfeiltasten ohne Gravitation: Diese Spielwelt ist der Mauswelt sehr ähnlich. Die Spielfigur wird allerdings mit den Richtungspfeilen gesteuert. Wenn man eine zweite Spielfigur hinzufügt, kann diese mit den Tasten WASD gesteuert werden.
  • Pfeiltasten mit Gravitation: Diese Spielwelt ist wieder eine Platformer-Welt. Die Spielfigur springt mit Pfeil- oder Leertaste hinauf.

Assets

Assets sind alle Grafiken und Sounds eines GamBu-Spiels.
Mit Klick auf ASSETS gelangt man in die Assetverwaltung. Hier kann man alle Grafiken und Sounds eines Spiels ersetzen und so vollständig neue Milieus und Spiele erzeugen.

Grafiken, die auf 2D- oder 3D-Elemente kommen, nennt man Texturen.

Spielen

Wenn man ganz unten auf SPIELEN klickt, kommt man in den Spielmodus und kann das Spiel ausprobieren.

Solange man keine eigenen Grafiken und Sounds ins Spiel einbaut, werden automatisch welche geladen, die zu dem Spieltyp passen, den man eingestellt hat.

Links oben ist ein kleiner Ringelpfeil, das ist ein REPLAY-Button. Damit kann man jederzeit ein Spiel unterbrechen und neu anfangen.
Unten ist eine Informationsanzeige, die Informationen zur Steuerung und zum Spielstand gibt und der Button ERFINDEN, mit dem man wieder zurück in den Erfinden-Modus kommt.

Veröffentlichen

GamBu-Spiele lassen sich nur dann veröffentlichen, wenn man bei SchuBu angemeldet ist.

Bei VERÖFFENTLICHEN kann man für sein Spiel eine URL erhalten, die dann von allen Klassenkolleginnen und Kollegen geöffnet werden kann. Außerdem kann eine Lehrerin oder ein Lehrer der Klasse in der SchuBu-Zentrale das Spiel freigeben. Dann kann das Spiel mit diesem Link auch ohne Login von jedem mit Internetzugang geöffnet und gespielt werden.

Wem gehört eigentlich ein GamBu-Spiel?

Lizenz

In aller Kürze: GamBu-Spiele sollen unproblematisch weitergegeben und weiterentwickelt werden können. Und trotzdem sollen alle Urheberinnen und Urheber, soweit möglich, genannt bleiben und stolz auf ihr Werk sein können.

Ein GamBu-Spiel besteht aus vier Elementen:

  1. Datei: Diese Datei gehört SchuBu und wir können leider nicht garantieren, dass sie für immer abspielbar bleiben wird.
  2. Gamedesign: Urheberinnen und Urheber sind die SchuBu-Nutzerinnen und Nutzer (meistens Schülerinnen und Schüler), die das Spiel in der GamBu-Engine entwickelt und gespeichert haben. Sie werden namentlich genannt und mit der Veröffentlichung auf SchuBu müssen sie zustimmen, dass ihr Werk unter die Creative Commons Lizenz CC BY-SA gestellt wird.
    Es ist uns wichtig, dass GamBu-Spiele von allen weiterentwickelt und gespielt werden dürfen. Alle Schülerinnen und Schüler brauchen keine Sorge um unrechtmäßige Verwendung ihrer Werke zu haben, wenn sie von Anfang an wissen, dass ihre Spiele weiterentwickelt und von allen gespielt werden dürfen, solange ihre Namen als Urheber*innen genannt bleiben.
  3. Grafik: Für die Grafik in GamBu-Spielen gibt es zwei Möglichkeiten:

    1. Wenn alle Texturen, Bilder und Grafiken selbst erstellt, gemalt oder gezeichnet worden sind, dann stehen sie bei einer Veröffentlichung unter CC BY-ND.
    2. Falls neben den selbst gemachten Grafiken auch Grafiken enthalten sind, die ausdrücklich OHNE NAMENSNENNUNG frei verwendbar sind (CC0), dann stehen alle Grafiken, auch die eigenen, nach Veröffentlichung unter CC0.
      Fremde Grafiken, die eine Namensnennung oder andere Voraussetzung zur Verwendung brauchen, dürfen jedenfalls NICHT enthalten sein. Dazu zählen auch Grafiken aus anderen GamBu-Spielen, die unter CC BY-ND veröffentlicht wurden.
  4. Sound: Auch für den Sound in GamBu-Spielen gibt es diese zwei Möglichkeiten:

    1. Wenn alle Sounds selbst erstellt, gesungen, gespielt und komponiert worden sind, dann stehen sie bei einer Veröffentlichung unter CC BY-ND.
    2. Falls neben den selbst gemachten Sounds auch Sounds enthalten sind, die ausdrücklich OHNE NAMENSNENNUNG frei verwendbar sind, dann stehen alle Sounds, auch die eigenen, nach Veröffentlichung unter CC0.
      Fremde Sounds, die eine Namensnennung oder andere Voraussetzungen zur Verwendung brauchen, dürfen jedenfalls NICHT enthalten sein. Dazu zählen auch Sounds aus anderen GamBu-Spielen, die unter CC BY-ND veröffentlicht wurden.

GamBu-Script

Jedes runde Element, also Spielfigur, Ball, Ziel, Tod und ++ bewegliche Elemente, kann ein Script haben. Ein Script besteht aus mehreren Zeilen Text und definiert, was das Element kann, macht und wie es reagiert. Ein Element mit einem Script wird auch Bot genannt.

Ein Script auf einem BOT wird ausgeführt, wenn das Spiel gestartet wird.

Reihenfolge

Zuerst werden die Scripts mit niedrigen Bot-Nummern ausgeführt, danach die GamBu-Scripts von den Bots mit höheren Nummern. Die Befehle innerhalb eines Scripts werden in der Reihenfolge ausgeführt, wie sie im Script untereinander stehen.
Ein Befehl wird erst ausgeführt, wenn der Befehl in der oberen Zeile fertig ausgeführt wurde. Auch, wenn das mehrere Sekunden dauern sollte.
(Besonderheit: Wenn ein Befehl mehrere Frames lang dauert, wird dieser Befehl im nächsten Frame wieder ausgeführt. Wenn das zum Beispiel eine bedingte Verzweigung ist, dann wird die Bedingung auch jedesmal neu geprüft.)
Die erste Wiederholung bei Wiederholungen wird sofort ausgeführt, die nächste Wiederholung im nächsten Frame und so weiter, solange die Bedingung für die Wiederholung erfüllt ist.

Alle Befehle und speziellen Worte in GamBu-Script müssen kleingeschrieben werden. Eine Script-Zeile kann zum Beispiel so geschrieben werden:

bei berührung sage "autsch!"

Wenn man das schreiben würde, wie es auf Deutsch richtig wäre, nämlich:

Bei Berührung sage "autsch!"

dann würde dieser Befehl nicht ausgeführt werden.

Frame

Damit in einem Spiel der Eindruck entsteht, dass sich Wesen, Bälle, Figuren oder andere Dinge bewegen, wird mehrmals pro Sekunde neu berechnet, wo sich diese Dinge befinden. Dort werden sie dann neu gezeichnet. Wie in einem Film sieht man, wie sich die Dinge bewegen, in Wirklichkeit sind es viele hintereinander angezeigte Standbilder. Jedes solche Standbild nennt man Frame.

Schnelle Computer können sehr viele Frames pro Sekunde berechnen und die Bewegungen sehen dann sehr flüssig aus. Ein Film im Kino zeigt üblicherweise 24 Frames pro Sekunde, in einem Computerspiel sind es meistens über 60 Frames pro Sekunde.

Befehlsüberblick

Die Verwendung von Gambu-Script lernt man am besten auf den SchuBu-Seiten. Hier gibt es aber praktischerweise eine Übersicht über die wichtigsten Befehle.

Syntax
Beispiel
Anmerkung
sage "Ein beliebiger Text"
sage "Halli Hallo"
Der Bot sagt: „Halli Hallo” in einer Sprechblase.
sage ""
sage ""
Die Sprechblase verschwindet.
hinauf x
hinauf 100
Der Bot bewegt sich mit Kraft 100 nach oben.
hinunter x
hinunter 0.5
0.5 ist eine sehr kleine Kraft hinunter.
links x
links 50
50 ist eine etwas kleinere Kraft als 100 nach links.
rechts x
rechts 10
10 als Kraft nach rechts ist auch möglich.
wiederhole x sekunden [Befehl]
wiederhole 10 sekunden hinauf 1
Der Bot bewegt sich 10 Sekunden lang langsam nach oben.
wiederhole x mal [Befehl]
wiederhole 3 mal hinunter 200
3 Frames hintereinander beschleunigt der Bot sehr stark nach unten.
ich bin [Element-Typ]
ich bin ein schalter
Der Bot verwandelt sich in einen Schalter.
schaltwert von element n
schaltwert von element 1
Wenn das Element 1 eingeschaltet ist, ist der Schaltwert 1 sonst 0.
wenn [Bedingung wahr ist] dann [Befehl]
wenn schaltwert von element 35 = 1 dann sage "eingeschaltet!"
Falls in dem Moment, wenn das Script bei diesem Befehl ist, der Schalter eingeschaltet ist, dann sagt der Bot "eingeschaltet!".
wenn [Bedingung wahr ist] dann [Befehl] sonst [anderer Befehl]
wenn schaltwert von element 35 = 1 dann sage "eingeschaltet!" sonst sage "ausgeschaltet"
Der Teil „sonst [anderer Befehl]“ kann auch weggelassen werden.
block [blockname] [p1, p2, ..] [befehl 1] [anderer Befehl] [beliebig viele weitere Befehle] blockende
block schraeg x,y rechts x hinauf y blockende
p1, p2 sind Parameter. Man kann eigene Namen erfinden und sie im Block wie Variablen verwenden.
[blockname] [w1, w2]
schraeg 1,1 schraeg 10, -10
Mit diesem Aufruf des eigenen Blocks mit dem Namen „schraeg” bewegt sich der Bot ein bisschen nach rechts oben oder im zweiten Beispiel schneller nach rechts unten.
[variablenname] = [Information]
alter = 12 satz = "Mein Freund ist ein Bot"
Der Variablenname kann alles außer ein GamBu-Script-Befehlswort sein.
bei berührung von [Elementtyp oder ein Element] [Befehl]
bei berührung von spielfigur sage "Hallo" bei berührung von wand sage "aua"
Das Event wird bei Berührung ausgelöst
bei sicht von [Elementtyp oder ein Element] [Befehl]
bei sicht von tod zurück 100 bei sicht von element 10 sage "Ohh, mein Lieblings Wuzi"
Das Event wird bei Sicht ausgelöst
richtung element n
richtung element 103
Der Bot dreht sich ein kleines Stück in die Richtung zum Element.
richtung element n, kraft
richtung element 103, 2
Der Bot dreht sich ein kleines Stück in die Richtung zum Element und bewegt sich hin.
vor x
vor 10
Der Bot macht einen Sprung vor.
zurück x
zurück 10
Der Bot macht einen Sprung zurück.
entfernung von element x
wenn entfernung von element 1 < 100 dann sage "Ich komme näher."
Eine solche wenn .. dann - Konstruktion muss in einer Schleife wiederholt werden, damit der Bot im richtigen Augenblick reagieren kann.
log "text" + "text2" + x
log "Der Wert der Variable my_v = " + my_v
Mit log kann man Texte und Werte in die GamBu-Konsole schreiben. Das hilft beim Fehlerfinden. Mit + werden mehrere Texte zu einem zusammengefasst.
entferne element [n]
entferne element 3
Das Element mit der Nummer n wird für immer aus dem Spiel entfernt.
global.[variablenname] = [information]
global.punkte = global.punkte + 1
Wenn ein Variablenname mit global. anfängt, dann kann man auf diese Variable von allen Skripts aller Bots zugreifen. Diese Variable bleibt auch in Scripts erhalten, die geladen werden.
bei gewinn [befehl]
bei gewinn sage "Gewonnen!"
Wenn alle Zielobjekte berührt wurden, wird dieses Ereignis ausgeführt. Im Beispiel sagt der Bot „Gewonnen!”
lade level [Levelnummer]
lade level 97
Die Levelnummer ist die Nummer, die nach dem Veröffentlichen bei der Spiel-URL ganz hinten steht.
wiederhole bis [Bedingung wahr ist] [Befehl]
wiederhole bis entfernung von element 1 < 2 vor 1
Der Bot beschleunigt nach vor, bis er zwei Felder neben dem Element 1 ist.
lade textur von element n
lade textur von element 5
Der Bot übernimmt die Textur von Element 5
lade textur von element n für element m
lade textur von element 5 für element 0
Das Element 0 bekommt die Textur von Element 5
bei taste [Taste] [Befehl]
bei taste "g" sage "g wurde gedrückt"
Mit diesem Event kann man auf Keyboard-Tasten reagieren.
Hier hinein klicken, dann eine Taste drücken, um den Tastenwert in die Zwischenablage zu kopieren:
GamBu Konsole
spielfigur
Wand
Beispiele
Spiel
Spielen
Gewonnen!
Bots starten?
Verloren!
Der Seppibär is los!
Script von element 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Befehle
Assets
Texturen Sounds
Wenn alle Texturen, Bilder und Grafiken von dir selbst erstellt, gemalt oder gezeichnet worden sind, dann stehen sie bei einer Veröffentlichung automatisch unter CC BY-ND. Außer den selbst gemachten dürfen auch Grafiken enthalten sein, die ausdrücklich OHNE NAMENSNENNUNG frei verwendbar sind, dann stehen alle Grafiken, auch deine eigenen, nach Veröffentlichung unter CC0.
Die Texturen sollten genau 62 x 62 Pixel groß sein
Wenn alle Musikstücke und Geräusche von dir selbst erstellt, gesungen, gespielt und komponiert worden sind, dann stehen sie bei einer Veröffentlichung automatisch unter CC BY-ND. Außer den selbst gemachten dürfen auch Sounds enthalten sein, die ausdrücklich OHNE NAMENSNENNUNG frei verwendbar sind, dann stehen alle Sounds, auch deine eigenen, nach Veröffentlichung unter CC0.

Informationen zur aktuellen Seite

Seite verbessern
Art des Feedbacks
Ihr Feedback liefert einen wichtigen Beitrag, um SchuBu immer besser zu machen.

Vielen Dank für deinen Verbesserungsvorschlag! Wir bemühen uns, auf jedes Feedback zu reagieren.

Mitwirkende
Inhalt
Daten werden geladen...
Digitalisierung
Illustration
Mithilfe
Letzte Änderung
17.02.2023
Quellen