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 !
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)
Citer : Posté le 02/05/2014 11:23 | #
J'en avais fait qui étaient assez réalistes.
Tu veux que je te les passe ?
Citer : Posté le 02/05/2014 11:26 | #
ouais stp
Citer : Posté le 02/05/2014 11:29 | #
#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.
Citer : Posté le 02/05/2014 11:33 | #
no seras bon merci