Zum Hauptinhalt springen
Version: 24f

Game-Runner

Auf https://game.gbsl.website lassen sich die erstellten Games hochladen und spielen. Mit einer kleinen Modifikation können kann sogar der Punktestand einer Spielerin/Spielers in ein Scoreboard übernommen werden.

Im erstellten Spiel wurde (in den meisten Fällen*) eine Funktion set_score definiert, über welche jeweils der neue Score aktualisiert wurde. Um den Score nun auch im Scoreboard zu registrieren, muss dort device.report(new_score) aufgerufen werden. Sofern der aktuelle Wert einen neuen Punkte-Höchststand ist, wird er ans Scoreboard geschickt.

def set_score(new_score):
global score
score = new_score
if score > 10 and level == 1:
level_2()
elif score < 20 and level == 2:
level_1()
device.update_text(
id='score',
text=f'Score: {score}'
)
device.report(score)

* Falls keine set_score Funktion verwendet wurde, muss überall dort, wo der score verändert wird das device.set_score(score) aufgerufen werden.

Game Hochladen

Ein Game kann als .zip Ordner hochgeladen werden. Der komprimierte Ordner enthält genau ein Python-Programm (z.B. game.py) und falls das Spiel Bilder und oder Sound enthält, auch diese Ordner.

Die Ordnerstruktur könnte also in etwa wie folgt aussehen:

game.zip
├── game.py
├── Bilder
│ ├── hintergrund.png
│ ├── ghost.gif
│ └── ghost_yellow.gif
└── Sound
├── booooom.mp3
└── catch.mp3

Anzeigebild hinzufügen

Es kann ein Anzeigebild für das Game hochgeladen werden. Dazu wird dem Zip-Ordner ein Vorschaubild mit dem Namen preview (z.b. preview.png, preview.jpg oder preview.gif) hinzugefügt. Die Ordnerstruktur sieht dann wie folgt aus:

Wichtig: Das Vorschaubild muss exakt den Namen preview haben, sonst wird es nicht verwendet.

game.zip
├── game.py
├── preview.png
├── Bilder
│ ├── hintergrund.png
│ ├── ghost.gif
│ └── ghost_yellow.gif
└── Sound
├── booooom.mp3
└── catch.mp3

Spieloptimierungen

Damit das Spiel schneller lädt, gibt es ein paar Tricks:

  • entfernen von allen nicht verwendeten Bildern und Sound-Tracks aus den Bilder/Sound Ordnern
  • Die Bildergrösse verringern, indem die Auflösung des Bildes heruntergesetzt wird (bspw. für Hintergründe auf eine Breite von 500px, für kleine Objekte auf eine Breite von 200px). Achtung: Durch die Reduktion der Auflösung gehen Informationen verloren und das Bild kann u.U. verpixelt werden.
  • Die Dateigrösse von Sound-Dateien reduzieren. Auch hier geht Soundqualität verloren. Oft ist dies aber kaum spürbar bei Smartphone/Laptop Lautsprechern. Diese Reduktion der Dateigrösse heisst Komprimierung und kann bspw. mit einem Onlinetool gemacht werden:

Codeoptimierung

Wenn im Spiel mehrfach (daher auch an einem anderen Ort als ganz am Anfang) device.clear_playground() steht, so können bis auf den ersten Aufruf die Befehle zu device.clean_playground() (mit einem n statt einem r am Ende) verwendet werden. Dies bewirkt, das die Bilder und Sound-Dateien nicht gelöscht werden und somit nicht erneut hochgeladen werden müssen. Dazu müssen aber auch alle device.configure_playground() Befehle (ausser der Erste!) angepasst werden und die images= und audio_tracks= Optionen entfernt werden. (Bemerke: Die Option image= kann dennoch gesetzt werden.)

Wettbewerb 🥇🥇🥇

In jeder Klasse werden Spiele und SpielerInnen prämiert:

  • Das am besten bewertete Spiel der Klasse
  • Das am meisten gespielte Spiel der Klasse
  • Die Spielerin/Der Spieler mit dem Highscore beim (gesamthaft) am besten bewerteten Spiel

Zeitraum: Montag 25.01.2021 bis Sonntag 31.01.2021