IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Récupération données jeux video


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut Récupération données jeux video
    Bonjour,
    j'ai un projet en cours de réalisation (simulateur dynamique), j'aimerais créer un programme qui me récupère les données d'un jeu de simulation de voiture (par exemple: vitesse). J'ai fait quelques recherches sur internet, mais sans resultats...
    Merci d'avance.

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Bonjour

    Et c'est quoi la question ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Je ne sais pas trop comment m'y prendre pour réaliser cette opération, j'ai une petite idée, en utilisant des sockets, mais je ne sais pas si cela va fonctionner,
    j'aimerais juste avoir quelques pistes sur ce sujet.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    D'après le peu que j'ai compris je ne vois cela comme absolument pas envisageable. Je veux dire, visez vous un jeu en particulier ou n'importe lequel ? Et puis pourquoi le jeu laisserai les données visibles de l'extérieur ? Sinon, je pense sincèrement que vous irez plus vite à refaire votre simulation avec vos paramètres plutôt que de chercher à hacker un jeu.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Enfaite, j'aimerais créer un simulateur dynamique de pilotage, j'utilise le jeu dirt 3, il faudrait que je puisse récuperer les informations des axes pour ensuite commander des moteurs. Un logiciel existe deja x-sim, mais il est trop complexe.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Citation Envoyé par alexandre68 Voir le message
    Enfaite, j'aimerais créer un simulateur dynamique de pilotage, j'utilise le jeu dirt 3, il faudrait que je puisse récuperer les informations des axes pour ensuite commander des moteurs. Un logiciel existe deja x-sim, mais il est trop complexe.
    Mais je doute que Dirt 3 soit vraiment plus simple
    Si vous créez votre simulateur, vous devriez un minimum savoir quels paramètres appliquer ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par alexandre68 Voir le message
    Enfaite, j'aimerais créer un simulateur dynamique de pilotage, j'utilise le jeu dirt 3, il faudrait que je puisse récuperer les informations des axes pour ensuite commander des moteurs. Un logiciel existe deja x-sim, mais il est trop complexe.
    Une solution existe (aucune idée du point de vu légal de cette solution par contre (?) ), il faut reverse le jeu pour trouver les adresses mémoires des valeurs que tu cherches (et ces adresses changeront à chaque lancement du jeu, donc il faut trouver une "base statique" à partir de laquelle tu peux retrouver ces adresses), puis à grand coup de ReadProcessMemory tu peux récupérer les données.

    Ça demande par contre un minimum de connaissances en assembleur.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Cela me parait un peu trop compliqué, n'est il pas possible de créer un serveur local entre le jeu et le programme afin de récupérer les informations, je peux modifier un fichier de configuration du jeu pour lui adresser une adresse ip et le port.

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Genre, les développeurs du jeu Dirt3, aurait décidé de faire : Ouep, nous on a crée un système de client serveur, pour que toute nos données du jeu soit dumpable.
    Même en mettant un mode de jeu multijoueurs, on ne ferait pas comme ça, je pense.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    En ayant essayé le logiciel x-sim, on doit modifier le fichier de configuration du jeu en lui rentrant une adresse ip et le port pour pouvoir récupérer les données des axes, après je suis pas expert non plus

  11. #11
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Ah, en effet, cela a été prévu pour
    Bah alors, il faut récupérer une doc sur X-sim et leur simulateur (la façon de communiquer).
    Si vraiment on doit faire du reverse, il faut utiliser Wireshark. Bon courage.


    Ah, je viens de comprendre à quoi ce servait. C'est pour connecter avec un siège qui bouge
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    D'accord je vais regarder merci pour l'info

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    J'ai créer un petit serveur udp qui réceptionne bien des donnée lorsque je lance le jeu, maintenant je ne trouve pas comment mettre en forme ces données, c'est à dire récupérer les valeurs attendues (axe x,y,z), si quelqu'un à une petite idée sur l'envoi udp de codemaster motion?

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    J'ai réussi à faire ce que je voulais, mais lorsque je redémarre ou fini une partie dans dirt 3, j'ai un message d'erreur:

    error 10038 Socket operation on nonsocket. An operation was attempted on something that is not a socket.

    Est ce qu'il y aurait une modification à faire dans mon programme UDP server
    pour eviter cette erreur.

    Ci-dessous mon programme:

    Merci d'avance.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    #include <winsock2.h> 
    #include <stdio.h>
    #include <stdlib.h>
     
    #pragma comment(lib,"ws2_32.lib")
     
     
     
     
    WSADATA initialisation_win32; 
    int erreur; 
    int tempo; 
    int nombre_de_caractere; 
    char buffer[65535]; 
    SOCKET id_de_la_socket; 
    SOCKADDR_IN information_sur_la_source; 
     
     
     
     
    int main (int argc, char* argv[])
    {
     
     
    // ********************************************************
    // Initialisation de Winsock
    // ********************************************************
     
     
    erreur=WSAStartup(MAKEWORD(2,2),&initialisation_win32);
    if (erreur!=0)
    printf("\nDesole, je ne peux pas initialiser Winsock du a l'erreur : %d %d",erreur,WSAGetLastError());
    else
    printf("\nWSAStartup : OK");
     
     
    int i,j;
     
    for(i=0;i<1000;i++)
    				{
     
    				// ********************************************************
    				// Ouverture d'une Socket
    				// ********************************************************
     
     
    				id_de_la_socket=socket(AF_INET,SOCK_DGRAM,0);
    				if (id_de_la_socket==INVALID_SOCKET)
    				printf("\nDesole, je ne peux pas creer la socket du a l'erreur : %d",WSAGetLastError());
    				else
    				printf("\nsocket : OK");
     
     
     
    				// ********************************************************
    				// Lie la socket à une ip et un port d'écoute
    				// ********************************************************
     
     
    				information_sur_la_source.sin_family=AF_INET;
    				information_sur_la_source.sin_addr.s_addr=inet_addr("127.0.0.1");
    				information_sur_la_source.sin_port=htons(20777); 
    				erreur=bind(id_de_la_socket,(struct sockaddr*)&information_sur_la_source,sizeof(information_sur_la_source));
    				if (erreur!=0)
    				printf("\nDesole, je ne peux pas ecouter ce port : %d %d",erreur,WSAGetLastError());
    				else
    				printf("\nbind : OK");
     
     
     
    				// ********************************************************
    				// Réception des données
    				// ********************************************************
     
     
    				tempo=sizeof(information_sur_la_source); // Passe par une variable afin d'utiliser un pointeur
    				nombre_de_caractere=recvfrom(id_de_la_socket,buffer,1515,0,(struct sockaddr*)&information_sur_la_source,&tempo);
    				buffer[nombre_de_caractere]=0; // Permet de fermer le tableau après le contenu des data, car la fonction recvfrom ne le fait pas
    				printf("\n");
     
    				for(j=0;j<nombre_de_caractere;j++) printf("%d\n",int(buffer[j]));
     
     
     
     
    				// ********************************************************
    				// Fermeture de la socket 
    				// ********************************************************
     
     
    				erreur=closesocket(id_de_la_socket);
    				if (erreur!=0)
    				printf("\nDesole, je ne peux pas liberer la socket du a l'erreur : %d %d",erreur,WSAGetLastError());
    				else
    				printf("\nclosesocket : OK");
    }
     
     
     
    // ********************************************************
    // Quitte le winsock ouvert 
    // ********************************************************
     
     
    erreur=WSACleanup(); // A appeler autant de fois qu'il a été ouvert.
    if (erreur!=0)
    printf("\nDesole, je ne peux pas liberer winsock du a l'erreur : %d %d",erreur,WSAGetLastError());
    else
    printf("\nWSACleanup : OK");
     
     
    }

Discussions similaires

  1. Développement jeux vidéo : quelles bases à avoir absolument ?
    Par Ezechiel dans le forum Développement 2D, 3D et Jeux
    Réponses: 175
    Dernier message: 20/02/2018, 17h14
  2. Réponses: 26
    Dernier message: 24/01/2007, 20h30
  3. Réponses: 3
    Dernier message: 13/09/2005, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo