Medieval Freeworld - C - Programmation
Marsh Posté le 07-06-2005 à 13:24:08
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.
Marsh Posté le 07-06-2005 à 13:46:37
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
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
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
Marsh Posté le 07-06-2005 à 13:52:47
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 ...)
Marsh Posté le 07-06-2005 à 13:54:37
ali0baba a écrit : pour gerer l'affichage je vois pas trop comment tu pourrais faire en c |
Tu n'as jamais entendu parler de bibliothèques ?
Marsh Posté le 07-06-2005 à 13:54:55
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
Marsh Posté le 07-06-2005 à 13:59:36
ReplyMarsh Posté le 07-06-2005 à 13:59:59
ReplyMarsh Posté le 07-06-2005 à 14:01:12
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.
Marsh Posté le 07-06-2005 à 14:13:27
Enfin quand je dit debutant, c'est debutant, mais je sais quand meme faire des chose
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
Marsh Posté le 07-06-2005 à 15:12:41
sinon, des suggestion sur le nom des struct et compagnie pour la gestion du perso et autre ?
Marsh Posté le 07-06-2005 à 15:32:31
y a la lib allegro pour faire des jeux en 2D assez facilement.
http://www.allegro.cc/
Marsh Posté le 07-06-2005 à 15:39:53
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
Marsh Posté le 07-06-2005 à 16:09:05
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)
Marsh Posté le 07-06-2005 à 16:18:22
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é
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
Marsh Posté le 07-06-2005 à 16:21:50
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
Marsh Posté le 07-06-2005 à 16:28:47
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
Marsh Posté le 07-06-2005 à 16:39:59
Code :
|
ex de fct a prevoir
Code :
|
autre ex
par pour balayer tous les obj du perso :
Code :
|
Marsh Posté le 07-06-2005 à 17:01:49
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
Marsh Posté le 07-06-2005 à 20:15:10
ali0baba a écrit : pour gerer l'affichage je vois pas trop comment tu pourrais faire en c |
C'est quoi un language ?
Marsh Posté le 07-06-2005 à 20:39:01
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
Marsh Posté le 08-06-2005 à 11:50:24
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
Marsh Posté le 08-06-2005 à 11:52:05
red faction a écrit : oh ca va tu va pas lui reprocher de faire une faute de francais... |
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
Marsh Posté le 08-06-2005 à 11:53:14
ali0baba a écrit : et pis c'est la misere de faire un jeu en C |
Tu as beaucoup d'autres âneries de ce genre en stock ?
Marsh Posté le 08-06-2005 à 12:03:31
ali0baba a écrit : tu fais jamais de fautes toi ? |
C'est possible, merci d'être plus précis...
Marsh Posté le 08-06-2005 à 18:04:54
Tres bien le tuto pour les debutants
Bon j'ai commencer a coder mon rpg, c'est dur
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
Marsh Posté le 08-06-2005 à 18:06:58
b0ugie a écrit : Tres bien le tuto pour les debutants |
Tu dois sûrement avoir un include avec toutes ces informations.
Marsh Posté le 08-06-2005 à 18:11:57
Voila, je vien de regarder dans curses.h
le nom c'est : KEY_ENTER
Marsh Posté le 09-06-2005 à 00:55:55
c pas mal pour un debut mais en jetant un oeil au source ya deja pas mal de trucs qui peuvent etre ameliores
Marsh Posté le 09-06-2005 à 10:08:32
Comme quoi par example ?
Marsh Posté le 09-06-2005 à 12:19:01
ali0baba a écrit : et pis c'est la misere de faire un jeu en C |
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...
Marsh Posté le 09-06-2005 à 12:24:39
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.
Marsh Posté le 09-06-2005 à 13:40:21
C'est tout moi ça les fautes
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
Il faut deja que j'arrive à faire bouger le perso
Je pensse pas que ça me pose trop de probleme si j'y vais avec une methode bourrine
Mais mon but c'est surtout de faire du beau code, comprehensible
Marsh Posté le 09-06-2005 à 14:02:24
Code :
|
ChooseCaracterType[]={"xxx","ffff",...
Code :
|
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
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 :
|
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
Marsh Posté le 09-06-2005 à 20:30:13
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 )
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
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/
Marsh Posté le 09-06-2005 à 21:18:07
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
Marsh Posté le 09-06-2005 à 21:30:26
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
Marsh Posté le 09-06-2005 à 21:31:57
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 ...
Marsh Posté le 09-06-2005 à 21:35:22
Oui, mais c'est beaucoup plus dur à gerer
Je trouve ça simple et facile de tout mettre dans les headers
Marsh Posté le 09-06-2005 à 21:40:30
ecoutes tu code uen fois ton lecteur/sauveur de txt & c'est fini ... un bete liste key = value c'ets pas bien compliqué
je te demande pas de faie du XML
Marsh Posté le 07-06-2005 à 13:15:03
HELLO
J'ai envi de coder un rpg , 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.