AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

 [Résolu] Ressources externes

Aller en bas 
5 participants
AuteurMessage
Liang
Pas mal
Liang


Messages : 37

[Résolu] Ressources externes Empty
MessageSujet: [Résolu] Ressources externes   [Résolu] Ressources externes EmptyVen 1 Avr 2011 - 22:52

Hmmm... J'ai l'impression de passer pour un gros débutant à chaque fois que je viens poser une question ici ahah
Mais c'est juste que je me penche sur des aspects plus "avancés" du GML et donc, forcément, je galère un peu en ce moment... Sinon, je tiens à préciser que je sais me débrouiller un minimum !

Or donc, je cherche cette fois ci à créer mes jeux en me servant de ressources externes (je pense plus particulièrement aux sprites actuellement), et me pose quelques questions :

L'utilisation de ces ressources externes optimise-t-elle vraiment le jeu ? (en supprimant à chaque fois les sprites inutilisés bien sûr)
Lorsque l'on met à disposition, en ligne, un projet fait avec des ressources externes, l'utilisateur peut interagir à sa guise avec celles-ci, non ? (Remplacer les images en gardant les noms par exemple.) Comment remédier à cela ?
Dans le cas où l'utilisateur installe le dossier de jeu dans un emplacement différent de celui indiqué dans le code du .gmk, faut-il utiliser pour chaque sprite la fonction "sprite_find_first(mask,attr)" pour trouver chaque sprite recherché ?

Merci d'avance,
Liang.


Dernière édition par Liang le Lun 4 Avr 2011 - 9:50, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptyVen 1 Avr 2011 - 23:00

Pour vérifier si un sprite n'as pas été modifié/changé tu peut faire un test de parité avec certains octets.
Ou sinon tu peut utiliser un truc simple :
Tu regarde ce que la somme de tous les octets (ou un sur 2 ou ce que tu veux) modulo 256 donne comme valeur et tu la stock dans l'exe, pis avant de charger ta ressource tu fait un test pour voir si c'est toujours la même valeur. Si le gars a changé la ressource t'as 255 chances sur 256 de le savoir.
Par contre la faudrait faire une dll vu la lenteur des fonctions de lecture de GM.

_________________
[Résolu] Ressources externes Runningpotato1[Résolu] Ressources externes TvF6GED [Résolu] Ressources externes MdetltS
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptyVen 1 Avr 2011 - 23:19

Je ne sais absolument pas me servir des octets avec GM. Je n'ai d'ailleurs qu'une représentation imprécise de ce qu'est un octet, et comment il est géré par l'ordinateur (et encore, merci wikipédia) !

D'après ce que j'ai compris, ce serait une mesure de l'information contenue dans les fichiers ?
Mais, en faisant cela, ne risque-t-on pas de tomber sur de nombreux éléments ayant le même nombre d'octets ? (avec la masse de fichiers présents sur les ordis...)
Revenir en haut Aller en bas
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE


Messages : 408
Localisation : Québec

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptyVen 1 Avr 2011 - 23:56

onilink_ a écrit:
Pour vérifier si un sprite n'as pas été modifié/changé tu peut faire un test de parité avec certains octets.
Ou sinon tu peut utiliser un truc simple :
Tu regarde ce que la somme de tous les octets (ou un sur 2 ou ce que tu veux) modulo 256 donne comme valeur et tu la stock dans l'exe, pis avant de charger ta ressource tu fait un test pour voir si c'est toujours la même valeur. Si le gars a changé la ressource t'as 255 chances sur 256 de le savoir.
Par contre la faudrait faire une dll vu la lenteur des fonctions de lecture de GM.

Pourquoi pas un modulo de 1 000 000 ou plus?
Revenir en haut Aller en bas
Adamo
Utilisateur confirmé: Rang ***
Adamo


Messages : 681
Localisation : Quebec

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 1:54

au pire si tu as peur que ton contenue sois modifier ou autre, tu prend une dll qui ouvre les fichier a partir dune archive rar/zip ou autre avec un password :O
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 10:15

Pour le modulo c'était un exemple, me suis mal exprimé.
En tout cas faire une dll qui fait cette vérification est extrêmement simple, et le traitement devrais être super rapide. Donc si ça t'intéresse je peut te coder ça.

_________________
[Résolu] Ressources externes Runningpotato1[Résolu] Ressources externes TvF6GED [Résolu] Ressources externes MdetltS
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 11:01

Ce serait avec grand plaisir ! Smile
(Ok, je viens de voir la doc sur les Dll, ça n'a pas l'air hyper compliqué de les appeler depuis GM !)

Merci Adamo pour cette astuce, je vais voir comment faire cela avec GM !
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 11:42

Tient, et je t'ai mis le code source avec au cas ou y aurais un oubli Wink
http://www.host-a.net/u/onilink_/Verify_dll.7z

_________________
[Résolu] Ressources externes Runningpotato1[Résolu] Ressources externes TvF6GED [Résolu] Ressources externes MdetltS
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 14:40

