Let's check in with reality for a minute. I know it's fun to rage rage rage when you're potentially slighted, but nothing has happened yet. Nothing at all. Nothing except hundreds (thousands?) of people whining online.
Apple changed language in their dev agreement for an unreleased platform. They have the right to selectively enforce the agreement at their leisure. I don't see them deciding to drop cross platform game engines. I see them targeting Flash/actionscript to ARM translation (made possible by Apple's own LLVM, by the way) from being distributed in the official store.
How can we harness the creativity and energy put in to empty internet rage rage rage into something useful?
I'll upvote you because your asking me to validate my point, and I'll also answer.
The "rage" does serve a purpose. First, it's a sign to others who would do the same thing that Apple is doing, that we don't like it. If we didn't say anything, others might assume it's accepted, and do the same thing. This would be harmful.
Secondly, if this "rage" is loud enough, it might make Apple change their mind, or come to some compromise. While this wouldn't solve the problem, nor would people forget (two reasons I don't think Apple will change this), it would force Apple to recognize the folly of it's ways. Apple is focused on the user experience, and in this case, the user is the developer.
Next, their intent is not the same as their actions.
"I don't see them deciding to drop cross platform game engines."
But they are. And it's not the official store. It's the only store.
You make the mistake of thinking that "rage" is itself useless. I'll agree it might not seem like anything gets accomplished, but it at least gets the issue out there. Lots of "rage-less" discussion has occurred, and much of it, I believe, a result of reason rising above the general rage, and exists because there was rage to begin with.
Finally, something has happened. You say it's "changed language in their dev agreement for an unreleased platform." But when should people complain? After it's released? No, the time to complain is when it's previewed. At least then something can be done about it. Before it get's released.
I think a careful implementation of Lua integration 'avoids' 3.3.1 but 3.3.2 which forbids interpreted languages (except those within the official SDK) catches it.
I don't understand how that could be... Could you explain? If a portion of your app is written in Lua, how can you claim that the app is "originally written" in a C derivative?
It's a technicality of course but you can rightly claim that the app is written in C and that it interprets the Lua code. In the same way it may interpret and XML file.
Of course we all know this is a technicality and it doesn't matter since 3.3.2 states "... No interpreted code may be downloaded or used in an Application...".
The two clauses combine to put Lua on a sticky wicket.
Certainly for video games it's not as if there is a slim C layer and the vast bulk is written in Lua. Most game engines are huge and only game flow and AI are written in Lua.
In the previous version of the Agreement, 3.3.2 stated "... No interpreted code may be downloaded AND used in an Application..."
Using an embedded interpreter that only ran the signed code inside your app bundle was previously quasi-legit -- it was more narrowly restricting the use of an interpreter to bypass the App Store review process.
They changed that AND to an OR a while ago, before this recent announcement. So basically that reduces down to: no interpreters. So these games using Lua were already breaking Apple's rules.
From what I've seen, the ban on interpreters is very much aimed at options that allow an end user to download and run scripts and if that is the case, expect Apple to clarify that, particularly if they are getting pushback from the larger grossing game houses. The ostensible reason for the ban on interpreters is that allowing third party scripts would be a security risk; which is true to a point. But, we all know that it functions to keep the App Store as the only source of software.
/the ban on interpreters is very much aimed at options that allow an end user to download and run scripts/
That's why 3.3.2 used to prohibit only apps that download and run scripts. Now it prohibits apps that download or run scripts. So that should take care of those folks polluting the iPhone with the Lua.
Apple's precedent seems to be pull the games immediately from the AppStore and not wait for an update. That being said, it would be extremely strange in a corporate sense to see a fair number of top grossing apps disappear.
Since the apps were approved by the previous terms they still can be sold, i guess...
Now if the developer submits an update then it must comply with the new terms...
Good point, I remeber reading about a game, initially accepted, that had been pulled out because it relied on a library that was able to call private APIs, even though the game didn't use that part of the library.
This happened when Apple started to scan binaries for infringing code.
No. It's undoubtedly a bad bet to put your time and energy into creating a product that is in direct violation of the policies of the store in which you plan to sell the product. I'm not saying they will definitely ban you, I'm saying the risk of putting all your eggs in the Unity or Lua basket and getting banned vastly outweighs the potential reward of a lucrative app.
Yeah, nothing's happened, but they just threw my several months worth of work and a lot of what I've told my investors into serious jeopardy. If they hold to this strictly, I'm going to have to put a lot of work just into making an iPhone app that integrates with the rest of my system, or do without altogether. Apple clearly didn't take that into account, so if I see a situation in which this backfires on Apple, I plan on laughing. Loudly.