programmation jeu multiplayer sur internet en java

programmation jeu multiplayer sur internet en java - Java - Programmation

Marsh Posté le 14-09-2002 à 20:00:32    

Hello.
Voila, je voudrais savoir comment faire un jeu multijoueurs sur internet en applet Java un peu comme la dame de pique de Yahoo.
J'ai lu les docs concernant l'utilisation des sockets TCP/IP, mais j'arrive pas a voir concretement comment gerer les communications entre toutes les applets des joueurs.
Faut il utiliser une servlet ?

Reply

Marsh Posté le 14-09-2002 à 20:00:32   

Reply

Marsh Posté le 14-09-2002 à 20:10:59    

A priori, je dirais que oui. Ce genre de softs se fait en client/serveur : le serveur collecte les infos des clients et redistribue le savoir ainsi acquis. Arrêtez moi si je me trompe, mais je dirais que ça se fait bien avec une servlet et des applets.


---------------
Le site de ma maman
Reply

Marsh Posté le 15-09-2002 à 13:16:55    

Cherrytree a écrit a écrit :

A priori, je dirais que oui. Ce genre de softs se fait en client/serveur : le serveur collecte les infos des clients et redistribue le savoir ainsi acquis. Arrêtez moi si je me trompe, mais je dirais que ça se fait bien avec une servlet et des applets.




 
on peux aussi utiliser un programme qui jou le role du serveur, la servlet n est plus obligatoire ds ce cas...
 
 
le principe c de rediriger l'information a tous les "applets-client"
 
tu a un thread avec une serveurSocket qui attend que quelqu un se connect
et des qu une socket est retournée tu l a file a un autre thread comme ca a peu pres:
 
ServerSocket server;
 
 
Socket socket = server.accept();
MySecondThread td =new MySecondThread(socket);
 
 
ds le 2 em thread en question bon ben t a du boulo en fait  :D


Message édité par veryfree le 15-09-2002 à 13:17:53
Reply

Marsh Posté le 15-09-2002 à 15:48:22    

bah faut définir le genre de messages que tu es suceptible d'échanger entre clients et serveurs et creer une petite machine à état sur base de ca (puisque une commande ne peut etre acceptée que dans un certain état du client).
 
Sinon je ne pense pas qu'une servlet soit la solution idéale, un bête composant serveur traditionnel devrait suffire

Reply

Marsh Posté le 15-09-2002 à 20:14:59    

Je ne pense pas non plus qu'une servlet soit nécessaire, un programme serveur traditionnel sera plus adapté.
Il faut bien sûr que tu définisses le protocole de communication entre ton serveur et tes clients, à savoir, quelles sont les informations que les clients doivent envoyer au serveur, et vice-versa ... et ensuite ton serveur et ton client agissent en conséquence.

Reply

Marsh Posté le 15-09-2002 à 23:51:19    

Si tu veux du 'temps réel', j'entends par là que les infos sont transmises aux client concernés au moment où ils interviennent, et pas au moment où le client demandera l'état courant, une servlet est inutilisable : en effet, elle ne sera capable de donner des infos que sur sollicitation du client..exemple : tu as un jeu avec 2 joueurs, A et B : A tire sur B...A appelle la servlet pour lui dire : 'je tire sur B'..la servlet ne peux que stocker cette info...et B ne sera mis au courant que quand il demandera à la servlet l'état du système...avec un vrai client/serveur (comme décrit par Veryfree) le serveur reçoit l'info 'je tire sur B' en provenance de A, et est capable de la transmettre à B immédiatement...
 
Le problème, c'est l'hébergement d'un truc pareil : c'est pas facile à trouver...et c'est cher
..alors si tu fais ça tout seul, hors boulot, ça risque d'être coton..après, si c'est pour installer sur un réseau local, etc..pas de problème..Sauf les contraintes de connections des applets, bien sûr (le serveur du jeu doit être sur la même machien que le serveur WEB qui est utilisé pour récupérer l'applet..)  

Reply

Marsh Posté le 16-09-2002 à 09:36:35    

Hello.
En fait, je voudrais faire un jeu en tour par tour, genre plateau d'echec avec plusieurs joueurs dessus qui deplacent leurs pieces. Je laisserai tout les calculs geres par l'applet client. Les informations concerneraient le deplacement des pieces.
Je ne vois pas quel composant serveur utiliser. Comment redistribuer les informations a toutes les applets ?
Quel serveur pourrait heberger ca ?

Reply

Marsh Posté le 16-09-2002 à 09:57:02    

ben ton serveur, il faudra le développer toi même, en fait...comme l'a expliqué Veryfree...

Reply

Marsh Posté le 16-09-2002 à 10:45:14    

Ouais Ok, je fais un socket serveur avec une gestion multi thread.
Mais, ce que je comprends pas, c'est ou je mets mon programme serveur ? Comment je l'execute ?


---------------
What can khajiit do for you ?
Reply

Marsh Posté le 16-09-2002 à 10:46:50    

bin tu le démarre sur la machine ou ton applet est fournie (sur le serveur web quoi).
 
Par exemple en ligne de commande avec un beau fork :)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-09-2002 à 10:46:50   

Reply

Marsh Posté le 16-09-2002 à 11:35:51    

Attends, tu veux dire que lorsque le client visionne l'applet sur sa machine, a l'interieur de l'applet je lance le serveur ?
Je pige pas.
Ou qu'il est le programme serveur ? Ou que je le mets ?
Si je le lance dans l'applet, il faut qu'il ne soit pas deja lance...
En fait, j'arrive pas a voir physiquement comment ca marche.


---------------
What can khajiit do for you ?
Reply

Marsh Posté le 16-09-2002 à 11:45:23    

bin ton serveur tu le démarre comme n'importe quel appli java quoi.  
 

Code :
  1. java com.myorg.MyServer 4000 monparam2 &


 
le but étant de démarrer ton serveur et de te mettre en écoute du port 4000 (par exemple).
 
Ensuite tes applets se connectent à ce port 4000 tout simplement. Je vois pas où est le problème. C'est donc si bizarre que ca de démarrer un process Java et de le laisser tourner sur une machine 24/24 7/7 ???


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-09-2002 à 11:45:59    

http://www.commentcamarche.net/cs/csintro.php3


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 16-09-2002 à 11:54:53    

Ah, j'ai compris. Tu subodorais que le serveur est a moi.
Non, je voulais dire si je voulais faire un jeu heberge par free par exemple. Je pourrais pas lance mon prog serveur java.


---------------
What can khajiit do for you ?
Reply

Marsh Posté le 16-09-2002 à 11:55:44    

ben non mais ça on te l'a deja dit...


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 16-09-2002 à 12:06:21    

folken a écrit a écrit :

Ah, j'ai compris. Tu subodorais que le serveur est a moi.
Non, je voulais dire si je voulais faire un jeu heberge par free par exemple. Je pourrais pas lance mon prog serveur java.




 
t'appelles quoi par serveur? La machine ou le soft Java?  
 
-> Si tu veux faire un jeu il te faut un serveur pour héberger ton applet et ton site + un espace compatible java pour lancer le serveur (le soft) proprement dit.
 
J'ai un peu l'impression qu'on patauge  :fou:  
 
On t'a déjà dit que trouver un fournisseur gratuit compatible java, c'était pas facile.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-09-2002 à 12:06:56    

folken a écrit a écrit :

Mais, ce que je comprends pas, c'est ou je mets mon programme serveur ?



 
bin sur le serveur par exemple  :sarcastic:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-09-2002 à 12:07:33    

gfive a écrit a écrit :

 
Le problème, c'est l'hébergement d'un truc pareil : c'est pas facile à trouver...et c'est cher
..alors si tu fais ça tout seul, hors boulot, ça risque d'être coton..après, si c'est pour installer sur un réseau local, etc..pas de problème..Sauf les contraintes de connections des applets, bien sûr (le serveur du jeu doit être sur la même machien que le serveur WEB qui est utilisé pour récupérer l'applet..)  




---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-09-2002 à 12:11:06    

DarkLord a écrit a écrit :

 
 
t'appelles quoi par serveur? La machine ou le soft Java?  
 
-> Si tu veux faire un jeu il te faut un serveur pour héberger ton applet et ton site + un espace compatible java pour lancer le serveur (le soft) proprement dit.
 
J'ai un peu l'impression qu'on patauge  :fou:  
 
On t'a déjà dit que trouver un fournisseur gratuit compatible java, c'était pas facile.



:lol:  
 
... c'est surtout un hebergeur qui veuille bien laisser tourner un process, et ouvrir un port :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 16-09-2002 à 12:13:38    

ouais mais bon vu le zozo que ça semble être qui vient pour poser une question lié au language et qui termine sur l'hébergeur qui va héberger son machin qu'il ne sait pas encore comment développer, je ne vais pas commencer à développer le pq du comment


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-09-2002 à 12:59:42    

Ok, je vois.
J'ai deja fait des client/serveur Java mais c'etait sur LAN. Je savais pas que ca marchait idem sur le net parce que je voyais pas comment le faire avec l'hebergeur.
C'est juste que je me demandais comment faire un jeu, ou le serveur ne serait pas sur ma machine, mais par un hebergeur qui hebergerait mon site.


---------------
What can khajiit do for you ?
Reply

Marsh Posté le 16-09-2002 à 13:52:17    

DarkLord a écrit a écrit :

 
On t'a déjà dit que trouver un fournisseur gratuit compatible java, c'était pas facile.




 
Au contraire, c'est tres facile, il suffit de s'interesser au sujet et de chercher sur des pistes differentes. Bref, ca existe depuis novembre 2000 et ca s'appelle :
 
http://www.mycgiserver.com/
 
Avant 2000, ils hebergeait des scripts CGI mais maintenant c'est une veritable plateforme de deployment J2EE qu'ils offrent.  
 
Un excellent bookmark.
 

Reply

Marsh Posté le 16-09-2002 à 13:55:01    

je doute quand meme tres fort que tu puisse y ouvrir un port comme ça, tranquillement :o
 
de plus, ils n'offrent PAS ENCORE la vraie plate forme de dev j2ee. Jusqu'a nvl ordre c'est tjs leur ancien systeme en place: à savoir il y a une seule web-app pour TOUT LE MONDE.
ils sont en train de migrer, mais ça leur prend du temps et de l'argent
 :na:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 16-09-2002 à 14:08:38    

--greg-- a écrit a écrit :

je doute quand meme tres fort que tu puisse y ouvrir un port comme ça, tranquillement :o
 
de plus, ils n'offrent PAS ENCORE la vraie plate forme de dev j2ee. Jusqu'a nvl ordre c'est tjs leur ancien systeme en place: à savoir il y a une seule web-app pour TOUT LE MONDE.
ils sont en train de migrer, mais ça leur prend du temps et de l'argent
 :na:  




 
Pour les nouveaux services (EJB p.ex.) ils doivent etre disponibles fin septembre, donc d'ici la fin du mois (c'est ce qu'ils prevoyaient).  
 
J'aimerais quand meme savoir ce que tu attends d'un service gratuit, car la je trouve que leur plateforme est plus que geniale pour qui n'a pas une machine a dedier pour ses petits travaux personnels, ni les sous a investir la dedans.
 
Et gros point important : ils ne se fouttent pas de la gueule du client : ils n'acceptent de nouveaux compte que s'ils ont les moyens d'offrire un bon QoS.

Reply

Marsh Posté le 16-09-2002 à 14:23:31    

ha non mais je trouve leur service tres tres bien ;)
je disais slt que ça m'etonnerait quand meme qu'ils te laissent ouvrir un port pour y coller un serveur de jeu, quand meme :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 27-11-2002 à 01:31:05    

[:hrisson]

Reply

Marsh Posté le 27-11-2002 à 01:34:21    

the_thuan a écrit a écrit :

[:hrisson]  



:heink:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed