PDA

Voir la version complète : Recherche infos pour jeu online


crazyman8
09/08/2005, 01h13
Tout d'abord bonjour à tous et à toutes ;)

J'aurai une petite question à propos d'un jeu que je suis entrain de concevoir avec un amis en C++ grace à la librairie "Allegro".
On aimerai au final obtenir un jeu se jouant online , c'est à dire autour d'un serveur , seulement aucun de nous deux ne l'a jamais fais avant et je ne sais donc pas les techniques a employé.
En tout logique, je pense qu'il faut géré comme ca :

exemple :

joueur1 bouge à gauche sur la map

-Le client du joueur 1 envois au serveur ( par exemple ) "J1_G"
-Le serveur receptionne la commande
-Le serveur r'envois cette commande à tous les clients ( donc tout les joueurs de la map)
-L'écran de chaque joueur s'actualise grâce aux infos envoyé par le serveur.

Est ce un peu la marche à suivre ou je me plante complétement ?
Si oui , dans quel langage le serveur tourne pour faire un tel chose ?

Je suis intéréssé par toutes informations , exemples ou site ;)

Je vous remerci par avance !

@++++++

NewbiZ
09/08/2005, 01h58
Pour un jeu simple, c'est effectivement la méthode à utiliser...Mais après, il faut complexifier un peu la chose :)
En effet, dans ton cas, le serveur se contente de faire un dispatching des messages, alors que c'est le serveur qui doit presque "tout" faire. C'est à dire que le client devrait plutot envoyer un message "Je désire aller à droite", et le serveur vérifie que c'est possible, si c'est le cas, le message est renvoyé à tous les clients connectés (dont l'émetteur).
C'est à dire que le serveur ne doit pas juste fair un dispatching, c'est lui qui doit gérer le jeu, pas le client.
Le client ne doit être qu'une interface graphique, tout le jeu est coté serveur.

Sinon je me connecte et j'envoie le message "je viens de tuer 100 monstres", puis le message "je suis en position (x,y)" ou "je tue x"

crazyman8
09/08/2005, 02h25
En effet , je vois donc comment procédé maintenant mais au niveau plus " technique " je suppose qu il faut que je recherche quelques tutos sur les sockets par exemple ?

merci de ton aide en tout cas , tu m as deja pas mal éclairé la ;)


+++++

Flamaros
09/08/2005, 03h40
Effectivement tu dois voir du cote des socket, je ne sais pas comment elles fontionnent sous windows mais je sais que la SDL en permet une utilisation grandement simplifiee.

NewbiZ
09/08/2005, 03h47
Pour ce qui est du côté implémentation, je n'utilise pas moi même mais je sais que beaucoup utilisent, la librarie RakNet :
http://www.rakkarsoft.com/

Voici l'introduction de leur site
A free networking API that provides reliable UDP and high level networking constructs on Windows, Linux, and Unix

It allows any application to communicate with other applications that also use it, whether that be on the same computer, over a LAN, or over the internet. Although RakNet can be used for any networked application, it was developed specifically for rapid development of online games and the addition of multiplayer to single player games.
Que je vous ait rapidement traduit :
RakNet est une librairie gratuite supportant le protocole UDP et les communications réseaux de haut niveau sous Windows, Linux et Unix.

Elle permet à n'importe quelle application de communiquer avec d'autres (qui l'utilisent aussi), que ce soit sur un même ordinateur, dans un LAN, ou sur internet. Bien que RakNet puisse être utilisée pour n'importe quel type d'application, elle a été spécifiquement élaborée pour le développement rapide de jeux online, et l'ajout de possibilités multijoueurs aux jeux solitaires.

Flamaros
09/08/2005, 06h02
et l'ajout de possibilités multijoueurs aux jeux solitaires.

La je ne comprend pas.
Un jeux solo tu peux y jouer a plusieur toi? Une variante je veux bien.

Sinon je viens de regarder vite fais les socket sous win, ben c'est les meme fonction que sous windows, il y a juste l'api a initialiser (winsocks).

EDIT : Winsocks est une interface pour utiliser les sockets comme elles ont ete defini par BSD. On retrouve donc exactement les memes fonctions que sous unix pour les sockets y compris select().

Je suis content de savoir que je n'aurais pas reapprendre a faire du reseau juste pour windows.

Bahamut
09/08/2005, 15h14
Jettes un coup d'oeil sur le forum (je ne sais plus dans quelle catégorie). Des réponses ont déja été suggérées , cela fait quelques mois maintenant.

Différents points techniques ont été discutés sur ce sujet. En cherchant , tu trouveras les informations que tu recherches sur la manière de réduire les informations d'échange Client-serveur, le rôle du serveur, etc.