Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat
Is there a way to hide/obscure PNG files in the project? - Gideros Forum

Is there a way to hide/obscure PNG files in the project?

RogerTRogerT Member
edited March 2013 in General questions
Hi guys,
Gideros is doing a great job at encoding lua, when exporting to android/iphone, yet PNG files stay in the assets folder and basically everyone can take them from there.

Maybe there is a way to somehow obscure them? Right now only thing that comes to mind is somehow encode them and have java decode them back, before kicking in Gideros and then, after the app closes, delete the decoded files... any better suggestions?

Thanks. )


  • @RogerT that is actually a good question, one I have been thinking over for a while myself. I ran into the same trouble with the MP3 files on Android as most music players will then find them and add them to the users playlist, which is to say the least a little odd.

    Any of you other guys have some ideas, I have attempted to rename the files such as .dat etc so that the Android OS would ignore them, but in most cases Gideros will simply tell me the format is not supported since it uses the extension to determine the file format it seems.

    We'll see what the other guys have to say, ideally I would like to see a feature in Gideros that obscures the assets folder in some manner--possibly even just allowing for the option to store all assets in a zip file etc so they are sitting in the open on the users OS.

    Likes: RogerT

    ThumbHurt Games / FB: ThumbHurt Games / FB: Eli/Teranth | Skype: teranth37
    +1 -1 (+1 / -0 ) Share on Facebook
  • I used to think this was an issue, but now I'm not so sure - at the end of the day unzip any .ipa or .apk file and see what's available. 90% of users wouldn't know (or care) that the files can be unzipped and even less have the capability or inclination to do so.

    Anybody who wants your graphics (or other assets) will find a way to get them regardless and in the main unless your doing a direct rip off of your app then most of your resources aren't of any use - anybody who would use resources from different locations / different styles isn't going to be worried too much about app quality - and besides if anybody DOES use your graphics directly then you can address the issue of copyright infringement and have Apple or Google pull the app anyway.

    Likes: RogerT

    WhiteTree Games - Home, home on the web, where the bits and bytes they do play!
    #MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
    +1 -1 (+1 / -0 ) Share on Facebook
  • @techdojo I agree to a certain extent except that many apps (mine included) will have assets from a third party where the licence precludes the original files being extractable from the app distribution.

    Best regards

    Likes: RogerT

    +1 -1 (+1 / -0 ) Share on Facebook
  • ScouserScouser Guru
    edited March 2013
    @bowerandy: The only current way to hide your assets from ordinary prying eyes is to use a framework which obfuscates them something like Unity.

    Having said that if a competitor wants to get at the assets there is not much you can do to stop them. Even if you encrypt them you still have to decrypt them within the software which means that the decryption key is in the software somewhere.

    Encrypting your code, data & text assets will help but to encrypt the graphics we would need to be able to decrypt the image to RAM and then create a Texture from the decrypted image.

    After a bit of investigation I discovered that there is a TextureManager::createTextureFromDib function which could help. Unfortunately, there is no functionality to decode a .png image from memory or as far as I can tell, create a Dib (Device Independent Bitmap) of given size / pixel depth from an image decompressed in memory.

    Maybe some of this functionality may arrive in a later release but at this current time there is no realistic way of hiding resources from prying eyes although I would like to be proved wrong in this case.

    Likes: RogerT

    +1 -1 (+1 / -0 ) Share on Facebook
  • Teranth, if android media player is finding your .mp3 files, you can put an empty ".nomedia" file into that folder and it will prevent the player from finding it.
    +1 -1 (+3 / -0 ) Share on Facebook
  • john26john26 Maintainer
    Accepted Answer
    I bought Monkey Island for my iPhone and I was able to unpack the .ipa and play the entire game on my PC using ScummVM! So even LucasArts can't or doesn't feel the need to encrypt assets.

    Likes: RogerT, techdojo

    +1 -1 (+2 / -0 ) Share on Facebook
  • @RogerT, thanks that is really my only concern with the files being available as I don't think anyone will steal my graphics/sounds, and if they do heh my graphics and all custom and available only in my apps so it would be rather glaring.

    I certainly agree that encrypting assets is just too much trouble for me--and adds all sorts of trouble with exports since you are encrypting things, so it's not a big deal for me to leave then open, but I don't want them to show up in media players and it seems .nomedia will help me there :)

    Anyway thanks for the tip, I will certainly try it out. :)
    ThumbHurt Games / FB: ThumbHurt Games / FB: Eli/Teranth | Skype: teranth37
  • Thanks @RogerT for the tip, now if we can get @atilim to implement this as a default action for any folders that contain media during export then that would be a good place to start from.
  • atilimatilim Maintainer
    Oh thanks. I've added implementing .nomedia to my TODO list.

    Likes: Scouser

    +1 -1 (+1 / -0 ) Share on Facebook
Sign In or Register to comment.