Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » La Boîte à Idées !
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

La Boîte à Idées !

Posté le 21/06/2018 18:31

Trouver des idées pour un jeu, c'est pas donné à tout le monde. Ce n'est pas non plus donné à tout le monde de finaliser un projet de jeu ! Voici donc l'intérêt de cette Boîte à Idées : postez les idées de jeux / projets que vous aimeriez voir naître ; ou bien venez trouver de l'inspiration pour votre prochain jeu !

Voici le concept : postez des commentaires pour proposer une idée d'adaptation ou de genre de jeu que vous aimeriez bien voir apparaître sur votre calculatrice mais que vous ne vous sentez pas de faire vous-même ! Postez également des commentaires pour « réclamer » des idées de jeu quand vous ne savez pas quoi faire comme jeu ! Vous pouvez aussi y demander de l'aider pour porter un projet !

Ce post sera régulièrement mis à jour selon vos idées et vos propositions. L'idée n'est pas de faire un jeu à partir de toutes les propositions, mais de se constituer une réserve d'idées qui pourraient inspirer certains dans les semaines, les mois ou les années à venir !

J'entame moi-même la liste ! Ne soyez pas timides !

Liste de suggestions :


– Des adaptations de jeux :
Proposées par Drak : Une adaptation de Monster Hunter.
Une série de mini-jeux à la Wario Ware, à réaliser le plus vite possible ! (Entamé par Kikoodx)
Une adaptation du célèbre Entraînement cérébral du Docteur Kawashima : Quel âge a votre cerveau ?
Une jeu tiré de l'anime Bleach (j'ai déjà de beaux sprites, pour un jeu en C plutôt)

Proposée par Shadow15510[/i] : Un Morpion en multijoueur ! (Référez-vous aux recherches actives de Lightmare)
Une adaptation du jeu de plateau Cluedo. Un projet inachevé de ce jeu existe.

Proposée par Natnat : Doki Doki Litterature Club. Le fameux. Il y a surement moyen de récupérer les données de jeu assez facilement.

Proposées par KikooDX : Un Animal Crossing Lite (pas de "scénario" par exemple), peut-être préférable en C.
⇒ Un Add-In de compression des programmes et fichiers pour sauver de la place sur la calto.
⇒ Une adaptation du jeu d'arcade Nibbler, il a été porté sur Atari 2600.
⇒ Une adaptation de The Binding of Isaac, ou encore de Meat Boy, parce qu'on aime les jeux indé.
⇒ Downwell, en monochrome ou non, sur 90+E ?
⇒ Un jeu FPS dans le monde de Flatland (le livre)


Proposée par Lightmare : Une adaptation du jeu Fez, en réduisant bien sûr les détails, en le développant avec Windmill de Ninestars.

Proposée par Disperseur : Un jeu type "Glory of Generals" (jeu de guerre tactique).

Proposée par mactul : Stickman warrior 2 players

– Des genre de jeu :
Proposé par Drak : Un jeu d'horreur, comportant des Jumpscare (chaud, hein ? ).
Un jeu de Tower Defense, style Desktop Tower Defense.

Proposée par Hackcell : Un visual novel, à l'eau de rose bien sucrée ! Un peu de tendresse dans ce monde de brutes !

Proposée par KikooDX : Un jeu de combat minimaliste à deux calculatrices.

– Des idées plus particulières de jeu :
Proposées par Drak : Un jeu s'apparentant à un RPG à la Dragon Quest... Mais les combats sont des duels de Pong !
Un jeu de gestion qui se déroule dans le Far West, où vous devez construire des rails de trains et des arrêts pour desservir toute l'Amérique du Nord ! (A donné naissance aux Aventuriers du Rail, de Shadow)

Proposée par Zezombye : Un jeu multijoueur (2 caltos), comme un touché-coulé par exemple.

Proposée par Massena : Un smash bros-like, avec les personnages de l'équipe de planète casio !

Proposée par Mactul : Un jeu difficile où le but serait de perdre au lieu de gagner.


– Des idées plus générales :
Proposée par Lephenixnoir : La V5 de Planète Casio ! Quelle bonne idée !

Proposée par KikooDX : Un endroit où les documents nécessaires au développement d'add-in pour les calculatrices couleurs sont regroupés.

– En recherche d'aide :
Shadow15510 a un projet de RPG dont la partie histoire est particulièrement poussée mais n'arrive pas à le porter sur calculatrice. (Projet entamé : Odyssée)


Mis à jour le : 02/08/2019


Fichier joint


Précédente 1, 2, 3, 4, 5 ··· 8, 9, 10 Suivante
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 27/06/2018 11:51 | #


Quand ils disaient "Ne convient pas à un jeune public ou facilement dérangé", je pensais qu'ils évoquaient du contenu sexuel ! x)

Enfin, c'est à toi de voir. Toutefois, je pense que c'est un peu chaud de porter le jeu en entier. Peut-être essayer d'en faire une version light pour la calto ? Si tu te lances dans le projet, n'hésite pas à poster dans la partie "Projets de programmation" du forum ! Tu auras de l'aide d'une part et d'autre part on aura une visibilité sur l'activité du forum, ce qui est toujours entrainant !
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 27/06/2018 12:01 | #


Salut ! pour DDLC voici mon idée :
mon idée à moi !
Cliquer pour enrouler
dans le jeu original, les .chr sont en réalité des fichiers de type image ou son. Ce que je suggère, c'est qu'ils soient du coup ouvrables via d'autres add-ins, de plus, un des fichiers nous mène un moment sur un site internet appelé " project libitina ", pour rendre le jeu plus réaliste sur calto, il faudrait créer un faux navigateur spécial pour le jeu ou en adapter un déjà existant ( du genre Casgle )

"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Natnat Hors ligne Membre Points: 73 Défis: 0 Message

Citer : Posté le 27/06/2018 12:20 | #


Lightmare a écrit :
Salut ! pour DDLC voici mon idée :
mon idée à moi !
Cliquer pour enrouler
dans le jeu original, les .chr sont en réalité des fichiers de type image ou son. Ce que je suggère, c'est qu'ils soient du coup ouvrables via d'autres add-ins, de plus, un des fichiers nous mène un moment sur un site internet appelé " project libitina ", pour rendre le jeu plus réaliste sur calto, il faudrait créer un faux navigateur spécial pour le jeu ou en adapter un déjà existant ( du genre Casgle )


limitations techniques
Cliquez pour recouvrir

, je connais l'histoire des .chr, mais ouvrir un son sur la Casio semble un peu difficile, non? (et, oui, je sais, c'est faisable).
Pour les images, on peut mettre un .g1m contenant un Picture qu'il serait donc possible de transférer vers la mémoire principale pour afficher.
Et puis, je vais quand même pas mettre un navigateur là dedans, ça serait du suicide (et j'imagine même pas la taille de l'add-in)!
Et il ne faut pas sous-estimer Edit qui est pas mal utile, un joueur pourrait l'utiliser pour ouvrir les .chr.
Par contre, un Qr-code pointant vers le site serait faisable, ou directement le texte du site à ouvrir avec Edit.


récupérer les données du jeu
Cliquez pour recouvrir

ça, c'est déjà fait depuis un moment, on peut utiliser rpatool pour extraire les archives puis unrpyc pour décompiler les scripts. Comme ça, on a accès à toutes les données et au code.
Le plus long, ça serait de faire le moteur de jeu en fait, il faut un truc capable de gérer les sprites (qui sont en réalité en plusieurs parties), les textbox, les sauvegardes (cf Act 2), les CG et les "glitch"...
Ensuite, c'est juste une question de quelques heures le temps d'écrire un petit script qui parse les .rpy et génère des .c valides qui tournent grâce au moteur de jeu.
Idem pour les sprites, on les convertit en sprites ML à l'avance et ça ira bien.
Par contre, avec le nombre de sprites et de scripts, il va probablement falloir les charger depuis des fichiers séparés, ça tiendra jamais en entier en RAM cette connerie... Donc il va falloir gérer ça aussi...


