Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1479 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Medieval Freeworld

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Medieval Freeworld

n°1110985
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 13:15:03  profilanswer
 

HELLO   :hello:  
 
J'ai envi de coder un rpg  :sol: , mais je sais pas trop comment faire
Enfin, c'est surtout le debut, je sais pas d'ou et comment partir   :(
Je le coderai en C et en ncurses ( je suis debutant )  
 
Si quelqu'un pouvait me donner un coup de pouce  :)


Message édité par b0ugie le 03-07-2005 à 22:01:13

---------------
Une femme c'est temporaire - une ex c'est pour la vie.
mood
Publicité
Posté le 07-06-2005 à 13:15:03  profilanswer
 

n°1110993
Elmoricq
Modérateur
Posté le 07-06-2005 à 13:24:08  profilanswer
 

Eh bien, pour commencer, un projet de ce genre c'est peut-être 80% de conception, et 20% de code (chiffres au pif).
 
Comme ça, à vue de nez, tu dois concevoir le scenario, les graphismes, la musique (éventuellement), ainsi que les plateaux/zones/terrains/whatever. S'il y a des dialogues interactifs, tu dois prévoir tous les embranchements possibles.
 
Ensuite, tu dois réfléchir au meilleur moyen de stocker et d'utiliser tes données. Par exemple, comment coder un terrain ? Sous quelle forme stocker les animations d'un personnage ?
 
Enfin vient la partie programmation, du gateau (ou presque) une fois que toute la partie conception est réalisée.  
Ceci étant, je ne sais pas si c'est le projet idéal pour un débutant.

n°1111024
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 13:46:37  profilanswer
 

C'est vrai
Mais en faite, ça fait pas longtemps que je code, c'est pour faire un pti rpg
Enfin, rpg c'est un bien grand mot pour ce que j'ai derriere la tête :D
Pour le moment, c'est plus faire une carte avec un bonhomme qui navigue dessus et qui cherche des objets enfouient dans le sol :)
 
Je veux en aucun cas faire un truc compliquer et copieux pour le moment :)
Par contre si j'y arrive bien et que tout marche, je continurai surement avec plein d'autre carte, et des dialogues, enfin tous ce qu'il faut pour faire un bon RPG :p
 
En faite, mon probleme pour le moment, c'est le commencement.
Je voi pas trop comment geré l'affichage des carte, les caratcteristiques du bonhomme :/
 
Pour stocker les donnée je pensse me servir de un ou plusieur fichier, et des structures :p


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1111032
ali0baba
Posté le 07-06-2005 à 13:52:47  profilanswer
 

pour gerer l'affichage je vois pas trop comment tu pourrais faire en c  
tu devrai choisir un autre language comme le java par exple
 
et pis pour debuter, pour les caracteristique graphiques des personnage tu peux soit utiliser des images (en gif de preference) ou soit un ensemble de formes graphiques( genre un rond pour la tete, un carre pour le corps ...)

n°1111037
Elmoricq
Modérateur
Posté le 07-06-2005 à 13:54:37  profilanswer
 

ali0baba a écrit :

pour gerer l'affichage je vois pas trop comment tu pourrais faire en c  
tu devrai choisir un autre language comme le java par exple


 
 :heink:  
Tu n'as jamais entendu parler de bibliothèques ?

n°1111039
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 13:54:55  profilanswer
 

En C c'est faisable :)
 
Enfin, l'affichage sera gerée par ncurses (lib graphique en mode text)
 
Sinon en mode graphique, il y a une supêrbe lib : <SDL>, mais je viens just de decouvrir, et c'est dur de faire quelque chose avec :/


Message édité par b0ugie le 07-06-2005 à 13:57:33

---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1111042
ali0baba
Posté le 07-06-2005 à 13:59:36  profilanswer
 

Elmoricq a écrit :

:heink:  
Tu n'as jamais entendu parler de bibliothèques ?


 
pour debutant ?

n°1111043
cesarr89
Posté le 07-06-2005 à 13:59:59  profilanswer
 

ali0baba a écrit :

pour debutant ?


 
 :heink:


---------------
!== Force et honneur ==!
n°1111047
Elmoricq
Modérateur
Posté le 07-06-2005 à 14:01:12  profilanswer
 

Ce ne sont jamais rien que des fonctions à utiliser.  
S'il peut utiliser une fonction standard, il peut utiliser une fonction d'une bibliothèque x ou y.
Le tout est d'avoir la documentation à disposition, comme pour tout.
 
