FPS EN RÉSEAU

cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008 - 15 mai 2007 à 16:32
MinisJeux Messages postés 53 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 novembre 2011 - 6 déc. 2010 à 11:07
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/42697-fps-en-reseau

MinisJeux Messages postés 53 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 1 novembre 2011
6 déc. 2010 à 11:07
Excellent Travail, vraiment continue comme ça.
SamyPesse Messages postés 5 Date d'inscription dimanche 19 juillet 2009 Statut Membre Dernière intervention 12 mai 2014
23 juin 2009 à 14:02
vraiment de l'excellet travail !!!!!!!!!!!!!!!!!!!!!!
je vais me baser dessus pour mon fps, :) je viens de comprendre le fonctionnement des collision et du mode reseau !!! ;)
Unenlagia Messages postés 34 Date d'inscription samedi 27 août 2011 Statut Membre Dernière intervention 10 novembre 2011
12 août 2007 à 17:48
BOULETE !!!! :\


j'ai cliquer sans faire expres sur assigné 5 a cette source...
D6R26H59P Messages postés 17 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 30 mai 2007
30 mai 2007 à 19:45
Quelques répondes vite fait:

- Pour l'encapsulation j'ai pas cherché à faire niquel. Mais ton exemple est mal choisi ^^. Si tu regarde dans tir.cpp tu vera que ce que tu dit est fait.
- Pour les map c'est le terme de script qu'est surement mal choisis. Ouvre une map ou regarde le fichier "comment faire une map.txt" C'est tout expliqué.
- Inversion() sert pas. J'ai oublié de l'enlevé. Et je connais pas les template :(... J'ai apris sur des petits tuto j'ai donc pas une connaissance exhaustive.
- J'vais encore passer pour un ignar mais c'est quoi un FBO? Puis vus que c'est vraiment que le perso qui l'utilise j'ai pas cherché à faire mieux
- Jtrouve que if BALLE_DANS_INTERVALLE est plus plaisant à l'oeil que ((BALLE_X_MIN*UNITE<Balle[i].X)&&(Balle[i].X<BALLE_X_MAX*UNITE)&&(BALLE_Y_MIN*UNITE<Balle[i].Y)&&(Balle[i].Y<BALLE_Y_MAX*UNITE)&&(BALLE_Z_MIN*UNITE<Balle[i].Z)&&(Balle[i].Z<BALLE_Z_MAX*UNITE))
- Pour les balle jme suis dit que c'était suffisant. Vus qu'à grande distance la chance de touché est presque nule et que la balle vas suffisament vite:
Si on considere qu'on touche jusqu'à 400u (Ce qui correspond à plus de 2 minutes de marche sans interuption), Vu qu'on tire 3 balle par seconde max, Si les 8 joueur tire en même temps le nombre de balle qu'il faut est 3*8*4=96.
- Pour le réseau: C'est sur quoi je me suis le plus appliqué :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
26 mai 2007 à 19:24
"if BALLE_DANS_INTERVALLE // Dieu que c'est crade"

Oui, mais ça rime.

désolé.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
26 mai 2007 à 16:03
Quelques remarques vite fait:
Pas assez d'encapsulation ! regarde balle.cpp par exemple ... là dedans devrait y avoir un truc genre draw(), update(), checkCollision()... aucun de ses membres ne devrait être public, aucun.

Touches[4] -> bien, tu ne l'as pas hardcodé :) +1 pour toi, mais -1 car faudrait le faire aussi pour la souris, idéalement :p

Si j'ai bien compris, pour toi, Scrit = Map ?? eclaire moi ...
et c'est compteur, comme compter, et non conteur, comme raconter ;)

Inversion et InverseInt : arrg, alors 1) ca a 2 noms différents comment tu fais pour t'y retrouver, la surcharge ça existe et 2) utilise les templates. ça t'inversera tout ce que tu voudra.

DessinePave et très bourrin. Passe par un FBO, ou , au minimum ( vu que c'est un peu chiant à mettre en place de manière sécurisée ) un array. C'est tue-perfs, ça. Encore pour le dessin du perso passe encore, mais pas trop quand il s'agit de la map.

if BALLE_DANS_INTERVALLE // Dieu que c'est crade

Ta gestion des balles te fait courir droit au bug !! ok tu vérifies si (Conteur>=BALLE_MAX), mais si tel est le cas, tu risques de supprimer l'une des balles au prochain tir, c'est balot. Tu devrais plutôt boucler sur ton tableau et prendre la première balle " morte ", et grader un compteur pour savoir où était la dernière balle morte trouvée, ça peut éviter de reparcourir le tableau à chaque fois et, dans certains cas, optimiser un peu.

La gestion du réseau a l'air pas mal du tout :) idem pour les thread :)

Voilà je pense que c'est tout, c'est déjà pas mal ;)
@+, bon code.
D6R26H59P Messages postés 17 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 30 mai 2007
26 mai 2007 à 14:33
Merci pour le commentaire ^^ sa fait plaisir. Pour le code j'ai essayé de faire propre, j'espere que c'est bien.
Sinon j'ai joué à 4 l'autre jour par internet et c'est marrant ^^. Par contre en général on sait pas trop ou tirer à cause du décalage. Mais ça c'est vrai pour tout les FPS en réseau quand c'est la première fois qu'on joue...
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
21 mai 2007 à 15:45
Woa
Vraiment, chapeau ... ( bon mon stupide voisin me dit : " c'est moche ... j'préfère UT " ) , mais c'est franchement sympa...
Je n'ai pas encore regardé le code; reste à voir si tu as codé ça comme un cochon :p mais le résultat, je le trouve plutôt convaincant. J'ai joué tout seul à 2 sur le même PC, c'était un peu galère (vive le alt-tab ) , ça permet quand même de se faire une idée. Je vois que tu gères même la transparence.

Je reposte quand j'aurais vu ton code de plus près :)
D6R26H59P Messages postés 17 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 30 mai 2007
17 mai 2007 à 13:44
non en fait lors de l'envoie du message de position j'enregistre le tps sur l'ordi qui envoie. Je compare en suite sur l'ordi qui reçoit. Au message suivant je fait la difference des 2 et sa me donne le tps qu'il faut attendre. S'il est negatif je remplace l'ancien temps par le nouveau.

Pour l'UDP en fait je sais pas m'en servir... J'ai peu de connaissance, j'essaie de faire le mieux avec les moyens que j'ai. Si tu connais un bon tuto et si c'est pas trop dur je suis partant pour modifier, ça pourrait diminuer le decalage... j'ai fait une partie avec des potes et sa se joue beaucoup au hasard...
XT95 Messages postés 25 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 5 août 2007
16 mai 2007 à 18:45
TCP/IP, pas d'UDP pour le déplacement des joueurs et tu n'as aucun lag ?
Cyr62110 Messages postés 65 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 21 octobre 2009
16 mai 2007 à 14:37
Merci, je vais pouvoir maintenant essayer les connections TCP/IP.
Bonne Continuation.
Bye
D6R26H59P Messages postés 17 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 30 mai 2007
15 mai 2007 à 21:05
C'est une connection TCP/IP avec winsock. Toutes mes connaissance sur les socket son là: http://c.developpez.com/WalrusSock/ à quelques détails près...
Cyr62110 Messages postés 65 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 21 octobre 2009
15 mai 2007 à 20:47
Bon travail, il faut avoir le courage de déveloper un FPS online.
Sinon tu travaille avec quoi pour le réseau, j'arrive pas vraiment a determiner le type de connection : FTP,etc...
Bonne continuation si tu souhaite le mettre à jour.
Bye
D6R26H59P Messages postés 17 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 30 mai 2007
15 mai 2007 à 19:52
Si tu lit un peu tu vera facilement que c'est VC++ que j'utilise... Sinon pour les libs j'utilise SDL/opengl/glut/fmod/winsock2, sa aussi tu peu facilement voir...
Sinon qu'est que tu appelle les "specs côté code"?
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 mai 2007 à 16:33
Oups! Au temps pour moi, le screenshot ne s'affichait pas quand j'ai posté mon commentaire!
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 mai 2007 à 16:32
Un petit screenshot pour les fainéants?

Et les specs côté code? Quelles librairies tu utilises? Tu compiles avec quoi? Etc :)
Rejoignez-nous