Est-il peu professionnel de laisser les ressources du jeu à l'œil ouvert?


43

J'ai toujours des problèmes pour ranger mes ressources, après avoir traversé des API complexes et des fichiers zip qui épuisent mon cerveau, j'ai pensé que je pourrais aussi ranger le jeu avec les ressources visibles à l'œil humain, dans un simple dossier.

Est-ce que ce serait non professionnel? Personnellement, je n'ai même jamais vu des jeux faire cela, cela voudrait dire fondamentalement que le joueur pourrait éditer ce qu'il veut dans le jeu, comme aller dans map1.txt et ajouter un X quelque part pour créer un mur ou changer le sprite du joueur. à un poney dans MS PAINT.


30
Pensez-y simplement comme une communauté de modding :)
Orin MacGregor le

1
Êtes-vous un développeur de jeux professionnel disposant d'un budget? Je pense que c'est bien au cas où vous ne prévoyez pas de gagner beaucoup d'argent avec ce jeu. J'ai quelques conseils cependant. Si cela vous fait vous sentir mieux, j'avais l'habitude de modifier des fichiers de sauvegarde dans X-COM / UFO Defence
wolfdawn le

6
@ ArthurWulfWhite: Je pense que plutôt que de gagner de l'argent ou pas, le point de division est ce que l'implication des ressources modded est pour le jeu. Pour les MMORPG, un client / ressource modifié peut donner un avantage injuste à certains joueurs, vous voudrez donc éviter cela autant que possible. Pour de nombreux autres jeux, un client convivial pour le modding rend attrayant le développement de la communauté de modding autour de votre jeu et est généralement considéré comme une bonne chose.
Lie Ryan

1
L’aspect modding de Quake (1) a été très bien géré, sans exposer les modèles et les fichiers bsp au joueur occasionnel. Je ne pense pas qu'il soit mauvais de cacher des choses tout en les gardant facilement accessibles. J'aimais le fait que je puisse éditer des fichiers de sauvegarde dans X-COM, je voyais cela comme une fonctionnalité. Cependant, il serait idiot de créer un fichier texte appelé money.txt dans lequel je pourrais simplement taper le montant en espèces avec lequel je veux commencer car cela efface en quelque sorte la frontière entre un bac à sable et un jeu.
Wolfdawn

2
J'aime la méthode Introversion : Mettez les fichiers dans des fichiers zip renommés, par exemple sound.dat. L'utilisation de dossiers non compressés avec quelques centaines de fichiers rend la (dés) installation assez ennuyeuse.
Tobias Kienzler le

Réponses:


44

Non, la modification des données du jeu est appelée modding, pratique courante et souvent considérée comme un effet positif. En fait, il est bon de garder les données de jeu aussi transparentes que possible et de les éditer aussi simplement que possible. D'autant plus si vous choisissez des lecteurs plus "avancés" comme public cible.

La raison pour laquelle vous ne trouverez pas beaucoup de jeux AAA qui utilisent une structure de dossiers en clair pour leurs données est qu'ils utilisent des formats d'archive optimisés personnalisés pour obtenir des temps de chargement améliorés. L'inconvénient est la transparence réduite et les outils supplémentaires requis dans la chaîne d'outils. Cependant, pour les jeux plus petits ou 2D, ces deux choses valent généralement mieux que le temps de chargement amélioré.

Assurez-vous simplement que ce que les gens voient n’est pas simplement un énorme gâchis :) placez les fichiers dans une structure de dossiers appropriée.


Les choses sont également emballées pour être une forme de dissuasion du vol (bien que finalement inefficace si poussé)
CobaltHex

15

Outre d'autres réponses, vous devez prendre en compte deux préoccupations importantes:

Gâter les surprises
Dites que je suis à mi-chemin du jeu et découvrez le dossier "vidéo". Curieux, je clique sur l'un d'entre eux et j'arrive à regarder la cinématique finale du match.

Défi perdant
Même scénario, mais je trouve que le format de jeu sauvegardé a une valeur "or". Je le change de 250 à 999999999, et cela fonctionne. Soudain, votre courbe de difficulté soigneusement conçue, maximisant le plaisir du jeu, disparaît.

Les deux pourraient causer une perte d’intérêt pour le jeu, partiellement voire totalement. Cela pourrait aboutir à une impression générale plus faible de la qualité du jeu (injuste mais vrai).

Réfléchissez à cela en fonction de votre public cible - les jeunes joueurs, en particulier, sont susceptibles de gâcher leur plaisir sans vraiment comprendre que c'est ce qu'ils font.

Même si vous souhaitez encourager la modification, vous voudrez peut-être empêcher les utilisateurs de ruiner leur propre expérience du jeu "par accident".


4
Tout à fait raison. Cela ne fait pas de mal si vous devez surmonter quelques obstacles avant de pouvoir modifier le jeu. +1 pour le scénario vidéo
wolfdawn

14

Peut-être que non professionnel est le mauvais mot. Cela dépend vraiment du jeu, que les fichiers exposés soient ou non exposés est une mauvaise chose.

Pour un jeu simple à un joueur, les joueurs et les moddeurs vous aimeront. Vous leur donneriez la possibilité de changer facilement votre jeu et de faire ce qu'ils veulent. Et gardez à l'esprit qu'il y aura toujours des moddeurs pour un jeu, aussi petit soit-il. Beaucoup de joueurs se sentiront offensés si la modification est difficile, après tout, ils ont acheté votre jeu et ils devraient pouvoir faire ce qu'ils veulent.

D'autre part, éditer facilement les ressources du jeu est mauvais pour un jeu multijoueur, car il est considéré comme de la triche. Les joueurs malveillants peuvent remplacer le contenu pour rendre les ennemis plus visibles, les murs transparents, etc. Bien que votre code de jeu doive vraiment imposer que les actifs n’ont pas été altérés, l’approche «ensemble d’actifs» présente l’avantage de contribuer à dissuader cette activité (sécurité). obscurité).


1
Si vous êtes assez bon pour contourner un test de somme de contrôle, vous êtes également assez bon pour jouer avec les actifs empaquetés. Je ne pense pas que l'emballage soit plus sécurisé.
mmyers

11

Il existe une solution simple pour cela. Vous pouvez simplement renommer par lot les extensions dans une invite de commande en utilisant quelque chose comme:

rename *.txt *.map

Et puis placez-les dans un dossier \ map

Vous pouvez accéder à une invite de commande à partir de Windows exécutant cmd.

Cela n'empêchera pas les moddeurs sachant qu'ils veulent modifier le jeu et laisseront une impression moins relâchée aux personnes qui souhaitent simplement jouer au jeu sans tout le contenu qui traîne.

Oui, il sera toujours éditable. Les gens seront simplement moins susceptibles de le remarquer.

Répondre au commentaire d'Eric Robertson

Si vous souhaitez masquer correctement le contenu de votre jeu aux joueurs, vous pouvez utiliser le cryptage RSA sur ces fichiers texte et les fusionner en un seul fichier lorsque vous y êtes. Cela ne devrait pas poser trop de problèmes, même si je soupçonne que c'est bien au-delà de l'exagération.


1
-1 Ce n'est pas vraiment un "correctif". Les ressources sont toujours là à la disposition des yeux.
Erick Robertson le

6
@ Eric Robertson Eh bien, on pourrait en dire autant de leur emballage à la manière de Quake (1). Il n'y a pas de solution magique pour cacher complètement les actifs. Ceci est juste destiné à les cacher au joueur occasionnel et à contourner un peu les problèmes qu'il a mentionnés. Cela étant dit, les placer dans une structure de dossiers ou dans un ensemble d'actifs ne signifie pas que les actifs ne sont pas présents (disponibles pour les yeux), à moins que vous n'utilisiez le cryptage.
Wolfdawn

Je sais que les extensions de fichiers ne sont pas importantes sous Linux, mais êtes-vous sûr que cela fonctionnerait sous Windows?
jcora

1
@Bane Un nom de fichier n'a pas d'importance, essayez ceci, renommez un fichier .txt en .zip, .bmp ou .xyz et rouvrez-le avec le bloc-notes. Le nom de fichier n'a d'importance que lorsque vous parcourez des fichiers sur votre ordinateur. Par exemple, .xyz est associé à une certaine icône. Si vous souhaitez ouvrir un fichier avec xsoftware, seuls les fichiers * .x sont affichés par défaut, le bloc-notes également. fichiers txt, mspaint affichera les gifs, jpegs, bmps, pngs, tiffs, icos, etc. Les noms de fichiers sont simplement une convention pratique contenu
wolfdawn

1
Merci de m'avoir expliqué! Alors Windows ne semble pas si différent de Linux dans ce domaine
jcora

3

Si cela n’a jamais été professionnel, ce n’est peut-être plus le cas. Au début, les jeux utilisaient leurs propres formats de paquetage, principalement pour préserver leur propriété intellectuelle.

Vous pouvez surmonter certaines limitations, telles que la fragmentation et les appels de fonction inutiles du système de fichiers natif sous-jacent, en regroupant toutes les ressources dans une archive unique. Cela réduit les risques de fragmentation lors du déploiement du package sur le PC du client.
Dans le pire des cas, vous pourriez vous retrouver avec de minuscules ressources individuelles dispersées autour des secteurs de votre disque dur. (Avec l'arrivée des SSD, ce point devient souvent théorique)

Mais tous ces avantages peuvent également être obtenus avec le .tarformat d'archive gratuit, ancien (Unix) .

De plus, en utilisant votre propre format de paquet, vous pouvez surmonter des limitations telles que l'absence de version, les hachages de fichiers, le codage et les pointeurs / liens dans les fichiers, pour n'en nommer que quelques-uns.

En conclusion , je préconise la transparence dans le développement indépendant, sauf si vous devez explicitement protéger votre propriété intellectuelle.


En ce qui concerne les grands points soulevés par MGOwen: Pour éviter Spoiling surprend , vous pouvez renommer l'extension de fichier, les attributs de fichier de changement, utiliser des formats rares médias, exciser les médias en -tête et le stocker ailleurs, etc ... Pour éviter de perdre défi utiliser une sérialisation binaire writer pour stocker l’état de votre jeu, avec un cryptage supplémentaire et des variables leurres si nécessaire.

Disclaimer: Je ne suis pas un développeur de jeux. Ne considérez ce poste que comme un point de départ ...


1
"Pour éviter le défi de perdre, utilisez un graveur de sérialisation binaire pour stocker l'état de votre jeu, avec un cryptage supplémentaire et des variables leurres si vous devez." Si les gens veulent tricher, ils trichent. Avec un débogueur en mémoire, recherchez quatre octets en mémoire en corrélation avec votre or et suivez les modifications apportées, le cas échéant.
Random832

1
@ Random832 Amen à cela.
Lorenz Lo Sauer le

Votre réponse est fausse. Selon mon expérience, accéder au contenu de 6 000 fichiers métalliques est 5 à 10 fois plus lent que d'accéder au même contenu à partir d'un fichier. Dans le cas où le chargement d'un disque SSD prend 5 secondes, 15 secondes à partir du moment où un disque dur normal transforme les mêmes données en fichiers modifiables et que le chargement passe à plus de 30 secondes (disque dur et SSD). Donc, pour une raison quelconque, l'augmentation est plus prononcée sur le SSD que sur le disque dur. (Pas de RAID dans les deux cas)
Coyote le

@Coyote J'avais l'impression de plaider pour le même point dans le post ...? Fragmentation (limitations de contrôleurs matériels, limitations physiques de plateaux ...) + nombreuses invocations d'API de système de fichiers (souvent via des wrappers) = Lent
Lorenz Lo Sauer

Cette phrase particulière est fausse alors: "Avec l'arrivée des SSD, ce point devient sans objet"
Coyote

1

Il est facile de corriger et sinon l'indexation de recherche trouvera vos vidéos finales, etc.

Pour les fichiers de données: Flip bits avec xor

   realByte_cpp = readByte_cpp ^ 0x44; // xor

Pour masquer "Or: 250" à GREP.

Il suffit d’encoder avec la même valeur xor (aléatoire).

Pour éviter les scènes aux utilisateurs occasionnels, essayez ceci: Les noms de fichiers traduits par Machinarium afin que \ videos devienne \ 0101 et que tous les fichiers aient ensuite un identifiant à 8 chiffres binaires suivi de .101 pour arrêter les associations de fichiers.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.