En Java ce serait pareil, il faut savoir de quoi hériter et quoi utiliser, mais au final les mécanismes de bases sont les mêmes.

n°1111078
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 14:13:27  profilanswer
 

Enfin quand je dit debutant, c'est debutant, mais je sais quand meme faire des chose :D
Genre je conais legerement ncurses, les sockets, SDL, SDL_ttf
 
Voila un aperçu de se que j'ai codé : http://bougieskater.free.fr/my_projects/
(j'ai pas codé trollim_serveur.c, t3.c, s.c, save_struct.c ), sinon, les rest say bien mwa :sol:


Message édité par b0ugie le 07-06-2005 à 14:13:45

---------------
Une femme c'est temporaire - une ex c'est pour la vie.
mood
Publicité
Posté le 07-06-2005 à 14:13:27  profilanswer
 

n°1111228
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 15:12:41  profilanswer
 

sinon, des suggestion sur le nom des struct et compagnie pour la gestion du perso et autre ?


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1111287
onizuka_se​nsei
Posté le 07-06-2005 à 15:32:31  profilanswer
 

y a la lib allegro pour faire des jeux en 2D assez facilement.  
http://www.allegro.cc/


Message édité par onizuka_sensei le 07-06-2005 à 15:32:43
n°1111306
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 15:39:53  profilanswer
 

de toute façon, c'est pas la lib graphique qui me pose probleme, j'en ai plein a disposition :)
Mais dans ce cas, je vais utiliser ncurses, je connais pas encore assez bien SDL pour me lancer dans l'aventure avec lui :/
 
Et puis les graphique du jeux, j'en suis pas encor là :)
Il faut deja que je code le rest avant l'affichage des perso et autres :D


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1111368
red factio​n
Posté le 07-06-2005 à 16:09:05  profilanswer
 

moi jferai dabord le truc tout simple que ta donné au debut :  
un personne qui fouille sur une carte
 
c pas complique a faire ca surtout que ta l'air davoir deja un bon nivo (enfin mieux que le debutant qui c juste aligne deux if)

n°1111381
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 16:18:22  profilanswer
 

Vi, c'est sur que je ve faire ce que j'ai dit au debut :)
Mais comme me dit tjs quelq'un : On pensse du code optimisé :D
 
Donc voila, je cherche la methode la mieux, la plus facile, et la plus upgradable apres, sachant que j'aporterai des amelioration :)
 
Dans un premiere temps, je pensse coder pour que le jeu gere :
 
- Affichage d'une map avec un perso dessus
- Un objet caché sur la map
- Deplacement du perso
- Affichage et edition de l'inventaire
 
MAP
- Creatio et affichage d'un map toute simple, juste composé de 0, de 1, etc
- Mise en couleur pour chaque chiffre
 
PERSONNAGE
- force
- endurance
- sagesse
- Attaque
- Defence
 
- Point de vie restant
- Point de vie total
 
INVENTAIRE
- Nombre d'objet max dans l'inventaire
- Nombre d'objet present dans l'inventaire
- Type d'objet present dans l'inventaire    


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1111388
red factio​n
Posté le 07-06-2005 à 16:21:50  profilanswer
 

qd tu parle d'objet caché c quoi exactement ?
 
dans le mm style que dans Zelda ?
 
sinon moi je creerai deja les structure du jeu avant de commencer
 
eg :  
struct player{
  ...
}
 
ainsi que la declaration des principales fonctions qui vont manipuler c structures

n°1111402
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 16:28:47  profilanswer
 

Oui, voila comme zelda :)
 
C'est ce que je penssais faires, créer les structures
Mais en faite, je sais pas trop combien et quoi mettre exactement dans les struct


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1111427
red factio​n
Posté le 07-06-2005 à 16:39:59  profilanswer
 

Code :
  1. typedef struct tmap{
  2.   int tile;
  3.   int hiddenitem; //-1 pas d'item
  4. }
  5. tmap map[64][64];
  6. typedef struct object{
  7.   int type;
  8.   ...
  9. }
  10. typedef struct inventory{
  11.    object obj[32]:
  12.    int objcount;
  13. }
  14. typedef struct tplayer{
  15.    char name[32];
  16.    int strenght;
  17.    int life;
  18.    int magic;
  19.    inventory pinv;
  20.    ....
  21. }


 
ex de fct a prevoir

