NewbieContest

Programmation => Langages compilés => Discussion démarrée par: neoflo le 12 Juin 2006 à 15:31:27



Titre: [C] Jeux-vidéo
Posté par: neoflo le 12 Juin 2006 à 15:31:27
J'avais promi ya qqn mois de faire un cours sur la programmation de jeu-vidéo en C avec SDL, je vais juste donner le lien du jeu en question : http://neoflo.free.fr/boulder2/.

C'est une sorte de reproduction d'un vieux jeux amstrad CPC: boulder dash
J'ai utilisé les librairies SDL et SDL_ttf, mais j'ai crée un module graphique à part pour pouvoir changer de moteur assez rapidement, les sources du moteur sont dans /src/moteur_graphique et la documentation est dans: /doc/index.html

Il compile sous linux (si vous avez bien les librairies SDL et SDL_ttf) et sous windows (avec DevC++, il n'y a pas de problème, le fichier de tout le projet est dans: ./Boulder 2.dev, cela genère automatiquement le makefile.

C'est juste pour vous donner une idée d'un assez gros programme découpé en modules indépendants, avec des programmes de tests, et où le jeu est développé indépendemment du graphique.

En vérité, de passer à un graphisme bien mieux n'est pas très complexe, il n'y a qu'un module à modifier. Mais je voulais garder les graphismes originaux.


Titre: [C] Jeux-vidéo
Posté par: Folcan le 12 Juin 2006 à 16:18:53
Arf le nombre de fichier ^^

Sinon jolie...Faut que je me penche sur le code... :oops:


Titre: [C] Jeux-vidéo
Posté par: neoflo le 12 Juin 2006 à 16:44:25
A chaque dossier correspond un module:

Liste: j'ai implementé une liste qui est utilisé par un peu tous (liste de joueurs, liste d'ennemis, de diamants...)

Joueur: contient les fonctions d'initialisation des joueurs, permet de connaitre la position d'un joueur, savoir dans quelle direction il veut aller), lire le nombre de vie, le nombre de diamant qu'il a pris...

Pierre, diamant...: contient les opérations permettant de lire les directions (si ils sont à l'arrêt, si ils tombent), le type de diamant, le type de pierre, leur position...

slim : c'est une sorte de truc qui grossit dans le jeu, ya toutes les opérations dessus

evenement: contient les modules pour la gestion des touches et du temps

moteur_graphique: contient les opérations du moteur graphique de base

boulder_graphique: contient les opérations graphiques plus complexe directement en rapport avec le jeu,  contient les structures contenant tous les sprites, fonction pour calculer les origines du niveau, pour raffraichir l'image de tous le niveau, pour charger un sprite en mémoire vidéo...

niveau: conteient les opérations de chargement du niveau avec initialisation des structures

fichier: contient les opérations de bases sur les fichiers pour les niveaux

....


Titre: [C] Jeux-vidéo
Posté par: Nebelmann le 13 Juin 2006 à 07:27:25
Boulder dash !!!! :P :P :P
toute mon enfance ca, je teste ce soir ^^


Titre: [C] Jeux-vidéo
Posté par: neoflo le 13 Juin 2006 à 20:05:40
Je viens de changer une ligne dans un fichier car yavait une erreur de compilation sous linux, j'avais fini la programmation sous windows et je n'avais pas fait attention à ça sous linux, mais C bon, c'est réglé maintenant ;)


Titre: [C] Jeux-vidéo
Posté par: Ge0 le 17 Juin 2006 à 21:54:31
bravo neoflo ! ça à dû te demander beaucoup de boulot !


Titre: [C] Jeux-vidéo
Posté par: Nebelmann le 18 Juin 2006 à 09:17:00
t'es un dieu neoflo :)
exactement le même que sur mon amstrad (que j'ai abandonné au profit d'un portable 200 MHz)

par contre y'a pas de son, je me trompe ?
ah oui, et y'a aucun commentaire ausi... c'est très amusant à comprendre :?


Titre: [C] Jeux-vidéo
Posté par: Haldan le 18 Juin 2006 à 15:38:40
trop trop bien...
et dire que je me suis fait chier à acheter un nouveau PC pour faire tourner Oblivion... :cool:


Titre: [C] Jeux-vidéo
Posté par: Nebelmann le 18 Juin 2006 à 15:49:10
j'peux même pas y jouer moi... :cry:
juste le plaisir de le cracker, et encore ca fait plus ou moins planter olly...


Titre: [C] Jeux-vidéo
Posté par: Haldan le 18 Juin 2006 à 15:54:16
euh.. normal si tu as marqué T05 sur la boite à côté de ton écran =D


Titre: [C] Jeux-vidéo
Posté par: neoflo le 19 Juin 2006 à 15:10:12
non, il n'y a pas de son ! c'était pas super marrant à récuperer !

Sinon, vi les commentaires, yen a dans le .doc/index.html, sur certains module comme: moteur_graphique, liste, touche et je sais plus quoi. J'ai commenté que les trucs que je pensais pouvoir réutiliser plus tard.

Mais si vous avez un pb avec un truc pr comprendre, vous pouvez me demander.


En fait, ce n'est pas si long à programmer quand on sait déjà programmer en C et utiliser SDL. Faut bien découper les tâches, et ça se fait assez "facilement"


Titre: [C] Jeux-vidéo
Posté par: Nebelmann le 19 Juin 2006 à 20:43:06
à quand Harrier Attack ?


Titre: [C] Jeux-vidéo
Posté par: Invit le 19 Juin 2006 à 21:00:04
ou Bomb Jack :lol:


Titre: [C] Jeux-vidéo
Posté par: s3th le 19 Juin 2006 à 21:53:29
bobble bubble


Titre: [C] Jeux-vidéo
Posté par: Nebelmann le 20 Juin 2006 à 13:15:41
Oblivion... mais qui passe sur une GeForce 4 MX440


Titre: [C] Jeux-vidéo
Posté par: neoflo le 21 Juin 2006 à 11:30:20
Je voulais me lançer dans un nouveau jeu, de meilleur qualité, assez rapide, en 2D.

J'ai **No Sms** problème d'optimisation de mon module moteur graphique, j'ai parfois de léger ralentissement (je ne suis qu'à l'optimisation du moteur), alors, bon, si un jeu en 2D rame sur un P4, je dis que c'est grave !! Donc avant de passer à la suite, faudra que je régle le problème.

Si yen a qui ont des astuces d'optimisation avec SDL, je suis preneur, mais j'ai l'impression d'avoir fait tout ce qui était possible.


Titre: [C] Jeux-vidéo
Posté par: noitan le 07 Septembre 2006 à 13:23:04
Moi j'aimerais bien rejoué a un jeu mais **No Sms** rappelle plus le nom, chopflitter un truc dans le genre ou il fallait promener un **No Sms** helico de combat ^^.  amstrad cpc464 ou 6128 je me rappelle plus.

Merci pour ton boulot jvais essayer de comprendre quelque chose aux sources. Je suis un fan de boulder dash ^^ y'aurait il moyen de faire une version massivement multijoueurs ? :lol: .


Titre: [C] Jeux-vidéo
Posté par: lordOric le 07 Septembre 2006 à 19:58:52
Citation de: noitan
Moi j'aimerais bien rejoué a un jeu mais **No Sms** rappelle plus le nom, chopflitter un truc dans le genre ou il fallait promener un **No Sms** helico de combat ^^.  amstrad cpc464 ou 6128 je me rappelle plus.
Choplifter, oui.
http://en.wikipedia.org/wiki/Choplifter
Et encore, dans l'article, la liste des plate-formes supportées est incomplète. J'ai une cartouche du jeu en parfait état pour TO7.

Citation de: noitan
Merci pour ton boulot jvais essayer de comprendre quelque chose aux sources. Je suis un fan de boulder dash ^^ y'aurait il moyen de faire une version massivement multijoueurs ? :lol: .
Pour les très gros fans de Boulder Dash, je recommande fortement Rocks & Diamonds :
http://www.artsoft.org/rocksndiamonds/news.html
Outre le nombre de plate-formes supportées là aussi très impressionnant, c'est la modularité qui rend baba : les niveaux reproduit permettent aussi bien de jouer avec le graphisme et les niveaux des Boulder Dash de CPC, que de ceux du Supaplex pour PC ou d'autres. Bref, la liste des niveaux est telle qu'il est plus rapide de valider tous les challenges de NC que de finir ce jeu. :)