Mais dans tous les cas, ça va prendre du temps et je ne m'y met pas avant d'avoir fini mon projet actuel, sinon j'aurai jamais fini aucun des deux. Et puis, sérieusement, qui va y jouer? Ceux qui y ont déjà joué sur PC vont connaître toute l'histoire, et les autres NE DOIVENT PAS commencer par cette version...
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 27/06/2018 12:29 | #


c'est vrai, mais ca aura le mérite d'être une prouesse technique !
... et puis, pourquoi REFAIRE le jeu maintenant que j'y pense ? on ne peut pas créer une suite ?
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Natnat Hors ligne Membre Points: 73 Défis: 0 Message

Citer : Posté le 27/06/2018 12:33 | #


Lightmare a écrit :
c'est vrai, mais ca aura le mérite d'être une prouesse technique !
... et puis, pourquoi REFAIRE le jeu maintenant que j'y pense ? on ne peut pas créer une suite ?


Alors là, c'est beaucoup m'en demander, je sais absolument pas écrire... Mais si quelqu'un sait, pourquoi pas. Mais je ne promet rien.
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 27/06/2018 12:35 | #


j'ai dit " on " NatNat
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 27/06/2018 12:36 | #


@Drak : Je me penche sur ton aventurier du rail façon calculatrice

Ajouté le 27/06/2018 à 12:45 :
Je vais essayé se simuler un jeu à 4 avec 3 joueurs virtuels
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24657 Défis: 170 Message

Citer : Posté le 27/06/2018 13:19 | #


Ensuite, c'est juste une question de quelques heures le temps d'écrire un petit script qui parse les .rpy et génère des .c valides qui tournent grâce au moteur de jeu.

Aha, jolie blague. Enfin pas trop, tu as l'air assez sérieux. Je ne connais pas RPy, mais j'ai jeté un oeil à la doc, et ce n'est pas un parser qu'il te faut, c'est un compilateur entier. Et pas des moindres puisque si j'ai bien suivi tu as du code Python qui interface du R donc tu dois jouer à la fois avec la sémantique de Python et celle de R. Si tu y arrives à faire quelque chose de propre en quelques heures je te tire mon chapeau et un lapin de ce chapeau.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Natnat Hors ligne Membre Points: 73 Défis: 0 Message

Citer : Posté le 27/06/2018 13:48 | #


Lephenixnoir a écrit :
Aha, jolie blague. Enfin pas trop, tu as l'air assez sérieux. Je ne connais pas RPy, mais j'ai jeté un oeil à la doc, et ce n'est pas un parser qu'il te faut, c'est un compilateur entier. Et pas des moindres puisque si j'ai bien suivi tu as du code Python qui interface du R donc tu dois jouer à la fois avec la sémantique de Python et celle de R. Si tu y arrives à faire quelque chose de propre en quelques heures je te tire mon chapeau et un lapin de ce chapeau.


script=ch-1.rpy
Cliquez pour recouvrir

label ch1_main:
    scene bg club_day
    with dissolve_scene_half
    play music t2
    show monika 5 zorder 2 at t11

    m "Hi again, [player]!"
    m "Glad to see you didn't run away on us. Hahaha!"
    mc "Nah, don't worry."
    mc "This might be a little strange for me, but I at least keep my word."
    show monika zorder 1 at thide
    hide monika
    "Well, I'm back at the Literature Club."
    "I was the last to come in, so everyone else is already hanging out."
    show yuri 1a zorder 2 at t32
    y "Thanks for keeping your promise, [player]."
    y "I hope this isn't too overwhelming of a commitment for you."
    y 1u "Making you dive headfirst into literature when you're not accustomed to it..."
    show natsuki 4e zorder 2 at t33
    n "Oh, come on! Like he deserves any slack."
    n "Sayori told me you didn't even want to join any clubs this year."
    n "And last year, too!"
    n 4c "I don't know if you plan to just come here and hang out, or what..."
    n "But if you don't take us seriously, then you won't see the end of it."
    show monika 2b at l41
    m "Natsuki, you certainly have a big mouth for someone who keeps her manga collection in the clubroom."
    n 4o "M-M-M...!!"
    show monika at lhide
    hide monika
    "Natsuki finds herself stuck between saying \"Monika\" and \"Manga\"."
    show natsuki at h33
    n 1v "Manga is literature!!"
    show natsuki zorder 1 at thide
    hide natsuki
    "Swiftly defeated, Natsuki plops back into her seat."
    show yuri zorder 2 at t22
    show sayori 2x zorder 3 at f21
    s "Don't worry, guys~"
    s "[player] always gives it his best as long as he's having fun."
    s "He helps me with busywork without me even asking."
    s "Like cooking, cleaning my room..."
    show sayori 2a zorder 2 at t21
    show yuri zorder 3 at f22
    y 2m "How dependable..."
    show yuri zorder 2 at t22
    mc "Sayori, that's because your room is so messy it's distracting."
    mc "And you almost set your house on fire once."
    show sayori at s21
    s 5 "Is that so... Ehehe..."
    show yuri zorder 3 at f22
    y 1s "You two are really good friends, aren't you?"
    y "I might be a little jealous..."
    show yuri zorder 2 at t22
    show sayori zorder 3 at f21
    s 1 "How come? You and [player] can become good friends too!"
    show sayori zorder 2 at t21
    show yuri zorder 3 at f22
    y 4b "U-Um..."
    show yuri zorder 2 at t22
    mc "S-Sayori--"
    show sayori zorder 3 at f21
    s "Hmm?"
    show sayori zorder 2 at t21
    mc "..."
    "As usual, Sayori seems oblivious to the weird situation she just put me into."
    show sayori zorder 3 at f21
    s 4x "Oh, oh! Yuri even brought you something today, you know~"
    show sayori zorder 2 at t21
    show yuri zorder 3 at f22
    y 3n "W-Wait! Sayori..."
    show yuri zorder 2 at t22
    mc "Eh? Me?"
    show yuri zorder 3 at f22
    y 3o "Um... Not really..."
    show yuri zorder 2 at t22
    show sayori zorder 3 at f21
    s 4r "Don't be shy~"
    show sayori zorder 2 at t21
    show yuri zorder 3 at f22
    y "It's really nothing..."
    show yuri zorder 2 at t22
    mc "What is it?"
    show yuri zorder 3 at f22
    y 4c "N-Never mind!"
    y "Sayori made it sound like a big deal when it's really not..."
    y "Uuuuh, what do I do..."
    show yuri zorder 2 at t22
    show sayori zorder 3 at f21
    s 1g "Eh? I'm sorry, Yuri, I wasn't thinking..."
    show sayori zorder 1 at thide
    hide sayori
    show yuri zorder 2 at t11
    "I guess that means it's up to me to rescue this situation..."
    mc "Hey, don't worry about it."
    mc "First of all, I wasn't expecting anything in the first place."
    mc "So any nice gesture from you is a pleasant surprise."
    mc "It'll make me happy no matter what."
    y 3v "I-Is that so..."
    mc "Yeah. I won't make it a big deal if you don't want it to be."
    y "Alright..."
    y 1a "Well, here."
    "Yuri reaches into her bag and pulls out a book."
    y "I didn't want you to feel left out..."
    y "So I picked out a book that I thought you might enjoy."
    y "It's a short read, so it should keep your attention, even if you don't usually read."
    y "And we could, you know..."
    show yuri at sink
    y 4b "Discuss it...if you wanted..."
    "Th-This is..."
    "How is this girl accidentally being so cute?"
    "She even picked out a book she thinks I'll like, despite me not reading much..."
    mc "Yuri, thank you! I'll definitely read this!"
    "I enthusiastically take the book."
    show yuri 2m zorder 2 at t11
    y "Phew..."
    y 2a "Well, you can read it at your own pace."
    y "I look forward to hearing what you think."
    show yuri zorder 1 at thide
    hide yuri


    "Now that everyone's settled in, I expected Monika to kick off some scheduled activities for the club."
    "But that doesn't seem to be the case."
    "Sayori and Monika are having a cheery conversation in the corner."
    "Yuri's face is already buried in a book."
    "I can't help but notice her intense expression, like she was waiting for this chance."
    "Meanwhile, Natsuki is rummaging around in the closet."


    $ nextscene = poemwinner[0] + "_exclusive_" + str(eval(poemwinner[0][0] + "_appeal"))
    call expression nextscene


    show monika 1 zorder 2 at t21
    hide sayori
    hide natsuki
    hide yuri
    m "By the way, did you remember to write a poem last night?"
    mc "Y-Yeah..."
    "My relaxation ends."
    "I can't believe I agreed to do something so embarrassing."
    "I couldn't really find much inspiration, since I've never really done this before."
    m "Well, now that everyone's ready, why don't you find someone to share with?"
    show sayori 4q zorder 2 at t22
    s "I can't wait~!"
    show sayori zorder 1 at thide
    show monika zorder 1 at thide
    hide sayori
    hide monika
    "Sayori and Monika enthusiastically pull out their poems."
    "Sayori's is on a wrinkled sheet of loose leaf torn from a spiral notebook."
    "On the other hand, Monika wrote hers in a composition notebook."
    "I can already see Monika's pristine handwriting from where I sit."
    "Natsuki and Yuri reluctantly comply as well, reaching into their bags."
    "I do the same, myself."

    return


label ch1_end:
    stop music fadeout 1.0
    scene bg club_day
    with wipeleft_scene
    play music t3
    mc "Phew..."
    "I guess that's everyone."
    "I glance around the room."
    "That was a little more stressful than I anticipated."
    "It's as if everyone is judging me for my mediocre writing abilities..."
    "Even if they're just being nice, there's no way my poems can stand up to theirs."
    "This is a literature club, after all."
    "I sigh."
    "I guess that's what I ended up getting myself into."
    "Across the room, Sayori and Monika are happily chatting."
    "My eyes land on Yuri and Natsuki."
    show yuri 2g zorder 2 at t21
    show natsuki 1g zorder 2 at t22
    "They gingerly exchange sheets of paper, sharing their respective poems."
    show yuri 2i at t21
    "As they read in tandem, I watch each of their expressions change."
    "Natsuki's eyebrows furrow in frustration."
    "Meanwhile, Yuri smiles sadly."
    show natsuki zorder 3 at f22
    n 1q "{i}(What's with this language...?){/i}"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 2f "Eh?"
    y "Um...did you say something?"
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 2c "Oh, it's nothing."
    "Natsuki dismissively returns the poem to the desk with one hand."
    n "I guess you could say it's fancy."
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 2i "Ah-- Thanks..."
    y "Yours is...cute..."
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 2h "Cute?"
    n 1h "Did you completely miss the symbolism or something?"
    n "It's clearly about the feeling of giving up."
    n "How can that be cute?"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 3f "I-I know that!"
    y "I just meant..."
    y 3h "The language, I guess..."
    y "I was trying to say something nice..."
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n "Eh?"
    n 4w "You mean you have to try that hard to come up with something nice to say?"
    n "Thanks, but it really didn't come out nice at all!"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 1i "Um..."
    y "Well, I do have a couple suggestions..."
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 5x "Hmph."
    n "If I was looking for suggestions, I would have asked someone who actually liked it."
    n "Which people {i}did{/i}, by the way."
    n 5e "Sayori liked it."
    n "And [player] did, too!"
    n "So based on that, I'll gladly give you some suggestions of my own."
    n "First of all--"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 2l "Excuse me..."
    y "I appreciate the offer, but I've spent a long time establishing my writing style."
    y 2h "I don't expect it to change anytime soon, unless of course I come across something particularly inspiring."
    y "Which I haven't yet."
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 1o "Nn...!"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 1k "And [player] liked my poem too, you know."
    y "He even told me he was impressed by it."
    stop music fadeout 1.0
    "Natsuki suddenly stands up."
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 4y "Oh?"
    n "I didn't realize you were so invested in trying to impress our new member, Yuri."
    play music t7
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 1n "E-Eh?!"
    y "That's not what I...!"
    y 1o "Uu..."
    y "You...You're just..."
    "Yuri stands up as well."
    y 2r "Maybe you're just jealous that [player] appreciates my advice more than he appreciated yours!"
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 1e "Huh! And how do you know he didn't appreciate {i}my{/i} advice more?"
    n "Are you that full of yourself?"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 3h "I...!"
    y "No..."
    y "If I was full of myself..."
    y 1r "...I would deliberately go out of my way to make everything I do overly cutesy!"
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 1o "Uuuuuu...!"
    show sayori 2l behind yuri, natsuki at l41
    show yuri zorder 2 at t32
    show natsuki zorder 2 at t33
    s "U-Um!!"
    s "Is everyone okay...?"
    show sayori 2 at lhide
    hide sayori
    show natsuki zorder 3 at f33
    n 1f "Well, you know what?!"
    n "I wasn't the one whose boobs magically grew a size bigger as soon as [player] started showing up!!"
    show yuri 3p at h32
    show natsuki zorder 2 at t33
    y "N-Natsuki!!"
    show monika 3l behind yuri, natsuki at l41
    m "Um, Natsuki, that's a little--"
    show monika at h41
    show yuri 3p zorder 3 at f32
    show natsuki 1e zorder 3 at f33
    ny "This doesn't involve you!"
    show monika at lhide
    hide monika
    show yuri zorder 2 at t32
    show natsuki zorder 2 at t33
    show sayori 4p behind yuri, natsuki at l41
    s "I-I don't like fighting, guys...!"
    show sayori at lhide
    hide sayori
    show yuri zorder 2 at t21
    show natsuki 1g zorder 2 at t22
    "Suddenly, both girls turn towards me, as if they just noticed I was standing there."
    show yuri zorder 3 at f21
    y 2n "[player]...!"
    y "She-- She's just trying to make me look bad...!"
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 4w "That's not true!"
    n "She started it!"
    n 4e "If she could get over herself and learn to appreciate that {i}simple{/i} writing is more effective..."
    n "Then this wouldn't have happened in the first place!"
    n "What's the point in making your poems all convoluted for no reason?"
    n "The meaning should jump out at the reader, not force them to have to figure it out."
    n 1f "Help me explain that to her, [player]!"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 3o "W-Wait!"
    y "There's a reason we have so many deep and expressive words in our language!"
    y 3w "It's the only way to convey complex feelings and meaning the most effectively."
    y "Avoiding them is not only unnecessarily limiting yourself...it's also a waste!"
    y 1t "You understand that, right, [player]?"
    show yuri zorder 2 at t21
    mc "Um...!"
    show yuri 1t zorder 3 at f21
    show natsuki 1e zorder 3 at f22
    ny "Well??"
    mc "..."
    show yuri zorder 2 at t21
    show natsuki 1g zorder 2 at t22
    "How did I get dragged into this in the first place?!"
    "It's not like I know anything about writing..."
    "But whomever I agree with, they'll probably think more highly of me!"
    menu:
        "So, of course that's going to be...!"
        "Natsuki.":
            call ch1_end_natsuki
        "Yuri.":
            call ch1_end_yuri
        "Help me, Sayori!!":
            call ch1_end_sayori

    scene bg club_day
    show monika 4b zorder 2 at t11
    with wipeleft_scene
    m "Okay, everyone!"
    m "It's just about time for us to leave."
    m "How did you all feel about sharing poems?"
    show monika 4a
    show sayori 4x zorder 2 at t31
    s "It was a lot of fun!"
    show sayori behind yuri at thide
    show yuri 1i zorder 2 at t31
    hide sayori
    y "Well, I'd say it was worth it."
    show yuri behind natsuki at thide
    show natsuki 4q zorder 2 at t31
    hide yuri
    n "It was alright. Well, mostly."
    show natsuki zorder 1 at thide
    hide natsuki
    m 1a "[player], how about you?"
    mc "...Yeah, I'd say the same."
    mc "It was a neat thing to talk about with everyone."
    m 1j "Awesome!"
    m 1a "In that case, we'll do the same thing tomorrow."
    m "And maybe you learned something from your friends, too."
    m 3b "So your poems will turn out even better!"
    mc "..."
    show monika zorder 1 at thide
    hide monika
    "I think to myself."
    "I did learn a little more about the kinds of poems everyone likes."
    "With any luck, that means I can at least do a better job impressing those I want to impress."
    "I nod to myself with newfound determination."
    show sayori 1x zorder 2 at t11
    s "[player]!"
    s "Ready to walk home?"
    mc "Sure, let's go."
    s 4q "Ehehe~"
    "Sayori beams at me."
    "It truly has been a while since Sayori and I have spent this much time together."
    "I can't really say I'm not enjoying it, either."
    scene bg residential_day
    show sayori 1a zorder 2 at t11
    with wipeleft_scene
    mc "Sayori..."
    mc "About what happened earlier..."
    s 1b "Eh? What do you mean?"
    mc "You know, between Yuri and Natsuki."
    mc "Does that kind of thing happen often?"
    s 4j "No, no, no!"
    s "That's really the first time I've seen them fight like that..."
    s "I promise they're both wonderful people."
    show sayori at s11
    s 1g "You don't... You don't hate them, do you??"
    mc "No, I don't hate them!"
    mc "I just wanted your opinion, that's all."
    mc "I can see why they'd make good friends with you."
    show sayori zorder 2 at t11
    s 1d "Phew..."
    s "You know, [player]..."
    s "It's nice that I get to spend time with you in the club."
    s "But I think seeing you get along with everyone is what makes me the happiest."
    s 1x "And I think everyone really likes you, too!"
    mc "That's--!"
    s 4q "Ehehe~"
    s "Every day is going to be so much fun~"
    mc "Sigh..."
    "It looks like Sayori still hasn't caught onto the kind of situation I'm in."
    "Sure, being friends with everyone is nice, but..."
    "...Does it really need to stop there?"
    mc "We'll just have to see what the future holds, Sayori."
    "I pat Sayori on the shoulder."
    "I said that more to myself than to her, but it's easy to use Sayori as an internal monologue sometimes."
    show sayori at h11
    s 1x "Okay~!"
    "Yeah..."
    "Let's do this!"
    return

label ch1_end_natsuki:
    $ ch1_choice = "natsuki"
    stop music fadeout 1.0
    mc "Um..."
    mc "Yuri!"
    mc "You're really talented."
    show yuri 4a at s21
    y "Eh? W-Well..."
    play music t8
    mc "But Natsuki has a point!"
    mc "I think that..."
    show yuri zorder 2 at t21
    "I wrack my brain in an attempt to back myself up."
    mc "I think that conveying feelings with few words..."
    mc "Can be just as impressive as well!"
    mc "It lets the reader's imagination take over."
    mc "And Natsuki's poem did a really good job at that!"
    show natsuki zorder 3 at f22
    n 5y "...Yeah!!"
    n "It did, didn't it?!"
    n "Ahah!"
    n "Shows how much {i}you{/i} know!"
    show natsuki zorder 2 at t22
    show yuri zorder 3 at f21
    y 4b "T-That's not..."
    show yuri zorder 2 at t21
    mc "Natsuki..."
    mc "I think that's enough."
    show natsuki zorder 3 at f22
    n 1m "Huh?"
    n "Me?"
    n "But she was so mean to me...!"
    "Natsuki's voice whines."
    show natsuki zorder 2 at t22
    mc "Look..."
    mc "What we talked about yesterday was right."
    mc "Writing is a really personal thing."
    mc "And sharing it can definitely be hard."
    mc "It looks like we learned that today."
    mc "Even small criticism can lead to something pretty heated."
    "I glance over my shoulder."
    "Sayori is nodding vigorously."
    mc "Yeah, so..."
    mc "You don't need to feel threatened."
    mc "You're a great writer, Natsuki."
    show natsuki zorder 3 at f22
    n 1h "Ah--"
    "Natsuki's voice gets caught in surprise."
    n 1q "...Thanks for noticing."
    "She finally mutters that, barely audible."
    show natsuki zorder 2 at t22
    mc "Yuri..."
    show yuri zorder 3 at f21
    y 4a "...?"
    "Yuri looks at me dejectedly."
    "With a face like that, I can't help but feel bad for her as well."
    show yuri zorder 2 at t21
    mc "I'm sure that Natsuki didn't mean everything she said."
    mc "So you don't need to feel threatened, either."
    show yuri zorder 3 at f21
    y 2v "Well..."
    y "If you say so..."
    show yuri zorder 2 at t21
    show natsuki zorder 3 at f22
    n 1g "Hey...!"
    n "It's not like you need to apologize {i}for{/i} me, [player]."
    n 1w "Sheesh."
    "Natsuki takes a breath."
    n 1q "I..."
    n "The thing about..."
    n "Uu..."
    "Natsuki glances around the room."
    show natsuki zorder 3 at hf22
    n 1x "{i}Would everyone stop staring at me??{/i}"
    "Unsurprisingly, Natsuki has a harder time with it than she boasted."
    "Sayori and Monika look away."
    show natsuki zorder 3 at f22
    n 1i "Hmph."
    n "Anyway...!"
    n 1q "The thing about your boobs. I didn't mean it, okay?"
    n "That's all."
    "Natsuki looks away, avoiding eye contact with anyone."
    show natsuki zorder 2 at t22
    show sayori 4x behind yuri at l41
    s "Yeah! You're naturally beautiful, Yuri!!"
    mc "Sayori?!"
    show yuri 4c zorder 3 at f21
    y "..."
    y "I-I'll go make some tea..."
    show yuri at lhide
    hide yuri
    show sayori zorder 3 at f41
    s 4h "Ehh?"
    s "I was just trying to help!"
    show sayori zorder 2 at t41
    mc "I'm sure she appreciated it, Sayori."
    "I pat Sayori on the shoulder."
    show sayori zorder 1 at thide
    show natsuki zorder 1 at thide
    show monika 4m zorder 2 at t11
    hide sayori
    hide natsuki
    m "Well, now that we're past that..."
    m 4b "Everyone's read each other's poems, right?"
    m "I hope that it was worthwhile for everyone!"
    m 5 "Especially you, [player]!"
    m "And to be honest..."
    m "It's a nice change of pace from the lazing around we got a little too used to."
    m "Ahahaha!"
    mc "Ah, so my joining the club was responsible for ruining the atmosphere..."
    m 1d "No, not at all, not at all!"
    m "There's still time before we go home."
    m 1a "So we'll all relax for a bit."
    m "Of course, besides chatting, we do literature-related things in the clubroom..."
    m "So maybe you can take the chance to pick up a book, or do some writing."
    m 1b "After all, that's what the club is for!"
    show sayori 2j zorder 3 at f31
    s "I disagree, Monika!"
    show sayori zorder 2 at t31
    show monika zorder 3 at f32
    m 1d "Eh? About what?"
    show monika zorder 2 at t32
    show sayori zorder 3 at f31
    s 2i "That's not the most important thing about the literature club!"
    s "The most important thing..."
    show sayori 4r zorder 3 at hf31
    s "Is having fun!"
    show sayori zorder 2 at t31
    show monika zorder 3 at f32
    m 2l "Ahaha, of course..."
    m 2a "Well, I guess that's why you're the Vice President, Sayori."
    show monika zorder 2 at t32
    show sayori zorder 3 at f31
    s 4q "Ehehe..."
    hide sayori
    hide monika
    with wipeleft
    "In the end, though, Monika's right."
    "Being in the Literature Club probably means I can't spend all my time doing nothing."
    "But in the end..."
    "...I guess it's been worth it so far."
    return

label ch1_end_yuri:
    $ ch1_choice = "yuri"
    stop music fadeout 1.0
    mc "Natsuki."
    mc "You're right that I liked your poem."
    show natsuki zorder 3 at f22
    n 1e "See??"
    show natsuki 1g zorder 2 at t22
    play music t8
    mc "Wait!"
    mc "That's not an excuse for you to be so mean!"
    mc "You shouldn't pick a fight just because someone's opinion is different."
    show natsuki zorder 3 at f22
    n 1m "That's not what happened at all!"
    n "Yuri wouldn't even take my poem seriously!"
    show natsuki zorder 2 at t22
    mc "Mm..."
    mc "I understand."
    mc "Yuri."
    show yuri zorder 3 at f21
    y 2t "Eh?"
    show yuri zorder 2 at t21
    mc "You're a seriously talented writer."
    mc "It's no secret that I was impressed."
    show yuri zorder 3 at f21
    y 2u "W-Well, that's..."
    show yuri zorder 2 at t21
    mc "But here's the thing."
    mc "No matter how simple or refined someone's writing style is..."
    mc "They're still putting feelings into it, and it becomes something really personal."
    mc "That's why Natsuki felt threatened when you said her poem was cute."
    show yuri zorder 3 at f21
    y 2v "I...see..."
    y "I didn't notice that I..."
    show yuri zorder 2 at t21
    y 2w "I-I'm sorry..."
    show yuri at s21
    y "Uuu..."
    show natsuki zorder 2 at t11
    show yuri zorder 1 at thide
    hide yuri
    mc "But Natsuki, you took it way too far!"
    mc "Yuri means well, and if you just told her how you felt..."
    mc "Then this wouldn't have happened in the first place."
    n 1e "Are you kidding?"
    n "That's exactly what I did!"
    n "It was {i}her{/i} that--"
    show natsuki zorder 2 at t22
    show monika 2i zorder 3 at f21
    m "Natsuki, I think that's enough."
    m "You both said some things that you didn't mean."
    m "Yuri apologized. Don't you think you should, too?"
    show monika zorder 2 at t21
    show natsuki zorder 3 at f22
    n 1x "Nnn...!"
    show natsuki zorder 2 at t22
    "Natsuki clenches her fists."
    "In the end, nobody has taken her side."
    "She's trapped, at this point being defiant only because she can't handle the pressure."
    "I end up even feeling bad for her."
    show monika zorder 2 at t32
    show natsuki zorder 2 at t33
    show sayori 2h at l41
    s "U-Um!"
    s "Sometimes when I'm hurt..."
    s "It helps to take a walk and clear my head!"
    show sayori zorder 2 at t41
    mc "Sayori, she doesn't need to--"
    show natsuki zorder 3 at f33
    n 2q "You know what?"
    n "I'm going to do that."
    n 2w "It'll spare me from having to look at all your faces right now."
    show natsuki zorder 1 at thide
    hide natsuki
    "Without warning, Natsuki snatches her own poem up from the desk and storms out."
    "On her way out, she crumples up the poem with her hands and throws it in the trash."
    show sayori zorder 3 at f41
    s 1k "Natsuki..."
    show sayori zorder 2 at t41
    show monika zorder 3 at f32
    m 1r "She really didn't need to do that..."
    show sayori zorder 1 at thide
    show monika zorder 1 at thide
    hide sayori
    hide monika
    "I look across the room."
    "Yuri has her chin buried in her hands while she stares down at her desk."
    "I gingerly approach her and sit in an adjacent chair."
    show yuri 4b zorder 2 at t11
    y "Sigh..."
    mc "Everything alright?"
    y "I'm so embarrassed..."
    y "I can't believe I acted like that."
    y "You probably hate me now..."
    mc "No--Yuri!"
    mc "How could anyone not have gotten frustrated after being treated like that?"
    mc "You handled it as well as anyone could."
    mc "I don't think any less of you."
    y 2v "Well..."
    y "...Alright, I believe you."
    y 2s "Thanks, [player]. You're too kind."
    y "I'm thankful to have you a part of this club now."
    mc "Er-- It's nothing."
    y 2v "One more thing..."
    y "Um, that one thing that Natsuki said..."
    y 4c "About...you know..."
    y "I would never do anything...so shameful..."
    y "So..."
    mc "...Eh?"
    mc "What thing did Natsuki say?"
    y 3n "--!"
    y "U-Um!"
    y 3q "Well, never mind that..."
    y "I-I'm going to go make some tea..."
    mc "Ah, good idea."
    mc "Make enough for more than one person, okay?"
    y "Y-Yeah."
    return

label ch1_end_sayori:
    $ ch1_choice = "sayori"
    mc "N-Natsuki..."
    show natsuki 5f
    "Natsuki glares at me, drying up any words I had in my mouth."
    "So instead, I turn to Yuri."
    mc "Yuri..."
    y 4a "..."
    "But Yuri's expression is so defenseless that I can't bring myself to say anything to her."
    stop music fadeout 1.0
    mc "..."
    mc "...Sayori!"
    show sayori 4m behind yuri at l31
    show yuri zorder 2 at t32
    show natsuki zorder 2 at t33
    s "Eh?!"
    mc "...Yeah!"
    mc "Everyone's fighting is making Sayori uncomfortable."
    mc "How can the two of you keep fighting when you know you're making your friend feel like this?"
    show sayori zorder 3 at f31
    s 4d "[player]..."
    show sayori zorder 2 at t31
    show natsuki 4w zorder 3 at f33
    n "Well... That's her problem! This isn't about her."
    show natsuki zorder 2 at t33
    show yuri 2g zorder 3 at f32
    y "I-I agree..."
    y "It's unfair for others to interject their own feelings into our conflict."
    show yuri zorder 2 at t32
    show natsuki zorder 3 at f33
    n 4c "Yeah, unless Sayori wants to tell Yuri what a stuck-up jerk she's being."
    show natsuki zorder 2 at t33
    show yuri 3r zorder 3 at f32
    play music t7
    y "She would never...!"
    y "It's your immaturity that's made her upset in the first place!"
    show yuri zorder 2 at t32
    show natsuki 1e zorder 3 at f33
    n "{i}Excuse{/i} me?"
    n "Are you listening to yourself?"
    n 1x "This is exactly why..."
    n 1w "Exactly why nobody likes--"
    show natsuki zorder 2 at t33
    show sayori 4p at h31
    stop music
    s "{i}Stop!!{/i}"
    show yuri 3f zorder 3 at f32
    show natsuki 1o zorder 3 at f33
    ny "--"
    show yuri zorder 2 at t32
    show natsuki zorder 2 at t33
    show sayori zorder 3 at f31
    play music t8
    s 1h "Natsuki! Yuri!"
    s "You guys are my friends!"
    s 1v "I-I just want everyone to get along and be happy!"
    s "My friends are wonderful people..."
    s "And I love them because of their differences!"
    s 1g "Natsuki's poems..."
    s "They're amazing because they give you so many feelings with just a few words!"
    s "And Yuri's poems are amazing because they paint beautiful pictures in your head!"
    s 4k "Everyone's so talented..."
    s "...So why are we fighting...?"
    show sayori zorder 2 at t31
    show natsuki zorder 3 at f33
    n 1r "Be-Because..."
    show natsuki zorder 2 at t33
    show yuri 3v zorder 3 at f32
    y "Well..."
    show yuri zorder 2 at t32
    show sayori zorder 3 at f31
    s 1j "Also!"
    s "Natsuki's cute and there's nothing wrong with that!"
    s 1i "And Yuri's boobs are the same as they always were!"
    show sayori at hf31
    s 1j "Big and beautiful!!"
    show sayori 1i zorder 2 at t31
    show natsuki zorder 3 at f33
    n 1o "..."
    show natsuki zorder 2 at t33
    show yuri zorder 3 at f32
    y 3n "..."
    show yuri zorder 2 at t32
    mc "Sayori..."
    "Sayori stands triumphantly."
    "Monika stands behind her with a bewildered expression."
    show yuri at s32
    y 3q "I'll...make some tea..."
    show yuri behind sayori at lhide
    hide yuri
    "Yuri rushes off."
    show natsuki zorder 1 at thide
    hide natsuki
    "Natsuki sits down with a blank expression on her face, staring at nothing."
    show sayori zorder 1 at thide
    show monika 1i zorder 2 at t11
    hide sayori
    mc "So, this is why Sayori is Vice President..."
    "I whisper to Monika."
    "She nods in return."
    m 1d "To be honest..."
    m "I might come off as a good leader, and I can organize things..."
    m 3e "But I'm not very good with people..."
    m "I couldn't even bring myself to interject."
    m 1m "As President, that's kind of embarrassing of me."
    m 1l "Ahaha..."
    mc "Nah..."
    mc "It's not like I can blame you."
    mc "I wasn't able to say anything, either."
    m "Well..."
    m 2a "I guess that just means Sayori is amazing in her own ways, isn't she?"
    mc "You could say that."
    mc "She might be an airhead, but sometimes it's weirdly suspicious that she knows exactly what she's doing."
    m 5 "I see~"
    m "Take good care of her, okay?"
    m "I would hate to see her get herself hurt."
    mc "That makes two of us..."
    mc "You can count on me."
    "Monika smiles sweetly at me, causing my stomach to knot."
    "Such a genuine person really does make a good President, regardless of what she says."
    "If only I could get the chance to talk to her a little more..."
    return
# Decompiled by unrpyc: https://github.com/CensoredUsername/unrpyc

La plupart des scripts n'utilsent presque pas de python, donc on peut les convertir super rapidement avec un simple parser. Voire même une regex, mais faut pas abuser non plus.

Pour les morceaux de python simples, on peut juste les parser (comme celui là) et transformer légèrement, en sachant qu'on peut faire sauter tout ce qui a un lien avec le son (donc le renpy.music.play). Pour gérer les variables, on fait un gros hashmap ou un arbre, mais c'est le travail du moteur de jeu ça. Le parser s'occupe juste de détecter les appels de fonctions et les variables.
script-ch10.rpy
Cliquez pour recouvrir

python:
        currentpos = get_pos()
        startpos = currentpos - 0.3
        if startpos < 0: startpos = 0
        track = "<from " + str(startpos) + " to " + str(currentpos) + ">bgm/2.ogg"
        renpy.music.play(track, loop=True)
    $ pause(1.0)
    $ gtext = glitchtext(48)

Ici, ça construirait juste un truc qui appellerait les fonctions du moteur pour gérer les variables, les affectations, les fonctions...

int currentpos=getVar("currentpos");
int get_pos=getFunc("get_pos");
int tmp=execVoid(get_pos);
assignVar(currentpos, tmp);
int startpos=getVar("startpos");
float tmp2=getValue(currentpos);
setValue(startpos, tmp2-0.3);
if(getValue(startpos)<0) {
setValue(startpos, 0);
}
int track=getVar("track");
int tmp3=getTmpVarStr("tmp3", "<track ");
int str=getFunc("str");
int tmp4=exec1(str, startpos);
int tmp5=concat(tmp3, tmp4);
...
clearTmpVar();


Mais oui, pour les scripts plus complexes, je compte pas les faire parser par un script, il faudrait un truc beaucoup trop gros, et ça ne rendrait pas correctement de toute façon.
script-poemgame.rpy
Cliquez pour recouvrir

init python:
    import random


    class PoemWord:
        def __init__(self, word, sPoint, nPoint, yPoint, glitch=False):
            self.word = word
            self.sPoint = sPoint
            self.nPoint = nPoint
            self.yPoint = yPoint
            self.glitch = glitch


    POEM_DISLIKE_THRESHOLD = 29
    POEM_LIKE_THRESHOLD = 45


    full_wordlist = []
    with renpy.file('poemwords.txt') as wordfile:
        for line in wordfile:
            
            line = line.strip()
            
            if line == '' or line[0] == '#': continue
            
            
            x = line.split(',')
            full_wordlist.append(PoemWord(x[0], float(x[1]), float(x[2]), float(x[3])))

    seen_eyes_this_chapter = False
    sayoriTime = renpy.random.random() * 4 + 4
    natsukiTime = renpy.random.random() * 4 + 4
    yuriTime = renpy.random.random() * 4 + 4
    monikaTime = renpy.random.random() * 4 + 4
    sayoriPos = 0
    natsukiPos = 0
    yuriPos = 0
    monikaPos = 0
    sayoriOffset = 0
    natsukiOffset = 0
    yuriOffset = 0
    monikaOffset = 0
    sayoriZoom = 1
    natsukiZoom = 1
    yuriZoom = 1
    monikaZoom = 1

    def randomPauseSayori(trans, st, at):
        if st > sayoriTime:
            global sayoriTime
            sayoriTime = renpy.random.random() * 4 + 4
            return None
        return 0

    def randomPauseNatsuki(trans, st, at):
        if st > natsukiTime:
            global natsukiTime
            natsukiTime = renpy.random.random() * 4 + 4
            return None
        return 0

    def randomPauseYuri(trans, st, at):
        if st > yuriTime:
            global yuriTime
            yuriTime = renpy.random.random() * 4 + 4
            return None
        return 0

    def randomPauseMonika(trans, st, at):
        if st > monikaTime:
            global monikaTime
            monikaTime = renpy.random.random() * 4 + 4
            return None
        return 0

    def randomMoveSayori(trans, st, at):
        global sayoriPos
        global sayoriOffset
        global sayoriZoom
        if st > .16:
            if sayoriPos > 0:
                sayoriPos = renpy.random.randint(-1,0)
            elif sayoriPos < 0:
                sayoriPos = renpy.random.randint(0,1)
            else:
                sayoriPos = renpy.random.randint(-1,1)
            if trans.xoffset * sayoriPos > 5: sayoriPos *= -1
            return None
        if sayoriPos > 0:
            trans.xzoom = -1
        elif sayoriPos < 0:
            trans.xzoom = 1
        trans.xoffset += .16 * 10 * sayoriPos
        sayoriOffset = trans.xoffset
        sayoriZoom = trans.xzoom
        return 0

    def randomMoveNatsuki(trans, st, at):
        global natsukiPos
        global natsukiOffset
        global natsukiZoom
        if st > .16:
            if natsukiPos > 0:
                natsukiPos = renpy.random.randint(-1,0)
            elif natsukiPos < 0:
                natsukiPos = renpy.random.randint(0,1)
            else:
                natsukiPos = renpy.random.randint(-1,1)
            if trans.xoffset * natsukiPos > 5: natsukiPos *= -1
            return None
        if natsukiPos > 0:
            trans.xzoom = -1
        elif natsukiPos < 0:
            trans.xzoom = 1
        trans.xoffset += .16 * 10 * natsukiPos
        natsukiOffset = trans.xoffset
        natsukiZoom = trans.xzoom
        return 0

    def randomMoveYuri(trans, st, at):
        global yuriPos
        global yuriOffset
        global yuriZoom
        if st > .16:
            if yuriPos > 0:
                yuriPos = renpy.random.randint(-1,0)
            elif yuriPos < 0:
                yuriPos = renpy.random.randint(0,1)
            else:
                yuriPos = renpy.random.randint(-1,1)
            if trans.xoffset * yuriPos > 5: yuriPos *= -1
            return None
        if yuriPos > 0:
            trans.xzoom = -1
        elif yuriPos < 0:
            trans.xzoom = 1
        trans.xoffset += .16 * 10 * yuriPos
        yuriOffset = trans.xoffset
        yuriZoom = trans.xzoom
        return 0

    def randomMoveMonika(trans, st, at):
        global monikaPos
        global monikaOffset
        global monikaZoom
        if st > .16:
            if monikaPos > 0:
                monikaPos = renpy.random.randint(-1,0)
            elif monikaPos < 0:
                monikaPos = renpy.random.randint(0,1)
            else:
                monikaPos = renpy.random.randint(-1,1)
            if trans.xoffset * monikaPos > 5: monikaPos *= -1
            return None
        if monikaPos > 0:
            trans.xzoom = -1
        elif monikaPos < 0:
            trans.xzoom = 1
        trans.xoffset += .16 * 10 * monikaPos
        monikaOffset = trans.xoffset
        monikaZoom = trans.xzoom
        return 0



label poem(transition=True):
    stop music fadeout 2.0
    if persistent.playthrough == 3:
        scene bg notebook-glitch
    else:
        scene bg notebook
    show screen quick_menu
    if persistent.playthrough == 3:
        show m_sticker at sticker_mid
    else:
        if persistent.playthrough == 0:
            show s_sticker at sticker_left
        show n_sticker at sticker_mid
        if persistent.playthrough == 2 and chapter == 2:
            show y_sticker_cut at sticker_right
        else:
            show y_sticker at sticker_right
        if persistent.playthrough == 2 and chapter == 2:
            show m_sticker at sticker_m_glitch
    if transition:
        with dissolve_scene_full
    if persistent.playthrough == 3:
        play music ghostmenu
    else:
        play music t4
    $ config.skipping = False
    $ config.allow_skipping = False
    $ allow_skipping = False
    if persistent.playthrough == 0 and chapter == 0:
        call screen dialog("It's time to write a poem!\n\nPick words you think your favorite club member\nwill like. Something good might happen with\nwhoever likes your poem the most!", ok_action=Return())
    python:
        poemgame_glitch = False
        played_baa = False
        progress = 1
        numWords = 20
        sPointTotal = 0
        nPointTotal = 0
        yPointTotal = 0
        wordlist = list(full_wordlist)

        sayoriTime = renpy.random.random() * 4 + 4
        natsukiTime = renpy.random.random() * 4 + 4
        yuriTime = renpy.random.random() * 4 + 4
        sayoriPos = renpy.random.randint(-1,1)
        natsukiPos = renpy.random.randint(-1,1)
        yuriPos = renpy.random.randint(-1,1)
        sayoriOffset = 0
        natsukiOffset = 0
        yuriOffset = 0
        sayoriZoom = 1
        natsukiZoom = 1
        yuriZoom = 1





        while True:
            ystart = 160
            if persistent.playthrough == 2 and chapter == 2:
                pstring = ""
                for i in range(progress):
                    pstring += "1"
            else:
                pstring = str(progress)
            ui.text(pstring + "/" + str(numWords), style="poemgame_text", xpos=810, ypos=80, color='#000')
            for j in range(2):
                if j == 0: x = 440
                else: x = 680
                ui.vbox()
                for i in range(5):
                    if persistent.playthrough == 3:
                        s = list("Monika")
                        for k in range(6):
                            if random.randint(0, 4) == 0:
                                s[k] = ' '
                            elif random.randint(0, 4) == 0:
                                s[k] = random.choice(nonunicode)
                        word = PoemWord("".join(s), 0, 0, 0, False)
                    elif persistent.playthrough == 2 and not poemgame_glitch and chapter >= 1 and progress < numWords and random.randint(0, 400) == 0:
                        word = PoemWord(glitchtext(80), 0, 0, 0, True)
                    else:
                        word = random.choice(wordlist)
                        wordlist.remove(word)
                    ui.textbutton(word.word, clicked=ui.returns(word), text_style="poemgame_text", xpos=x, ypos=i * 56 + ystart)
                ui.close()
            
            t = ui.interact()
            if not poemgame_glitch:
                if t.glitch:
                    poemgame_glitch = True
                    renpy.music.play(audio.t4g)
                    renpy.scene()
                    renpy.show("white")
                    renpy.show("y_sticker glitch", at_list=[sticker_glitch])
                elif persistent.playthrough != 3:
                    renpy.play(gui.activate_sound)
                    if persistent.playthrough == 0:
                        if t.sPoint >= 3:
                            renpy.show("s_sticker hop")
                        if t.nPoint >= 3:
                            renpy.show("n_sticker hop")
                        if t.yPoint >= 3:
                            renpy.show("y_sticker hop")
                    else:
                        if persistent.playthrough == 2 and chapter == 2 and random.randint(0,10) == 0: renpy.show("m_sticker hop")
                        elif t.nPoint > t.yPoint: renpy.show("n_sticker hop")
                        elif persistent.playthrough == 2 and not persistent.seen_sticker and random.randint(0,100) == 0:
                            renpy.show("y_sticker hopg")
                            persistent.seen_sticker = True
                        elif persistent.playthrough == 2 and chapter == 2: renpy.show("y_sticker_cut hop")
                        else: renpy.show("y_sticker hop")
            else:
                r = random.randint(0, 10)
                if r == 0 and not played_baa:
                    renpy.play("gui/sfx/baa.ogg")
                    played_baa = True
                elif r <= 5: renpy.play(gui.activate_sound_glitch)
            sPointTotal += t.sPoint
            nPointTotal += t.nPoint
            yPointTotal += t.yPoint
            progress += 1
            if progress > numWords:
                break

        if persistent.playthrough == 0:
            
            if chapter == 1:
                exec(ch1_choice[0] + "PointTotal += 5")
            
            unsorted_pointlist = {"sayori": sPointTotal, "natsuki": nPointTotal, "yuri": yPointTotal}
            pointlist = sorted(unsorted_pointlist, key=unsorted_pointlist.get)
            
            
            poemwinner[chapter] = pointlist[2]
        else:
            if nPointTotal > yPointTotal: poemwinner[chapter] = "natsuki"
            else: poemwinner[chapter] = "yuri"


        exec(poemwinner[chapter][0] + "_appeal += 1")


        if sPointTotal < POEM_DISLIKE_THRESHOLD: s_poemappeal[chapter] = -1
        elif sPointTotal > POEM_LIKE_THRESHOLD: s_poemappeal[chapter] = 1
        if nPointTotal < POEM_DISLIKE_THRESHOLD: n_poemappeal[chapter] = -1
        elif nPointTotal > POEM_LIKE_THRESHOLD: n_poemappeal[chapter] = 1
        if yPointTotal < POEM_DISLIKE_THRESHOLD: y_poemappeal[chapter] = -1
        elif yPointTotal > POEM_LIKE_THRESHOLD: y_poemappeal[chapter] = 1


        exec(poemwinner[chapter][0] + "_poemappeal[chapter] = 1")

    if persistent.playthrough == 2 and persistent.seen_eyes == None and renpy.random.randint(0,5) == 0:
        $ seen_eyes_this_chapter = True
        $ quick_menu = False
        play sound "sfx/eyes.ogg"
        $ persistent.seen_eyes = True
        $ renpy.save_persistent()
        stop music
        scene black with None
        show bg eyes_move
        $ pause(1.2)
        hide bg eyes_move
        show bg eyes
        $ pause(0.5)
        hide bg eyes
        show bg eyes_move
        $ pause(1.25)
        hide bg eyes with None
        $ quick_menu = True
    $ config.allow_skipping = True
    $ allow_skipping = True
    stop music fadeout 2.0
    hide screen quick_menu
    show black as fadeout:
        alpha 0
        linear 1.0 alpha 1.0
    $ pause(1.0)
    return

image bg eyes_move:
    "images/bg/eyes.png"
    parallel:
        yoffset 720 ytile 2
        linear 0.5 yoffset 0
        repeat
    parallel:
        0.1
        choice:
            xoffset 20
            0.05
            xoffset 0
        choice:
            xoffset 0
        repeat
image bg eyes:
    "images/bg/eyes.png"

image s_sticker:
    "gui/poemgame/s_sticker_1.png"
    xoffset sayoriOffset xzoom sayoriZoom
    block:
        function randomPauseSayori
        parallel:
            sticker_move_n
        parallel:
            function randomMoveSayori
        repeat

image n_sticker:
    "gui/poemgame/n_sticker_1.png"
    xoffset natsukiOffset xzoom natsukiZoom
    block:
        function randomPauseNatsuki
        parallel:
            sticker_move_n
        parallel:
            function randomMoveNatsuki
        repeat

image y_sticker:
    "gui/poemgame/y_sticker_1.png"
    xoffset yuriOffset xzoom yuriZoom
    block:
        function randomPauseYuri
        parallel:
            sticker_move_n
        parallel:
            function randomMoveYuri
        repeat

image y_sticker_cut:
    "gui/poemgame/y_sticker_cut_1.png"
    xoffset yuriOffset xzoom yuriZoom
    block:
        function randomPauseYuri
        parallel:
            sticker_move_n
        parallel:
            function randomMoveYuri
        repeat

image m_sticker:
    "gui/poemgame/m_sticker_1.png"
    xoffset monikaOffset xzoom monikaZoom
    block:
        function randomPauseMonika
        parallel:
            sticker_move_n
        parallel:
            function randomMoveMonika
        repeat

image s_sticker hop:
    "gui/poemgame/s_sticker_2.png"
    xoffset sayoriOffset xzoom sayoriZoom
    sticker_hop
    xoffset 0 xzoom 1
    "s_sticker"

image n_sticker hop:
    "gui/poemgame/n_sticker_2.png"
    xoffset natsukiOffset xzoom natsukiZoom
    sticker_hop
    xoffset 0 xzoom 1
    "n_sticker"

image y_sticker hop:
    "gui/poemgame/y_sticker_2.png"
    xoffset yuriOffset xzoom yuriZoom
    sticker_hop
    xoffset 0 xzoom 1
    "y_sticker"

image y_sticker_cut hop:
    "gui/poemgame/y_sticker_cut_2.png"
    xoffset yuriOffset xzoom yuriZoom
    sticker_hop
    xoffset 0 xzoom 1
    "y_sticker_cut"

image y_sticker hopg:
    "gui/poemgame/y_sticker_2g.png"
    xoffset yuriOffset xzoom yuriZoom
    sticker_hop
    xoffset 0 xzoom 1
    "y_sticker"

image m_sticker hop:
    "gui/poemgame/m_sticker_2.png"
    xoffset monikaOffset xzoom monikaZoom
    sticker_hop
    xoffset 0 xzoom 1
    "m_sticker"

image y_sticker glitch:
    "gui/poemgame/y_sticker_1_broken.png"
    xoffset yuriOffset xzoom yuriZoom zoom 3.0
    block:
        function randomPauseYuri
        parallel:
            sticker_move_n
        parallel:
            function randomMoveYuri
        repeat

transform sticker_left:
    xcenter 100 yalign 0.9 subpixel True

transform sticker_mid:
    xcenter 220 yalign 0.9 subpixel True

transform sticker_right:
    xcenter 340 yalign 0.9 subpixel True

transform sticker_glitch:
    xcenter 50 yalign 1.8 subpixel True

transform sticker_m_glitch:
    xcenter 100 yalign 1.35 subpixel True

transform sticker_move_n:
    easein_quad .08 yoffset -15
    easeout_quad .08 yoffset 0

transform sticker_hop:
    easein_quad .18 yoffset -80
    easeout_quad .18 yoffset 0
    easein_quad .18 yoffset -80
    easeout_quad .18 yoffset 0
# Decompiled by unrpyc: https://github.com/CensoredUsername/unrpyc


Les quelques heures, c'est juste pour les scripts simples, pour ceux qui utilisent du python, c'est plus long hein, je suis pas si bon que ça non plus
Lephenixnoir Hors ligne Administrateur Points: 24657 Défis: 170 Message

Citer : Posté le 27/06/2018 13:58 | #


La plupart des scripts n'utilsent presque pas de python, donc on peut les convertir super rapidement avec un simple parser. Voire même une regex, mais faut pas abuser non plus.

Est-ce qu'on parle du même RPy en fait ? Je me suis peut-être fait abuser par la présence de Python... (il y a un lien avec le langage R ?). Le RPy auquel je pense ressemble à ça :

>>> res = robjects.StrVector(['abc', 'def'])
>>> print(res.r_repr())
c("abc", "def")
>>> res = robjects.IntVector([1, 2, 3])
>>> print(res.r_repr())
1:3
>>> res = robjects.FloatVector([1.1, 2.2, 3.3])
>>> print(res.r_repr())
c(1.1, 2.2, 3.3)

Alors effectivement le Python des cas simples n'est pas du tout aussi difficile. N'hésite pas pour ton parser à t'inspirer de la grammaire de Python. La difficulté première c'est de fournir une implémentation C des fonctions standard Python qui peuvent traîner. Peut-être qu'un compilateur Python → C peut t'aider pour ça.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Natnat Hors ligne Membre Points: 73 Défis: 0 Message

Citer : Posté le 27/06/2018 14:15 | #


Lephenixnoir a écrit :
La plupart des scripts n'utilsent presque pas de python, donc on peut les convertir super rapidement avec un simple parser. Voire même une regex, mais faut pas abuser non plus.

Est-ce qu'on parle du même RPy en fait ? Je me suis peut-être fait abuser par la présence de Python... (il y a un lien avec le langage R ?). Le RPy auquel je pense ressemble à ça :

>>> res = robjects.StrVector(['abc', 'def'])
>>> print(res.r_repr())
c("abc", "def")
>>> res = robjects.IntVector([1, 2, 3])
>>> print(res.r_repr())
1:3
>>> res = robjects.FloatVector([1.1, 2.2, 3.3])
>>> print(res.r_repr())
c(1.1, 2.2, 3.3)

Ah, effectivement, on ne parle pas du même langage... Pas du tout, même... Dans mon cas, il s'agit de fichiers qui ont pour extension .rpy mais qui ne sont pas en langage RPy, et y'a même pas de R. C'est simplement des scripts Ren'py qui sont principalement des directives du genre "affiche un dialogue de tel personnage avec telle sprite et tel texte", "déplace tel personnage à tel endroit" ou des trucs comme ça, mais avec des fois des morceaux de python pour faire des trucs plus puissants.
La doc (enfin, plus une idée globale de ce que c'est) se trouve ici.

Lephenixnoir a écrit :
Alors effectivement le Python des cas simples n'est pas du tout aussi difficile. N'hésite pas pour ton parser à t'inspirer de la grammaire de Python. La difficulté première c'est de fournir une implémentation C des fonctions standard Python qui peuvent traîner. Peut-être qu'un compilateur Python → C peut t'aider pour ça.

Oui, c'est bien ça qui me fait un peu peur, mais il n'y a pas besoin de toutes les fonctionalités de Python (par exemple **kwargs), seulement de ce qui est vraiment utilisé dans ce code. Par contre, les fonctions de base de Ren'py sont un peu plus lourdes...
Lephenixnoir Hors ligne Administrateur Points: 24657 Défis: 170 Message

Citer : Posté le 27/06/2018 14:20 | #


Le forum et la Revue des Projets (ainsi qu'un certain nombre de membres) se feront un plaisir d'entendre parler de tout ça. N'hésite pas à faire du bruit dès que tu auras attaqué.

Désolé pour le malentendu aussi. ^^'
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Natnat Hors ligne Membre Points: 73 Défis: 0 Message

Citer : Posté le 27/06/2018 14:25 | #


Lephenixnoir a écrit :
Le forum et la Revue des Projets (ainsi qu'un certain nombre de membres) se feront un plaisir d'entendre parler de tout ça. N'hésite pas à faire du bruit dès que tu auras attaqué.

Yup, je m'y mettrai une fois Casio_asm et son successeur finis. Mais ça va me prendre du temps avant de commencer, et encore plus à y faire. 'fin bon, j'ai des vacances pour ça.

Lephenixnoir a écrit :
Désolé pour le malentendu aussi. ^^'

Non, c'est ma faute ça, j'aurais du faire une recherche Google pour voir ce qu'on trouvait en cherchant 'rpy'; y'aurait fallu que je précise plus...
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 27/06/2018 14:30 | #


Tu peux également poster des articles sur Casio_asm pour la RDP, bien entendu
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 27/06/2018 17:18 | #


Pour les aventuriers du rail je vais avoir besoin de beaucoup beaucoup beaucoup d'un peu d'aide
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 27/06/2018 17:22 | #


Oh, alors tu te lances dans l'aventure ? Très bien, alors de quoi as-tu besoin ? Peut-être que tu peux ouvrir un topic dans les projets de programmation ?
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 27/06/2018 17:25 | #


C'est ce que je vais faire...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Hackcell Hors ligne Maître du Puzzle Points: 1532 Défis: 11 Message

Citer : Posté le 29/06/2018 23:47 | #


NatNat a écrit :
Hmm, y'a différents genres de visual novels...


Je pensais à un DateSim tout mignon tout plein, avec suffisamment d'eau de rose pour rendre diabétiques
Redeyes Hors ligne Membre Points: 634 Défis: 7 Message

Citer : Posté le 30/06/2018 00:14 | #


Salut! Ces sprites sont magnifiques ! J'en verrai bien certains en tant que boss de haut niveau (un peu comme des champions d'arène ...)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 30/06/2018 10:34 | #


Bon courage alors. Tu peux utiliser BIDE avec ce tutoriel : il est très bien fait
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 30/06/2018 12:41 | #


@Redeyes : Merci ! Si tu comptes les utiliser, n'oublie pas que ces personnages sont issus de la saga Bleach. Mais, bien sûr, tu es libre de t'en servir !
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Précédente 1, 2, 3, 4, 5 ··· 8, 9, 10 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 69 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd