Création d'un moteur de jeu 2D - Programmation
Marsh Posté le 03-07-2001 à 10:55:38
ah! t'es encore là !
t'as avancé alors ?
moi j'ai pas eu le temps
t'as fait quoi de beau ? (ça veut dire, envoie tes src )
merci monsieur
moi je suis en stage alors je peux pas bosser mon jeu
un moteur de jeu, j'ai fait un bomberman en turbo pascal, je c pas si ça pouré tédé !!
Marsh Posté le 03-07-2001 à 11:02:07
Ben disons que le Pascal je connais pas, donc je pourrais pas lire le code, merci quand même.
Sinon concernant mon avancement, j'ai arreté DirectDraw. Et oui, je suis passé à Direct3D 8, car je me suis rendu compte d'une part que c'était pas la peine d'apprendre une API morte et d'autre part que c'était très simple d'utiliser des sprites avec Direct3D et que c'était plus rapide.
Voilà, la librairie D3DX8 est géniale, on peut aussi facilement dessiner des sprites qu'avec DirectDraw, et l'initialisation de D3D8 est plus rapide que celle de DirectDraw.
Je t'envois le code source du dernier programme que j'ai fais, il est en Direct3D par contre. Mais tu verras, c'est pas compliqué.
Marsh Posté le 03-07-2001 à 11:07:57
merci
ça c'est
t'as jamais fait de jeu ? même un tout petit ??
si tu veux ke je t'explik mon "moteur" de Bomber Park (TM) , taka demander.
Marsh Posté le 03-07-2001 à 11:13:36
Bah on peut assimiler le prog que je t'ai envoyé à un jeu, mais un tout petit alors.
En fait il y a pas de but dans mon jeu, c'était juste pour tester le scrolling et la gestion des collisions.
Sinon, je veux bien que tu m'expliques ton "moteur" de Bomber Park. Je veux même bien l'exécutable.
Marsh Posté le 03-07-2001 à 11:25:36
ok fodra ke je refasse un executable ! en plus y aura tt un petit tas de petits bouts d'fichiers par-ci par-là
attention
jouable à 4 sur un clavier sans aucun conflit
Cartman, Kenny, Stanley et Kyle avec 4 sprites chacun
objet : longueur des flammes
4 maps
je demande l'accord à mon co-développeur et si l'accord et ok, je te mailerai une version démo
si tu pouvais aller sur un chat ke je t'explique le moteur... caramail ? ca te va ? yahoo ?
Marsh Posté le 03-07-2001 à 11:29:08
pas de dx8 installé sur ce PC
ben oui je bosse, je suis pas cchez moi
Marsh Posté le 03-07-2001 à 11:30:32
Un moteur de jeu 2d?? quesako ??
Enfin je vois pas trop de quoi tu parle
Je peux toujours essayer de te donner une idee de comment on fait un jeu (tous les jeux, 2D ou 3D )...de maniere tres tres tres superficielle (parce que c'est long et complique et parce que c'est pas mon domaine )
1) On blit les sprites/animation sur l'ecran
2) On recupere les touches presses, les "events" des joueurs (un tel presse la touche "gauche", etc) etc
3) On update les variables, les objets en consequence. (On gere eventuellement les collisions, etc)
Et bien sur on revient a 1...jusqu'a ce que le jeu soit fini
Maintenant, j'imagine que j'ai repondu a cote
Marsh Posté le 03-07-2001 à 11:32:24
en tt cas ça a l'air suffisant pr faire un pacman ou un serpent
Marsh Posté le 03-07-2001 à 11:35:12
Quake3 aussi, je pense
Marsh Posté le 03-07-2001 à 11:43:55
marche po ton exe sous w98 ici !
je c pa si ca vient du hardware ( c 1 ATI rage pro)
vas-y debug alload !
Marsh Posté le 03-07-2001 à 12:04:34
en fait je suis d'accord avec Willythekid, un moteur 2d c'est pas tres compliqué comme un moteur 3d, y'a trois etapes importantes :
1° Calculs (positions de objets,interactions,collision,deplacement,...)
2° Affichage (décors + objets + effets éventuels + ...)
3° Recuperation des evenements et mise à jour des parametres/variables
Ben apres en affichage 2D, ca depend de ce que tu veux, il se peut que ce soit seulement des copies de sprites (copies de zone memoires) mais il peut y avoir la gestion des effets speciaux 2D (faire une explosion,tire d'une objet, fumée, ...)
Marsh Posté le 03-07-2001 à 12:08:43
Oki, ça je savais déjà. Mais je demandais juste si il y avait moyen de clarifier un peu tout ça.
Sinon, comment ça il marche pas mon jeu Nibbles1? Arf T'es sûr qu'il y a DirectX 8 installé? Sinon, ça vient surement du fait que la carte graphique est trop vieille, peut-être qu'elle ne supporte pas le color keying, les vieilles le font pas je crois. Et donc elle peut pas afficher les images.
Marsh Posté le 03-07-2001 à 12:21:33
ben si tu veux Alload, je peux essayer ton jeu chez moi et te dire si ca marche !!!
Marsh Posté le 03-07-2001 à 12:36:03
Pour tous ceux qui veulent bien tester mon programme et dire si ça marche ou pas:
http://www.multimania.com/final6/ShootEmUp.exe
Merci
Marsh Posté le 03-07-2001 à 13:35:24
Nibbles1 > Tu pourrais me mailer le fichier que je t'ai envoyé avec le code source du programme? Parce que mon ordi a planté alors que j'étais entrain d'éditer le code et maintenant j'arrive plus à l'avoir.
Marsh Posté le 03-07-2001 à 14:38:34
je sais pas
ok je te renvoie ça
merci qui
Marsh Posté le 03-07-2001 à 14:40:08
désolé
caramail est en cours de maintenance qui disent
Marsh Posté le 03-07-2001 à 16:27:40
allo alload !
je te l'ai envoyé
Marsh Posté le 03-07-2001 à 23:16:36
Pour le chat, on peut se faire ça sur ICQ sinon, mon UIN: 16189367 ou si tu as AIM: LordAlload .
Marsh Posté le 04-07-2001 à 00:58:32
Alload a écrit a écrit : Ben disons que le Pascal je connais pas, donc je pourrais pas lire le code, merci quand même. Sinon concernant mon avancement, j'ai arreté DirectDraw. Et oui, je suis passé à Direct3D 8, car je me suis rendu compte d'une part que c'était pas la peine d'apprendre une API morte et d'autre part que c'était très simple d'utiliser des sprites avec Direct3D et que c'était plus rapide. Voilà, la librairie D3DX8 est géniale, on peut aussi facilement dessiner des sprites qu'avec DirectDraw, et l'initialisation de D3D8 est plus rapide que celle de DirectDraw. Je t'envois le code source du dernier programme que j'ai fais, il est en Direct3D par contre. Mais tu verras, c'est pas compliqué. |
Je susi preneur du code moi aussi
Mais je crois pas que DirectDraw est mort, enfin, Diablo2 est tout de même fait en DirectDraw
Ta aussi des tuto pour Direct3D8 avec les sprites???
Moi j'ai déjè commencer un moteur en DDraw, tu crois que je pourais le migrer ver D3D8 assez facillement?
Marsh Posté le 04-07-2001 à 02:17:30
Alload a écrit a écrit : Pour tous ceux qui veulent bien tester mon programme et dire si ça marche ou pas: http://www.multimania.com/final6/ShootEmUp.exe Merci |
marche pas chez moi (win98 SE avec directX 8 installé)
Marsh Posté le 04-07-2001 à 09:41:43
Bon, le jeu marche chez personne...
Je sais pas d'où ça vient.
Ventilo > Ben bien sûr que tu pourrais adapter ton moteur à D3D, c'est vachement simple. Vas faire un tour dans l'aide de la librairie D3DX de la SDK, tu vas trouver une section qui parle de l'éléement D3DXSprite qui sert à afficher des sprites. Ensuite c'est à peu près pareil qu'avec DirectDraw. Tu spécifies un RECT pour la source de l'image, une texture où se trouve l'image à la place d'une surface, un vector pour indiquer l'emplacement du pixel haut/gauche sur l'écran, et quelques autres trucs et c'est bon.
Ce qui est bien, c'est que même si on est sous D3D, on est pas obligé d'utiliser des matrices ou des repères 3D, c'est simplement du DirectDraw amélioré qu'on fait.
Et en plus tu peux agrandider ou réduire l'image afficher directement ou lui faire subir des rotations.
Si tu veux de l'aide pour porter ton code, contactes moi: alload@hotmail.com.
Marsh Posté le 04-07-2001 à 16:59:55
eh si il marche chez moi ton jeu mais bizarrement ca rame un peu. J'ai une TNT et un PIII600E avec 256Mo de SDRAM et ca rame !!!
Ben sinon ca à l'air de bien marcher mais ton jeu est visiblement tres gourmand en ressources et la TNT ne suffit pas.
Marsh Posté le 04-07-2001 à 17:50:22
ben au buro le jeux marche 5 sec puis redone la main a win2k
Marsh Posté le 04-07-2001 à 18:03:12
bah chez moi ca tourne impec c fluide et ca ne plante pas.
Config :
Amd Thunderbird 800
256 meg de ram
ge-force 2 GTS 32mb
HD 46 gig + 15 gig
win 98 SE + Dx8
Marsh Posté le 05-07-2001 à 06:39:03
Je ne dirais qu'une chose :
[#ff0000]ALLEGRO RULEZ
Marsh Posté le 03-07-2001 à 10:52:55
Réflechissant à comment faire le mieux possible un jeu 2D (qui n'est plus un Shoot'em Up mais un jeu de course vu de dessus ), je me demandais comment créer un moteur de jeu.
Je pense que ce serait pratique de rassembler toutes les fonctions nécessaires dans une grande class moteur de jeu, mais j'ai du mal à me représenter comment l'organiser.
Un moteur de jeu se présente comment? On lui envoit des messages et lui utilise les fonctions qui sont assignées aux messages?
Aidez moi à comprendre la théorie.