See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Multijoueur -> Module Copilotage  (Read 136958 times)

0 Members and 1 Guest are viewing this topic.

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #125 - 14 August 2010, 17:13:58
Bon, pour ceux qui prennent ce fil en cours et qui n'ont pas envie de lire tout ce qui précède, voici un résumé des évènements :

Devant une demande croissante sur plusieurs forums d'un mode multijoueur pour Orbiter, je tente l'aventure en étudiant la faisabilité d'un module.

Très vite, je me rends compte qu'un module multi-joueur sur Orbiter est inutile à cause des distances énormes et l'utilisation de l'accélération temporelle. Je me rabats donc sur un module co-pilotage qui a l'avantage de s'affranchir du problème distance, puisque tout le monde est dans le même vaisseau.

Mon premier objectif est de créer un module simple intégré à Orbiter. Partant d'un MFD au départ, je m'aperçois vite que celui-ci n'est rafraichi qu'en fonction d'un paramétrage dans le launchpad. Je cherche donc une autre solution.
Je tente de l'intégrer comme un module général (comme scenario editor par exemple), ça marche. Il me faut m'attaquer aux protocoles réseau. Après quelques déboires (notamment pour la partie serveur), j'arrive à me dépatouiller du protocole bi-directionnel (client/serveur) et je m'attaque aux données d'Orbiter.

Soucis là encore. On peut récupérer les données de position en lecture, mais on ne peut pas les écrire. Toutefois dans le SDK, je trouve deux fonctions qui me permettent de le faire. Les essais de connexions sur deux PC distant commencent parallelement. Et jusque là, les performances se montrent à la hauteur de mes attentes. En même temps, des essais partiels de compatibilité entre les deux versions d'Orbiter sont faits, là aussi avec succès.

J'en suis donc au stade où je dois traiter les différents type de message envoyés par la partie serveur du module, mais aussi par la partie client (notamment la demande de raccordement à la session).

Voilà pour ce petit résumé des faits...

Yves


Offline yoann

  • Legend
  • ******
  • Posts: 1914
  • Country: France fr
  • Karma: 9
Reply #126 - 14 August 2010, 17:28:21
petit reaction apres mon premier post, qui n'etait a avis critique, cela n'enleve rien  a votre performance, personne sur ce forum, ou presque, arrive a comprendre ce fil ^^


Quote
pilote334 a écrit:
Très vite, je me rends compte qu'un module multi-joueur sur Orbiter est inutile à cause des distances énormes et l'utilisation de l'accélération temporelle. Je me rabats donc sur un module co-pilotage qui a l'avantage de s'affranchir du problème distance, puisque tout le monde est dans le même vaisseau.

Et bien justement, pour moi , cela va a l'inverse du multijoueur "pure", ca ressemblerai plus a un mode cooperatif selon mon avis.

et de plus, je confirme qu'un "vrai" mode mlultijoueur serai utile, il y a deja eu des tentatives, ( ya des fils sur le forum, que je retrouve plus) ou cerrtain s'amusai a docker 2 DG ensemble, , c'etait super ^^

enfin bon, ce que vous faites est tres bien, mais je dirai que le terme choisi n'est pas le bon ^^ je verai ca plus comme un mode coop que multi  (dans le sens ou ont est tous dans 1 vaisseaux, et pas 1 personne / 1 vaisseaux )

bonne continuation sinon ^^


__________________________________
    Luke, je suis ton pere            kchuuu  pchiiiii

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #127 - 14 August 2010, 17:42:03
Oui, Yoan, tu as raison. Je ne dis pas que je n'irai pas vers un vrai multi-joueur, mais pour le moment, je dirais que ce n'est pas à l'ordre du jour. Après, si j'arrive au bout de ce projet-ci, il me sera plus facile d'envisager le vrai multijoueur avec des restriction, bien entendu, concernant la visibilité d'un vaisseau d'un autre...

Espérant avoir répondu à ta question...


Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #128 - 14 August 2010, 18:28:27
Perso, j'ai toujours préféré le multijoueur en coopération. Un peu à la Splinter Cell ou à la Batalion Wars 2 où on s'entraîde pour passer un niveau.

Un autre petit remontant pour vous encourager :drink: :badsmile:


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #129 - 14 August 2010, 18:29:34
Il sera vite commandant c'lui là !!
:)


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #130 - 14 August 2010, 19:37:10
Mort de rire !!!

Yves



Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #131 - 14 August 2010, 20:32:03
Quote
enfin bon, ce que vous faites est tres bien, mais je dirai que le terme choisi n'est pas le bon ^^ je verai ca plus comme un mode coop que multi (dans le sens ou ont est tous dans 1 vaisseaux, et pas 1 personne / 1 vaisseaux )

Ben moi je rêve d'un truc genre :

BiBi uncle , Alexandre , CsLevine , Tofitouf , Pilote334 et moi , on vous prend tous à la course à bord de notre vaisseau " maison " ,
via OrbiterChallenge et TeamServeur ! Ok ?
:siffle:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #132 - 14 August 2010, 20:50:45
Ah, ça me plait bien ça, style Terre-Jupiter le plus rapidement possible en DGIV-2 ! avec le sling-shot autour de Jupiter en plus ! Yeah....et à 4 par vaisseau ! stratégie...stratégie....

Yves



Offline geoair

  • Sr. Member
  • ****
  • Posts: 432
  • Country: France fr
  • Karma: 8
    • Aerocruses Production
Reply #133 - 14 August 2010, 20:54:33
moi ce qui me tenterai le plus c'est une mission apollo a trois avec timspeak pour communiquer ensemble ;)



Message modifié ( 14-08-2010 20:54 )

........................................................................

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #134 - 14 August 2010, 20:58:29
Quote
moi ce qui me tenterai le plus c'est une mission apollo a trois avec timspeak pour communiquer ensemble
Ben voilà ! ;)
Un scénario qui tombe du ciel !
:top:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #135 - 14 August 2010, 21:04:17
Quote
on vous prend tous à la course à bord de notre vaisseau " maison " ,
çà me donne une idée , un mode " tous les coups sont permis " :
A chaque équipage de se créer le vaisseau le plus performant .
Les meilleurs seront ceux qui connaissent les bons addons ...
Cool non ?


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Alexandre

  • Legend
  • ******
  • Posts: 1600
  • Country: France fr
  • Karma: 5
Reply #136 - 14 August 2010, 21:11:01
Quote
MrSpock a écrit:
Quote
on vous prend tous à la course à bord de notre vaisseau " maison " ,
çà me donne une idée , un mode " tous les coups sont permis " :
A chaque équipage de se créer le vaisseau le plus performant .
Les meilleurs seront ceux qui connaissent les bons addons ...
Cool non ?


Z'avez tous plein d'idée ! Sa promets ! ;)


-----------------------
Alexandre
Orbiter sur Windows 8, ça fonctionne !
Ma chaine Youtube:
http://www.youtube.com/user/AlexBadsmile?feature=mhee

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #137 - 14 August 2010, 21:13:27
Quoi ? T'en as pas toi ?
:ptdr:
Ouf ! c'est bon de rire un peu ...



Message modifié ( 14-08-2010 21:14 )

Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline tofitouf

  • Legend
  • ******
  • Posts: 1380
  • Karma: 0
Reply #138 - 14 August 2010, 21:31:42
eh bien moi je parie que je bas tout vos score avec le shuttle pb

il suffit de booster les moteurs dans son fichier de conf


---------------------------------------------

PC en rade, codage en panne.... Nom de Zeus

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #139 - 14 August 2010, 21:37:00
TOFITOUF ! RHHHOOoô !
Traître !
Mille sabords !
Mon ingénieur à moi ?
SAPERLIPOPETTE !
Ils t'ont promis quoi ?
Je SAIS : Tu es à la solde de " Chaussures de sport and co " !
rhhhhoooô ... les bidouilles , garde les pour nous !
:diable:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #140 - 14 August 2010, 21:41:26
Mille milliard de mille sabords ! il nous ont (encore) piqué Tournesol !!!



Message modifié ( 14-08-2010 21:50 )


Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #141 - 14 August 2010, 21:48:21
Tof' ? on t'a trouvé un nouveau pseudo : Tryphon ....
:ptdr:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #142 - 15 August 2010, 01:28:54
Bon, ça y est, j'ai commencé : je traite les premiers messages du client (sa demande de connexion au serveur, en l'occurrence).

Ce type de message commence par "DEMCON" suivi du nom du joueur. Le serveur lui renvoie les fonctions disponibles à bord....


Yves



Offline Vladimir2000

  • Hero Member
  • *****
  • Posts: 755
  • Karma: 2
Reply #143 - 15 August 2010, 01:41:50
Sa a l'air bientôt fini tout ca, quand Martin va voir ca...



Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #144 - 15 August 2010, 16:35:49
Avec tous les idées que vous avez donné, j'ai trop hâte que ça sorte !!!

PS : On lance à Cape Canaveral pour notre voyage. C'est juste 2 heures en avion de chez nous :badsmile:


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #145 - 15 August 2010, 16:50:13
Du calme, on y est pas encore, et le obstacles sont encore nombreux...

Je suis sur les messages reçus/envoyés du client....

Yves



Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #146 - 15 August 2010, 17:21:16
Salut Yves !
SetElements(...) client  fonctionne ?
:wonder:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #147 - 15 August 2010, 19:43:03
Pas testé encore mais j'ai mieux : "VESSEL::DefSetStateEx(const VESSELSTATUS * status) const"...

Je te donne le résultat dès que j'ai testé...

Yves



Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #148 - 15 August 2010, 19:46:15
Quote
Pas testé encore mais j'ai mieux : "VESSEL::DefSetStateEx(const VESSELSTATUS * status) const"...

Je te donne le résultat dès que j'ai testé...
Chouette ! C'est déjà l'heure de l'apéro ?
:beer:
Je vais voir ce que c'est ta dernière trouvaille ..
A tout'


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #149 - 15 August 2010, 19:46:25
Au fait Spock,

Trois petites fonctions qui peuvent t'intéresser...


Code: [Select]
void GetDataBCST(void)
{
VESSEL *vessel=oapiGetFocusInterface();
spcft.Vessel = vessel;
spcft.Obj = vessel->GetHandle();
spcft.VName = vessel->GetName();
spcft.Gref = vessel->GetGravityRef();
char gref[255]={""};
oapiGetObjectName(spcft.Gref, spcft.BodyRef, 18   ) ;

vessel->GetGlobalOrientation(spcft.Orient);//SetGlobalOrientation existe donc ok
vectochar(spcft.Orient, spcft.Attitude);
vessel->GetElements(spcft.Gref, spcft.elem, spcft.prm = 0, mjd_ref, frame);
eltochar(spcft.elem, spcft.OrbitElem);

}
void vectochar(VECTOR3 vdata, char* datachar)
{
char datax[20]={""};
char datay[20]={""};
char dataz[20]={""};
sprintf(datax,"%f",vdata.x);
sprintf(datay,"%f",vdata.y);
sprintf(dataz,"%f",vdata.z);
strcpy(datachar,datax);
strcat(datachar," ");
strcat(datachar,datay);
strcat(datachar," ");
strcat(datachar,dataz);
strcat(datachar," ");

}

void eltochar(ELEMENTS& elem, char* datachar)
{
char sma[20]={""}, ecc[20]={""}, inc[20]={""};
char lan[20]={""}, omb[20]={""}, mle[20]={""};

sprintf(sma,"%f ",elem.a);sprintf(ecc,"%f ",elem.e);
sprintf(inc,"%f ",elem.i);sprintf(lan,"%f ",elem.theta);
sprintf(omb,"%f ",elem.omegab);sprintf(mle,"%f ",elem.L);


    strcpy(datachar,sma);strcat(datachar,ecc);strcat(datachar,inc);
strcat(datachar,lan);strcat(datachar,omb);strcat(datachar,mle);
}

Bonne utilisation....

Yves



Message modifié ( 15-08-2010 19:49 )