Masquer les données de jeu du joueur?

13

Je travaille sur mon premier jeu (C ++) et je veux utiliser une conception basée sur les composants. J'ai beaucoup lu à ce sujet récemment et hier, j'ai décidé que je voulais stocker des données d'objet dans des fichiers JSON externes, pour permettre plus de flexibilité et de facilité d'accès.

Ensuite, il m'est apparu que le fait de laisser ces fichiers dans l'arborescence des répertoires du jeu permettrait aux joueurs de modifier tout ce qu'ils voulaient très facilement.

Je ne suis pas inquiet de montrer le code aux développeurs, car le jeu sera open source, mais je crains qu'un joueur inexpérimenté ne casse le jeu ou au moins gâche le plaisir.

Suis-je en train de manquer quelque chose? Quelle est la politique de masquage des données de jeu (dans les jeux open source)? Est-il normal de tout laisser accessible à tous?

Sinon, quelle est la bonne façon de masquer les données?

Marco Giancotti
la source
3
Habituellement, la possibilité de modifier le jeu est une fonctionnalité, pas un bug, en particulier pour les jeux en solo.
jprete
8
Je ne m'embêterais pas vraiment. Il vaut mieux passer votre temps à faire un bon match. =)
Jari Komppa
1
Je suis enclin à penser que (presque) tous ceux qui télécharge un jeu open-source sait assez pour réellement profiter de bricoler avec les données de jeu et briser le jeu en cours. Si c'est un bon jeu, vous verrez un wiki expliquant votre format JSON apparaître en un rien de temps!
Nevermind

Réponses:

33

Si les joueurs bricolent et gâchent le plaisir, je dirais que c'est leur problème. Pour les bricoleurs, la moitié du plaisir est de voir ce qui se casse.

C'est comme s'inquiéter que les joueurs utilisent un code de triche en mode divin et craindre que le joueur ne soit pas mis au défi.

Je ne ferais rien de plus que de mettre ces fichiers de configuration dans un fichier zip (ce que vous devriez probablement faire de toute façon pour les temps de chargement) et de vous assurer que votre code peut gérer les données corrompues avec élégance.

Tetrad
la source
20

J'ai peur qu'un joueur inexpérimenté puisse casser le jeu ou au moins gâcher le plaisir.

S'ils se mêlent des données du jeu, c'est ce qu'ils considèrent comme «amusant». Vous n'avez pas besoin de les protéger de cela. Après tout, les données des composants d'entité ne sont guère gênantes. Peut-être que si vous aviez des données de dialogue ou de quête là-dedans, ce serait un problème, mais probablement pas. La plupart des joueurs ne savent même pas où chercher ce genre de chose, sans parler de la rechercher délibérément ou de la modifier.

Mon conseil est de le compresser et de renommer l'extension du fichier. Cela gardera le look décontracté mais ne sera pas difficile pour vous de travailler avec. Vous pouvez utiliser quelque chose comme PhysicsFS pour travailler avec les fichiers.

Kylotan
la source
5
Oui. Je me souviens d'avoir joué à Colonization sur Amiga. Les paramètres des unités ont été stockés dans un fichier texte simple avec une txtextension standard . Après avoir joué beaucoup, j'ai décidé de rendre le jeu plus difficile en ajustant ces paramètres. Plus tard, j'ai partagé ces paramètres avec des amis. C'était amusant ...
liori
3

Vous pouvez stocker les données cryptées , en utilisant un schéma de cryptage symétrique (AES), mais cela est inutile: le logiciel est open source , donc tout le monde peut lire la clé et donc décrypter les données. Cela "empêcherait" juste le joueur occasionnel de tricher.

Et ce serait un peu inutile même dans les projets en source fermée, car il est assez facile de trouver la clé dans le jeu binaire.

Vous avez donc deux possibilités:

  1. laissez simplement le contenu non crypté (mais au moins collectez le hachage md5 de chaque fichier, afin de pouvoir le vérifier lors de l'exécution contre tout dommage dans la distribution de votre jeu);
  2. allez en source fermée , brouillez les données (avec un algorithme secret à plusieurs étapes réversibles comme chaîne inverse + échange d'octets + xor avec une chaîne constante, etc ...) puis cryptez tout avec AES. Il sera plus difficile pour quiconque de récupérer les données. Beaucoup plus difficile.
gd1
la source
1
Même votre méthode de source fermée n'est pas si difficile. Les mêmes personnes qui brisent régulièrement les schémas utilisés pour la protection contre la copie peuvent probablement le briser également. La principale différence est qu'ils ne dérangeront pas.
jprete
@jprete: c'est sûr. C'est juste une question de temps, mais le temps est critique pour les gens, donc le rendre difficile et non rentable, parfois, est juste suffisant.
gd1
3

Je le laisserais. Il existe une énorme communauté de mods et des joueurs comme les jeux de modification / modding. S'ils cassent quelque chose, c'est sur eux. Ils pouvaient toujours réinstaller.

Permet également aux autres développeurs de travailler plus facilement.

user697111
la source