salut,
Si j'étais à votre place, je me servirais d'un fichier unique comme intermédiaire.
Chaque joueur peut lire le fichier, donc la situation actuelle est visualisée.
Lorsqu'un joueur agit, son programme envoie un ordre sur le fichier. Donc celui-ci est à jour à tout moment.
Le programme doit contenir une fonction d'écriture, une fonction de lecture, avec un timer éventuellement, et une fonction de nettoyage-rafraichissement.
Ca peut paraitre un peu lourd, il y peut-être d'autres solutions, mais celle là me parait simple à mettre en oeuvre, et certainement très efficace.
L'idée est bonne, mais par l'intermédiaire d'un fichier, c'est une abération.
La position d'un joueur, pas besoin de la stocker dans un fichier, en mémoire est suffisant.
Le fichier, on l'utilise pour les accès moins fréquents (comme la sauvegarde du joueur par exemple).
La solution de SGBD serait envisageable aussi, mais dans votre contexte, ça me parait plus compliqué et moins intéressant à faire.
le sbgd c'est pour la bdd, wikipedia. C'est useless dans un premier temps...surtout si c'est votre premier jeu.
Pour ce qui est des threads et multi threads, jvais pas te faire un cours yen a sur le net. Faudrait que tu nous en dise plus sur ton jeu. Mais si il est basique, (faire promener des ptits joueurs), t'es pas obligé de multithread.
En gros :
p1,p2 des joueurs,
S le serveur
p1 veut bouger : tu demandes à S de bouger p1. (par exemple t'envoie un truc style : "move:[10,0]")
S recoit le message de p1. il update la position de p1 dans sa map.
Il envoit la nouvelle position de p1 à [p1,p2]
p1 et p2 rafraichissent leur écran. (au début tu téléportes le joueur, mais après tu peux faire style le joueur a bougé (en envoyant "updatePosition:[8,0]" par exemple)
Cette config est basique (par exemple, si p2 envoie un message pendant que p1 envoit le sien, tu traite d'abord le message de p1, puis apres celui de p2), du coup, peut etre que p2 va traverser p1 mais c'est des détails à te préoccuper par la suite...
Jpense que tu peux t'en sortir sans multithread pour commencer, ca t'enleveras tous les acces concurrents, cqui est un peu chiant à debugguer, surtout si t'es pas familiarisé avec la synchro