~ S'évader de la banalité... Et entrer dans l'imaginaire ! ~
 
AccueilGuelnika, le site de E-m !S'enregistrerConnexion

Partagez | 
 

 Jeu de rôle (mode texte)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Jeu de rôle (mode texte)   Lun 21 Jan 2013, 14:09

Hello la compagnie,

Est-ce que l'un d'entre vous aurait une idée sommes toutes assez précise de la manière dont fonctionne un rpg en mode texte (un seul joueur) ?

Vous voyez de quoi je parle ? Les vieux jeux de rôle, les ancêtres du rpg où vous n'aviez rien d'autre que du texte à l'écran, même pas un petit dessin en code ascii ou quoi que ce soit...

J'ai un TP en Python à faire pour ma formation et je n'ai le droit d'utiliser les widgets que pour une fenêtre principale, du coup je me suis dit que je ferais bien un petit jeu de rôle dans un univers zombiesque en mode texte mais fenêtré avec Glade.

Le problème est que je ne sais pas comment fonctionnent ces jeux (quelles sont les grandes lignes du game design) mais alors VRAIMENT pas.

Je fais donc appel à vous pour m'éclairer un peu, ça devient difficile de trouver des bonnes infos sur internet :/
Avez-vous déjà joué à un jeu du genre ? Comment est-ce que cela fonctionnait ? Votre personnage était sauvegardé et vous pouviez le réutiliser à volonté ? Avez-vous ne serait-ce que joué à des jeux de rôle sur table ? Pouvez-vous m'expliquer clairement les grands lignes du game design ?

Merci à vous, je suis certain qu'au moins deux ou trois d'entre vous ont connu et apprécié ce genre de jeu =]

ps: J'ai bien des jeux de rôle en mode texte comme Rogue ou omega-rpg mais ce n'est pas pareil, ce sont des jeux où on est tout de même un minimum guidé par des dessins en ascii et où on dirige un curseur...

____________
Revenir en haut Aller en bas
http://e-magination.jeun.fr
AlexRE
Admin trop trizo Lv 65
Admin trop trizo Lv 65


Nombre de messages : 29430
Age : 29

MessageSujet: Re: Jeu de rôle (mode texte)   Lun 21 Jan 2013, 15:33

Le seul jeu de ce genre que je connais est Radical Dreamers sur SNes ("suite" de Chrono Trigger, possédant les premiers éléments de Chrono Cross). C'est en gros l'histoire d'une équipe de 3 personnes qui veulent infiltrer un manoir pour récupérer un trésor.

Il contient de longues séries de textes, et des choix ("rentrer par cette porte ?", "prendre cet objet ?"). Parfois quelques combats très simplistes ("attaquer ?", "fuir ?").

J'ai très vite arrêté le jeu car j'avais trouvé assez chiant. Nerd Sang

Je ne me rappelle pas si le personnages était sauvegardé. Je crois que non. Mais rien ne t'empêche de le faire.


J'ai déjà joué à des jeux de rôle sur table (Star Wars et Z-Corps), et c'est assez différent.

Tu te crées au tout début un personnage avec pleins d'attributs différents (beaucoup plus qu'un RPG classique) : force, défense, force mentale, magie, persuasion, dextérité, manipulation, courage, savoir, chance, compétences, etc... Tu lui crées une histoire personnelle, tu lui inventes des secrets, une mentalité, une vie... Et tu dois jouer comme si tu étais lui.

Comme ça se joue avec plusieurs personnes, faut prendre des décisions de groupe. Il y a un meneur de jeu qui ne joue pas mais supervise la partie : il raconte l'atmosphère, les évènements qui se déroulent ("vous tombez sur un hopital, est-ce que vous rentrez ?", "5 zombies vous tombent dessus, est-ce que vous vous battez ?").

Après, ça se joue beaucoup aux dés : dés d'attaque ("si tu fais 4, 5, 6 ton attaque réussit"), dès de défense ("si tu fais 4, 5, 6, tu ne reçois que la moitié des dégats"), dés de chance ("si tu fais 5, 6, tu esquives son coup, mais comme ton personnage a beaucoup de chance (déterminé dans la fiche de départ) tu esquives le coup aussi si tu fais 4)...

Cas particulier des JDR papier : quand ton personnage meurt, tu ne peux plus le ressusciter, tu dois te créer un tout nouveau personnage. Il existe de réelles histoires "tragiques" de joueurs qui perdent leurs personnages avec lequel ils jouent depuis de nombreuses années... Je te laisse imaginer la déprime. ^^


Après, c'est à toi de développer tout ça comme tu l'entends. Le but de ton projet est surtout de montrer que tu sais utiliser les fonctions de base du Python, donc essaye de créer un jeu qui montre tes capacités en programmation. Wink
Revenir en haut Aller en bas
http://www.alexzone.net
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60


Nombre de messages : 10881
Age : 19

MessageSujet: Re: Jeu de rôle (mode texte)   Lun 21 Jan 2013, 20:03

La série la plus éminente là dedans est, je pense, Zork (énorme histoire d'un point de vue de la place, tellement de textes qu'ils ont dû scinder l'histoire en plusieurs parties pour que ça tienne sur des disquettes). À vrai dire, ça plaît à tellement de gens qu'il y a même un langage de prog destiné à créer ce genre de jeu... J'ai un peu essayé ce langage, je vais t'expliquer comment ça marche dans les grandes lignes.

Concrètement, le jeu consiste en une série de rooms (de salles) où se situent différent objets. Une room a une description. Les différents objets ont une description. Toute l'interaction du joueur avec la room se fait au travers de bref phrases écrites. Elles sont formées de la forme suivante : "verbe objet". Évidemment, il faut donc créer un interpréteur qui pourra reconnaître le verbe et l'objet, puis ensuite déterminer ce qu'il se passe.

Par exemple, on entre "manger pomme". L'interpréteur doit reconnaître le verbe "manger", et l'objet "pomme". Il reconnaît le verbe manger, reconnaît l'objet pomme. Il vérifie si l'on possède la pomme ou bien si la pomme est dans la room. Enfin, si toutes les conditions adéquates sont réunies, il regarde si pour l'action "manger" la pomme a quelque chose de spécifique, sinon quoi il entre un texte bidon du genre "vous ne pouvez pas faire ça !". Ici, l'objet pomme a déjà une phrase prédéfinie : "Vous mangez la pomme, c'est bon.", puis ensuite détruit l'objet pomme.

Encore plus simplifié, ce que tu dois réaliser :
- interpréteur des commandes de l'utilisateur (sous la forme verbe/objet)
- création de la classe room et de la classe objet
- création de contenu

J'explique sûrement très mal.
Revenir en haut Aller en bas
http://arista.lescigales.org
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Re: Jeu de rôle (mode texte)   Lun 21 Jan 2013, 22:32

Merci à vous, j'y vois plus clair =]

@AristA a écrit:

J'explique sûrement très mal.

Pas du tout, merci pour tes explications, je vais faire ça, ça a l'air marrant =]

____________
Revenir en haut Aller en bas
http://e-magination.jeun.fr
Ephy
Petit Maker Lv 4
Petit Maker Lv 4


Nombre de messages : 99

MessageSujet: Re: Jeu de rôle (mode texte)   Lun 21 Jan 2013, 22:53

Citation :
Cas particulier des JDR papier : quand ton personnage meurt, tu ne peux plus le ressusciter, tu dois te créer un tout nouveau personnage.
tout dépend du maître du jeu Wink
Si il est sympa et pas trop pointilleux sur les règles il peut remédier à ça d'une façon ou d'une autre. Ne serai-ce que pour éviter de planter la partie.
Après pour les JDR à plus grande échelle où on joue le perso dans plusieurs campagnes différentes sur un grand laps de temps c'est sûr que les règles sont plus strictes.

Mais je suis un poil hors sujet.
Revenir en haut Aller en bas
AlexRE
Admin trop trizo Lv 65
Admin trop trizo Lv 65


Nombre de messages : 29430
Age : 29

MessageSujet: Re: Jeu de rôle (mode texte)   Mar 22 Jan 2013, 09:22

Oui, je parlais surtout dans le cas où le personnage joue plusieurs campagnes. cactus smile
Revenir en haut Aller en bas
http://www.alexzone.net
Choco-sama
Fan traître de harusame lvl 69


Nombre de messages : 13683
Age : 29

MessageSujet: Re: Jeu de rôle (mode texte)   Mar 22 Jan 2013, 12:29

KoZzY: Autrement, inspires-toi aussi des livres "où vous êtes le héros"...

Cela peut t'aider je pense

____________
@Zim a écrit:
voire les super-hardcore-poke-nerds genre Choco



"Quand j'ai faim, hop, un voisin!"

Derniers Pokemons Chromatiques/ Shiney capturés: Ningale/ Axoloto/ Herbizarre/ Maracachi/ Golemastoc
Revenir en haut Aller en bas
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Re: Jeu de rôle (mode texte)   Mar 22 Jan 2013, 18:43

Bin je fais le truc dont AristA parlait, en fait =]

Purée... J'ai intérêt à m'organiser avant, là je me suis lancé à l'arrache et je peux bien tout recommencer, mettre d'abord sur papier et programmer ensuite Nerd Sang

Ca en fait du texte... Mais c'est sympa ce concept, rien ne m'empêche d'inclure des énigmes et retoucher le gameplay selon mes envies Smile

____________
Revenir en haut Aller en bas
http://e-magination.jeun.fr
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60


Nombre de messages : 10881
Age : 19

MessageSujet: Re: Jeu de rôle (mode texte)   Mar 22 Jan 2013, 19:30

N'oublie pas de faire en sorte que l'on puisse changer de room aussi ! Usuellement, on utilise "go north", mais il faut que "n" puisse marcher aussi. La préparation sur papier est obligatoire, en effet... C'est super chaud.

Oui, tout le principe tient à faire en sorte que tu puisses créer le max de contenu en te faisant le moins chier possible. Comment tu te débrouilles actuellement ? Ça m'intéresse étant donné que je me suis un peu remis au python depuis peu.

Revenir en haut Aller en bas
http://arista.lescigales.org
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 16:30

Je crée un module par room que j'inclue en "import" dans mon fichier principal, je n'utilise pas "go north"(je ne vois même pas ce que c'est), je fais juste une histoire continue avec une sauvegarde automatique à chaque entrée / sortie de room.
(j'utilise "Pickle" pour faire les sauvegardes, ça fonctionne bien mais si tu connais quelque chose de plus efficace / simple à utiliser, je suis preneur).

En gros (je fais ça vite fait pour te montrer):

Code:

#! /usr/bin/ python
#-*-coding:utf-8 *-
from pickle import Pickler, Unpickler
from getpass import getpass
from random import randint
from stage_1 import *

cleaning = "\n" * 100
new_game = int(0)

def personnage():
   liste_bonjour = ["bonjour","salut","hey","hello","good morning","hi","lu","lut","coucou","ciao"]
   pseudo = ""
   age = int(0)
   nom = ""
   nom = raw_input("Bonjour et bienvenue dans RoomEscape (V1.0) !\nPour bien commencer l'aventure j'ai besoin de\nconnaître votre prénom: ").capitalize()
   while nom == "":
      nom = raw_input("Soyez sympa, si vous n'entrez pas votre prénom nous ne pourrons pas commencer :(\n: ").capitalize()
      print cleaning
      print cleaning
   print "Avant de commencer,",nom,", il faut que vous gardiez\nà l'esprit les quelques rêgles à respecter si \nvous comptez terminer Room Escape avant la prochaine ère glaciaire !"
   infos_joueur = [nom, pseudo, age]
   with open ("infos", "wb+") as f: ##-- Enregistrer infos joueur dans fichier (infos)
      pikpik = Pickler(f)
      pikpik.dump(infos_joueur)
   blanc = raw_input("Dans un premier temps, sachez que vous pouvez\n à tous moments taper 'HELP' (sans les guillemets) pour connaître\nla liste d'actions possibles.")
   blanc = raw_input("Les actions possibles s'écrivent sous cette forme\n'Verbe' - Enter - 'Objet' - Enter.")
   while blanc != "prendre" or blanc_2 != "pomme":
      blanc = raw_input("Essayez donc de prendre cette pomme, là bas sur la table\n{Verbe}:").lower()
      blanc.strip(" ")
      blanc_2 = raw_input("{Objet}: ").lower()
   blanc = raw_input("Voilà, vous avez compris... Bon, là ce\nn'était pas très compliqué mais gardez à l'esprit\nque la liste d'actions et d'objets possibles à utiliser\ns'aggrandit au fur et à mesure que vous jouer !")
   blanc = raw_input("Pensez à regarder l'interpréteur de commandes (Objets/Verbes)\nil se peut qu'il change en fonction de vos actions.")
   blanc = raw_input("Essayez de dire bonjour à notre ami 'Dusboub': ")
   while blanc not in liste_bonjour or blanc_2 != "Dusboub":
      print ("Essayez de dire bonjour à notre ami 'Dusboub': ")
      blanc = raw_input("{Dire}: ").lower()
      blanc_2 = raw_input("{Personnage}: ").capitalize()
   blanc = raw_input("Je pense que vous avez saisi le concept ! \nUne dernière chose; Que vous écriviez\nen minuscules ou en MAJUSCULES n'a\naucune incidence. Par contre, évitez d'inclure\ndes accents ou des caractères spéciaux dans vos réponses !")
   stage_1(entree)

 
while new_game < 1 or new_game >= 4:
   try:
      new_game = int(raw_input("\n1. Nouvelle partie\n2. Charger parie\n3. Quitter\n>>"))
   except ValueError:
      print cleaning, ("Entrez '1', '2' ou '3'")
if new_game == 1:
   personnage()
elif new_game == 2:
              # ---------f.open("save","r")
              #----------Unpickler.load(infos_joueur)
              #----------Unpickler.load(sauvegarde_joueur)
              #----------Stage(sauvegarde_joueur)
elif new_game == 3:
   print cleaning, ("\nAu revoir ! =] ")
else:
   print ("""Bravo, vous avez réussi à calculer plus vite que l'ordinateur, je
           ne sais pas trop comment vous avez fait mais... Surtout ne changez pas !
           (relancez l'application pour résoudre le problème)""")


Te moque pas, j'ai fait ça tout à l'heure dans le train en une vingtaine de minutes pour tester Very Happy

Je n'ai pas encore codé l'interpréteur, je ferai ça dans un autre fichier, pour l'instant je teste avec une variable par entrée, après je ferai ça avec une liste formatée pour que le joueur puisse rentrer des phrases complètes (écrire/lire des fichiers c'est beaucoup trop chiant à coder et je suis une faignasse).

Le stage_1 se termine sur stage_2 qui se termine sur stage_3 et-cetera.

J'espère que tu vois un peu le genre ? C'est loin d'être définitif hein, je regarde juste un peu comment ça fonctionne =]

____________


Dernière édition par KoZzY le Mer 23 Jan 2013, 16:43, édité 3 fois
Revenir en haut Aller en bas
http://e-magination.jeun.fr
AlexRE
Admin trop trizo Lv 65
Admin trop trizo Lv 65


Nombre de messages : 29430
Age : 29

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 16:34

@KoZzY a écrit:
je n'utilise pas "go north"(je ne vois même pas ce que c'est)
Le joueur tape ça pour dire "je veux que mon personnage sorte de la salle par le nord". Very Happy
Revenir en haut Aller en bas
http://www.alexzone.net
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 16:37

Ah d'accord Very Happy

Dans ce cas on fait la même chose, j'utilise "sortir - direction". Parce que "go" et "aller" sont utilisé pour aller vers les objets dans les rooms.

De toute façon si on tape "help" on a la liste des actions possibles (elles s'inscrivent au fur et à mesure)

____________
Revenir en haut Aller en bas
http://e-magination.jeun.fr
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60


Nombre de messages : 10881
Age : 19

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 17:27

Dans un jeu d'aventure textuelle, on est en général libre de ses mouvements et on se balade sur un genre de carte, mais bon tu fais la variante que tu veux après.

Je reste inférieur à toi en terme de codage, t'inquiètes pas lol. A part le pickler du site du zéro, je ne connais rien non plus pour la sauvegarde, ça me paraît suffisant perso, après à toi de faire ta propre fonction de sauvegarde.

L'idée de chaque module qui est une room me paraît tout à fait correcte.
Revenir en haut Aller en bas
http://arista.lescigales.org
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 17:39

J'ai envie de faire un RoomEscape en texte en fait. Résoudre des énigmes dans une pièce pour accéder à la suivante tout en essayant de conserver une certaine logique dans l'évolution.
Il n'y a pas que des interactions d'objets, il y a aussi des dialogues (comme dans un point n click) à diriger correctement, des passwords à trouver (genre en retournant un objet ou en fouillant en dessous d'un lit), des bouquins à trouver et à lire, des petites énigmes à la Resident Evil ... :P

Je ne sais pas encore si je vais donner la possibilité au joueur de revenir dans des pièces précédentes, je pense que oui mais je ne sais pas encore bien comment faire ça (à cause du système de sauvegarde).

ps: purée, je n'avais même pas pensé à créer une fonction de sauvegarde à appeler le plus simplement du monde... Merci AristA Very Happy (Ca sautait pourtant aux yeux...)

____________
Revenir en haut Aller en bas
http://e-magination.jeun.fr
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 17:48

Tant que j'y pense, AristA, tu ne connais pas les commandes systèmes (OS) liée à Python ? Genre changer la couleur du texte, centrer les caractères, souligner (si ça existe) et-cetera ?

Je cherche sur google mais ils disent que des conneries ou des commandes Windaube (et plutôt crever que taper system.color(2)) :/

J'ai pourtant tapé "help("os")" dans mon interpréteur mais je ne trouve rien concernant ces fonctions particulières, pourtant je suis quasiment sur que ça existe :/

ps: print("texte de la mort").center(x,x) semble ne pas fonctionner des masses dans un terminal...

edit: Ok j'ai rien dit...

print '\033[1;30mGray like Ghost\033[1;m'
2print '\033[1;31mRed like Radish\033[1;m'
3print '\033[1;32mGreen like Grass\033[1;m'
4print '\033[1;33mYellow like Yolk\033[1;m'
5print '\033[1;34mBlue like Blood\033[1;m'
6print '\033[1;35mMagenta like Mimosa\033[1;m'
7print '\033[1;36mCyan like Caribbean\033[1;m'
8print '\033[1;37mWhite like Whipped Cream\033[1;m'
9print '\033[1;38mCrimson like Chianti\033[1;m'
10print '\033[1;41mHighlighted Red like Radish\033[1;m'
11print '\033[1;42mHighlighted Green like Grass\033[1;m'
12print '\033[1;43mHighlighted Brown like Bear\033[1;m'
13print '\033[1;44mHighlighted Blue like Blood\033[1;m'
14print '\033[1;45mHighlighted Magenta like Mimosa\033[1;m'
15print '\033[1;46mHighlighted Cyan like Caribbean\033[1;m'
16print '\033[1;47mHighlighted Gray like Ghost\033[1;m'
17print '\033[1;48mHighlighted Crimson like Chianti\033[1;m'

x

____________


Dernière édition par KoZzY le Mer 23 Jan 2013, 18:11, édité 3 fois
Revenir en haut Aller en bas
http://e-magination.jeun.fr
Dragongaze13
Maker de Légende Lv 49
Maker de Légende Lv 49


Nombre de messages : 3882
Age : 19

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 17:57

C'est tout ce que j'ai trouvé mais à mon avis ça n'a pas trop de rapport, je ne savais pas quoi écrire dans Google exactement. x)

http://www.siteduzero.com/informatique/tutoriels/apprenez-a-programmer-en-python/executer-une-commande-systeme-depuis-python

http://en.wikipedia.org/wiki/ANSI_escape_code

Bonne chance sinon !
(On pourra tester ?)
Revenir en haut Aller en bas
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60


Nombre de messages : 10881
Age : 19

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 18:06

Hum, là je t'avouerai que je n'en ai absolument aucune idée. Il doit sûrement exister des bibliothèques pour créer sa propre console personnalisée, non ? Ou au moins plus personnalisable ?

Genre ça : http://pypi.python.org/pypi/colorama
Revenir en haut Aller en bas
http://arista.lescigales.org
garywiss6
Rétrograde Lv 54
Rétrograde Lv 54


Nombre de messages : 5175
Age : 21

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 18:11

man termcap Owi toutafé olala (pour info c'est une commande linux à taper)

____________
Un soir banal sur skype a écrit:
Moi : C'était quoi ce cri ?
Choco : C'est ma saucisse qui a hurlé.
Revenir en haut Aller en bas
http://vuesubjective.org/Garywiss/
Empty
Mangeur de manettes Lv 65
Mangeur de manettes Lv 65


Nombre de messages : 16363
Age : 30

MessageSujet: Re: Jeu de rôle (mode texte)   Mer 23 Jan 2013, 18:24

Bah moi je fais ça pour les couleurs:



Comme ça je dois pas le retaper à chaque fois, je n'ai plus qu'à utiliser mes variables comme des balises html lors d'un print.

garywiss: Merci pour le "termcaps", je ne connaissais pas =] (Par contre je vois bien ce qu'est la commande "man", faut pas charrier Nerd Sang )

AristA: Oui, il en existe mais j'ai des restrictions (je ne peux pas utiliser n'importe quoi pour mon TP) sinon je l'aurais fait avec ne serait-ce que Tkinter. De toute façon, on peut très bien se créer une fonction "traitement de texte" avec les commandes de base de Python en fait, c'est c e que je suis en train de faire.

Dragongaze: Oui je pense que je le distribuerai une fois le projet terminé, faudra que je me renseigne sur comment fonctionne le partage Linux / Windows par contre, je n'ai jamais tenté de convertir un programme pour deux plateformes différentes.

____________
Revenir en haut Aller en bas
http://e-magination.jeun.fr
Contenu sponsorisé




MessageSujet: Re: Jeu de rôle (mode texte)   Aujourd'hui à 00:09

Revenir en haut Aller en bas
 
Jeu de rôle (mode texte)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
E-magination :: LE VILLAGE ~ Forums de la communauté et de discussions ~ :: La Taverne-
Sauter vers: