JEU 3D OPENGL

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 19 déc. 2004 à 19:44
zenobiusz Messages postés 6 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 22 septembre 2008 - 20 oct. 2008 à 12:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28264-jeu-3d-opengl

zenobiusz Messages postés 6 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 22 septembre 2008
20 oct. 2008 à 12:10
Good.
cs_satri Messages postés 17 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 4 août 2007
28 juil. 2007 à 14:40
ton lien ne marche pas :(:(:(, (je sais que ca date de longtemps mais j'voulais voir ce que ton jeu donnait :()
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
24 févr. 2005 à 00:28
*J'ai fait un MD2 avec milkshape et je me sers aussi de MDL.
Je suis content je viens de finir mon premier "vrai" MD2 : une arme de CS(reste plus qu'à mettre des textures ...)
J'essaierai de la mettre dans mon jeu.
*Pour le HUD, comme je l'ai dit précédemment, c'est pas le plus important dans un jeu mais plutôt des finitions (selon mon avis) donc je verrai plus tard ...
*Je vais jeter un oeil sur ta source sur les particules.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
23 févr. 2005 à 22:46
"J'ai fait moi-même un modèle md2" COMMENTCOMMENTCOMMENT??????
avec quoi? merci...
oublie ca pour EndWorld... c'est un super jeu déposé y auun bail sur cs.
perso je trouve ca assez important le HUD ( Head-Up Display, affichage 'par dessus' ) , ca a un role tres important pour l' "accrochage", des caractères sur fond noir ca révule un peu (j'éxagere beaucoup)
et Kirua, pas besoin de demander a la prof de maths ( bêêê! quelle idée... lol ), cs est la pour ca... va voir ma source de particules, tu verras, ya qu'a trouver la matricec de la caméra, de faire quelques menues opérations pour trouver les vecteurs haut et droit, et c'est parti ! apres, tu fais:
glBegin(GL_QUADS);
glVertex3f( posX- taille*Vecteurhaut.x,posY- taille*Vecteurhaut.y,posZ- taille*Vecteurhaut.z);
//ca pour les 3autres points
glEnd();
et hopla boum, c'est fini!
bon évidement si tu veux de la transparence, il faudra d'abord classer tes particules par distance, pour ca, un tour chez Nehe, source sur le picking (sisi )
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
23 févr. 2005 à 16:01
GUI = Graphical User Interface
C'est tout ce qui constitue les menus et en fait tout ce qui propose une information à l'utilisateur / lui demande d'en fournir. En fait, j'aurais dû dire les HUD, puisque je parlais de l'affichage des scores, mais comme tu dis, c'est secondaire; et si tu abandonnes le projet, tu auras perdu plein de temps avec des bricolages, c'est pas drôle.
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
23 févr. 2005 à 15:52
A arnaud16022 :
*Le modèle du flambeau je l'ai trouvé sur le net avec un pack de modèle md2.
Sinon je prends des modèles sur polycount.
J'ai fait moi-même un modèle md2 mais il est pas super : c'est une une table :)
*C'est quoi EndWorld ???
*Les scores sont pas très beau, je l'avoue, mais ça c'est des détails que tu règles à la fin(donc dans longtemps...)
*Le fog sert pour le level 1 (sinon on a un fond noir et c'est pas très beau) mais j'ai oublié de le désactiver pour le level2.
*Le plafond est bas dans le level2 mais en fait c'est fait exprès : je voulais une impresion d'enfermement pour ce level.
Et puis c'est pas marrant si tous les levels se ressemblent...
*Tu demandes si les textures bougent ??? Si tu parles des flambeaux : oui

A Kirua:
*C'est quoi le GUI ??? ....
*Merci pour les précisiosn sur le particule engine.
Mais je pense pas le faire de suite ... c'est bientôt la rentrée :(
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
23 févr. 2005 à 14:11
C'est vrai que le GUI laisse à désirer.

Pour le particle engine, c'est vraiment simple. Il y a une subtilité, toutefois, quand tu le fais en 3D, et ça porte le nom barbare de Billboarding. C'est la même chose que dans Doom premier du nom: tu dois t'arranger pour que les carrés texturés qe sont les particules fassent tjs face à la caméra, et pour cela tu dois faire un peu de géométrie analytique dans l'espace (une sombre histoire de vecteurs ;)), mais si t'as 16-17 ans, ça doit être à ton programme scolaire. Sinon, demande à ton prof de math, il doit savoir ça (càd: trouver comment et où dessiner les particules, si tu connais le vecteur caméra (le vecteur qui est perpendiculaire à l'écran et qui rentre dedans si tu préfères) de façon à ce que toutes les particules soient perpendiculaires à ce vecteur ... ce qui veut dire parallèles à l'écran = font face au joueur)
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
23 févr. 2005 à 13:35
pour la taille du zip je comprens. mon jeu a moi fait 50Mo...
(bon OK avec tous les binaires debug & release, mais bon qd meme)
je dl ca dans une semaine, au lycée.
d'apres la capture:
c'est toi qui a fait le modele du flambeau?
toi t'as trouvé EndWorld, non?
les scores sont tjs aussi horribles....
j'aime pas trop le fog mais ca c'est perso...
c'est un peu bas de plafond...
elles bougent, les textures?

voilavoila...
++
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
23 févr. 2005 à 12:58
Tu as raison, mais en fait pour l'instant je l'utilise pas trop donc je me suis pas trop penché dessus.
C'était juste pour voir ce que ça donne.

Le jour où je me déciderai à l'utiliser vraiment, je le reprogrammerai moi même pour qu'il s'adapte à mon jeu.

Désolé pour la taille du zip mais avec toutes les textures et tout ... ça fait gros.

Je vais mettre une capture.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
23 févr. 2005 à 11:52
+1 : je suis entièrement d'accord avec Arnaud ;)
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
23 févr. 2005 à 11:30
ben vi, 3Mo c'est gros pr mon pov 56k
goutbouyo, dans l'historique tu dis:
"J'ai rajouté un moteur de particules(qui n'est pas de moi bien sûr !!! trop compliqué)."

quel est l'intéret alors , s'il n'est pas de toi ? OK, ca rajoute de l'intéret au jeu en lui meme, mais trouver une source de moteur ded particules tout le monde peut le faire. L'intéret est de reprogrammer le tou, histoire d'avoir un truc :
perso
compréhensible (par toi du moins)
correspondant a tes besoins
pas rippé

et je t'assure que c'est pas si dur que ca.
cs_Sumiko Messages postés 19 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 27 mai 2007
23 févr. 2005 à 09:32
Ne serait ti pas intéresants, de mettre une capture ?!

Cela permet d'avoir un aperçut, et de savoir ce que l'on télécharge,
nan ?!

Attention je ne dis pas que ta source est nul, au contraire....
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
21 févr. 2005 à 22:46
Je viens de faire une petite mise à jour :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
10 janv. 2005 à 08:32
pour les constructeurs de copie on utilise toujours des références constantes, c'est ce qu'il y a de plus logique.
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
4 janv. 2005 à 13:02
ah ouai bonne idée pour le type const !
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
2 janv. 2005 à 22:17
oui dans ce sens la OK, mais ton Vector m'a embrouillé: j'imaginais un Vecteur3d, et passer 4*3*8 bits ca doit pas etre vraiement beaucoup plus lent que de passer 4*8 bits.
d'ailleurs, ton truc est utilisé par glm (le loader de .obj de nate robins) ainsi que par plein d'autres fonctions...
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
2 janv. 2005 à 21:49
Arnaud >> l'intérêt de passer par référence, c'est d'avoir une exécution plus rapide.
Quand tu appelles une fonction, les arguments sont posés sur ce qu'on appelle la "pile", et même si le processus est très rapide, ça prend du temps.
Si l'on utilise une fonction du type :
void fonction(MaGrosseStructure la_grosse_Berte)
{
}
, si par exemple sizeof(MaGrosseStructure) == 50 ça va être long.

Si par contre tu fais :
void fonction(MaGrosseStructure& ref)
{
}

à ce moment-là seule l'adresse de l'objet passé en paramètre sera posée sur la pile, ce qui représente 4 octets -> ce n'est pas négligeable et ça coûte rien de le faire :)
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
2 janv. 2005 à 21:08
c'est où l'intérêt?
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
2 janv. 2005 à 21:08
C'est bien compliqué pour moi tout ça :)
Vais jeter un coup d'oeil à mon livre de programmation.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
2 janv. 2005 à 19:58
Hmm remarque d'un autre côté, ce ne serait pas possible de passer des références "constantes" ? (je veux dire :
void ma_fonction(const Vector& v)
{
// Ici v n'est pas modifiable
}
)
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
2 janv. 2005 à 17:50
c'est sur que pour la perf le passage par valeur c'est pas ce qui se fait de mieux , par contre si tu passes par reference ça peut se retourner contre toi ( sécurité des données)
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
2 janv. 2005 à 12:41
En désactivant le Z-buffer l'arme passe plus à travers les murs mais elle est moche ...

En fait je vais pas mettre d'effet de transparence aux particules, avec le fond gris ça marche pas top.

Je poste la mise à jour.
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
2 janv. 2005 à 11:59
Même en désactivant le Z-buffer ça passerait à travers les murs je pense ...
De toute façon c'est pas bien grave vu que dans des jeux comme CS ça arrive souvent :)

Je vais suivre ton conseil, merci !
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
1 janv. 2005 à 21:28
Tient autrement :)
Aller ca te prend 45 sec, tu devrais mettre des références dans tes fonctions mathématiques, genre:
CVector3 Cross(CVector3 vVector1, CVector3 vVector2)

mais
CVector3 Cross(CVector3 & vVector1, CVector3 & vVector2)


Avec un gestionnaire d'allocation (merci au tut de Loulou), on constate la perte de temps énorme que l'appel par valeur cause.
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
1 janv. 2005 à 21:21
Quand tu traces l'arme, faudrait désactiver le Z-buffer non ?
pour éviter qu'elle ne passe a travers le mur :)
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
1 janv. 2005 à 19:56
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
1 janv. 2005 à 19:48
Bon comme d'habitude, impossible de compiler, il y a une petite cinquentaine d'erreur. DOnc ce serait possible d'avoir l'exécutable dans le zip ?
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
1 janv. 2005 à 16:48
Bravo pour ton moteur de particules Kirua !!!
Ca m'a donné l'idée de diminuer la taille de particules au cours du temps et maintenat je vais voir pour l'opacité.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
1 janv. 2005 à 14:30
ah ouais, c'est vraiment élémentaire! tu as fait du billboarding, ça c'est très bien, mais il faut que tu ajoutes la notion de Vie (plus une particule est vieille, moins elle est opaque, et quand sa vie atteint 0, après un temps que tu définis et qui varie dans un intervalle pour chaque particule séparément, elle est complètement invisible: elle meurt, tu la delete et tu en récrées une dans le lieu de départ). tu peux voir un exemple de particle engine pas mal configurable à cette adresse mais en 2D, tu pourrais t'en inspirer (et faire bcp mieux ^^) pour rendre le tien plus souble, mais en 3D:

http://www.cppfrance.com/code.aspx?ID=23693
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
1 janv. 2005 à 14:06
Si vous avez téléchargé le zip contenant seulement les sources c'est normal car je l'avais pas mis à jour :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
1 janv. 2005 à 13:27
je ne vois pas non plus l'effet du particle engine
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
31 déc. 2004 à 19:32
mais bon sang il est ou ce particle engine ? ( j'ai pas executé l'exe ( oups pleonasme) ) mais je cherche le code uniquement !!!!!
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
31 déc. 2004 à 19:27
Je crois qu'il y a un fichier "tga.c" en trop non?
Joli le moteur de particules sinon :) Ça ferait bien pr indiquer la fin du niveau ;)
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
31 déc. 2004 à 17:48
je vois le moteur à particules dans le projet ? ou alors tu l'as jeté dans un des .cpp ?
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
31 déc. 2004 à 17:34
je viens de faire une mise à jour :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
31 déc. 2004 à 12:47
màj de temps en temps stp, qu'on ait la dernière version :)
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
30 déc. 2004 à 23:40
T'as raison et je viens de m'en rendre compte !!!
J'ai donc décidé de continuer mon petit jeu et je viens de mettre un moteur de particules !
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
29 déc. 2004 à 19:02
ben si tu veux mon avis c'est pas la peine de perdre ton temps à apprendre directX vu que tu connais OpenGL ... en plus directX c'est trop barbant
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
29 déc. 2004 à 17:23
salut,
Pour l'instant je vais laisser mon jeu comme ça parce que j'essaye de m'initier à directx (histoire de voir ce que ça donne).
Mais je pense que je reviendrai dessus plus tard ...
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
29 déc. 2004 à 12:40
Je t'en prie Kirua arrête de dire que tes sources ne serviront pas à personne , c'est faux ! et puis même si c'est crade ( comme tu le dis ) ça servira à bcp de membres ici !
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
29 déc. 2004 à 01:03
au risque de poster pour rien ajouter d'intéressant (je réponds, je ferai pas long), le premier est trop crade et pas assez indépendant pour être posté en tant que code, ça n'aiderait personne. le second je verrai bien si il me satisfait. vous avez le temps -_-.

quoi qu'il en soit, tu as décidé quoi par rapport au script engine pour ton fps, goutbouyo ?
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
28 déc. 2004 à 23:35
hum... tu pourrais pas poster tonpremier alors????
allez quoi !
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
28 déc. 2004 à 23:22
ben quand tu actives peut-être pas, mais qd tu rentres en contact avec de la lave par exemple, ou quand tu tombes dans dedans etc... fin bon, tu m'as compris quoi: des événements qu'il serait sale de hard-coder, et je vois pas pq les gars de Q3 se seraient privés d'un script engine, et mce serait super instructif que goutbouyo tente le sien [suis sur mon second en ce moment d'ailleurs, et c'est super à coder].
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
28 déc. 2004 à 23:06
"dans quake3 arena,aucun script"

bon a va peut etre changer ca par:
"en fouillant dans pk3, je n'ai trouvé aucun fichier qui ressemblât a un script"
ya une difference ;)

"mangent la vie quand on les active" -> lesquels???
par contrte en effet ya une map dans laquelle ya une piece (jusque la rien d'anormal...) et qd tu rentres dans cette piece ya des grenades qui giclent de partout et qui rebondissent dans tous les coins... ca ca ne doit pas etre intégré au code je pense... ?
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
28 déc. 2004 à 20:59
"dans quake3 arena,aucun script"

Je ne suis pas trop au courant, mais si tu dis vrai, je suis très très très étonné. Comment ils gèrent tous les événements d'interaction avec le monde? Chaque level a ses particularités, il y a des objets qui régénèrent / mangent la vie quand on les active / touche / casse etc... Je veux bien que ça peut se hard-coder, ou bien qu'on peut remplir une "fiche descriptive" pour chaque objet, du style: Action: [contact] / Effet sur la Vie: [-5] etc... mais c'est pas digne de Q3 ...
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
27 déc. 2004 à 22:49
N'empêche que les scripts sont utilisés dans les Unreal Tournaments (Unreal Script) et si tu décompresses les données de Doom 3 (du moins la démo) (faut renommer le fichier .pk4 en .zip) tu verras qu'il y a une bonne dose de scripts (dans un langage qui ressemble bcp bcp au C++, je ne sais pas ce que c'est, si jamais qq1 le sait, qu'il le dise :)).
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
27 déc. 2004 à 16:27
ohoh!
j'avais pas vu que tu avais posté ton jeu!
suis en train de dl.
j'ai lu ta remarque sur le RADIUS.
c'est un ENORME probleme du systeme de detection de collision de digiben.
en fait, une frame t'es en face du mur sans le toucher, la suivante t'es derriere le mur, sans le toucher. du coup sa routine n'a aucune raison de ne pas te laisser passer a trravers le mur.
j'ai pendant des jours entiers essayé de remédier a ce probleme, ce qui m'a amené a la solution de repli suivante: coldet.dll.

voila dl fini.
dis voir il est horrible le modele du gars! celui d'avant il était mieux... plus gros peut-etre?
deplacements trop lents (pas dur a modifier...)
balles mieux faites qu'avant (c'est tjs des cubes?)
l'arme a des déplacements zarbis.
texte pas transparents
pour moi ca vaut pas tout a fait 10 (disons 8-9) mais je vais pas te casser ton jouli 10/10
nota a tout le monde: perso je trouve que vous allez un peu loin. ce jeu n'en est pas a devoir implémenter un langage de script. perso j'ai déja un fichier dans lequel j'ai enregistrré 5 missions différentes les unes des autres, et c'est loin d'etre un script. de toute facon pourun fps, a quoi sert un script? les ennemis font tjs la meme chose: ils te tirent dessus
dans quake3 arena,aucun script (par contre des fichiers séparés contenant les phrses que les ennemis peuvent dire, et d'autres truc comme ca.
bref, ya moyen de faire bcp sans se lancer dans les scripts.
dsl kirua, je sais que t'aimes bien ca..
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
25 déc. 2004 à 10:21
clair pardon
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
25 déc. 2004 à 10:21
c'est clir qu'il faut être critique
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
24 déc. 2004 à 01:26
Broumf, alors j'ai lu l'article entier, enfin, survolé le code rapidemment mais lu tout le texte, et franchement, même si ça marche, c'est très limité. C'est une approche intéressante (assez élégante), mais... on n'y présente pas de manière intelligente d'intéragir entre mémoire du programme et variables scripts (on a souvent besoin de données du jeu en cours dans le script, et on doit aussi pouvoir les modifier!), on n'a qu'un seul type de variables, la syntaxe est ... moche :D
(exemple, pour faire l'équivalent de int a = 5; il faut écrire:
var a;
exp a~5;
)

... sauf erreur ^^.

Hmmmm, m'enfin, il y a qd même des conditionnelles et des boucles, ça se défend quoi, vaille que vaille... ça mérite d'être lu à tout le moins, mais ne te lance pas dans un clone de ça, c'est pas assez relevé, tu aurais pu pondre pareil sans cet article.
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
23 déc. 2004 à 16:39
pas mal le fps ,peut être qu'il faudrait modifier tout ce qui touche aux maths à ta sauce ( gestion de la caméra par exemple )..
sinon j'ai trouvé une doc sur le scripting ici c'est en anglais ça devrait pas poser problème ^^ :
http://www.pixelate.co.za/issues/14/articles/script/asmcomp.html
bon courage pour la suite !
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 déc. 2004 à 21:49
Pour le langage en lui-même, c'est juste une syntaxe à apprendre, je dis pas. Ça a en tout cas l'air très puissant.
Mais pour l'intégrer dans ton projet, j'ai le pressentiment que ça va vraiment être le bordel :-/ J'ai pas testé Lua précisément à cause de ça.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
22 déc. 2004 à 15:35
pk tu dis ça Kirua? T'as déjà testé Lua? C'est si chaud à apprendre et utiliser?
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 déc. 2004 à 14:39
tu en trouveras plein, mais honnêtement, ça risque d'être plus long d'apprendre à utiliser Lua que de coder ton propre engine... enfin, si d'aventure tu avais le courage d'aller jusqu'au bout de la compréhension, poste-nous ça ;)
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
22 déc. 2004 à 14:02
J'ai du mal à trouver des exemples pour les scripts et comme je n'en ai jamais utilisé ...
Je vais voir si je trouve des codes de Lua.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
21 déc. 2004 à 02:00
PS : si tu préfères repiquer qqch d'existant, la référence dans le domaine est Lua, qui est fait pour ça ;)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
21 déc. 2004 à 02:00
Tu comptes créer ton langage tout seul ou repiquer qqch d'existant?
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
20 déc. 2004 à 15:15
Merci pour ton aide Kirua !!!
Je vais tenter de trouver un programme utilisant des scripts pour voir à quoi ça ressemble.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 déc. 2004 à 15:04
Si je peux te conseiller, pour m'être frotté quelque peu à la question, je te conseille de rester dans le champ des scripts interprétés. N'essaye pas tout de suite de faire un langage compilé ou semi-compilé, c'est compliqué.

Basiquement, voilà comment tu vas devoir t'y prendre:
- lire le script et en isoler chaque "lexème", càd chaque élément (mot clef, opérateur, valeur numérique, chaîne de caractère)
- sauvegarder la liste des éléments constitutifs du script une fois pour toutes (càd jusqu'au prochain lancement du jeu, évidemment faut tout reloader à chaque lancement) dans un gestionnaire de scripts
- quand le script est appelé, lire les lexèmes 1 à 1, et te baser sur le lexème pour interpréter la suite. Exemple:

int VarInt = 5;
if VarInt <= 10 then
Display "Bonjour";
else
Display "Au revoir";
endif

Là, tu vas d'abord lire "int", et donc tu sais que tu vas avoir une déclaration de variable. Tu lis donc dans l'ordre "nom de la variable", "opérateur d'assignation", "valeur", "fin d'instruction". Si tu ne trouves pas ça, tu déclenches une erreur de parsage (syntax error).
Après, tu liras "if", tu sais que tu dois avoir "expression", "opérateur de comparaison", "valeur". Tu évalues l'expression (il te faut une classe de gestion d'expression arithmétiques et logiques) et selon le cas tu sautes à "then" ou à "else", et là ben l'interprétation continue. Display serait le nom d'une fonction qui affiche un message à l'écran ou dans la console par exemple.

Note: je te conseille de ne pas permettre à l'utilisateur de créer de fonctions ("sub" en basic) et de ne pas donner de valeur de retour aux fonctions, mais de faire qq ch comme ceci:

int NbEnnemis = 0;
GetNombreEnnemis NbEnnemis;
//maintenant la vairable NbEnnemis contient le nombre d'ennemis

C'est 10 000 fois plus simple, et pour un premier langage de script ça suffira.
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
20 déc. 2004 à 14:54
LOL !!! Oui ça vient sûrement de là.
Non il n'y a pas de temps limite mais c'est un bug, ça me l'a fait une ou deux fois.
Je sais pas d'où ça veint par contre...

Ton idée de script m'intéresse beaucoup, mais je n'y connais rien en script...
Je vais me renseigner.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 déc. 2004 à 14:51
"En fait c'est pas une erreur mais un warning, donc ça compile quand même."

sauf que moi qd je lance l'exe ça plante, mais ça maintenant que j'y pense, mdr, ça vient peut-être du fait qu'il n'y avait pas les textures, mdr, suis un peu bêbête ^^.
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
20 déc. 2004 à 14:47
A luhtor => en fait plus tes FPS sont bas et plus tu auras de chance de passer àa travers les murs.
Moi à 130 FPS je passe pas, et j'ai essayé sur un autre PC à 50 FPS et là c'était un vrai fantôme !!!
Tu peux régler ça en augmentant le RADIUS(rayon de la sphère du perso).
Merci pour tes conseils pour la caméra, je vais essayer.

A albert0 => merci beaucoup !!!
Bien sûr que tu peux t'en inspirer !

A kirua => moi aussi ça me met le même message !
En fait c'est pas une erreur mais un warning, donc ça compile quand même.
Je me suis jamais penché sur ce warning ...

A funto66 => c'est vrai qu'une grand parti du code ne vient pas de moi ... mais bon, j'allais pas galérer à pondre un code pour charger les MD2 quand même ...
Par contre, je vais revoir mes anciennes versions de mon jeu, car au début j'utilisais mon propre code pour le déplacement du perso, et ça marcahit pas mal !
Faudrait que je fasse le "ménage" dans mon code ...
Pour ton "bug", en fait c'est la fin du niveau donc c'est pas vraiment un bug.
Quand je ferais un 2nd niveau j'empêcherait ce "bug" et je mettrai un écran de transition à la place.
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
20 déc. 2004 à 14:47
A luhtor => en fait plus tes FPS sont bas et plus tu auras de chance de passer àa travers les murs.
Moi à 130 FPS je passe pas, et j'ai essayé sur un autre PC à 50 FPS et là c'était un vrai fantôme !!!
Tu peux régler ça en augmentant le RADIUS(rayon de la sphère du perso).
Merci pour tes conseils pour la caméra, je vais essayer.

A albert0 => merci beaucoup !!!
Bien sûr que tu peux t'en inspirer !

A kirua => moi aussi ça me met le même message !
En fait c'est pas une erreur mais un warning, donc ça compile quand même.
Je me suis jamais penché sur ce warning ...

A funto66 => c'est vrai qu'une grand parti du code ne vient pas de moi ... mais bon, j'allais pas galérer à pondre un code pour charger les MD2 quand même ...
Par contre, je vais revoir mes anciennes versions de mon jeu, car au début j'utilisais mon propre code pour le déplacement du perso, et ça marcahit pas mal !
Faudrait que je fasse le "ménage" dans mon code ...
Pour ton "bug", en fait c'est la fin du niveau donc c'est pas vraiment un bug.
Quand je ferais un 2nd niveau j'empêcherait ce "bug" et je mettrai un écran de transition à la place.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 déc. 2004 à 14:45
chouette, oui.

par contre je comprends pas: je tue les deux persos, puis après un certain temps, je meurs O_o. Il y a un temps limite?

Enfin, ce qui ferait très bien maintenant, c'est d'ajouter un script engine pour rendre ton univers dynamique (par exemple, tu pourrais attacher des scripts à des événements tels que la mort d'un certain ennemi, ou bien le passage par une certaine case etc)
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
20 déc. 2004 à 14:20
a mon avi c'est la fin de la map
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
20 déc. 2004 à 14:17
Kirua >> tu peux le dl sur son site, c'est écrit en haut de la page.
Je viens de tester le jeu, et ça reste plutôt pas mal :) Ceci dit c'est clair qu'une bonne grosse partie du code n'est pas de toi mais vient de NeHe ou GameTutorials chais plus...
'fin bref c'est quand même bien :)

Par ailleurs, j'ai eu un bug, (si on peut dire), un des chemins conduit vers le vide, donc j'ai volé...
A part ça, j'ai pas trop regardé le code, mais je ne pense pas que tu aies optimisé l'affichage de la map via des arbres BSP ou des octrees non?

Ah autre chose : je pense que l'usage de plusieurs formats d'images est inutile; à ta place j'en resterais au format TGA. L'utilisation de libs comme la jpeglib peut encore compliquer la phase de compilation, encore que dans tno cas c'est pas vraiment gênant puisque tu la fournis...

Juste une dernière question : c'est compilable avec Dev-C++?
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 déc. 2004 à 13:47
Erreur au liage:

LIBCD.lib(crt0init.obj) : warning LNK4098: defaultlib "libc.lib" conflicts with use of other libs; use /NODEFAULTLIB:library

:( je voudrais vrmnt tester ton jeu, mais je ne suis pas un familier de VC, tu sais me dire ce que je dois faire? J'ai mis /NODEFAULTLIB:"libc.lib" dans les options du lieur, mais ça n'a rien changé :(
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
19 déc. 2004 à 21:33
Et bien, j'ai 85 - 90 de fps. En fait, des que j'insiste contre un mur j'arrive a passer a travers plus ou moins difficilement.

Autrement j'ai remarqué un truc:
- Je sais pas du tout pourquoi mais il m'arrive que je n'arrive plus a baisser le viseur: il s'arrete a environ 10° au dessus de l'horizontal.

Pour ta caméra, j'avais mis ca dans mon prgm de physique:
Les coordonnées du vecteur vertical:
x = -sin(alpha)*sin(beta)
y = cos(beta)
z = -cos(alpha)*sin(beta)

cad:
gluLookAt(...,-sin(alpha)*sin(beta),cos(beta),-cos(alpha)*sin(beta))

avec alpha, l'angle de rotation horizontale (en radian bien sur) et beta l'angle de rotation verticale.

aller ++
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
19 déc. 2004 à 21:19
c'est bien :)

meme tres bien :)

je vais m'inspirer dessus, pour coder un truc du meme genre :)

si tu me le permet
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
19 déc. 2004 à 20:43
Merci !!!
Comment t'as fait pour passer à trvers le mur ??? T'as combien de FPS ?
Merci pour tes remarques et conseils, je vais voir ça ...
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
19 déc. 2004 à 19:44
Franchement deja, c'est un beau travail.
Mais à mon gout, il y a quelques trucs que tu pourrais corriger :)
1 - la première fois que je viens me coller contre un mur, je suis passé à travers ^^

2 - je trouve frustrant de pas pouvoir viser a 90° vers le haut et vers le bas: j'ai regardé un peu ton programme et j'ai vu ca dans ta fonction camera:
//Init a standard up vVector (Rarely ever changes)
Je suis pas d'accord, dans mes programmes il change sans arret lorsque je fais bouger la camera verticalement. Ca permet d'obtenir une camera "parfaite".

3 - C'est pas très grave, mais je trouve que tes fonctions créent beaucoup d'objet pour pas grand chose, puisqu'ils sont détruits quelques lignes plus tard, donc ca fait beaucoup d'appel de constructeurs et destructeurs pour pas grand chose. Mais ca reste de l'optimisation, et ca ne doit pas etre ton objectif pour le moment. Ceci dit, optimiser un minimum 3Dmath.cpp ne coute pas grand chose :)

Mais bon, je garde ton code précieusement, car il y a plein de truc qui m'intéresse (notamment les models), et puis, c'est toujours que le début. En bref, ca rox quand meme.
Rejoignez-nous