begin process at 2010 09 03 03:18:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > PETIT DOOM LIKE EN OPENGL [VC++]

PETIT DOOM LIKE EN OPENGL [VC++]


 Information sur la source

Note :
9,36 / 10 - par 11 personnes
9,36 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Niveau :Débutant Date de création :31/01/2004 Date de mise à jour :29/02/2004 17:45:04 Vu / téléchargé :9 780 / 1 410

Auteur : djl

Ecrire un message privé
Commentaire sur cette source (108)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
le but du jeu : tuer tout les robots de la map puis trouver la fin (rond rouge sur le sol) le plus rapidement possible.

le menu option n'est pas terminer, le changement de mode video ne fonctionne pas
pour changer le mode video ==> le fichier str.cfg (les resolution possible sont 640*480, 800*600, 1024*768, 1280*1024 et 1600*1200 )

pour que le changement du filtrage de texture prenne effet il faut recharger la map


voici les lien vers les packs de textures :

http://membres.lycos.fr/sixmillesux/glace.zip
h ttp://membres.lycos.fr/sixmillesux/feu.zip
http:// membres.lycos.fr/sixmillesux/blue.zip

==> il suffit de remplacer le dossier data/textures par celui du zip


 Conclusion

commandes :
les fleches + la souris pour se deplacer
click gauche pour tirer
echap pendant le jeu pour acceder au menu

==> le mode noclip est activable/desactivable dans le menu option
en mode noclip:
click droit pour monter
crtl pour descendre

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip COS ET SIN PLUS RAPIDE QUE MATH.H
Source avec Zip Source avec une capture [C++/DEVCPP] EXPLORATEUR EN OPENGL
Source avec Zip Source avec une capture TABLEAU 2D GENERIQUE MATRICE...
Source avec Zip CLASSE PILE&TABLEAU GENERIQUE
Source avec Zip Source avec une capture LABYRINTHE 3D [OPENGL/VISUAL C++ 6.0]

 Sources de la même categorie

Source avec Zip Source avec une capture SNAKE CONSOLE par Maxou1012
Source avec Zip Source avec une capture YI KING, JEU OU ORACLE par AffreuxJojp
Source avec Zip Source avec une capture BEJEWELED EN C par marven23
Source avec Zip Source avec une capture SUDOKU NIVEAU FACIL, MOYEN DIFFICILE (GOOGLE) PAS AU PLUS par cool2source
Source avec Zip PUCKMAN PROJET C GEII par aurelbo

Commentaires et avis

Commentaire de djl le 31/01/2004 21:05:42

j'ai oublier de dir qu'il faut appuyer sur echap pour avoir le menu au cour du jeu

Commentaire de RTW le 31/01/2004 23:15:42

Ouais pas mal !
J'ai pas encore regardé les sources (vu l'heure ;p), mais je te promet que je le ferais demain.
Et bien sûr je te dirais ce que j'en pense. Et puis je mettrais une note.

Mais c'est déjà pas mal.
Bonne nuit et à deux mains (je sais, je suis nul...)

Commentaire de MoDDiB le 01/02/2004 10:09:28

Wow et un ptit 9 !! (pas 10 parcque tu a qu'un seul .cpp et que ta tout foutu les fonctions des classes dans les .h :p)
Mais sinon c'est vraiment géial pour tout ceux qui s'interesse a l'opengl et qui reverai de faire comem toi !!
Pour la suite de tyon ptit jeu il serait intéressant de :
-faire en sorte ke les robot tir sur le joueur une petite boule de vitesse moyenne (histoire de s'amuser a eviter
-povoir regarder vers le haut et vers le bas parcque c'est stressant sinon lol bon c'est optionnel ^^
-un pathfinding pour les bots
-D'autres textures parcque celle la donnent mal a la tete !!
Bonne chance !!

Commentaire de djl le 01/02/2004 10:22:26

merci pour les commentaires et la note ;)

MoDDiB==>
j'ai tout foutue dans des .h car je trouve ca plus pratique, j'inclu en cascade et j'ai pas besoin de compiler separement les fichiers, mais c'est vrai que c'est moin facile a reutiliser et que c'est pas tres propres

je vien de faire une maj avec une map en plus
pour les textures, ta raison je vais essayer de voir ca, mais je peut pas en mettre des tonnes vu que je suis limiter a 500ko pour l'archive

le pathfinding c'est quoi? c'est le bot qui trouve sont chemin a partir de points ?
mais le probleme avec les bots c'est qu'il prennent pas mal de ressource, d'ailleur tu peux le voir avec la nouvelle maj, le jeu devient plus fluide a mesure que tu les tue

pour le look up/down j'ai bien l'intention de le faire :D

Commentaire de MoDDiB le 01/02/2004 10:41:13

Oula c'est a dire ils prennent pleins de ressource? dans les jeux il peux y avoir des 100 aine de monstre sans poser de probleme tu leur fais faire quoi?? ^^
Ou c'est peut etre le fait que tu affiche tout et pas seulement ce qui est visible? je me trompe ?

Commentaire de RTW le 01/02/2004 10:52:51

Bon, j'ai regardé les sources.
Elles ne sont pas mal, mais un peu désordonnées, comme l'a fait remarquer MoDDiB.
Pour les textures, si tu pouvais changer ce serait cool (de toute façon je ferais les miennes ;)).
Pour les bots, n'affiche que ceux qui sont visibles et/ou dans un certain périmètre autour du joueur, et donne leur des points de passage afin qu'il puissent se déplacer par eux-mêmes.

Sinon c'est du bon boulot, vraiment.
Je te met un 8/10, et lorsque tu auras fais des maj (ce que je ne doute pas), je ferais grimper le thermomètre.

Bonne continuation djl.

Commentaire de djl le 01/02/2004 11:00:00

MoDDiB==>
oui j'affiche tout ce qui est visible, j'ai pas encore de moteur de partitionnement spatiale, mais je peut encore economiser le corps opengl, j'ai entendu parler des glArrayElement

les bots prennent donc beaucoup de ressource car ils sont tous afficher
et je leur fais faire pas mal de test pour eviter qu'il se supperpose(si 2 bots sont cote a cote et qu'il se dirigent vers moi ils finiront par se supperpose)
sans compter les cacul trigo pour les colision et les orienter vers moi... enfin c'est surtout l'affichage qui est couteux

RTW==>
merci pour le commentaire et la note

les bots se deplace tout seul, non? tu veut dire qu'ils aillent  n'importe ou?

je peut afficher seulement ceux qui sont dans un certaint perimetre mais le pb c'est que si je suis dans un piece tres grandes(tres profondent) on les verra aparaitre d'un coup !

Commentaire de RTW le 01/02/2004 11:07:36

Tout à fait djl, je veux bien dire qu'il aillent n'importe où, qu'ils soient autonomes.
Et pour résoudre le problème des distances, affiche tous les bots de la pièce ou tu te trouve, et réduit le périmètre d'affichage des autres.

Et, euh... pour la note, lorsque j'ai mis 8, je pensais que ça allait faire la moyenne ( (9+8)/2=8,5 ) !

Commentaire de djl le 01/02/2004 11:11:41

"Et pour résoudre le problème des distances, affiche tous les bots de la pièce ou tu te trouve, et réduit le périmètre d'affichage des autres.
"

comment je peut faire ca sans moteur de partitionnement spatial ? car a part les collision ya aucunes interaction avec la map, si ta une idee d'algo je suis preneur ;)

pour les bots je vais foire ca avec des points de controles

Commentaire de RTW le 01/02/2004 11:22:18

Il serait préférable de n'afficher que la pièce où tu te trouve, et les pièces visibles de ton emplacement.
Il ne faut donc plus charger le niveau d'un bloc, mais plutôt le sectionner en plusieurs petits blocs.
C'est plus lourd à mettre en place, mais ça te permettrais d'avoir une meilleur gestion des ressources (tu n'affiche que ce qui est nécessaire donc tu gagne de la mémoire et de l'utilisation CPU).

Mais il est vrai que dans ce cas tu devrais changer une bonne partie de tes sources !
Je vais réfléchir sur cette amélioration et j'espère pouvoir te donner assez rapidement un résultat.

Commentaire de djl le 01/02/2004 11:30:07

oui il existe plusieurs methode connue comme les bsp trees et les portals qui semble plus abordables, je vais mediter la dessus :D

Commentaire de LordBob le 01/02/2004 12:32:55

salut je trouve cette source excelent, j'ai pas encore regardé le code, mais je l'adore... mais peut etre fodrai t il ameliorer le gameplay...

Commentaire de MoDDiB le 01/02/2004 12:49:47

J'ai une idée pour affichier ke les bots visible : tu trace une ligne entre tout les bots et le joueur et s'il il n'y a rien entre les 2 tu affiches !!

Commentaire de Kirua le 01/02/2004 13:00:54

une question:
est-ce que tu dessines tous les polygones à chaque fois, où est)ce que tu mets en oeuvre une quelconque technique qui te permet d'"économiser" ? (remarque, je pense pas que ce soit nécessaire ici)

une remarque: je suis sorti de la sky box cubique (pour voir ;-)) et me suis rendu compte que tu dessinais aussi les faces extérieures de cette boîte, or on n'est jamais sensé voir ces pans. tu pourrais peut-être les dessiner seulement face intérieure (je suis certain que c'est possible, mais je ne sais plus quelle option il faut activer, c avec gl_enable je pense)

une appréciation: c'est trop fooooooooort :-D j'adore la map deux, je me suis excité dessus, c'est super ^^ tu as fait ça en combien de temps? ça devait être bien prise de tête en tt cas, et les collisions sont impeccables, les tirs également, franchement, ajoute des sockets et fais-nous un jeu multijoueur ;-) quand je vois ça je me dis que carmack il a dû suer qd même pr doom O_o il avait pas opengl lui

j'aime bcp en tt cas :-) et les musiques sont... euh... prenantes? ;-)

Commentaire de djl le 01/02/2004 13:35:30

kirua==> merci pour ce commentaires detaillé !

helas oui je dessine tout ...

pour la skybox, dessiner le coté interieur uniquement ca ve dir qu'il faut que j'active le cullfacing, je vais le faire(faut que je verifie que les faces sont toutes dessiné dans le sens trigo) mais ca te fera gagner en perf uniquement si la texture est tres grosse car ca permet d'economiser uniquement le fillrate qui n'est pas trop solliciter (textures a 2 balles)
sinon comment ta fait pour sortir de la map, ta augmenté la vitesse de deplacement?

sinon ta remarquer l'oscillation comment ca donne bien, yen a une double, le deplacement du joueur et la hauteur du gun qui varie le tout accompagner du bruit des pas

pour les sockets je sais pas si un jeu en rezo ca se fait comme ca, si je me souvien bien carmack avait du faire appelle a un specialiste pour la partie reseau de doom ...

MoDDiB ==> ok bonne idée, je vais faire comme ca mais ca va prendre un peu de temps, parce que je compte faire ca sans le moteur de colision(sinon ca va ralentir plus qu'autre chose)

LordBob ==>merci, pour le gameplay il faut faire quoi pour l'ameloirer?

Commentaire de Kirua le 01/02/2004 13:51:13

pour sortir de la map, j'ai laissé mon doigt sur la flèche VK_UP et j'ai attendu (pas mal de temps en fait ^^) puis me suis retourné, là j'ai eu confirmation de la forme (en fait, je voulais seulement voir si c t un cube ou une sphere, mais j'avais déjà repéré les arrètes du cube depuis l'intérieur) j'ai fait ça sur la map deux, parce que tous les bords de la carte ne sont pas des murs, ce qui m'a permi de sortir, voilà tout. j'ai pas changé la vitesse de déplacement.

vi, pour l'oscillation, je suppose que t'as utilisé les formules de trigono (sin, cos). ça avait fait l'objet d'une longue discussion sur un autre code source, aussi un début de moteur doom like de je ne sais plus qui, qui avait pas mal été mis à jour, mais est mtnt abandonné. d'ailleurs je pensé que t t là qd j'en avais causer, non ?

mais j'avais pas remarqué qu'il y avait un double mouvement, pas fait assez attention à ça, je regardais surtout les collisions et l'IA (qui est pas encore faite je suppose :-P à part se diriger jusqu'à soi)

j'ai aussi ouvert tes fichiers de map, je pense que tu pourrais améliorer ce format. déjà, je ne comprends pas pq il y a une ligne vide entre chaque entrée, ensuite, note qu'avec fstream, tu peux récupérer mot à mot, donc par exemple tu as ça:

SSH x1 x2 x3 z1 z2 z3
SSV x1 x2 x3 y1 y2 y3

et tu vois, tu dois plus mettre les virgules, et un retour chariot suffit. pour les récupérer:

ifstream fic("map.txt");  //ifstream pour les flux d'entrée (lecture), ofstream pr les sorties (in/out)

while(!fic.eof())
{
  fic >> type; //une char[3+1]
  //ici une batterie de if, else if, else selon le premier terme (SSx)
  fic >> x1;
  fic >> x2;
  fic >> x3 ...
}


j'ai pas lu ton code source, en fait tu fais peut-être déjà ça, mais c pas perdu pr tlm, voilà ^^ pr une référence super sur la std: www.cplusplus.com "reference" à gauche ds le menu, vers le bas.

je sais pas trop comment tu pourrais faire pr un jeu en réseau, y a bien sdl_net que funto66 et wett avaient utilisé pour créer Gaïa (que tlm connaît... comment ça non ?) mais faudrait leur demander si c'était bien fichu. et puis ça obligé à utiliser sdl, ce qui est plutot embêtant je trouve.

dis, pr le gameplay, déjà rends tes robots un peu agressifs, et donne une barre de vie à ton perso, affiche un chrono qui fait stresser comme pas possible (ça le fait tjs chez moi, dès qu'un jeu m'affiche un chrono, je stresse!) puis essaye de mettre au sol des objets sur lesquels on ne peut pas marcher, sinon badaboum! (un truc visible si possible ;-))


pr le fait que tu dessines tout, vu les ordinateurs actuels c plus un problème, y a pas bcp de polygones. mais c'est un luxe que JC n'aurait pas pu se permettre, faut pas l'oublier ^_^

Commentaire de djl le 01/02/2004 14:04:30

"aussi un début de moteur doom like de je ne sais plus qui"
lol, c'est une de mes sources
http://www.cppfrance.com/code.aspx?ID=18165

pour le format de mes map je compte bien l'ameliorer mais en passant direct au binaire
sinon pour les saut de ligne, et ben je suis obliger sinon ya quelques faces qui sont zapper, je suis pas un pro du streambuff !

pour le gameplay, l'idee des objets sur lesquels ont ne peu pas marcher me semble la plus rapide a faire, je vais essayer de voir ca !
de toute facon cette source sera mise a jour jusqu'a ce qu'il y ai plus rien a dire

Commentaire de Kirua le 01/02/2004 14:06:20

on aurait bien continué à causer sur l'autre si t'avais pas abandonné ;-)

Commentaire de Kirua le 01/02/2004 14:06:20

on aurait bien continué à causer sur l'autre si t'avais pas abandonné ;-)

Commentaire de djl le 01/02/2004 14:10:05

ouai mais sur l'autre j'etait vraiment pas sur de bonne base et j'avais fait le wave effect entre temps et j'y ai plus touché apres

Commentaire de djl le 01/02/2004 14:10:34

j'etais sur de mauvaise bases on va dir :D

Commentaire de Kirua le 01/02/2004 14:20:36

ça ira cette fois-ci non? tant que tes mondes excèdent pas quelques dizaines de milliers de polygones, ça devrait aller. je ne connais pas les capacités d'un ordi moyen de 2004 en terme de polygones calculés et affichés pour un ratio de FPS convenable (disons que 60 FPS c'est tt à fait convenable) qu'est-ce que vous croyez ?

Commentaire de djl le 01/02/2004 14:25:55

je suis plus trop le monde des carte graphiques, je peut de dire qu'avec tres peu de texture(pour pas etre limiter par le fillrate) une geforce 3 peu afficher pres de 20 millions de polygones en 1 secondes, soit a 60 fps une scene de 330000 polygones (mais c'est utopique)

Commentaire de sebos2013 le 01/02/2004 14:33:01

Il faut dire aussi que y a pas que les polygones dans un jeu, collisions, textures, lumieres, etc, ca ralentit l'affichage monstrueusement.
Sinon, ton prog est pas mal, mais ca pete les yeux (les textures).

Commentaire de Kirua le 01/02/2004 14:40:08

voui, et si t'ajoutes par dessus tout ça un script engine c'est d'autant plus de boucles et de récursivité à exécuter à chaque frame, ça fiche les boules ^^

Commentaire de djl le 01/02/2004 14:55:49

et cette charge vextex enorme doit etre traiter en amont par le cpu et encombrer le pont agp (je precise que c'est avec une source de lumiere cette perf)

Commentaire de Funto66 le 01/02/2004 15:33:51

Belle source ;)
Je viens de tester, le fullscreen ne marche pas chez moi, mais c'est pas ta faute, ça pose tjs pb sur mon ordi :(
Moi j'ai 11 FPS en 640x480 fenêtré sous ATI Rage 128.
Pour le cullfacing, ça marche comme ça :
glEnable(GL_CULL_FACE); // Activation
glCullFace(GL_BACK); // Tu dis que c'est la face de derrière qui ne doit pas être affichée
// On considère que les faces avant sont celles dessinées dans le sens
// inverse des aiguilles d'une montre.
glFrontFace(GL_CCW); // (CCW = Counter-Clock Wise)

Déjà ça sera pas mal comme amélioration, et je pense pas que ça prendra bcp de temps.
Pour les textures, je confirme ce qu'ont dit les autres ^^. Et c'est marrant y'a mon nom dans une de tes sources lol (cherche...:p je suis partout lol)
Ensuite, bien sûr, faudrait les arbres BSP ou les portals, je sais pas comment ça marche par contre.
Et le moteur de collisions a des ratés chez moi, sans avoir changé de vitesse. J'ai l'impression que c'est plus facile de traverser les murs en marche arrière...
Au niveau des musiques j'adore ! lol mais faut penser aux gros nulards comme moi qui n'ont pas fini le niveau alors que la musique s'est terminée, et passer la musique en boucle...

En ce qui concerne le réseau, dans Gaia's Fight que tout le monde connaît (:p) c'était Wett qui s'occupait de la partie réseau avec SDL_Net, moi j'y connais rien :( Mais comme l'a dit Kirua faudrait passer le projet sous SDL...ce qui serait pas si mal après tout, on pourrait le porter sous Linux :)

Voilà, bonne continuation, et abandonne pas ce projet-là !
Pour finir, je dirais comme les autres que la source est un peu.....bordélique...
PS : faudrait lui donner un nom à ce projet tiens...

Commentaire de Kirua le 01/02/2004 15:42:24

je propose nom de code Cruel Angel Kirua's Thesis (bon, pr les fans d'évangélion et de hunter x hunter...)

PS: je demande à djl ainsi qu'à la communauté de bien vlr pardonner ma tendance à sortir du sujet principal, merci. prière de m'ignorer quand je suis trop à côté de la plaque

Commentaire de djl le 01/02/2004 16:05:24

voila de nouvelle texture et les fps ne sont plus limiter(ce qui augmente les perfs en plus), d'ailleur la v-sync n'est pas obligatoire car tout est syncrho

Funto66==> le moteur de colision perd toute son efficaciter a 10 fps car la distance parcourue entre 2 frame est trop grande pour la precision du moteur, je pense qu'il est encore efficace vers 30 fps et qu'il l'est 100% a partir de 50fps, mais je reconnais que c'est un defaut

pour le cullfaing j'avais deja essayer mais mes faces sont pas toutes dessiner dans le sens trigo du coup la map est troué!

sinon pour la music, j'arrive pas a lire un fichier midi (un objet fsound stream) en boucle avec fmod, t'aurai un exemple vite fait?

sinon ce jeu je suis pas pret de l'abandonner!

Commentaire de Kirua le 01/02/2004 16:43:55

tain, c fou ce que changer les textures donne une nvlle vie à un jeu O_o il en jette bcp plus comme ça !! mais j'aimais qd même assez bien l'effet Virtual Reality des entraînements de Metal Gear avec les lignes lumineuses sur les murs/sols.

pr lire en boucle avec fmod, je sais pas trop, mais à défaut, tu peux tjs ajouter un truc ds la boucle de ton programme qui teste si le son est tjs joué, et à défaut tu relances la lecture depuis 00:00:00

Commentaire de nolius le 01/02/2004 17:47:22

moi il marche pas sur mon pc... :-(
j'aurais bien aimer le voir tourner
par contre j'ai regardé la source: t'en a écrit des tonnes
d'apres le screenshot ca a l'air pas mal

j'ai en fin réussi a deposé mon quakelike:
http://www.cppfrance.com/code.aspx?ID=20006

Commentaire de nolius le 01/02/2004 17:52:06

j'ai pas tester mais au vu de la source je met un 9/10 :-)

Commentaire de nolius le 01/02/2004 20:44:28

j'ai reussi a le faire marcher sous xp
pas mal du tout...
j'aime bien la music
bravo 9.5/10 (il faut le terminer)

Commentaire de djl le 01/02/2004 23:19:25

plus de precision sur les musics :
map1 ==> perfect dark, training
map2 ==> raiden project
map3 ==> street of rage, stage 1
map4 ==> perfect dark, niveau 1 datadyne
map5 ==> super metroid, brinstar

Commentaire de djl le 02/02/2004 20:13:35

MoDDiB ==> ton histoire de ligne ma donner une ide pour afficher uniquement ce qui est vu, je vais essayer de voir ca

maintenant la music est joué en boucle ! (et yen a meme une pour le menu)

et puis faudrait que je fasse un cahier des chose a modifier/rajouter car je sais plus trop ou j'en suis

Commentaire de Funto66 le 02/02/2004 23:27:17

C'est clair que les textures, ça change tout ! A la limite tu pourrais mettre au choix dans le menu, telle ou telle ambiance...mais bon ça fait pas très réaliste de pouvoir changer les matériaux d'une map :S
Les FPS c'est toujours pas ça chez moi (normal, toujours la même carte graphique pourrie :p).
Pour la musique apparemment t'as trouvé ^^ J'ai pas pu tester la musique pour des raisons...personnelles ^^

Commentaire de djl le 02/02/2004 23:44:16

faudrait aussi se renseigner sur les specification de ati rage pro car c'est pas sur que ca gere les coordonnees de texture flottante, a ce moment la glTexCoord2f serai assez couteux

Commentaire de Kirua le 03/02/2004 07:39:30

comment ça? moi j'ai tjs utilise des gltexcoord2f, je colle la texture sur un polygone quoi, y a moyen de faire autrement ??

Commentaire de lilington le 03/02/2004 13:50:44

Magnifique je done 8/10
8 parceque en fait on ne stresse pas tu aurais par exemple mis un temps pour eliminer tous les robots.
jolie la musique de "steet of rage".
donc c'est déjà génial
mis apart quelque petit bugs (commun à de grand jeu 3d "Splinter cell") comme voir derière le mur dans certain angle.

bref j'ai adoré.

Commentaire de djl le 03/02/2004 19:27:50

Kirua ==>
ba a l'epoque du rage pro, je sai pas si y avait des cartes qui gerait les coordonnee de texture reel, a ce moment je pense qu'il vaut mieux utiliser glTextCoord2i si tu veut optimiser pour les tres vieilles cartes (mais la c'est un choix a faire)

lilington ==> merci pour lez commentaire et la note ;)
je prend note de tes remarques concernant le stress !
ouai c'est kler que la music de sof est vraiment de bonne qualite et elle est tre proche de la vrai, c'est d'ailleur la plus volumineuse car c'est la plus instrumentaliser (midi inside!)

sinon pour les bugs je veut bien savoir c quoi histoire que je rajourte ca dans les chose a modifier

Commentaire de Funto66 le 03/02/2004 19:40:22

Pour la ATI Rage Pro, je pense qu'elle doit quand même supporter les glTexCoord2f(), elle supporte le multitexturing, alors je pense que ça...
D'ailleurs, au fait : pourquoi est-ce que tu utilises glTexCoord2f() et pas glTexCoord2i() ? T'en as un besoin particulier? Sinon à mon avis c'est du gaspillage inutile...Et j'ai pas vu de glissement de texture dans ton jeu.
A mon avis, le plus urgent maintenant c'est l'optimisation par portals ou arbres BSP. T'as des docs sur les BSPs sur Prografix en français, et puis y'a bien sûr NeHe aussi ;)

Commentaire de djl le 03/02/2004 19:59:22

si j'utilise pas glTexCoord2f c'est pour tracer une texture sur un plan dont les dimension ne ssont pas proportionnelle a la texture, mais vu que la plupart c'est pour de long mur et dans 99 % des cas pour des ratio > 1, si j'utilise glTexCoord2i je verrai pas la difference (enfin ca depend aussi du motif des textures), je voulais plustot eviter le pb sur les petites surface qui n'est aparament pas resolu, des que j'ai le temps je refou glTexCoord2i !

pour les arbre bsp je voit pas l'interet de l'utiliser tant que j'ai pas compris a 100% a quoi ca sert et comment ca marche car j'ai l'impression que c'est pa si evident que ca; en attendant je vais faire comme a dit Moddib et determiner pour chaque plan si il est cacher par un autre par resolution des systeme sur equation de droite (ca devrai pas etre trop lent car un bon proce tient le coup au niveau des calculs trigo, j'ai appeler plusieurs fois par frame les tests de collision et ca avit pas l'air de broncher...) ca c'est ce que j'appelerai l'espace proche, sur lequel seront calculer les collisions. ensuite a partir de cette espace je n'afficherai que ce qui est dans les 180° devant moi, voir si j'y arrive uniquement ce qui se trouve dans le frustum. je devrai gagner pas mal en perf car c'est vraiment l'affichage qui est le plus couteux.

Commentaire de djl le 03/02/2004 20:07:33

Funto66==> parait que la voodoo 2 ne gere pas les coordonnees de textures reels et pourtant elle gere bien le multitext, en une pass

Commentaire de Funto66 le 03/02/2004 20:40:14

La Voodoo 2 c'est encore plus vieux il me semble ^^
Ou sinon, je viens d'y penser : http://glinfrench.apinc.org/article.php3?id_article=50
C'est un truc qui fait que tu organises ta map en pièces et que tu n'affiches que ce que tu vois, selon la pièce dans laquelle tu te trouves... Enfin je sais pas si ça peut t'aider, surtout que dans certaines map on peut sortir totalement (on n'est dans aucune pièce)...

Commentaire de Kirua le 03/02/2004 20:45:49

ben ton truc funto c space, parce que dès qu'il y a une fenêtre c fichu O_o

Commentaire de Funto66 le 03/02/2004 20:47:47

euh....ouais c'est vrai lol
Bon, c'est simple, oubliez ce que j'ai dit ^^

Commentaire de djl le 03/02/2004 20:54:42

Funto66 ==> Voodoo2 c'est contemporain et plus puissant que rage pro !
le voodoo 2 gere le multi text en 1 pass (2 texel engine) alors que le rage pro le fait en 2

Commentaire de lilington le 05/02/2004 09:58:52

De rien.
pour les bugs il faut en fait les chercher.sur tout les maps 2 et 3
cherche les angle très aigu et regarde à travers le mur si tu n'es certain essais d'avancer et tu vera qu'il bouge pas evidement puisse qu'enréalité il est entre les 2 murs qui forme l'angle

Commentaire de djl le 05/02/2004 16:05:55

exact, j'ai remarquer pour la map2, sinon en longeant les murs il arrive qu'on reste bloquer, je sais comment corriger mais en ce moment j'ai une grosse flemme, donc je verrai ca plus tard
dans l'immediat je vais plutot rajouter des truc dans le menu (volume son/music, freelook, mode video), faire un menu high score et sauvegarde des scores, rajouter des map(mais c'est limite, je suis a 496ko au niveau du zip)
et afficher ub=niquement ce qui est vu(enfin presque) pour ameliorer les perfs et pouvoir faire des map geantes avec plein de bots!

Commentaire de Kirua le 05/02/2004 16:28:18

pr réduire la taille d'un exe (et dc pvr mettre plus de maps/Lres), tu peux utiliser l'excelent UPX (http://upx.sourceforge.net/) ça marche super bien !

Commentaire de Funto66 le 05/02/2004 18:11:07

Et pour réduire la taille du zip tu peux aussi passer à un format d'images compressé comme PNG ou JPEG ;)

Pour ma carte graphique : :(
Je pensais que......
Faut que j'en achète une nouvelle, là ça commence à devenir critique mon retard sur les PCs actuels lol
Enfin, pour être précis, Windows me dit que ma carte c'est : Rage Fury/Xpert 128/Xpert 2000...Toi qiu semble t'y connaître, c'est vraiment si pourri que ça? Est-ce que ça vaut une GeForce 1?

Commentaire de djl le 05/02/2004 18:22:05

Kirua==> je vais aller voir pour UPX

Funto66==> si c'est  une rage fury avec 32mo de vram alors c'est comparable a une tnt2 et donc loin derriere la geforce, surtout avec les jeux optimiser tnl
c'est d'ailleur l'asbence du tnl qui fait que c'est tres lent

Commentaire de Kirua le 05/02/2004 19:48:09

lu, j'ai cherché un petit peu pr TnL, et j'ai trouvé que c t un truc apparement prévu pr le hardware (mais émulable en software), entre autre nécessaire pr FF XI, mais je ne sais pas ce que c'est ni ce que ça veut dire. quid?

Commentaire de djl le 05/02/2004 20:11:41

tu connai pas tnl? on en a vachement parler a l'epoque du geforce 256

en fait avant geforce, a l'epoque de tnt2, voodoo 3 et rage 128, les puces graphique ne faisait que prendre en charge les primitive  en decoupant les surfaces complexe en triangles.
a partir du geforce 256 c'est different (en fait ca a d'abord ete le savage 2000), le geforce applique lui meme des transformation sur les polygones et de leur eclairage, ca decharge le cpu de ces calculs couteux et ca augmentant la puissance geometrique, c'est le tnl engine qui fait ca (transform and lighting)

le tnl sofware ne signifie rien, c'est juste pour preserver la compatibilité
le tnl engine presente aussi l'interet de disposer de fonctios precablé

Commentaire de Kirua le 05/02/2004 20:37:04

thx pr les précisions :-)

Commentaire de Funto66 le 06/02/2004 19:16:49

snif :'( Elle a bien 32 Mo de sdram....
Ca explique tout...
Ca vaut combien une carte actuelle? :p

Commentaire de Kirua le 06/02/2004 20:12:07

je dirais 100?, à tout le moins (sauf si tu prends une ati radeon de mes rêves, agaah mais ton proco suivra pas funto, dsl :-/)

Commentaire de djl le 06/02/2004 20:23:32

c'est sur que tu vera pas trop la diff entre une gf4 ti et la derniere radeon si ton cpu (600mhz, c'est ca?) bride les perf :D mais deja en passant d'une rage fury a une gf4 ti qui est assez bon marcher (prend une 4200, parait qu'elles s'overclockent facilement jusqu'a une 4600)
tu sera agreablement surpris!

Commentaire de Funto66 le 06/02/2004 23:08:20

100¤....ouais qd même c'est un investissement ^^
Mais d'un autre côté, je pourrais tester les shaders.....bah, dans tous les cas je pourrai pas avoir ça dans l'immédiat.

Commentaire de djl le 07/02/2004 09:29:53

pour 50? tu peux avoir une geforce 4 mx 440 avec sortie tv
c'est un peut comme une gf2 doper a la "geforce3" mais sans vertex ni pixel shaders programmable, en gros la puissance d'une geforce 3 et la technologie d'une geforce 2

Commentaire de Funto66 le 07/02/2004 11:16:46

Tiens, CppFrance ne permet pas d'écrire le signe euro : ¤.
Le '?' que vous avez marqué correspond aux francs, aux euros...?

Quitte à changer de carte graphique, autant avoir les shaders programmables....mais de toutes façons ça sera pas pour dans l'immédiat.

Commentaire de djl le 07/02/2004 11:18:05

voila une maj qui permet de reduire le nombre de surface afficher, pour voir de quel ordre serait le gain sur les config ou ca rame et a partir de combien ca devient jouable

Commentaire de Funto66 le 08/02/2004 09:57:11

Ben ça m'étonne mais....quel que soit le nombre de faces affichées, en tout cas au niveau 1 : je reste à 9 FPS O_o Et les FPS semblent pas varier beaucoup selon les niveaux (7 FPS pour le niveau 5), ni selon le nombre de robots tués...
Aussi, dans ton jeu c'est possible de tirer des balles qui traversent les murs (j'ai testé en mode filaire).
A parler du mode filaire : map 3, mode filaire, 100% de surfaces -> 8 FPS...
Donc, à mon avis ce qui ralentit chez moi ça doit pas être l'affichage...
Dans tous les cas je dépasse pas les 10 FPS. Pour info, niveau processeur c'est du PIII 600 MHz, c'est peut-être de là que vient le prob...
Si c'est à cause des ca

Commentaire de djl le 08/02/2004 10:08:06

essay cette maj, j'ai mis par defaut 640*480 en bilinear et dans le menu option tu a la distance d'affichage qui concerne les bots et les plans verticaux, je precise que quand un bot n'est pas afficher ya zeros calcul de fait sur lui (meme pas le deplacement), cette fois ci je pense que ca ramera beaucoup moins, j'ai vire la display list et je suis en train de medocumenter sur les glarrayelement par contre pour le cullfacing j'arrive toujours pas a avoir mes faces dessiner dans le mem sens, en fait ca ve dire quoi?

ps: cette version est chez moi 2.5 fois plus rapide (meme en affichant tout) et quand je reduis la distance d'affichage ca peut monter dans les 800fps (bien sur faut desactiver la v-sync pour faire les test, mais il vaut mieux la laisser activer pour jouer)

Commentaire de djl le 08/02/2004 10:15:44

oui les balles traverse les mur dans le sens ou on peut tuer un bot se trouvant derriere un mur mais ca sert a rien de le gere pour le moment car quand je pourrait determiner si un bot se trouve derriere un mur ca sera implicite

Commentaire de Kirua le 08/02/2004 10:54:51

ce serait pas normal qu'un PIII ne tienne pas devant un jeu de cette taille. il y a un problème qq part, c'est certain.

Commentaire de djl le 08/02/2004 10:58:10

oui c'est kler que c'est pas le p3, le probleme ca a toujours ete la carte graphique, on utilise des commandes opengl sans se demander quel en est le cout sur cette cg, je pense que ca vient de la et qu'avec la derbiere version ca devrait etre plus rapide

Commentaire de Kirua le 08/02/2004 11:00:30

dis, j'arrive pas à désactiver le V-Sync ds les options d'affichage avancées, c où? :-)

Commentaire de djl le 08/02/2004 11:03:53

propriete d'affichage(par ex clik droit sur le bureau) ==> onglet parametres==>avancé==>onglet qui porte le nom de ta carte(normalement, avec les drivers nvidia)==>parametre opengl et synchro verticale

Commentaire de Kirua le 08/02/2004 11:36:47

j'ai pas de maramètrres OpenGl, et j'ai regardé vrmnt partout, est-ce que c'est certain que je dois pvr le désactiver, ou c pas universel ?

Commentaire de djl le 08/02/2004 11:39:43

oui tu doit pouvoir, mais si tu trouve pas essay avec un tweaker comme nvmax(mais dois y avoir mieux)

Commentaire de Kirua le 08/02/2004 12:07:33

http://download.guru3d.com/pafiledb.php?action=file&id=362

j'ai téléchargé NvHardPage à cette page, ça me donne pleins d'options de config en plus, c'est surement une bonne chose. Alors j'ai désactivé le "vertical vsync"

je monte à 300 FPS avec un P4 2.26 et une nVidia GeForce3 Ti200, c'est étonnant non? (j'ai pris les options par défait du zip actuel, donc map 1, et en map 5 je suis autour de 200 FPS)

au fait, merci pr le truc du tweaker!

Commentaire de djl le 08/02/2004 12:48:14

voila, dans cette maj je triche en utilisant le fog(brouillard) pour masquer l'aparition spontané des surfaces, c'est une technique beaucoup utilisé dans les jeux

il peut encore y avoir qq bug d'affichage (surface qui ne s'affichent pas) losrque la distance d'affichage est trop courte, masi je vais corriger ca!

Commentaire de Kirua le 08/02/2004 12:55:44

ça donne très bien le brouillard !

Commentaire de djl le 08/02/2004 13:04:10

ouai, maintenant que j'ai essayer, je garde!
je vais quand meme rajouter un options pour le desactiver, et j'ai oublier de dir que j'ai rajouter une touche pendant le jeu, espace pour permutter mode filaire.

Commentaire de Funto66 le 08/02/2004 17:55:07

Maintenant je suis à 18 FPS, et 26 en mode filaire :) Ca devient tout à fait jouable maintenant :)
Pour le culling, c'est très simple en fait : imagine un triangle en 3D. Ce triangle a 2 côtés, 2 faces : une face avant et une face arrière. Quand tu regardes ce triangle en face (face à la face avant), cette face doit t'apparaître. Tu donnes un numéro aux 3 vertices qui composent ce triangle : 1, 2 et 3. Imaginons que tu aies ça :
3---2
\   |
   \ |
     1

Tu remarques que les vertices 1, 2 et 3 t'apparaissent dans le sens inverse des aiguilles d'une montre (CCW == Counter Clock Wise)

Maintenant, ton triangle tourne sur lui-même selon l'axe des ordonnées (1;2). Il t'expose maintenant sa face arrière:

      2---3
      |  /
      |/
      1

Or, tu vois là que les vertices 1, 2 et 3, sur ton écran, sont placées dans le sens des aiguilles d'une montre !

C'est comme ça qu'OpenGL peut déterminer si c'est la face avant ou la face arrière qui est affichée à l'écran.

Ensuite, je t'ai expliqué plus haut :
glEnable(GL_CULL_FACE); // Activation du culling

glCullFace(GL_BACK); // Tu dis que c'est la face de derrière qui ne doit pas être affichée

// On considère que les faces avant sont celles dessinées dans le sens
// inverse des aiguilles d'une montre.
glFrontFace(GL_CCW); // (CCW = Counter-Clock Wise)

Ca servira, par exemple, pour tes immeubles dans ton jeu : logiquement, on ne doit se trouver à aucun moment dedans, donc les faces "intérieures" sont les faces arrière, et tu ne dessines que celles de devant.

C'est....quoi le V-Sync exactement? :p

Commentaire de Kirua le 08/02/2004 18:06:28

le V-sync, djl avait déjà expliqué que c un "truc" (software je pense) qui permet de synchroniser le rafraîchissement de l'écran avec la carte graphique, pour que l'un n'aille pas plus vite que l'autre. concrètement, si ton écran est à 75Hz, les FPS seront limités à 75.

je me trompe ?

Commentaire de djl le 08/02/2004 18:15:06

oui c'est ca, la v-sync synchronize le nombre d'image genere par ta carte graphique avec le refreshrate vertical de ton ecran, ca permet d'eviter les effet de decoupe quand le framerate est eleve

Funto66==> merci opour ce tuto improvisé! je vais voir ca

Commentaire de sitesref le 08/02/2004 19:59:55

ça a l'air pas mal du tout, mais malheureusement il ne compile pas sous bcb6 car glext.h n'existe pas sous bcb6 (j'ai fouillé tout mon disque pour en être sûr). ce serait bien que tu le mettes dans ton Zip.

sinon c'est génial. ça me fait un peu penser à duke3d...

Commentaire de djl le 08/02/2004 20:13:43

merci,
ouia je vais le mettre dans la prochaine maj si ya la place, sinon si c'est juste ca l'erreur, tu enleve la dependance avec glext.h (#include <gl/glext.h>  dans def.h) et tu mets en commentaire les lignes qui genere une erreur(yen a 2, une dans Cterrain.h et l'autre dans def.h), en fait c'est juste que t'aura pas le filtrage anisotropique des textures

et dis moi si ca compile sous bcb6 !

Commentaire de djl le 08/02/2004 20:26:32

sinon tu sais ya l'exe aussi dans le zip

Commentaire de Kirua le 08/02/2004 21:09:06

bof, bien sur il y a l'exe mais je comprends bien qu'il veuille compiler lui même, ça lui permettra de "tuner" le prog, histoire de... :-)

Commentaire de djl le 08/02/2004 21:12:49

oui c'est vrai, mais glext.h on devrai pouvoir le trouver partout donc si quelqu'un a un lien, parce qu'il fait quand meme 147ko et j'ai pas la place dans le zip

Commentaire de sitesref le 09/02/2004 06:59:00

tu sais, si tu compresse avec winace qui compresse mieux, tu devrais pouvoir mettre le fichier glext.h...

Commentaire de Kirua le 09/02/2004 07:50:16

c'est des zip ici, WinACE utilise l'algo ZIP ?

Commentaire de sitesref le 09/02/2004 08:48:55

ben j'en sais rien mais on s'en fout, je suppose qu'on peut aussi bien mettre des .ace, non ? après tout, le but est que le fichier soit le mieux compressé possible, non ?

Commentaire de Funto66 le 09/02/2004 12:35:47

On peut pas mettre autre chose que des ZIPs, cependant, peut-être qu'on pourrait zipper un .ACE ou un .RAR ;)

Commentaire de djl le 09/02/2004 20:20:41

il me semble que l'algo de zip(lzw) est le plus performant pour compacter du texte
on peut tres bien foutre un .ace dans un .zip ou autre, meme si c'est incompresible on gagne toujours avec l'archivage

pour glext.h je l'avais pris dans un des exemples de glinfrench, et ca doit pas etre trop dur a trouver, il doit sans doute y etre sur nehe

Commentaire de djl le 22/02/2004 13:14:10

voila une maj avec le freelook et possibilité de l'activer/desactiver, d'inverser la souris et de regler la sensibilité toujours par le biai du menu options ou du fichier de configuration

Commentaire de Kirua le 22/02/2004 13:16:26

ah! on peut regarder en l'air mtnt! très bien :-)

Commentaire de djl le 22/02/2004 13:17:47

oui, par contre j'ai du virer le laser car c'etait ingerable avec le freelook

Commentaire de djl le 22/02/2004 19:35:54

encore une nouvelle maj avec cette fois 2 map en plus (map6 et map7) beaucoup plus grosses que les autres pour prendre parti du moteur
dans le menu options ya la distance d'affichage, si c'est fluide suffit de l'augmenter (pas besoin de recharger la map) par contre si ca rame il faut la baisser (logique, non?)

la map7 est particulierement difficile a terminer :D

Commentaire de Funto66 le 28/02/2004 02:05:36

Je viens de faire un test sur la map 6.
je tourne autour des 30 FPS (un peu moins) en fenêtré 640x480, c'est tout à fait jouable. On n'y voit rien dans ce brouillard ! lol
Ben franchement, je vois plus trop ce qu'il y a à redire....le jeu est tout simplement bon :)

PS : dsl de pas avoir posté plus tôt mais j'ai eu des soucis avec mon PC, une install Linux qui s'est mal passée...^^

Commentaire de djl le 28/02/2004 10:13:22

merci ;)
30 fps c'est pas mal, mais pour avoir cette perf tu met la distance d'affichage a combien?

Commentaire de Funto66 le 28/02/2004 12:37:23

Elle était à sa valeur par défaut, 200.

Commentaire de Funto66 le 28/02/2004 13:52:00

Je viens de faire une partie; pour les + gros défauts je dirais que c'est d'abord le fait de pouvoir traverser les murs, mais pas tout le temps, ce qui fait qu'on se retrouve coincé, c'est rageant !
Ensuite, c'est au niveau de la maniabilité, peut-être que c'est réglable je sais pas, mais quand on bouge la souris dans le jeu, notre vue bouge d'un "cran", je veux dire par là que pour un robot assez loin, si on veut lui tirer dessus on est soit trop à gauche soit trop à droite, mais on peut pas aller au milieu.
Enfin, chez moi quand je quitte il me restaure pas le mode vidéo initial :(

Commentaire de djl le 28/02/2004 14:02:17

traverser un mur, ca te le fait souvent? moi ca me l'a fait qu'une fois, apres il est possible que ce soit a cause du framerate peu elevé, mais il faut en effet que je change ca, d'ailleur je vais tout changer pour la partie collision

pour la maniabilite, oui c vrai, je croyait pourtant avoir resolu ce pb, je bouge la souris en fonction de son decalage, mais si ta une idee je suis preneur

pour le mode video, je n'ai pas ce pb et je maitrise pas trop cette partie :(

Commentaire de Kirua le 28/02/2004 20:10:05

djl, pour mon moteur de RPG (en 2D, c'est un peu différent) j'ai un principe qui m'a permi d'être assuré de ne jamais avoir de problème de collision à cause d'un framerate trop bas. ma fonction est du genre:

Perso::Avancer(int Direction, int Distance);

par exemple, si la distance vaut 3 (càd 3 pixels ds la direction spécifiée) ma fonction exécute tout comme si la distance était 1 (à 1 pixel, je peux pas me tromper! ça c'est du sûr!) et puis

if(Distance > 1) return Avancer(Direction, Distance-1);

donc je rappelle la même fonction avec Distance décrémenté, ce qui va permettre d'effectuer les tests jusqu'à épuisement de la distance.

mtnt, faut voir si c'est pas trop lourd à supporter en 3D, c'est une autre histoire!

Commentaire de djl le 28/02/2004 20:17:29

merci kirua, on m'avait deja dit ca, mais c'est juste que je gererait ca dans le prochain moteur de collision qui lui sera parfait, sinon j'ai vu ton site sur ton projet de rpg, c'est pas mal ;), et le jeu represente un sacre boulot !

j'ai ajouter des packs de texture (voir screen) et tout est indique en haut de la page dans "Description de la source :"

Commentaire de djl le 28/02/2004 20:19:19

il faut telecharger la derniere version pour utiliser les pack de textures

Commentaire de djl le 28/02/2004 20:37:07

en fait en 3d, ca sera pas un truc recursif, il suffit de filer au moteur de collision le vecteur de deplacement pour tester si sa traverse la face ...

Commentaire de LordBob le 29/02/2004 12:48:03

se doom like devient de mieux en mieux !!!

Commentaire de Kirua le 29/02/2004 12:50:06

ah oui, pas mal ça, c'est une excellente idée, mais tu vas devoir gérer plusqu'un bool en retour. tu y as probablement déjà pensé mais tu devrais renvoyer un vecteur, qui, si il traversait une surface, a été tronqué (rétréci). Si tu dis juste false, le joueur s'arrêterait à une certaine distance (indirectement proportionnelle au framerate) du mur.

les nouvelles textures en jettent en tout cas, c'est bête mais rien que modifier les couleurs ça donne l'impression qu'un travail bcp plus important a été fourni, alors qu'un moteur, ... ben c'est tjs autant de boulot!

Commentaire de djl le 29/02/2004 12:59:35

LordBob ==> cool merci, c kler les packs de texture ca amelior beaucoup le visuel, maintenant j'ai envi d'ajouter des effets comme reflection, detail mapping, bump mapping

Kirua ==> ouai  j'ai simplifier mais heureusement que le moteur de collision renvoi l'update du vecteur de deplacement, qui est lorsqu'il ya collision le projetter de l'ancien sur la face... sinon, impossible de gerer les reponses (glissement contre le mur)
enfin, il faut que je refasse tout avec des vecteurs :(

Commentaire de Kirua le 29/02/2004 13:01:02

tu devrais pas tirer la tête, les vecteurs c'est génial, ça te facilite la vie comme j'ai jamais vu :-)

Commentaire de djl le 29/02/2004 13:04:22

oui, mais va falloit refaire plein de truc
enfin apres c vrai que ce sera mieux :)

Commentaire de djl le 29/02/2004 17:49:23

voila, maintenant on peut activer/desactiver le mode noclip dans le menu options,

en mode noclip:
click droit pour monter
crtl pour descendre

comme ca ca  permet de voir a quoi ressemble les map vues de haut !

Commentaire de gouessej le 06/02/2006 12:15:35

Salut

J'ai jeté un coup d'oeil à tes sources et je voudrais savoir si tu penses que l'on peut les adapter pour qu'elle tourne sous linux. Je suis bluffé, c'est vraiment du bon boulot, c'est impressionnant!

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 13,868 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales