Thoughts on the iOS ‘Compiler’ and Response at YoYo Games
January 6, 2011
It’s not a decompiler
Firstly I’ll start with a definition. I wanted to address this issue earlier but misjudged the pace at which the story would develop. Game Maker code is not compiled it is interpreted. Every time a distributed Game Maker game is played the interpreter (runner) does as instructed by in-game GML. Therefore this ‘decompiler’ is not in fact a decompiler and any subsequent ‘compiler’ is not that either. These phrases are just used for convenience. Wikipedia: Differences between compiled and interpreted languages
I also don’t believe that it is a decompiler that worries YoYo Games. Executable files created with all versions of Game Maker from 6.1 right up to the latest release, Game Maker 8, can currently be decompiled using tools which have been online for months (years in the case of earlier versions). An unauthorised method of enabling Game Maker games to be played on iOS is what YoYo Games are concerned about as publishing games to this platform is a key part of their business model.
Amazed at Lack of anonymity
People often come to me with stories, sometimes on condition of anonymity, so I was very surprised that the authors of the iOS Decompiler were perfectly happy for their identities to be known. When I first saw the decompiler which had the creators names written in it I was shocked.
Whilst it is true that authors of earlier Game Maker decompilers have been known the situation is now quite different in the fact that YoYo Games are actively monetizing their runner on iPhone, iPod and iPad and had not been doing so with PC games (game creators are free to distribute their creations as they choose).
Surprised by the reaction to Sandy’s blog post
I had presumed that initial reaction on the YoYo Games blog would be of shock to the announcement that such a program existed. We know how vocal the community can be when they don’t like something, just look at the initial response to the announcement of the Game Maker 8 logo, and it appears I underestimated some of the sentiments running amongst the community.
A high proportion of replies were critical of YoYo Games’ stance with some Game Maker users questioning why additional security had not been added to the game development software in the long period since PC decompilers were released. Others users responded by stating that any protection measures introduced would surely be circumvented so YoYo Games were right not to spend time on trying to encrypt the file format.
The project is wrong
Since I imagine many people have seen the video of the compiler progress on this website (or one of the sites that syndicates or translates our content) I feel I should also clarify my position on this. This blog is not involved in the project and is attempting to report the facts neutrally but my personal view is that there are no two ways about it – the project is wrong. As were the earlier decompilers which nothing was done about.
Zach and Brad
I understand that Cease and Desist letters have been sent via e-mail to the two individuals who are working on the compilation project. They have also been banned from the Game Maker Community.
On a now closed GMC topic Zach had earlier written “If YYG asks us to remove it, we (at least I) will” (referring to any as yet unreleased iOS Compiler). Since Sandy’s message there has not been any public response from Zach (though some moron attempted to imitate him on the glog), but Brad has responded to the glog post with the following.
Me and Zach have done nothing illegal.
Should you end up hiring a real lawyer and sending a valid, formal cease and desist, you will eventually lose in court.
We have not distributed any of your property. Please provide some proof of an instance where we have distributed your property.
So until a formal cease and desist is written to me personally via email or mail, the SOURCE to the decompiler/compiler will be released.
Thanks and have a good day.”
Brad (I verified it was actually him) on YYG Blog
What happens next?
As I see it there are three ways forward from here:
- A compiler is widely released to the public which will almost inevitably mean that YoYo Games will take some form of action against its creators
- The compiler is shared between a select few people and no-one knows quite who has it, how good it is and if any games make it in to the App Store (I have no idea as to whether the signature of the runner could be detected by Apple thereby preventing unauthorised use of it).
- The compiler is not released
Disclaimer: I am not a lawyer.
26 Replies to “Thoughts on the iOS ‘Compiler’ and Response at YoYo Games”
I completely agree with Robert Caldwell & Zach.
Why cant yyg hire people like Brad and Zach?
The title says it’s your “thoughts” which is an automatic heads-up for an editorial, and before calling it wrong you gave other personal reactions, such as being “amazed” and “surprised,” in sub-headlines–not to mention other opinionated words sprinkled through the paragraphs’ text. It’s identified and followed-through just fine. ~nod~
I think you guys should continue with this project!
Don’t let YYG be greedy by not letting us spread our games as far as we can.
Please, don’t stop the project. I would even send donations, or pay for it.
I applaud you!
I don’t like iOS devices (I hate them), but this is stupid.
Disclaimer: I may or may not have any idea what I’m talking about. So please don’t flame me 🙂
– I doubt (dunno) the Windows based runner would run on iOS (althought I haven’t kept up on this story at all… perhaps it’s the ‘commercial’ one?)
This is like to developing GIMP to PhotoShop. Sure, photoshop is nicer… (well in some ways anyway), but GIMP is free and is just about as powerful. It’s open source too. Why does this make me depressed like the US reaction to WikiLeaks.
To my best knowledge, GIMP was created from scratch, from the ground up, to do graphic work. This is a totally different matter from the controversy at hand, which seems to be more about taking YYG’s already established (albeit fledgling) runner program, gutting it of user-created game programs to pinpoint its code, then inserting different user-created programs. This is perhaps an interesting challenge on an individual personal level, but distributing this for others to use crosses a major, major line.
GIMP? made from scratch
this? others’ work hijacked
Well let me tell you something, guys. The Game Maker Language (GML) is considered intellectual property. Intellectual property is protected by the law.
There’s a catch here. These guys’ runner is nothing but a syntax interpreter. It’s like someone (YoYo Games) invents a new drug (GML) and someone else then makes a detector (these guys’ “compiler”). Is that drug detector legal? Yes. Because it does not contain the drug itself (GML code), but the formula of the drug to be detected (the GML syntax).
I won’t say I’m 100% sure it actually is legal. Laws vary from country to country and I don’t even fully know the laws of mine (I’m in law school, 1st year).
You’re completely correct. The “decompiler” requires the user to input the runner from the IPA file; it does not include any property from YoYo Games.
The “decompiler” creators have done nothing wrong and YoYo could learn a lesson or two from me: open works.
[…] Zach “Now that my rage has ended, I have decided to drop the project and stick with my original intentions for the project which was not to harm YYG. […]
1. You obviously don’t know the difference between a compiler and decompiler, and yet you speak as if you do and give a wikipedia article (as if that could be trusted) to back up your straw-man argument. A compiler takes code in the most human-readable format and outputs bytes of data that can be read by the machine…whether it is read by the CPU directly as machine code, or by a VM/runner as bytecode, it is still in a form that humans cannot read directly. A decompiler takes the code read by the machine and reverses it into a form that humans can easily understand. See the difference?
Considering that GM is a dumb-mans version of java when it comes to bytecode conversion (it’s nearly a 1-to-1 with no optimizations), your “compiled” code is not technically in a close-executable format. Just as writing a text documenting and saving it in “richtext” format, anyone is able to load it with easily accessible software and read the information (whether that information is owned by someone or not, the process of the purchaser to do with his system what he wants is completely legal — legalities becomes questioned the moment they redistribute it). The same applies here.
2. I was under the impression that this blog was press-protected, which means you are suppose to remain _unbias_ in your stories. You cannot post a questionable story claiming that you are just reporting a story, and then turn around and say that what they did was wrong and bash them in the same blog. Do you think you’re Leno?
3. To NPT and others, there is no copyright infringement as long as they didn’t use any of YYGs compiler in creating their own iOS compiler. Considering YYG has not given out theirs, how did brad/zach do that? At best, they stole an idea…and an idea has no monetary value in courts without practical design and proof of theft on said design. Just as Burger King stole the idea to have those McDonald McMuffins, but changed the name and used their own materials….you don’t see McDonald suing over it. BZ stated they do not distribute YYG material, and their compiler only turns gmk->ios (?), which again goes back to the compiler argument…this is not illegal (immoral possible, but if morality alone could hold weight in court, governments and corporations would be put in jail).
This is a comment piece. Though perhaps not identified as clearly as it could be.
“A compiler takes code in the most human-readable format and outputs bytes of data that can be read by the machine…whether it is read by the CPU directly as machine code, or by a VM/runner as bytecode, it is still in a form that humans cannot read directly.”
In this case, you’re wrong. The game.ios file contains everything, honestly, it’s GML and PNG’s (maybe BMP or GIF, i haven’t checked) the game.ios file plugs into the runner. This is somewhat similar to the other GM versions, where the game plugs into the runner, however on other platforms, it’s encrypted. This is not.
But thank you for writing this about the article, because in terms of the article, you are correct.
Brad is showing extreme ignorance in legal matters.
His assumption that a cease and desist letter must be created by lawyer to be valid, or “formal” (whatever that means) is absurd.
First of all a cease and desist letter is not authoritative, it simply does not have to be followed. It is a warning, a preemptive strike that if the behaviour does not stop, or is stopped and continued later that legal action might be the next recourse.
It most certainly does have to be drafted or sent from a lawyer. Although it’s often a good idea.
They are also important, should the next step be taken. They demonstrate to the court that the individual was made aware that their behaviour was unwelcome and asked to stop.
For Brad to take the position that because it didn’t come from a lawyer and is therefore not valid, is absurd.
Cease and Desist letters are also important to demonstrate “Willful Misconduct”, especially important in copyright infringement cases. In copyright judgements, the difference in damages between negligence and willful misconduct is significant.
Responding to the letter was utterly foolish on Brads part. Not only was his response ignorant, but by responding he therefore acknowledged the receipt of the letter. He has now been told that his behaviour is unwelcome and should stop. If he continues, should YYGs take the next step and prevail, they can now demonstrate willful misconduct.
Given his ignorance on the validity of the cease and desist letter and his foolish response, he needs to reevaluate how sound the rest of his legal opinion is. Anyone so stupid about cease and desist letters is in no position to be making decisions about the legality of complex IP laws.
Now that my rage has ended, I have decided to drop the project and stick with my original intentions for the project which was not to harm YYG.
Although I am very disappointed in them for being so unprofessional about it, I actually respect them for the iOS runner they have created.
Still would like to add that we haven’t done anything illegal, but YYG’s wish shall be granted.
Did you mean: “It most certainly does _NOT_ have to be drafted or sent from a lawyer.”, in paragraph 4?
You’re right that should have been does “NOT”.
I’m really starting to dislike the direction the company is taking. They are very unprofessional and their business model is ridiculously targeting to the naive.
Thank God my long term goals with Game Maker don’t have to rely on YYG in the slightest.
(Posts posted while I was posting, anyway, proof I was banned http://i.imgur.com/fVsEk.png)
I should’ve clarified that post a bit more, but seeing as how I’ve been banned (and I can’t correct the grammar mistake I made, painful, really) I can’t fix it in that post. When I said that I’d remove it, I meant it, but I forgot that I wasn’t hosting the iOS decompiler, and while I aided in the development I don’t currently hold the rights to remove it.
However, I’ve removed myself from the project (which is something I failed to mention), as a few people may already know, meaning I haven’t touched the source code since I read it.
Personally, I think YYG’s response to the situation shows not necessarily how selfish they are, but how selfish companies in general are, it’s the very nature of them. I find it interesting how their “formal” cease and desist letter has multiple mistakes in it and seems much more like a parent yelling at a small child for stepping out of line. I also find it very strange that they only targeted the decompiler, not the compiler. The decompiler, I see no real harm in, the compiler on the other hand has a possible market effect (although in reality, most games compiled with it would have been of such a low quality as to not have been accepted by YYG in the first place). They did mention that they wanted all related projects to be abandoned as well, which is rather vague, it could technically been strewn out to the PC and Mac fields as well (which means a few other guys, working on their tools, would have to abandon their work). I didn’t even know YYG had a lawyer, there’s virtually no information on them (http://wiki.yoyogames.com/index.php/YoYoGames_Wiki:About_Us). Doesn’t help build a very strong relationship with their customers.
All in all, it just goes to show what I’ve been saying all along is true, like it or not.
I can’t say right now what one of those three paths will be taken but I’ve heard all of them suggested and every mix in between. If the source doesn’t release, it’s fairly safe to say that the format of the game data (external *.ios file, also possibly the format that the C++ runner will use since there’s a lot of PC/Mac specific information in it) will be released, although that’s no longer in my hands. Of course no legal action taken against the release of the documented format would ever hold up, it’s purely for learning purposes (which if you see by the GM8 decompiler is only of the purposes for these tools). Since it’s not a tool that could lead to piracy it’s well within the legal limits.
Anyway, happy New Years.
Mind explaining why what YYG did was an example of how selfish companies are? I honestly don’t see much selfishness with them asking you to stop a project that could jeopardize their business?
–Note: This is an actual question, not some sarcastic comment–
Decompilers have existed with GM for a long, long time, I’ve seen countless number of people confront YYG about it. I’ve heard of people emailing them about it. What’s their solution? They tell the developers, their user base the people buy their product, that it’s their problem and that they need to deal with it, even though the issue lies not in THEIR code but in YYG/Mark’s code. I fail to see how it’s their user’s job to fix their shit code.
Of course now that the same exact idea targets their published games (not even the ones they wrote) they’re mad. You’d think that they’d learn sometime, but I guarantee you they haven’t. Your games are just as vulnerable, slow, bloated and limited as ever because YYG doesn’t care about the program, just the money.
But that’s the model of every business, keep the customers just barely happy enough to keep them with you.
The question is would anyone be stupid enough to release their game ‘compiled’ with this on the app store? It costs $99 per year, which isn’t much if you are seriously selling your game, but if you know you are illegally distributing the gm runner is your game really that good to sell enough copies before it gets pulled and risk legal action?
I’m not a lawyer but they are distributing an app which writes to a data file, they have said it won’t contain the runner and the user will have to obtain this themselves. So they are not distributing IP owned by yoyogames, so if yyg won some legal battle that is highly unlikely to happen it would be quite sad tbh. But I can definitely see where they are coming from, if I spent time writing a game maker runner and optimising for iphone and was trying to create a business it would feel crap to think people could use this engine completely for free.
But it would be quite a nice hobby type development tool, seeing your games run on iphone/other devices is quite interesting and quite rewarding. But distributing would be a nono.
I don’t know why yyg are even bothering I doubt they will loose anything from this. It certainly wouldn’t be worth the legal fees, what a waste of money. I highly doubt anyone will submit it to apple, and if people do distribute their games for jailbroken devices they are (probably) breaking the law as it comes with the runner, but anyone who has downloaded a pirate app has committed that exact same crime.
I don’t see that these two members were banned from the GMC. You can just look at any of their posts– you’ll see that they’re not under the “Banned Members” group. Unless I’m missing something.
I looked in the advanced member search options but didn’t see any way to list the banned members group.
Brad told me earlier his account had been disabled and this comment by Zack (not Zach!) also mentions that they were banned (prior to this post being published).
If this has since changed, interesting.
I was told by Zach himself on GameJolt earlier that both he and Brad were banned. I’ve not checked, though.
I see a potential fourth option where the compiler is released with nothing illegal about it. Though it is unlikely as YYG will most likely take legal actions either way.
Could happen but given the attention they’ve given to the issue, full glog post linked to from homepage of YoYoGames.com, if this does get released it won’t look very good at all for them! What’s to make anyone believe anything YYG say if they make a threat of legal action and then don’t follow through on it.
Mind you way back in May 2008 in response to (an update to?) the original decompiler(?) Sandy posted “We’re looking into taking some action against the people who wrote the decompiler, but that may take time. If we did this then it could prove very, very expensive for the people who wrote it. Best for all of us is that we do our best to make sure this can’t happen with future releases of Game Maker AND the website.” I heard nothing about any action being taken. The decompiler is still available to download from the initial website that hosted it and it happened with future versions of Game Maker.