Gestion des différentes parties jeu en ligne

quentlac Messages postés 28 Statut Membre -  
quentlac Messages postés 28 Statut Membre -
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 40050 Statut Modérateur 4 757
 
Bonjour,
Sans savoir comment tu as programmé ton jeu ni dans quel langage.... impossible de te répondre !
0
quentlac Messages postés 28 Statut Membre
 
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 5690 Statut Contributeur 1 224
 
'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 28 Statut Membre
 
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