Je pense qu'il y a un gros travail de programmation derrière.
Par exemple, pour les GTA, il y a beaucoup d'outils qui ont été fait en analysant les données du jeu. Cela a permis de créer des importer/exporters pour les modèles 3D.
J'avais regardé il y a peu les outils amateurs pour visualier les données 3D des jeux Square (Final Fantasy par exemple). Du long et gros travail.
A l'epoque, je travaillais en assembleur sur ordinateur. Il faut savoir qu'on écrivait du code directement en assembleur, donc le code "compilé" (enfin "assemblé") était relativement identique... sauf que, par rapport au code source, il manquait tous les noms de fonctions, les labels, les commentaires. Le code devenait beaucoup moins compréhensible du coup. Cependant, il était possible de dessassembler et de recreer des labels ("ressourcer" je crois) et on peut y comprendre quelquechose. Cela m'est déjà arriver de faire cette opération il y a longtemps.
Pour un langage haut niveau comme le C/C++, c'est 1000 fois pire. Le code généré est purement incompréhensible.
Il existe des "hacks" de jeux SNES par exemple, mais les modifications sont mineures. Par exemple on peut traduire une rom en changeant les octets correspondant aux phrases de dialogue, mais il faut que les nouvelles phrases prennent autant ou moins de place que les anciennes, sinon cela ne rentre pas.
Possible d'ajouter des fonctions pour avoir des vies illimitées aussi. Mais cela ne va jamais plus loin.
Pour minecraft, c'est du java non ? C'est peut être plus facilement decompilable ?