Gamesalad Obfuscator
Hi All,
I've made a small tool to obfuscate your project files for publishing. You can see it in action in my demo video that I've linked below. (You also get a preview of my upcoming game series...)
I'm not claiming it's amazing or is the definitive answer, but it is an answer to something I saw as a problem, but I figured it will do for now.
What it does:
Changes the name tags for variables in actors (and instances) and the game itself.
Changes actor names.
Changes all labels for functional items.
This has no functional bearing on the game running itself, only the cosmetics. You can tell in the video that it's nearly impossible for a person to simply read what is going on with your code.
I'm not guaranteeing this stops abuse of game projects, but it should help to thwart it.
I hate charging for stuff, but I do miss eating actual food and not just tomatoes and ramen (and damn a beer would be nice now and then)! I think $2 is a fair price (unless you'd like to pay more).
I'll post it to the app store in the next few days, but if you want to paypal me directly, I'll send you the program.
TL;DR:
Worm wrote a program that makes projects hard to read but leaves functionality in place. He wants $2 so he can eat an actual meal and drink a beer unless you want to give him more.
Video:
<iframe width="425" height="349" src="http://www.youtube.com/embed/oUxICUNsh1A?hl=en&fs=1" frameborder="0" allowfullscreen></iframe>
I've made a small tool to obfuscate your project files for publishing. You can see it in action in my demo video that I've linked below. (You also get a preview of my upcoming game series...)
I'm not claiming it's amazing or is the definitive answer, but it is an answer to something I saw as a problem, but I figured it will do for now.
What it does:
Changes the name tags for variables in actors (and instances) and the game itself.
Changes actor names.
Changes all labels for functional items.
This has no functional bearing on the game running itself, only the cosmetics. You can tell in the video that it's nearly impossible for a person to simply read what is going on with your code.
I'm not guaranteeing this stops abuse of game projects, but it should help to thwart it.
I hate charging for stuff, but I do miss eating actual food and not just tomatoes and ramen (and damn a beer would be nice now and then)! I think $2 is a fair price (unless you'd like to pay more).
I'll post it to the app store in the next few days, but if you want to paypal me directly, I'll send you the program.
TL;DR:
Worm wrote a program that makes projects hard to read but leaves functionality in place. He wants $2 so he can eat an actual meal and drink a beer unless you want to give him more.
Video:
<iframe width="425" height="349" src="http://www.youtube.com/embed/oUxICUNsh1A?hl=en&fs=1" frameborder="0" allowfullscreen></iframe>
Comments
You say something about making a project hard to read but still functional. How is this useful?
For anyone like me who did not understand the purpose. it is to combat someone seeing how your rules and such are setup by pulling the gameproject out of a compiled .app package.
This is my reply to the PM.
"Ah, Well I sugest trying it. as it doesn't work. the project file is inside the .app package but it is encrypted. you cannot see any of the rules or anything. The images and sounds are in there as well but there is really nothing you can do about that. They are inside every .app package wether made with GS or not."
Sorry wormil not trying to burn your sales. i'm sure some people will still go for the idea. I just didn't know what the idea behind the purpose was.
Thanks
I'll pm you the same stuff I sent him.
Tenrdrmer is right, his app has art that can't be used, but the code can.
I said this won't protect the code, but it will make it a mess to look at.
Good work.
Wayne
Anyways, if you guys want in on the program, I'll be able to ship sometime later today to you (it's 6am, I haven't been to bed yet). You can email me at wormil at gmail.com, and we'll get it shipped.
Please read this entire post, and don't skip parts.
First and foremost, I'm not sharing what information I have with anyone, unless a gamesalad rep themselves want to chat. What I thought was a known problem seems to not be, and I don't want to be some villain here.
What my program does isn't the answer of all answers. It's simply an attempt to make it require WAY more work that it already (which is a lot of work) to do.
"Obfuscated code is source or machine code that has been made difficult to understand for humans. Programmers may deliberately obfuscate code to conceal its purpose (security through obscurity) or its logic to prevent tampering, deter reverse engineering, or as a puzzle or recreational challenge for someone reading the source code. Programs known as obfuscators transform readable code into obfuscated code using various techniques." - http://en.wikipedia.org/wiki/Obfuscated_code
The idea employed here is that your code is a valuable asset to you. You use words to represent things in your game (position, score, etc).
I'll make a working example for you:
We want to add points to the game.
We make a game variable called 'score'.
When an actor dies, we use the ChangeAttribute function to set "score=score + 1". We all know this looks like "game.Score" = "game.Score+1".
What my program does, is change the name to whatever you want, let's say 'wormil'.
Now the code when viewed looks like "game.wormil" = "game.wormil+1".
So what? Well, let's say you have 10 or 20 more attributes (my game has about 40 I think) and they were all named "wormil"...which variable is it? Gamesalad knows, but the person reading the code in gamesalad would just see a mess of wormil.
Now if all your actors were named wormil, and all of their tags were named wormil, and all of the instances of your actors were named wormil....well, it's a lot of wormil.
This is not fool proof, it can be semi undone, as can any obfuscation. But, it will be undone into just as big of a mess. I'd rather have a huge mess of something that takes hours and hours to decode, that my code in plain sight.
Please understand this is not a reflection on the gamesalad engine, or gamesalad as a company, or it's developers. Microsoft has this problem with .NET, Oracle has this problem with Java, etc. We all know that there is no uncrackable software (think about all the pirated games in the world). This is like having a lock on your front door. It's to keep honest people honest.
This wasn't meant to scare people into buying my product. I'm not trying to make millions of dollars, just have a bit of pocket money for my time and effort in coding this app up, and to be able to afford some beer (6 pack of corona in Australia is $20 and a 700ml bottle of Jameson is $40
If Gamesalad wants to talk to me, I'm open to it and can arrange a time to speak that is great for both of us.
Regards,
-Worm