Es soll ja auch Visual Novels geben, die einfach eine Geschichte – wie in einem Buch – linear von vorne nach hinten durcherzählen. Aber Interaktivität, Ver- und Abzweigungen mit alternativen Enden sind meiner Meinung nach das Salz in der Suppe dieses Genres. In meinem ersten Ren’Py-Tutorial will ich daher zeigen, wie man dies implementieren kann:
Schweren Herzens verlasse ich dafür mein geliebtes Wunderland-Universum1 und tauche ein in die Welt von Hercule Poirot, den genialen, belgischen Detektiv. In meinem ersten Beispiel wird der auf einen britischen Landsitz gerufen, dort von dem Dienstmädchen Alice in Empfang genommen und gefragt, ob sie ihn zu den Herrschaften begleiten solle. Und an dieser Stelle muß der Spieler eine Entscheidung treffen:
Solche Entscheidungen werden in Ren’Py in Menüs (menue:
) implementiert. Hier erst einmal der komplette Quellcode dieser kurzen Szene:
# Bilder
image bg abbey_grounds = "bg abbey_grounds.jpg"
image bg abbey_drawing = "bg abbey_drawing.jpg"
image alice = "maid.png"
image hercule = "hercule.png"
# Personen
define a = Character("Alice", color = "#c8ffc8")
define h = Character("Hercule", color = "#ee1100")
# Hier beginnt das Spiel. Label "Start" ist obligatorisch!
label start:
scene bg abbey_grounds
show hercule at left
with slideleft
show alice at right
with dissolve
a "Guten Tag, Monsieur Poirot, die Herrschaften erwarten sie bereits."
a "Darf ich Sie ins Haus bitten?"
pause 1.0
hide alice
with dissolve
menu:
"Ja, gerne. Ich folge Ihnen.":
jump hall
"Danke, ich bleibe noch im Garten.":
jump garden
label hall:
scene bg abbey_drawing
show hercule at left
with slideright
h "Allo, 'ier bin ich."
h "Sie 'aben mich gerufen?"
jump endstory
label garden:
h "Meine kleinen, grauen Zellen brauchen noch ein wenig frische Luft."
jump endstory
label endstory:
pause 2.0
hide hercule
with dissolve
"Und so endete unsere monumentale Geschichte …"
Erst einmal: Ren’Py ist in Python implementiert und kann mit Python erweitert werden. Daher sind auch hier die korrekten Einrückungen wichtig, sonst wird das Spiel gar nicht erst gestartet. Die label
sind Sprungziele die mit jump
angesprungen werden können. Bei scene
wird im Regelfall das Hintergrundbild und alle anderen Bilder ausgetauscht und die Akteure (character
) können rechts (at right
), links (at left
) oder mittig (default) platziert werden. show
läßt die Darsteller auf- und hide
sie wieder abtreten, dissolve
, slideleft
und slideright
sind einige der zahlreichen, möglichen Bildübergänge und pause
pausiert das Spiel mit der angegebenen Anzahl in Sekunden.
Die Bilder habe ich wieder der unter einer Creative Commnons (BY-NC 4.0) stehenden Sammlung von Carlmary entnommen und die Hintergründe der frei zu verwendenden Sammlung von Spiral Atlas Games. Und natürlich gibt es den Quellcode und alle Assets in meinem Github-Repositorium.
Das aktuelle Ren’Py soll (als experimentelles Feature) nach HTML5 exportieren können. Schaun wir mal, ob ich das hinbekomme, denn dann könnte ich Euch die Ergebnisse der Tutorials im im Browser (auf Glitch oder itch.io?) präsentieren. Denn auch wenn Ren’Py reichlich geschwätzig ist – es macht schon Spaß, mit dem Teil zu arbeiten. Daher werden sicher noch weitere Tutorials folgen. Still digging!
Über …
Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter Rentner, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!
Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.
Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.
Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes
von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.
Werbung
Diese Spalte wurde absichtlich leergelassen!