Gestion des différentes parties jeu en ligne

quentlac Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
quentlac Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai créé un jeu qui se joue en ligne contre d'autre personnes. Le jeu fonctionne très bien. Le seul soucis, c'est que je démarre le serveur manuellement pour faire une partie, une fois que le jeu a commencé plus personne peux arriver sur le jeu.

Comment faire pour gérer plusieurs partie en même temps?

Merci d'avance :D



A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,
Sans savoir comment tu as programmé ton jeu ni dans quel langage.... impossible de te répondre !
0
quentlac Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
Merci d'avoir répondu si vite :D

Le serveur est programmé en python.

Au début du programme, le serveur attend une minutes que les clients se connectent. Ensuite la partie commence et plus aucun client ne peut se connecter jusqu’à ce que la partie se termine et que je le relance.
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, le langage ne nous en dit pas assez sur comment tu as développé ton serveur. Est-ce que tu utilises les sockets du module
socket
, ou une autre bibliothèque comme
gevent
?
Quel est ton code qui attend les connexions ?
0
quentlac Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
En effet j'utilise les sockets, voici la partie qui gère la connexion des clients:

while time.time() - tmp_matchmaking < 60:
	news_client, a, b = select.select([main_socket],[],[],0.1)
	
	for client in news_client:
		socket_client, info_client = client.accept()
		liste_client.append(socket_client)
		socket_client.send(b""+str(nb_joueur + 1))
		nb_joueur = nb_joueur + 1

		player = Joueur()
		joueur.append(player)
		tmp_mv_b = time.time()


	os.system("clear")
	print("Matchmaking... "+str(int(60 - (time.time() - tmp_matchmaking)))+" sec restantes.\n")
	print("Nombre de joueur: "+str(nb_joueur)+"\n")

	if time.time() - tmp_mv_b > 1:
		tmp_mv_b = time.time()
		for client in liste_client:
			message = "{\"msg\": \"Debut de la partie dans "+str(60 - int(time.time() - tmp_matchmaking))+" secondes...\"}"
			try:
				client.send(message)
			except socket.error:
				client.close()
0