Ren'Py
Présentation
Ren'Py est un outil auteur permettant de créer des jeux-vidéo de type Visual novel. Il s'agit d'un type de jeu-vidéo très répandu et populaire au Japon, mais encore peu connu ailleurs. Ces jeux se présentent sous forme d'histoires interactives et non-linéaires, combinant du texte, des images et du son. Le joueur peut interagir avec l'histoire en changeant son déroulement par le biais de choix textuels, de manière assez similaire aux "Livres dont vous êtes le héros".
De même, Ren'Py permet également de créer des jeux de simulation, voir d'ajouter un système de combats de style rpg aux jeux-vidéo créés.
Cet outil auteur fonctionne sur la base d'un langage de script très simple. Il utilise le langage de script Python, mais de manière suffisamment simple pour que des personnes n'ayant jamais fait de programmation puissent créer des jeux complexes de manière efficiente.
Il peut également être utilisé comme introduction à la programmation pour des novices, car cet outil utilise un certain nombres de notions très répandues en programmation, et peut donc permettre de mieux comprendre comment fonctionne un langage de programmation. Cela avait d'ailleurs été le but initial des créateurs de Ren'Py, qui souhaitaient trouver un moyen de faire découvrir le développement informatique à un jeune public.
Installation
Compatibilité
Ren'Py est un logiciel multiplateforme. En effet, il peut potentiellement être utilisé sur toute plateforme. Il y en a cependant trois principalement prises en charge, qui sont les suivantes:
- Windows XP+ (x86)
- Mac OS X 10.6+ (x86_64)
- Linux (x86, x86_64)
Le launcher de Ren'Py permet de créer des versions de jeux pour ces trois différentes plateformes qu'importe celle étant utilisée. Il est ainsi possible de développer par exemple une version Mac d'un jeu depuis Windows.
Android (2.3+) and iOS (7+) sont également pris en charge en tant que plateformes secondaires. Les jeux Ren'Py peuvent être lancés dessus, cependant le développement doit se faire à partir d'un ordinateur avec l'une des trois plateformes citées ci-dessus.
Open Source
Par ailleurs, Ren'Py est un logiciel gratuit en Open Source. Il est donc libre d'utilisation, et il est également possible d'étudier son code source, de le modifier si besoin, ainsi que de le redistribuer dans sa version d'origine ainsi que dans des versions modifiées, y compris à des fins commerciales. La seule exception est si le jeu que vous décidez de créer comporte des sons au format mpeg ou mp3, auquel cas vous devrez payer pour une license d'utilisation. Ces formats sont donc déconseillés pour la création de jeux-vidéo à des fins commerciales.
Procédure d'installation
Pour installer Ren'Py, vous devez tout d'abord télécharger le logiciel sur le site officiel au lien suivant: Ren'Py.
Une fois cela fait, il suffit de suivre la procédure d'installation suivante:
- Sur Windows, faites un doucle clic sur le fichier exécutable que vous venez de télécharger. Cela fera extraire Ren'Py dans un dossier nommé "renpy-<version>". Entrez alors dans ce dosser et cliquez sur "renpy.exe" pour lancer le logiciel. (Si les extensions sont cachées sur votre ordinateur, il est possible que le fichier y apparaisse en tant que "renpy" au lieu de "renpy.exe".)
- Sur Max OS X, faites un double clic sur le fichier image téléchargé pour le monter en tant que lecteur. Quand le lecteur s'ouvre, copier le dossier nommé "renpy-<version>" autre part. (vous pouvez le mettre où vous voulez, cependant il doit être déplacé hors du fichier image qui peut seulement être lu. Attention cependant, ne déplacez pas l'application Ren'Py en dehors du dossier qui la contient, car elle ne pourra fonctionner autre-part.) Une fois le dossier déplacé, entrez dedans et cliquez sur l'application Ren'Py pour la lancer.
- Sur Linux, décompressez l'archive tar, puis allez dans le répertoire "renpy-<version>" et lancez le fichier "renpy.sh".
Une fois cette procédure d'installation suivie, le logiciel Ren'Py devrait se lancer. Ce dernier ayant été traduit en diverses langues, vous pourrez alors modifier au besoin la langue utilisée sur le logiciel en cliquant sur "preferences" en bas à droite de l'interface de Ren'Py, puis en cliquant sur la langue de votre choix.
Utilisation
Création d'un jeu simple
Les fonctionnalités principales de Ren'Py seront présentées ici afin d'expliquer comment créer un jeu simple du début à sa fin. Cependant, notez bien que ce qui est présenté ici n'est qu'un aperçu de l'éventail des fonctionnalités et possibilités qu'apporte ce logiciel pour la création d'un jeu. Si vous souhaitez aller plus loin et découvrir tout ce qu'il est possible de faire grâce à ce dernier, vous pouvez consulter les sources citées au bas de cette page.
Créer un nouveau projet
Pour créer un nouveau projet, cliquez sur l'option "Create New Project" du launcher Ren'Py. Si il s'agit de la première fois que vous créez un projet, Ren'Py vous demandera de sélectionner le dossier dans lequel vos projets seront sauvegardés.
Une fois cela fait, le launcher vous demander d'entrer le nom que vous voulez utilisé pour votre projet (qui sera en principe le nom de votre jeu). Ici, nous avons décidé d'appeler notre projet "My Question".
Suite à cela, vous devrez choisir la résolution que vous voulez avoir pour votre projet. La résolution par défault, de 1280x720, est un bon compromis entre la taille du jeu et la qualité des images. Une fois votre choix séléctionné, cliquez sur "Continue".
Enfin, le launcher vous demandera de choisir un thème de couleur pour votre projet, comprenant une couleur de fond et une couleur d'accentuation.
Une fois cette étape effectuée, Ren'Py prendra un court moment pour traiter et créer un template pour un jeu simple. Vous pouvez cliquer sur "Launch Project" afin de lancer votre projet et tester l'interface de départ de votre jeu.
Dans les parties qui suivent, nous allons voir comment fonctionne le langage de script utilisé par Ren'Py, mais si vous souhaitez déjà voir à quoi ressemble la structure d'un exemple de jeu, vous pouvez cliquer sur "The question" dans la liste des projets, puis sur "script.rpy" dans la section "Edit File" afin de voir comment cet exemple de jeu a été codé.
Bases
Pour essayer de créer un jeu simple de vous-mêmes, séléctionnez le projet sur lequel vous souhaitez travailler dans la liste de projets se trouvant à gauche sur la fenêtre du launcher, puis cliquez sur "script.rpy" dans la section "Edit File". Si il s'agit de la première fois que vous faites cela, Ren'Py vous demander de séléctionner un éditeur (nous vous recommendons Editra si vous n'avez jamais créé de projet de ce genre), et il vous le téléchargera. Une fois cela fait, Ren'Py ouvrira le fichier de script dans la fenêtre de l'éditeur.
Une fois l'éditeur ouvert, vous pouvez voir que des lignes y sont déjà écrites comme sur l'image ci-dessus. Il s'agit de lignes de codes d'exemples afin de vous aider lorsque vous débutez dans Ren'Py. Cependant, si vous souhaitez essayer les diverses fonctionnalités présentées sur cette page, nous vous recommandons de tout effacer pour créer un jeu simple à partir de rien. Vous pouvez cependant sauvegarder le code déjà présent quelque-part afin de ne pas le perdre (bien que vous trouverez le même à la création de chaque nouveau projet).
Si vous effacez tout, puis que vous cliquer sur "Launch Project" depuis le launcher de Ren'Py, vous pouvez voir que même sans aucune ligne de code, Ren'Py créé néanmoins un menu permettant de déjà charger et sauvegarder des parties de jeu, ainsi qu'un menu d'options dans lesquelles vous pouvez séléctionner vos préférences.
Prenons à présent un exemple que vous pourrez tester:
label start:
"Sylvie" "Salut! Les cours se sont bien passés?"
"Moi" "Plutôt oui..."
"Je n'arrivais pas à admettre que tout était entré par une oreille pour resortir par l'autre."
"Moi" "Tu penses rentrer chez toi maintenant? Si tu veux on peut faire le chemin ensemble."
Ici, vous pouvez voir la version la plus simple possible d'un jeu créé sur Ren'Py. Il n'inclut aucune image, ni musique, mais il montre cependant une conversation entre deux personnages, ainsi qu'une ligne de narration.
La première ligne est un label statement. Les label statement sont utilisés afin de donner un nom à un endroit précis du programme. Dans cet exemple, nous avons créé un label nommé "start". Le "label start" est spécial, car c'est à partir de là que le script de Ren'Py va commencer à être lu lorsqu'un utilisateur du jeu cliquera sur "Start game" dans le menu principal de ce dernier.
Les autres lignes sont des say statement. Ces derniers existent sous deux formes. La première est une chaîne (commencant par des guillemets, comprenant des caractères, et se terminant par des guillemets) se trouvant sur une ligne, qui sera utilisée pour de la narration, ainsi que pour les pensées du personnage principal. La deuxième forme de say statement possible est composée de deux chaînes de caractères. Elle est utilisée pour les dialogues, et comprend une première chaîne comprennant le nom d'un personnage étant en train de parler, et d'une seconde comprenant ce que le personnage dit.
Notez également que chaque say statement a une indentation de quatre espaces dans le script. Cela est dû au fait qu'il s'agit d'un bloc se trouvant en dessous d'un label statement. Dans Ren'Py, les blocs doivent avoir une indentation relative aux statements étant précédemment utilisés, et tous les statements d'un même bloc doivent avoir la même indentation.
"Sylvie" "Est-ce que tu as déjà entendu la fameuse citation de Lincon, \"Le problème des citations sur internet est que beaucoup d'entre-elles ne sont pas authentiques.\"?"
Lorsqu'une chaîne de caractères comprend des guillemets (en plus des guillemets de début et de fin de la chaîne), ceux-ci doivent être précédés d'un "\" pour chacun d'eux, comme dans l'exemple ci-dessus:
"... Mauvaise fin."
return
Enfin, nous avons vu plus haut comment utiliser le label start pour indiquer à partir de quel endroit le script du jeu devait être lu. Pour indiquer à quel endroit le script doit arrêter d'être lu, et donc se terminer, il faut utiliser un return statement comme sur l'exemple ci-dessus, sans écrire "label" contrairement au label start. Dans votre jeu, il est conseillé d'écrire quelque-chose avant ce statement, indiquant au joueur que le jeu se termine à cet endroit (par exemple, indiquer quelle fin le joueur a obtenu).
Personnages
Un problème que pose le premier exemple de code, est que d'écrire son script de cette manière nécessite de réécrire le nom des personnages pour chaque ligne où ils parlent. Pour la création d'un jeu comprenant un grand nombre de dialogues, il faudrait de ce fait taper énormément de texte. De plus, en écrivant ainsi les noms des personnages, leurs noms apparaîtront dans le jeu de la même manière, et de la même couleur, sans différenciation. Pour remédier à cela, Ren'Py donne la possibilité de définir les personnages à l'avance. Cela permet d'associer un nom très court à chaque personnage, ainsi que de définir de quel couleur devrait apparaître chacun de leurs noms à l'écran.
define s = Character('Sylvie', color="#c8ffc8")
define m = Character('Me', color="#c8c8ff")
label start:
s "Salut! Les cours se sont bien passés?"
m "Plutôt oui..."
"Je n'arrivais pas à admettre que tout était entré par une oreille pour resortir par l'autre."
s "Tu penses rentrer chez toi maintenant? Si tu veux on peut faire le chemin ensemble."
m "Avec plaisir!"
Les deux premières lignes de code définissent les personnages. La première ligne sert à définir que l'abréviation "s" pourra être utilisée au lieu d'écrire à chaque fois le nom "Sylvie", et que ce dernier apparaîtra d'une couleur verte à l'écran. (les couleurs sont à définir avec les codes couleur RVB utilisés pour les pages web).
La seconde ligne définit que l'abréviation "m" pourra être utilisée au lieu de "Moi", et que le nom entier apparaîtra à l'écran dans une couleur rouge. D'autres personnages peuvent être définis en copiant l'une de ces lignes de codes et en changeant simplement l'abréviation à utiliser, le nom complet du personnage, ainsi que la couleur dans laquelle on veut que leur nom apparaisse.
A la suite de ces deux lignes de code, vous pouvez voir que les say statement servant de dialogues ont été modifiés en conséquence, en utilisant les abréviations au lieu des noms complets des personnages dans une chaîne de caractères
Images
Nous reprenons ici l'exemple présenté plus haut, mais en incluant cette fois des statements permettant de faire apparaître des images dans le jeu. Si vous voulez tester ce code, vous pouvez effacer tout ce que vous avez dans votre éditeur de script et y placer l'ensemble de ce code.
define s = Character('Sylvie', color="#c8ffc8")
define m = Character('Me', color="#c8c8ff")
label start:
scene bg champs
"Après un court moment, nous avons finit par arriver vers les champs qui entouraient le quartier que nous habitions."
"Le paysage qui se dresse devant nous est le même que j'ai l'habitude de voir depuis toujours. Cet endroit est particulièrement beau à voir en automne."
"Quand nous étions enfant, nous jouions souvent dans ces champs. Ils sont remplis de tant de souvenirs."
m "Dis voir... Euh..."
show sylvie vert sourire
"Elle se tourna vers moi et sourit. Elle paraissait alors si chaleureuse que toute ma nervosité semble disparaître."
"Je vais lui demander...!"
m "Dis... Est-ce que tu..."
m "Est-ce que tu accepterais de devenir l'artiste du jeu que je suis en train de développer?"
show sylvie vert surprise
"Un silence suivit."
Ce segment de code introduit deux nouveaux statements. Le scene statement à la 4ème ligne de code fait apparaître une image de background, et enlève toute autre image de fond dans le cas où l'on en aurait déjà fait apparaître une. Le show statement à la 9ème ligne de code fait apparaître une sprite d'un personnage par dessus l'image de fond, tandis que celui à la 14ème ligne change la sprite étant utilisée.
Dans Ren'Py, chaque image a un nom. Le nom est définit par un tag, et de manière facultative, par un ou plusieurs attributs. Le tag ainsi que les attributs doivent chacun commencer par une lettre, et ne doivent être composés uniquement de lettres, nombres et de tirets bas (le caractère "_"). Par exemple:
- Dans le scene statement de la 4ème ligne de code, le tag est "bg", et l'attribut est "champs". Par convention, les images de background doivent utiliser le tag "bg".
- Dans le premier show statement à la 9ème ligne de code, le tag est "sylvie", et les attributs sont "vert" et "sourire".
- Dans le second show statement à la 14ème ligne de code, le tag est "sylvie" et les attributs sont "vert" et "surprise".
Uniquement une image par tag donné peut être affichée en même temps. Lorsqu'une seconde image avec le même tag apparaît, cette dernière remplace la première image ayant été affichée, comme cela est le cas à la 14ème ligne de code.
Ren'Py cherche les fichiers images dans le dossier "images" compris au sein de chaque dossier de projet. Ce dossier est également accessible depuis le launcher de Ren'Py en cliquant sur "images" dans la section "Open Directory". Pour pouvoir être utilisées par Ren'Py, les sprites des personnages doivent être au format PNG ou WEBP, tandis que les images de background doivent être au format JPEG, PNG ou WEBP. Il faut également faire attention aux noms donnés à chaque image, qui sont très important car ces noms seront utilisés dans le script du jeu comme noms des différentes images.
Par exemple, les fichiers suivants, placés dans le dossier "images", définissent les images suivantes:
- "bg champs.jpg" -> bg champs
- "sylvie vert sourire.png" -> sylvie vert sourire
- "sylvie vers surprise.png" -> sylvie vert surprise
Les noms des fichiers étant en minuscules, on peut également les utiliser de la manière suivante:
- "Sylvie Vert Surprise.png" -> sylvie vert surprise
Les images peuvent être placées dans des sous-dossiers au sein du dossier "images". Les noms des dossiers sont ignorés et seuls les noms des fichiers sont utilisés pour définir les noms des différentes images.
Hide Statement. Ren'Py prend également en charge un hide statement, qui sert à cacher une image donnée.
label leaving:
s "Je peux m'y mettre dès maintenant si tu en as besoin!"
hide sylvie
"..."
m "Ce n'est pas ce que je voulais dire!"
Il est cependant rare d'avoir besoin d'utiliser ce statement. En effet, les show statements peuvent être utilisés pour changer les sprites des personnages et ainsi montrer des changements d'expressions, et les scene statements peuvent être utilisés pour faire disparaître tous les personnages présents à l'écran. Le hide statement n'est réellement utilisé que dans le cas où un personnage disparaîtrait tandis que l'image affichée par un scene statement resterait la même.
Image Statement. Dans le cas où on ne voudrait pas que Ren'Py définissent les images automatiquement, il est possible d'utiliser cet image statement. Ce dernier doit se trouver tout en haut du script (sans indentation, et avant le label start), et peut être utilisé pour définir le nom d'une image par rapport à un fichier image. Par exemple:
image logo = "renpy logo.png"
image eileen heureuse = "eileen_heureuse_robe_bleue.png"
L'image statement se lance au moment de l'initialisation du projet, avant que le label start et le reste du script intéragisse avec le joueur.
Transitions
Dans le script montré en exemple ci-dessus, les images apparaîssent et disparaissent de l'écran instantanément. Puisque changer de lieu et avoir des personnages différents entrant ou sortant de l'écran du jeu est important, Ren'Py a mis en place des effets de transitions s'appliquant à ces changements, afin de les rendre plus fluides visuellement.
label start:
scene bg champs
with fade
"Après un court moment, nous avons finit par arriver vers les champs qui entouraient le quartier que nous habitions."
"Le paysage qui se dresse devant nous est le même que j'ai l'habitude de voir depuis toujours. Cet endroit est particulièrement beau à voir en automne."
"Quand nous étions enfant, nous jouions souvent dans ces champs. Ils sont remplis de tant de souvenirs."
m "Dis voir... Euh..."
show sylvie vert sourire
with dissolve
"Elle se tourna vers moi et sourit. Elle paraissait alors si chaleureuse que toute ma nervosité semble disparaître."
"Je vais lui demander...!"
m "Dis... Est-ce que tu..."
m "Est-ce que tu accepterais de devenir l'artiste du jeu que je suis en train de développer?"
Le with statement doit être utilisé avec le nom de la transition à utiliser. La forme la plus commune de transition est "dissolve", qui permet de créer un effet de dissolution pour passer d'une image à une autre. Une autre transition utile est "fade", qui donne un effet de fondu jusqu'à une couleur noir pour ensuite passer à une autre image avec un second effet de fondu.
Lorsqu'une transition est placée après plusieurs scene, show et hide statements, la transition s'applique à tous ces derniers en même temps. Si l'on utilise le code suivant par exemple:
scene bg champs
show sylvie vert sourire
with dissolve
L'image de background "bg champs" et la sprite "sylvie vert sourire" seraient toutes deux affectées par l'effet de dissolution amené par "dissolve". Si l'on veut que l'effet ne s'applique qu'à l'un d'eux à la fois, il faut alors écrire cela en utilisant deux with statement de la manière suivante:
scene bg champs
with dissolve
show sylvie vert sourire
with dissolve
Le premier with statement utilisé ici donnera tout d'abord un effet de dissolution à l'image de background "bg champs", pour ensuite en donner un à la sprite de sylvie. De ce fait, on verrait tout d'abord apparaître l'image de background, puis la sprite de sylvie par dessus, tous deux avec un effet les faisant apparaître de manière fluide. Si l'on voudrait faire apparaître instantanément l'image de background, puis faire apparaître Sylvie, on pourrait utiliser le code suivant:
scene bg champs
with None
show sylvie sourire
with dissolve
Dans ce cas, "None" est utilisé pour indiquer une transition spéciale qui met à jour l'idée que ce fait Ren'Py de l'image qui était précedemment présente, sans pour autant la montrer au joueur.
Positions
Par défault, les images sont positionnées de sorte à être au centre par rapport à la largeur de l'écran du jeu, et alignées avec le bas de ce dernier. Cela fonctionne générallement bien pour les images de background et les personnages lorsqu'il n'y en a qu'un de présent. Cependant, lorsqu'on souhaite avoir plusieurs personnages apparaîssant à l'écran, il sera préférable de les mettre à des positions différentes pour ne pas qu'ils se recouvrent les uns par dessus les autres. De même, selon le scénario, il peut être utile de savoir comment faire déplacer un personnage d'un endroit à un autre de l'écran de jeu.
show sylvie vert sourire at right
Pour repositionner une image ou une sprite, il suffit d'ajouter une clause à un show statement. La clause "at" prend en compte la position, et fait apparaître l'image à cet endroit. Ren'Py a inclu une variété de positions prédéfinies pouvant être utilisées: "left" pour qu'une image s'affiche sur le côté gauche de l'écran, "right" pour qu'elle s'affiche sur le côté droit de l'écran, "center" pour qu'elle soit au centre de la largeur de l'écran (la position utilisée par défault), et "truecenter" pour qu'elle soit centrée autant horizontalement que verticalement.
Les créateurs de jeux peuvent définir également leurs propres positions, et créer des événements composés de mouvements complexes, mais cela sortant du cadre des fonctions du bases, nous ne traiterons pas cela ici. Vous pouvez toutefois consulter le site officiel cité dans les ressources en bas de page pour en apprendre plus.
Musiques et sons
La plupart des jeux créés sur Ren'Py comprennent des musiques de fond. Les musiques sont jouées grâce à des play music statement. Ces derniers prennent le nom du fichier qui doit être interprété en tant que fichier audio à jouer. Pour pouvoir être interprété, un fichier audio doit être placé dans le dossier du jeu, et être au format opus, ogg vorbis, ou mp3. Par exemple:
play music "illurock.ogg"
Lorsqu'on change la musique que l'on veut faire jouer dans le jeu, il est possible d'utiliser des clauses "fadeout" et "fadein" afin de donner un effet de fondu entre le morceau précédemment jouer, et la nouvelle musique:
play music "illurock.ogg" fadeout 1.0 fadein 1.0
Aussi, il est possible d'utiliser un queue music statement afin qu'un fichier audio soit joué à partir du moment où le précédent se termine:
queue music "next_track.opus"
Les musiques peuvent également être arrêtées à un endroit précis du script avec un stop music statement, qui peut aussi avoir une clause fadeout optionnelle:
stop music
Enfin, des sons et effets sonores peuvent également être joués avec le play sound statement. Contrairement aux musiques utilisant un play music statement, les sons et effets sonores utilisés avec le play sound statement ne sont joués qu'une fois et ne sont donc pas joué en répétition continue:
play sound "effect.ogg"
Menus, Labels et Jumps
Le menu statement donne la possibilité de présenter un choix que le joueur pourra faire durant le jeu:
s "Bien-sûr que je veux aider, mais qu'est-ce qu'un \"visual novel\?""
menu:
"C'est un jeu-vidéo.":
jump jeu
"C'est une sorte de livre intéractif.":
jump livre
label jeu:
m "C'est un genre de jeu-vidéo que tu peux jouer depuis un ordinateur ou une console."
jump mariage
label livre:
m "C'est comme un livre interactif que tu lis sur un ordinateur ou une console."
jump mariage
label mariage:
"Et c'est ainsi, que nous devenus un duo de développeurs de visual novels."
Cet exemple nous montre comment il est possible d'utiliser un menu avec Ren'Py. Le menu statement introduit un choix à faire dans le jeu. Les lignes de code doivent être comprises dans un bloc avec une indentation. Les choix proposés au joueur sont composés chacun d'une chaîne de caractères entre guillemets, suivi d'un ":". Chaque choix présent dans le menu doit avoir son propre bloc de lignes de codes indenté, qui sera lu uniquement si le joueur fait ce choix.
Dans cet exemple, chacun des deux choix proposés dans le menu dit au script de lire un jump statement. Ce dernier transfère alors la lecture du script à un label statement prenant le même nom que le jump statement utilisé. Ainsi, après le jump, le script continuera donc sa lecture par les statements suivent le label définit.
Dans l'exemple ci-dessus, Sylvie pose une question, et le joueur doit donc choisir quoi répondre entre les deux choix proposés par le menu. Si le joueur choisissait l'option "C'est un jeu-vidéo.", le premier jump statement, "jump jeu" serait par conséquent celui qui serait lu, et le script effectuera alors un saut jusqu'au label "jeu" pour y continuer sa lecture. Dans le jeu, le personnage joué par le joueur dira "C'est un genre de jeu-vidéo que tu peux jouer depuis un ordinateur ou une console. Suite à cela, le "jump mariage" prendra effet, et effectuera un saut dans le script jusqu'au "label mariage", et la prochaine ligne de dialogue qui s'affichera à l'écran sera alors "Et c'est ainsi, que nous devenus un duo de développeurs de visual novels.".
S'il n'y a pas de jump statement à la fin d'un bloc associé avec un label, le script de Ren'Py continuera simplement avec le prochain statement. Le dernier jump statement de l'exemple montré ici ne sert techniquement à rien, puisque les deux choix se dirigent de toute manière vers le label mariage, cependant nous l'avons inclu ici afin de rendre le déroulement du jeu plus clair.
Les labels peuvent être définit par n'importe quel fichier présent dans le dossier du jeu, du moment que ce dernier se termine par l'extension ".rpy". Le nom du fichier n'a pas d'importance avec Ren'Py, seuls les labels compris dedans sont importants. Ainsi, on peut considérer tous les fichier .rpy à l'intérieur d'un dossier de jeu comme étant un seul et même grand fichier .rpy, avec des jump statement transférant le passage du script des uns aux autres. Cela apporte de la flexibilité dans la manière dont on peut organiser le script d'un grand jeu.
Lien
- Site officiel de Ren'Py (en anglais uniquement)
- Communauté francophone d'utilisateurs de Ren'py (Contient beaucoup d'informations traduites directement du site officiel, ainsi qu'un forum d'entraide)
- Lemma Soft Forums (Communauté d'entraide pour les créateurs de jeux-vidéo de type Visual novels. Beaucoup d'informations et contenus liés au logiciel Ren'Py)
Logiciels similaires
- Twine
- ChoiceScript - plutôt un langage qu'un outil auteur
- Inform