Gestion des différentes parties jeu en ligne

Fermé
quentlac Messages postés 25 Date d'inscription mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019 - 31 août 2018 à 22:36
quentlac Messages postés 25 Date d'inscription mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019 - 1 sept. 2018 à 10:52
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 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 704
1 sept. 2018 à 08:59
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 mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019
1 sept. 2018 à 10:17
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 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
1 sept. 2018 à 10:47
'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 mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019
1 sept. 2018 à 10:52
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