Gamoover

Vous aimez GAMOOVER ? Vous avez trouvé la perle rare grâce à notre forum ?
Alors pourquoi pas nous soutenir en effectuant un petit don Paypal sur : contribution@gamoover.net
C'est peut être un détail pour vous, mais nous, ça nous aiderait beaucoup !

Debuter la programmation en C

Démarré par 9uile, Lundi 29 Novembre 2010, 15:25:17 PM

AsPiC

Ouep pi le flash c'est bien, c'est portable le flash môssieur !

:fleche: :fleche: :fleche: [Dehors]

=:)) :ang:

KodeIn

Et ce qui est génial avec le Flash, c'est les performances toujours à la pointe...


:fleche: :fleche: :fleche: suis la file de "sorteurs"
Atari 2600 | Spectravideo SV-328 :'( | Amiga 500 | NES - SNES - N64 - NGC - Wii - GBA - GBAsp - DSi | PS1 - PS2 - PS3 - PSP 2000 | MD - DC | XBox - 360 | MacBook | OpenPandora GHZ edition \o/
WIP [pause] : Borne Euro générique de chez Jeux COURTET
Tutos LaunchPad MSP430 001 - 002 - 003 - 004 en attente

th_vador

popopo, le flash, c'est pas un truc pour programmer, pour ça, on fait du flex!
:fleche: hop, avec les autres

Sinon, je plussoie pour la GBA, il y a des trucs pas mal pour aider comme ici par exemple.
De l'arcade, de la console, des conneries, du Giga Wing 2. TomTom's Lair quoi!
Recherche : Altered Beast (Master System) | Streets of Rage (Megadrive) | Une borne DDR | Un flipper

9uile

La GBA c'est bien mais moi je veux faire ça sous windows...

9uile

Tiens apparemment le XNA a l'air d'être un bon compromis ...

Bal

bah, tu sais, tu va sur googoole et tu tapes "game editor" et t'as pas mal de liens vers des box tout prêts ^^



Monstercrunch

Tu peux aller voir sur le site du zéro pour les tutoriel.

Pour le langage, j'ai commencé par le basic ( sur ma calculatrice ) puis j'ai essayé le C. Je trouvais ça trè sympa jusqu'à ce que je bloque sur un tp où je ne trouvais pas de solution à mes erreurs. Là je commence le python, qui assez simple et associé à Pygame ou Pysfml peut donner des trucs sympa (doc surtout en anglais).

A+

KodeIn

Citation de: 9uile le Mardi 30 Novembre 2010, 13:20:03 PM
Tiens apparemment le XNA a l'air d'être un bon compromis ...
Bah, si tu veux vraiment apprendre à tout faire à la main, évite le XNA.
C'est un tas de librairies dédiées au développement de jeux.
La plupart du temps, tu ne feras qu'utiliser des librairies sans vraiment ce qui se passe dans le code de ces librairies.
En plus, tu ne pourras développer que pour pc sous windows, xbox360 et windows phone 7, il me semble.
Alors qu'avec SDL ou du C "pur" tu couvriras la plupart des plateformes. (j'ai un macbook comme ordi principal, je peux te dire que je maudis la mention "windows only")

Atari 2600 | Spectravideo SV-328 :'( | Amiga 500 | NES - SNES - N64 - NGC - Wii - GBA - GBAsp - DSi | PS1 - PS2 - PS3 - PSP 2000 | MD - DC | XBox - 360 | MacBook | OpenPandora GHZ edition \o/
WIP [pause] : Borne Euro générique de chez Jeux COURTET
Tutos LaunchPad MSP430 001 - 002 - 003 - 004 en attente

Little_Rabbit

#24
Salut 9uile,

Allez, viens sur mes genoux, papy Lapin va te raconter une histoire !  8)

Bon OK, j'arrête de déconner.  :D

Personnellement j'ai commencé en autodidacte par le Basic, puis l'assembleur 6502. Durant mes études du Pascal, l'assembleur d'autres processeurs (Z80, 6809, 68000), puis le C et même un peu de Lisp et d'autres trucs.

Et après j'ai commencé à bosser. Dans quoi ? Le développement de jeux video  :D (ça tombe bien non ?). C'était chez Delphine Software : Flashback, Shaq Fu, Fade to Black, Moto Racer, pour ceux qui connaîtraient... Et pour tout ces jeux, on a bossé soit en assembleur, soit en C et C++. Ton choix du langage C est donc très sensé.

Je ne dirais pas comme tu l'énonçais que le C est la base de la programmation. C'est plutôt à mon avis un langage très bien structuré, avec des types de données évolués et avec lequel on peut tout faire. Il est aussi très "concret", très proche de la machine avec un contrôle de tout ce qui se passe. Mais en contrepartie c'est aussi un langage qui nécessite une bonne maîtrise car s'il te permet de tout faire, il te permet aussi de faire n'importe quoi, et donc d'aller dans le mur sans rien te dire ;).

Par conséquent, commencer à apprendre le C avec pour objectif immédiat de faire un jeu me semble un peu ambitieux. Il serait dommage que tu te décourages parce que l'objectif initial était mis trop haut. Personnellement je procéderais par étape.

- apprendre le C, avec des travaux par forcément très drôles mais formateurs. De sorte que tu t'inities à toutes les types de données (simples, tableaux, structure, dynamiques avec des pointeurs, etc.), toutes les formes itératives et les bonnes méthodes de structuration d'un programme pour ne pas prendre de mauvaises habitudes comme le conseillaient déjà d'autres personnes.
- se concentrer sur la mécanique du jeu et son gameplay (la présentation, le scroling de l'écran titre et tout ce qui va avec, quelque part on s'en fout, ce n'est pas ce qui te fera un jeu et en plus ce n'est pas forcément trivial sur une machine comme le PC).
- ton jeu "à la Bomberman", tu peux très bien le faire entièrement en mode texte pour commencer. Tu fais les murs de ton labyrinthe avec des - et des |, tes personnages seront des M et de A (ou ce que tu veux).
- je vais peut-être me faire mal voir mais un bon démomaker ne fait pas forcément un bon programmeur de jeux (ne me faites pas dire ce que je n'ai pas dit : je connais aussi des demomakers qui sont devenus dans le jeux des programmeurs encore meilleurs qu'ils ne l'étaient en démo ;)).

Donc en résumer :
- procéder par étape
- commencer par les fondamentaux de la programmation
- se concentrer sur la logique du jeu plus que sur sa présentation
- ensuite seulement aborder l'aspect graphique via les librairies appropriées
- finir par l'écran titre et toutes les fioritures qui vont autour

J'espère ne pas te décourager en te donnant mon avis ! :)

Amicalement,

Thierry
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

pierre512

// Attention, détournement de topic
Si y'en a qui connaissent Flashback?!  Je m'en voudrais d'être passé à côté! Pareil pour Moto Racer quelques années plus tard. Et avant tout ça, chez Delphine également, les Voyageurs du Temps m'avaient donné du fil à retordre sur mon pauvre PC en CGA...

^-^

// Fin du détournement, vous pouvez reprendre votre conversation

9uile

Merci papy lapin !! euh je peux descendre de tes genoux ? :P

Si tu peux me guider ca serait sympa car j'ai beau y réfléchir, je ne sais même pas par quoi commencer. Je suis assez courageux mais j'ai pas envie de me farcir moults tutoriaux qui ne me servirons pas pour ce que je veux faire.

Je suis plutôt partisant du : "bébé fait un pas..." :)

Donc mon premier objectif :

afficher un logo (image) et avoir un menu simple :
start -> ...le néant (pour l'instant)
quitter -> le néant aussi.

Peux tu me guider vers cet objectif allucinant ?

jcp

9uile : tu voudrais écrire un roman sans connaître l'alphabet ?
Ça ne va pas être facile ! (quoique le Visual Basic ...)

dapsaille

Citation de: 9uile le Mardi 30 Novembre 2010, 15:42:57 PM
Merci papy lapin !! euh je peux descendre de tes genoux ? :P

Si tu peux me guider ca serait sympa car j'ai beau y réfléchir, je ne sais même pas par quoi commencer. Je suis assez courageux mais j'ai pas envie de me farcir moults tutoriaux qui ne me servirons pas pour ce que je veux faire.

Je suis plutôt partisant du : "bébé fait un pas..." :)

Donc mon premier objectif :

afficher un logo (image) et avoir un menu simple :
start -> ...le néant (pour l'instant)
quitter -> le néant aussi.

Peux tu me guider vers cet objectif allucinant ?

Mes 2 cents (avec ma délicatesse habituelle hein ^^)


Tu restes bloqué sur l'aspect graphique du bouzin ... bizarre comme approche ..

Comme indiqué par notre papa rabbit (ouaiss flashback miammmmm... humm pardon) tentes déja d'apprendre les bases du C et une fois ces bases comprises, codes ton jeu en ascii ... tu auras déja fait 40% du boulot..

vouloir commencer par la fin vas te foutre dans le mur j'en ai peur  ;)

9uile

Euh désolé mais je répète que je ne veux pas faire un jeu. :ang:
Je souhaite juste apprendre a faire ce que j'ai écris dans le post un peu plus haut et si j'y arrive je verrai pour ajouter une fonctionnalité à la fois.
Je ne vois pas en quoi ça vous perturbe d'afficher une image (immobile) à l'écran. =?= =?= =?=

Sir Kayne

Hehe, il te lâche pas 9uile les membres, il te dise que faire un jeux c'est compliqué  :D
J'ai bien compris ce que tu cherches, afficher un bitmap, puis le faire bouger etc... par étape bien sur.

Je te conseil de commencer à prendre un programme en C du style "Hello World" et de le modifier pour faire apparaitre ton menus, tu verras déjà la philosophie du C (surtout si tu n'as que "scripter" en vbs).
Ensuite tu pourras chercher comment afficher une image, là aussi des exemples partout, ensuite comme faire bouger cette image, etc...
C'est pas compliquer, mais un peu dur à comprendre au debut.
Cherche : pédale d'accélération d'une Outrun Upright, Une Racingcab (outrunner ou Daytona), pcb RaveRacer, PCB Missile Command (he oui), une Spacegun et puis un flipper Raven (je l'aurais un jour...)
"Ne me dite pas que je ne peux pas faire quelque chose!" J.Locke

Little_Rabbit

Ben ce qui me perturbe c'est que ce n'est pas faire les choses dans l'ordre. Même pour afficher une image fixe il va te falloir initialiser une douzaine de bibliothèques, ouvrir un fichier, initialiser des structure de données, etc.

Il est fini le temps des machines où pour passer dans tel mode graphique tu tapais :
10 GRAPHIC 0,8,24
20 CLS

Sous Windows, tu devras te taper pas mal de chose avant d'arriver à un écran graphique vide. Tu auras déclaré et manipulé des structures de donnée, des pointeurs, fait moult appels, etc. Et si tu n'as pas pris le temps avant de savoir comment allouer une zone de mémoire dynamique, stocké sa valeur dans une variable de type pointeur, etc, tout te semblera du chinois et tu n'avanceras à rien.

Donc je renouvelle mes conseils : commencer par apprendre le minimum de la programmation en C, d'autant que la syntaxe du C peut-être assez subtile dès que tu commences à jouer avec des pointeurs, qu'il te faut passer des arguments par valeur ou par adresse => tu vas nager si tu ne connais pas ces rudiments. Je ne dis pas qu'il faut que tu apprennes pendant 6 mois le C, juste qu'il te faut connaître le minimum.

Vu que tu vises un dev sous Windows, le plus simple sera comme l'a déjà dit quelqu'un de passer par DirectX. Il faut donc que tu te trouves un environnement de développement C (c'est généralement Visual C de Crosoft qui est utilisé... peut-être y en a-t-il pour gcc ?). Installe-toi Visual Studio, le development kit de Direct X. Ensuite il y a plein de petits exemples fournis avec DirectX. Pour la partie dessin 2D qui t'intéresse pour l'instant, c'est Direct Draw qui répondra à tes attentes => récupère les exemples Direct Draw. Pour les entrées clavier ou joystick, je crois me souvenir que c'est Direct Input. Amuse-toi avec tout ça et cela devrait répondre à tes attentes.

Dernière précision : cela fait plus de 10 ans que je ne développe plus. Mes conseils en resteront donc au stade "générique", je serais bien incapable de te pondre une ligne de code pour DirextX, ni même de t'expliquer comment on installe Visual Studio ! ;-)

Bon courage.

Amicalement,

Thierry

Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room