Code :
  1. int loadmap(struct *tmap,char *filename);


autre ex
par pour balayer tous les obj du perso :
 

Code :
  1. for(i=0;i<player.pinv.objcount;i++){
  2. player.pinv.obj[i].type...
  3. }


Message édité par red faction le 07-06-2005 à 16:44:55
n°1111481
b0ugie
Cyber-DeepCloud Instructor
Posté le 07-06-2005 à 17:01:49  profilanswer
 

Ok, merci, ça m'aide beaucoup ça :)
 
Voila, j'ai presque tout pour commencer a coder
Il faut que je regle encors quelque petit truc, et hop, je me lance dans la grand aventure :D


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1111786
Emmanuel D​elahaye
C is a sharp tool
Posté le 07-06-2005 à 20:15:10  profilanswer
 

ali0baba a écrit :

pour gerer l'affichage je vois pas trop comment tu pourrais faire en c  
tu devrai choisir un autre language comme le java par exple


C'est quoi un language ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1111809
red factio​n
Posté le 07-06-2005 à 20:39:01  profilanswer
 

oh ca va tu va pas lui reprocher  de faire une faute de francais...
 
deja qu'il croit que le C ne sert qu'a faire des printf :D

n°1112422
ali0baba
Posté le 08-06-2005 à 11:50:24  profilanswer
 


Emmanuel Delahaye a écrit :

C'est quoi un language ?


 
tu fais jamais de fautes toi ?
ah ben si !!! j'en est trouvé sur ta page perso http://mapage.noos.fr/emdel/init_c.htm  :kaola:

n°1112427
ali0baba
Posté le 08-06-2005 à 11:52:05  profilanswer
 

red faction a écrit :

oh ca va tu va pas lui reprocher  de faire une faute de francais...
 
deja qu'il croit que le C ne sert qu'a faire des printf :D


 
et pis c'est la misere de faire un jeu en C
 
ya que les gens qui ne connaisent rien d'autre qui font des jeux en C

n°1112431
Elmoricq
Modérateur
Posté le 08-06-2005 à 11:53:14  profilanswer
 

ali0baba a écrit :

et pis c'est la misere de faire un jeu en C
 
ya que les gens qui ne connaisent rien d'autre qui font des jeux en C


 
[:hide]  
 
Tu as beaucoup d'autres âneries de ce genre en stock ?

n°1112463
Emmanuel D​elahaye
C is a sharp tool
Posté le 08-06-2005 à 12:03:31  profilanswer
 

ali0baba a écrit :

tu fais jamais de fautes toi ?
ah ben si !!! j'en est trouvé sur ta page perso http://mapage.noos.fr/emdel/init_c.htm


C'est possible, merci d'être plus précis...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1113041
b0ugie
Cyber-DeepCloud Instructor
Posté le 08-06-2005 à 18:04:54  profilanswer
 

Tres bien le tuto pour les debutants :)
 
Bon j'ai commencer a coder mon rpg, c'est dur :D
 
sinon, j'ai une ptite question :
 C'est quoi le nom de la touche entrer pour ncurses ??
 
 
 
EX : Fleche du haut : KEY_UP
     Fleche du bas  : KEY_DOWN
 
PS : Ceux qui veulent voir mon debut et me donner leurs avis :)
     http://bougieskater.free.fr/my_projects/RPG/
J'ai just coder l'affichage de la map, et je me suis créer une fonction pour un menu en ncurse
J'y arrivais pas avec la fonction dédié de ncurses :/


Message édité par b0ugie le 08-06-2005 à 18:07:41

---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1113043
archangel
Un homme Une vision
Posté le 08-06-2005 à 18:06:58  profilanswer
 

b0ugie a écrit :

Tres bien le tuto pour les debutants :)
 
Bon j'ai commencer a coder mon rpg, c'est dur :D
 
sinon, j'ai une ptite question :
 C'est quoi le nom de la touche entrer pour ncurses ??
 
 
 
EX : Fleche du haut : KEY_UP
     Fleche du bas :  KEY_DOWN


 
Tu dois sûrement avoir un include avec toutes ces informations.


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°1113046
b0ugie
Cyber-DeepCloud Instructor
Posté le 08-06-2005 à 18:11:57  profilanswer
 

Voila, je vien de regarder dans curses.h
le nom c'est : KEY_ENTER


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1113480
red factio​n
Posté le 09-06-2005 à 00:55:55  profilanswer
 

c pas mal pour un debut mais en jetant un oeil au source ya deja pas mal de trucs qui peuvent etre ameliores

n°1113611
b0ugie
Cyber-DeepCloud Instructor
Posté le 09-06-2005 à 10:08:32  profilanswer
 

Comme quoi par example ?


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1113805
TotalRecal​l
Posté le 09-06-2005 à 12:19:01  profilanswer
 

ali0baba a écrit :

et pis c'est la misere de faire un jeu en C
 
ya que les gens qui ne connaisent rien d'autre qui font des jeux en C


[:rofl]
 
bougieskater> vu que t'as l'air d'avoir un niveau décent (pour un "débutant" ) tu pourrais peut être utiliser la SDL plutôt que ncurses ? Dans un premier temps tu n'y verras pas d'avantage, mais si comme tu dis ton projet prend de l'ampleur ça serait bête de te trouver limité par les outils que tu auras choisis au début...

n°1113817
TotalRecal​l
Posté le 09-06-2005 à 12:24:39  profilanswer
 

b0ugie a écrit :

Comme quoi par example ?


Plutôt que des constantes pour caractériser tes personnages, tu ne pouvais pas utiliser des enum (bof) ou des structures avec une instance pour chaque type de perso ?
Sinon ton code est farci de fautes, en anglais et en francais (commentaires). tu risques de t'y perdre si tu ne fais pas attention aux noms de certains trucs, par exemple " unsigned int  Winsdom;  /* Sagesse*/" dans caractère, au lieu de wisdom.

n°1113903
b0ugie
Cyber-DeepCloud Instructor
Posté le 09-06-2005 à 13:40:21  profilanswer
 

C'est tout moi ça les fautes :D
Pour la SDL, j'en connai quasiment rien sur elle, alors que ncurses, je suis deja un peut plus a l'aise :)
 
Mais bon, si mon projet prend de l'ampleur, j'aviserai :D
 
Il faut deja que j'arrive à faire bouger le perso :p
Je pensse pas que ça me pose trop de probleme si j'y vais avec une methode bourrine :D
Mais mon but c'est surtout de faire du beau code, comprehensible :)


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1113959
red factio​n
Posté le 09-06-2005 à 14:02:24  profilanswer
 

Code :
  1. /* CaracterType */
  2. ChooseCaracterType[0] = "Archer";
  3. ChooseCaracterType[1] = "Cavalier";
  4. ChooseCaracterType[2] = "Guerrier";
  5. ChooseCaracterType[3] = "Magicien";
  6. ChooseCaracterType[4] = "Medium";


ChooseCaracterType[]={"xxx","ffff",...
 

Code :
  1. for(PosY = 0; PosY < 20; PosY++)
  2. {
  3.  for(PosX = 0; PosX <= 49; PosX++)
  4.  {
  5.   switch(Map1[PosY][PosX])
  6.   {
  7.    case 0:
  8.     attron(COLOR_PAIR(3));
  9.     printw("." );
  10.     attroff(COLOR_PAIR(3));
  11.    break;
  12.    case 1:
  13.     attron(COLOR_PAIR(1));
  14.     printw(" " );
  15.     attroff(COLOR_PAIR(1));
  16.    break;
  17.    case 2:
  18.     attron(COLOR_PAIR(2));
  19.     printw(" " );
  20.     attroff(COLOR_PAIR(2));
  21.    break;
  22.   }


tu pourrait te passer du switch , appeler simplement la routine daffichage suivant lindex du tile. bon ici c pas important mais pour la suite oui
 
imagine que les tiles sont une a la suite de lautre dans un bitmap 32x128 par ex
 
------------------------------
| | | | | | | | | | | | | | | |
-------------------------------
 
tu a le no du tile de la map puis hop tu laffiche directement
drawtile(x,y,tileno) et dans drawtile il fait le decalage direct
 
si ta 200 tiles tu va pas nous faire 200 switch  [:red faction]  
 
bon sinon tu peut deja le tester now ex:
char tileset[]="#-@";
printf("%c",tileset[tileno]);
 
ya aussi le if en bas avec le test pq ne pas mettre le printf directement dans le 2e for ? (if (PosX == 49))
 

Code :
  1. /* Archer */
  2. #define ARCHER_STRENGTH   7
  3. #define ARCHER_DEFENSE   5
  4. #define ARCHER_ENDURANCE  3
  5. #define ARCHER_WINSDOM   5
  6. #define ARCHER_ADRESS   9
  7. #define ARCHER_TOTAL_LIFE  50
  8. /* Cavalier */
  9. #define RIDER_STRENGTH   9
  10. #define RIDER_DEFENSE   5
  11. #define RIDER_ENDURANCE   7
  12. #define RIDER_WINSDOM   6
  13. #define RIDER_ADRESS   5
  14. #define RIDER_TOTAL_LIFE  150
  15. /* Guerrier */
  16. #define WARRIOR_STRENGTH  8
  17. #define WARRIOR_DEFENSE   6
  18. #define WARRIOR_ENDURANCE  5
  19. #define WARRIOR_WINSDOM   1
  20. #define WARRIOR_ADRESS   3
  21. #define WARRIOR_TOTAL_LIFE  90
  22. /* Magicien */
  23. #define MAGICIAN_STRENGTH  7
  24. #define MAGICIAN_DEFENSE  1
  25. #define MAGICIAN_ENDURANCE  3
  26. #define MAGICIAN_WINSDOM  10
  27. #define MAGICIAN_ADRESS   9
  28. #define MAGICIAN_TOTAL_LIFE  70


 
mm remarque qu'au dessus tout dans un tableau si tu risque davoir pas mal dautres perso
enum{
  MAGICIAN,
  WARRIOR,
  RIDER,
  xxx...  
}
puis apres taccede comme ca :  
perso[MAGICIAN].strenght /perso[MAGICIAN][STRENGHT]
 
 
le mieux aurait ete de mettre tout c info la dans un fichier binaire ou autre
moi jlaurai fait comme ca jdit pa que c la bonne methode
c des details c pas vraiment important mais bon vaut mieux que se soit bien au debut parce quapres :/

n°1114785
b0ugie
Cyber-DeepCloud Instructor
Posté le 09-06-2005 à 20:30:13  profilanswer
 

Vi je sais, la methode pour les caracteristiques des perso, c'est pas genial :/
Mais j'essaye de faire au plus claire pour moi :)
 
Sinon, j'ai pas trop compris ta methode pour afficher la map :s
Mais de toutes façon, je vais etre obliger de recoder, parce que j'ai l'intention de superposé 2 carte :)
- 1 carte qu'on voit :)
- 1 carte qu'on voit pas ( c'est cella ou il y aura les objets et uniquement eux :p )
 
Pareil pour definir le nom des items du menu :)
C'est surtout par souci de lisibilité dans mon code :)
Je trouve ça plus claire a mes yeux :p
 
 
 
EDIT : j'ai une erreur de segmentation des que je tape le nom de mon perso :/
si quelq'un pouvai m'aider :)
http://bougieskater.free.fr/my_projects/RPG/


Message édité par b0ugie le 09-06-2005 à 20:32:43

---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1114862
Joel F
Real men use unique_ptr
Posté le 09-06-2005 à 21:18:07  profilanswer
 

fout tes données de jeu dans un ficheir txt et lit le au demarrage ;)
separer le code des donnees c'est souvent une bonne idée

n°1114869
b0ugie
Cyber-DeepCloud Instructor
Posté le 09-06-2005 à 21:30:26  profilanswer
 

J'essaye de sparer le code des données au miximum :)
Mais je mets les données dans les header et non dans un fichie txt ;)


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1114872
Joel F
Real men use unique_ptr
Posté le 09-06-2005 à 21:31:57  profilanswer
 

ben c'est mal.
Tu es obligé de recompiler des que tu chaneg de donénes.
En les mettant dasn un txt externe chargé au demarrage, bah tu peut changer les donner sans recompiler ...
 

n°1114876
b0ugie
Cyber-DeepCloud Instructor
Posté le 09-06-2005 à 21:35:22  profilanswer
 

Oui, mais c'est beaucoup plus dur à gerer :)
Je trouve ça simple et facile de tout mettre dans les headers :p


---------------
Une femme c'est temporaire - une ex c'est pour la vie.
n°1114878
Joel F
Real men use unique_ptr
Posté le 09-06-2005 à 21:40:30  profilanswer
 

ecoutes tu code uen fois ton lecteur/sauveur de txt & c'est fini ... un bete liste key = value c'ets pas bien compliqué :D
je te demande pas de faie du XML :p

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Medieval Freeworld

 

Sujets relatifs
Plus de sujets relatifs à : Medieval Freeworld


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR