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 - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » Quelques règles de base pour faire un bon RPG
Totoyo Hors ligne Membre d'honneur Points: 16102 Défis: 102 Message

Quelques règles de base pour faire un bon RPG

Posté le 09/08/2011 16:21

Vous êtes souvent nombreux à vous lancer dans la programmation par un jeu RPG (ou jeu de rôle). Même si ce type de jeu est bien adapté aux calculatrices, il ne suffit de pas de quelques lignes de codes pour que votre RPG devienne un grand hit sur Casio. Ce tutoriel a pour objectif de donner quelques règles essentielles pour faire un bon jeu de rôle.

Avant tout chose, j'aimerai remercié Raylin de la communauté Omnimaga qui a écrit un tutoriel sur lequel je me suis fortement inspiré : Raylin's Rules for Making RPGs

Commençons par la Règle n°1 : Si vous débutez dans la programmation, ne commencez pas par une adaptation d'un jeu existant sur un autre support tel qu'un Pokémon, Final Fantasy ou tout autre titre. Vous serez vite confronté à des difficultés techniques que vous n'aurez pas envisagé par le suite (n'oubliez pas qu'une calculatrice n'est pas une GameBoy !!). Vous allez prendre beaucoup de temps, d'énergie et de motivation ! En bref, ne commencez qu'une telle aventure quand vous aurez des bases plus solides.

Règle n°2 : Première chose à faire, codez un système de combat digne de votre futur RPG. Ce sera l'une des clés les plus importantes. Personnellement, j'ai pris une année complète pour le développement de mon moteur de combat, et j'en était plutôt fier du résultat. Bon, j'avoue, je me suis un peu trop focalisé sur ce point, inutile de prendre autant de temps. Mais passez un bon mois sur cet aspect par exemple, ce n'est pas une mauvaise idée et fournira une base solide à votre jeu...

En complément, Règle n°3 : Variez vos formules ! Attaque, Défense, Vitesse, Gains, Niveau supplémentaire, Expérience... rendez le tout réaliste ! Imaginez qu'un petit niveau 2 puisse battre un boss niveau 10...

Règle n°4 : Une petite règle idiote, mais assurez-vous que vos menus soient les mêmes partout. Conserver une certaine cohérence dans les menus.

Règle n°5 : Dans nos contrées occidentales, les noms à connotation japonaise s'accordent mal avec les RPG. Faites en sorte d'avoir un gameplay solide !

Règle n°6 : Immergez le joueur dans votre univers. De sublimes graphismes ne cacheront pas un gameplay et un scénario pauvres. Innovez, c'est ce qui différenciera votre jeu de ceux des autres.

Règle n°7 : Chargez un maximum d'informations, de données et d'images (sprites, tiles...) dès le lancement du jeu. N'ayez pas peur d'imposer au joueur un chargement long (par contre, n'oubliez pas la barre de chargement, pour faire patienter le joueur). Mais bannissez au maximum les chargements intermédiaires, ils cassent le rythme du jeu et ne feront que nuire à l'expérience joueur.

Règle n°8 : Prenez le temps d'équilibrer l'évolution du/des personnage(s). Travaillez surtout les statistiques de départ et non pas ceux du niveau maximum. Mettez-vous à la place de ceux qui débuteront le jeu !

Règle n°9 : Écrivez l'histoire avant sur papier, cela vous aidera à organiser vos idées.

Règle n°10 : Codez toujours avec des sous-programmes, même si ce n'est que pour y inclure quelques lignes de codes. Cela vous aidera beaucoup par la suite !

Règle n°11 : Si vous programmez en Basic, n'oubliez pas que les Casio ont une mémoire assez limitée. Inutile d'écrire de longue phrase, sauf si c'est vraiment nécessaire. De même, n'hésitez pas à passer par le mode texte qui a l'avantage de faire des retour à la ligne automatiquement (ce qui n'est pas le cas du mode graphique). Ce ne sera certes pas des plus bels effets, mais sachez que tous les bons RPG-Basic sur Casio utilisent cette technique.

Règle n°12 : Mettez un maximum d'informations en tant que données (stats, ennemis, mouvements, textes des NPC, décors,...), sans pour autant que cela ne prenne trop de mémoire : limitez-vous à 8/16 Ko. Cela s'applique surtout aux jeux de type addin (application), mais optimisez au maximum la mémoire. D'ailleurs, à propose des sprites et tiles, favorisez les images de 8*8 pixels (ou dont les tailles sont des multiples 16*16 ou 4*4). Pour ce qui est du Basic, c'est un peu différent car ce langage ne permet pas de tracer rapidement des images. Pour cela, usez du DrawStat

Règle n°13 : Ne rallongez pas artificiellement la durée de vie de votre RPG en forçant le joueur à atteindre un certain niveau à avant de pouvoir continuer l'histoire. Variez également les difficultés, certains aiment montez rapidement en niveau, d'autres préfèrent farmer durement pour avancer. N'imposez pas la difficulté, mais adaptez-la selon vos joueurs.

Règle n°14 : En restant dans la même esprit, si vous souhaitez générer les statistiques de vos ennemis aléatoirement, sachez que c'est une technique qui apporte certes de la variété au gameplay, mais qui est très délicat à équilibrer. Prenez le temps de réfléchir et de tester ce point-là.

Règle n°15 : Exprimez le caractère de votre(vos) personnage(s). Il n'y a rien de plus étonnant qu'un voleur égoïste donnant son argent à tout va. Il faut que le joueur s'immerge dans la peau de son personnage.

Règle n°16 : Évitez de créer une arme ultime, surtout si vous décidez d'inclure un mode multijoueurs ou un boss secret.

Règle n°17 : Sur un papier, écrivez toutes les variables que vous allez utiliser. A droite, mettez celle que nous qualifieront de variables globales et à gauche, les variables locales. Les variables globales ne doivent pas changer de fonctions dans le jeu car elles contiennent des informations importantes (par exemple, le niveau du joueur, le degré de difficulté, la position du la carte...). Les variables locales quant à elle, peuvent être utilisées à plusieurs moments et pour différentes raisons. On peut dire qu'on les recycle dès qu'elles ont terminé leur fonction (par exemple, la valeur du getkey, du For, du gain d'XP...). Faites toujours attention qu'une variable ne soient pas utilisée plusieurs fois en même temps, surtout si vous faites appel à des sous-programmes.

Règle n°17 : Optimisez à maximum votre programme, mais soyez certain du bon fonctionnement de chaque ligne de code.

Règle n°18 : La chose la plus importante dans tout cela, demandez de l'aide si vous butez sur un problème !

Si vous en avez le coeur, vous pouvez aussi lire les clichés des RPG's au nombre de... 192 ! Bonne lecture : La Grande liste des Clichés des RGP's sur console


Ce tutoriel n'est pas une simple traduction de sa version anglaise, j'ai moi-même programmé plusieurs RPG (tel que la série Fight). J'ai également fait part de mes propres expériences. Si vous avez des questions ou des remarques, n'hésitez pas à poster un commentaire. Merci d'avoir lu jusqu'au bout !


Drake Hors ligne Membre Points: 203 Défis: 3 Message

Citer : Posté le 02/05/2014 11:17 | #


Je travaille sur jeu dans le même genre qu'un rpg classique mais beaucoup de mal à égaliser les formules pour les statistiques (qu'elles soient ennemies ou alliées)

se week-end arrivé de mon nouveau jeu blind, (oui il a mit pas mal de temps a arriver mais l'optimisation a pris pas mal de temps puis j'avais pas beaucoup de temps a moi)



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

Citer : Posté le 02/05/2014 11:23 | #


J'en avais fait qui étaient assez réalistes.
Tu veux que je te les passe ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Drake Hors ligne Membre Points: 203 Défis: 3 Message

Citer : Posté le 02/05/2014 11:26 | #


ouais stp

se week-end arrivé de mon nouveau jeu blind, (oui il a mit pas mal de temps a arriver mais l'optimisation a pris pas mal de temps puis j'avais pas beaucoup de temps a moi)



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

Citer : Posté le 02/05/2014 11:29 | #


#define _STAT_MAXNIV 100
#define _STAT_MAXEXP 1000000

typedef struct
{
  int PV,PM,PVmax,PMmax;
  int ATK,DEF,VIT;
  float atp,ati,dep, dei;
  int EXP,NIV,NLV;
  char name[9];
} Personnage;

Personnage perso;

void initstats()
{
  perso.PVmax=1000; perso.PV=1;
  perso.PMmax=25000; perso.PM=10000;

  perso.ATK=12; perso.atp=4.0; perso.ati=1.008;
  perso.DEF=12; perso.dep=4.0; perso.dei=1.008;
  perso.VIT=480;
  perso.EXP=0; perso.NIV=1;  perso.NLV=100;

  sprintf(perso.name,"Heros");
}

void lvlup()
{
  perso.NLV += (int)(((float)(perso.NLV)/2.0)/(1.+.128*(float)(perso.NIV)));
  perso.ATK += (perso.atp + (float)(perso.atp)*((float)(rand())/32768));
  perso.atp *= perso.ati;
  perso.DEF += (perso.dep + (float)(perso.dep)*((float)(rand())/32768));
  perso.dep *= perso.dei;

  perso.NIV ++;
  if(perso.NIV==_STAT_MAXNIV-1)  perso.NLV=_STAT_MAXEXP;
  if(perso.NIV==_STAT_MAXNIV) perso.NLV=0;
}


Si tu veux de plus amples explications, demande-moi.

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Drake Hors ligne Membre Points: 203 Défis: 3 Message

Citer : Posté le 02/05/2014 11:33 | #


no seras bon merci

se week-end arrivé de mon nouveau jeu blind, (oui il a mit pas mal de temps a arriver mais l'optimisation a pris pas mal de temps puis j'avais pas beaucoup de temps a moi)




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 121 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