Langage de programmation

[Fermé]
Signaler
-
Messages postés
4068
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
19 juin 2017
-
Bonjour,

Après plusieurs mois d'apprentissages sur différents langage, je me pose une question depuis ce temps, et j'ai besoin d'une réponse, je me tourne donc vers vous.


Prenons l'exemple de GTA V, comment des gens peuvent modifier le jeu et faire en sorte d'avoir un multijoueur? Comment cela est possible? Avec quel langage? C'est possible avec du C++?

Toutes ces questions me trottent dans la tête.
J'en ai une dernière aussi: Sur le forum de ce GTA V MP, ils annoncent que nous pourrons coder nos serveurs en ligne, via JavaScript, HTML et CSS, mais.. Ce sont des langages WEB, c'est donc possible de les convertir pour en créer des jeux?

Je vous en remercie si vous répondez à ce poste! A plus! :D

6 réponses

Messages postés
9018
Date d'inscription
dimanche 22 août 2010
Statut
Contributeur
Dernière intervention
23 octobre 2020
2 482
Salut

GTA Online a été créé par Rockstar, ils ont créé le jeu original donc ils peuvent ce qu'ils veulent.

Concernant GTA V MP, je suppose qu'ils utilisent un SDK pour intéragir avec le jeu original et implémenter un multijoueur.
Après avoir parcouru leur forum, il semble que du reverse engineering soit utilisé...

Effectivement la plupart des SDK des mods pour les "gros" jeux sont en C++ comme le jeu d'ailleurs.

Pour la dernière question as-tu le lien vers l'annonce ?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
9018
Date d'inscription
dimanche 22 août 2010
Statut
Contributeur
Dernière intervention
23 octobre 2020
2 482
Si j'ai bien compris, Javascript serait utilisé pour contrôler le serveur. Par exemple : kicker un joueur.
Le reste (partie client) n'est pas encore documenté et le message sur le forum n'est pas bien clair pour moi.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

https://forum.gta-mp.net/index.php?/topic/238-explications-sur-gta-mp/?p=2512

Le troisième paragraphe
D'accord, ça m'étonnais de voir qu'on peut modifier un jeu via du HTML/CSS etc, parce que ce sont des langages web, alors certes, je me dis qu'ils peuvent servir sur le téléphone (sur internet en jeu) mais c'est intriguant.
Messages postés
4068
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
19 juin 2017
712
Non, javascript n'est pas que un languge web. c'est un langage comme les autres, et il peut être utilisé un peu pour n'importe quoi à condition qu'il soit executé dans un environnement approprié, avec des bibliothèques appropriées. Prends l'exemple de nodeJs, basé sur la syntaxe JS.
Messages postés
4068
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
19 juin 2017
712
à mon avis, il y aura une part de personnalisation des serveurs, avec des bannières et éléments du jeu contrôlables via une API javascript.

Le javascript et le reste des langages web ne sont pas restreints à ton navigateur; ils ne sont là que parce que ils ont été conçus pour.

Rien ne t'empêche d'utiliser le code d'un navigateur existant (moteur de rendu / moteur JS) et de l'interfacer avec un jeu.

Je n'ai pas de copie du jeu sous la main, mais il est très probablement codé en C++, ce qui ne signifie pas que tu peux le modifier comme ça:

ce programme est compilé, c'est à dire que le code source C++ à été converti dans un langage que ta machine comprends (le langage machine justement).

Modifier ce jeu en profondeur comme tu le décris, c'est à dire au delà des possibilités laissées par les développeurs, implique de comprendre et modifier ce fameux langage machine, afin de pouvoir l'interfacer avec ton propre code.

Tiens, regarde un peu ça:
https://fr.wikipedia.org/wiki/OllyDbg#/media/File:OllyDbg_capture.png

L'assembleur, c'est à dire le langage machine transcrit dans une écriture lisible, ça ressemble à ça.

C'est très peu lisible, et encore moins quand tu a des centaines de milliers d'écrans comme celui-ci et que tu n'a aucune indication sur leur usage, à part des symboles de développement oubliés à gauche à droite, et des liens avec d'autres endroits du programme, eux-aussi difficilement compréhensibles.

tu devrais donc modifier en profondeur le fonctionnement interne du jeu, les centaines de fonction qui chargent les éléments du décors pour qu'elle les chargent à partir d'un autre endroit, et en plus depuis le réseau.

Il te faudra donc construire un protocole pour communiquer toutes ces informations de manière fiable et asynchrone, en plus du serveur qui va avec.

Il serait déjà un exploit de parvenir à trouver dans ce foulli les éléments que tu cherches (position des joueurs, ...), alors les modifier ?

Désolé de refroidir tes ardeurs, mais un tel projet n'es pas impossible, simplement irréalisable tel quel. Par contre, il est possible d'exploiter ce qui est fourni par rockstar: le jeu charge de lui-même les mods, et leur fourni de quoi travailler.

Et si ce miracle est possible, c'est par des modifications de surface implémentées dans le mode solo:
on fait apparaître une nouvelle entité via l'api de mod, et on la contrôle via le réseau.


--
------------------------------------------------------------------------------------
"La peur mène à la colère. La colère mène à la haine. Et la haine ... mène à la souffrance." - Yoda
Merci pour cette réponse détaillée!

Donc, si je résume: c'est impossible de créer ce genre de multijoueur sur certains jeux solo car les développeurs n'ont pas mis assez d'accès, ici, GTA V, les développeurs ont laissé la chance aux gens de pouvoir créer leur mods solo, c'est de la que partent d'autres développeurs qui vont développer un multi-joueur à leur façon, et encore, donner d'autres possibilités pour les scripteurs qui vont pouvoir créer leur serveur.

C'est ça? Merci en tout cas, pour mon premier sujet, j'en suis satisfait.
Messages postés
4068
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
19 juin 2017
712
C'est exactement ça :D

Même si à une armée de développeurs insomniaque rien n'est impossible, l'idée est là.
Ça fait plaisir de voir que les gens s'intéressent au fond des choses :)