Ok, à ce que je vois, ton script permet donc de récupérer la valeur en "modulo octet" d'un fichier au démarrage du jeu, c'est bien cela ?

Le "problème" étant qu'il n'y a pas moyen de savoir si un utilisateur a changé le fichier entre deux session de jeu, si ?
La solution serait de stocker chaque modulo octet de chaque fichier image dans un fichier texte pour vérifier à chaque début de jeu s'il y a une différence entre les deux ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 15:02

En fait avant de compiler ton exe tu récupère les valeurs de chaque ressources et tu fait ensuite des tests :

if( verify_value("image.png", ton_modulo) != valeur_image )
show_error("Fichiers corrompus", 1)

Les valeurs doivent donc être calculées et écrites avant de créer l'exécutable.

_________________
[Résolu] Ressources externes Runningpotato1[Résolu] Ressources externes TvF6GED [Résolu] Ressources externes MdetltS
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 15:16

Ah oui d'accord, nickel ça marche j'ai compris !
Par contre, c'est un peu long, si je dois calculer ça pour chaque image de mon jeu... :/

Et pour ce qui est du chemin du fichier, changeant selon l'endroit où l'utilisateur place son dossier, comment faire ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 15:56

ben tu les met en relatif.

Par exemple ton jeu est dans le dossier Game , et les ressources sont dans un dossier Res (situé dans Game).
Alors pour avoir accès a la ressource au lieu de mettre tout le chemin tu met juste Res\Nom ressource.
De plus y a aussi des variables globales comme working_directory pour connaitre l'emplacement de l'exe de ton jeu.

Après pour le système de contrôle t'as qu'a l'automatiser avec les file_find et tu sauvegarde ton dans le clipboard par exemple pour ensuite les utilise. Enfin c'est un exemple mais c'est sur que faire tout a la main n'est pas conseillé :p

_________________
[Résolu] Ressources externes Runningpotato1[Résolu] Ressources externes TvF6GED [Résolu] Ressources externes MdetltS
Revenir en haut Aller en bas
zebdal
Utilisateur confirmé: Rang *****
zebdal


Messages : 2874
Localisation : Chez Vanilla
Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 16:47

Citation :
L'utilisation de ces ressources externes optimise-t-elle vraiment le jeu ? (en supprimant à chaque fois les sprites inutilisés bien sûr)
oui

Citation :
Lorsque l'on met à disposition, en ligne, un projet fait avec des ressources externes, l'utilisateur peut interagir à sa guise avec celles-ci, non ?
oui

Citation :
Comment remédier à cela ?
crypter les données.
mais même avec ca, la personne pourra toujours chercher à modifier le fichier et il y arrivera.
ou alors il hackera simplement ton programme game maker pour récupérer ton code de cryptage (très simple à faire).

dans tous les cas, que tu caches ou non tes sprites et autres de quelque manière que ce soit, il y aura toujours un moyen de récupérer ces fichiers, même si tes fichiers ne sont pas en externes et sont cryptés.

si tu veux que tes données soient sécurisés, n'utilise pas game maker.

_________________
[Résolu] Ressources externes Testmf
L'IRC du CBNA
NE PAS CLIQUER:
Spoiler:
Revenir en haut Aller en bas
http://zebdal.free.fr
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 16:52

Pas faux, mais a mon avis Liang ne veux pas protéger ses ressources, mais juste empêcher le premier venu de les modifier sans que le jeu ne s'en rende pas compte.

_________________
[Résolu] Ressources externes Runningpotato1[Résolu] Ressources externes TvF6GED [Résolu] Ressources externes MdetltS
Revenir en haut Aller en bas
zebdal
Utilisateur confirmé: Rang *****
zebdal


Messages : 2874
Localisation : Chez Vanilla
Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptySam 2 Avr 2011 - 17:13

moi je trouve ca marrant de pouvoir éditer les ressources du jeu pour le faire à sa sauce.


_________________
[Résolu] Ressources externes Testmf
L'IRC du CBNA
NE PAS CLIQUER:
Spoiler:
Revenir en haut Aller en bas
http://zebdal.free.fr
Liang
Pas mal
Liang


Messages : 37

[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes EmptyLun 4 Avr 2011 - 9:50

Oui effectivement, au final ce n'est pas si grave que ça !
C'était pour voir s'il n'était pas possible de faire quelque chose de plus "professionnel", mais après tout, si l'utilisateur veut changer quelques trucs, pourquoi pas. Surtout que ce n'est pas le joueur lambda qui va chercher à modifier les ressources d'un jeu !

Merci pour ces réponses efficaces ! Smile
Liang.
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu] Ressources externes Empty
MessageSujet: Re: [Résolu] Ressources externes   [Résolu] Ressources externes Empty

Revenir en haut Aller en bas
 
[Résolu] Ressources externes
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Ressources externes
» protection de ressources externes
» importation de fichiers externes
» [Résolu] Contrôler le volume des musiques externes
» Ouvrir des fichiers externes avec GameMaker ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: