Search Unity

Unity and the iPhone OS 4.0

I just wanted to thank our forum users for their support and thoughtful analyses about Apple’s new ToS (terms of service) for its iPhone OS 4.0, due to be released this summer. As you are probably all aware by now, the new ToS has led to widespread speculation on blogs and in the trade press about how the change in wording could affect products marketed on the Apple AppStore.

As is so often the case with “legalese,” the new ToS are difficult to parse with certainty and open to broad interpretation—particularly by Apple itself. Some have noted that the strictest possible interpretation could prohibit many products from being marketed on the App Store. Others have argued that under more benign interpretations of the new terms, Unity and others will be just fine.

Apple has built a tremendous marketplace for all of us, and it’s great for those who successfully take advantage of it. The flipside, of course, is that the power there so clearly resides with Apple.

This is certainly not the first time that developers of all types of apps have faced sometimes confusing changes in rules, or their interpretation. It’s a risk we all run in basing parts of our businesses on Apple.

Here at Unity, we are working hard on getting good information, and working to understand whether – or how – the new changes could affect the developer community and others. We have reached out to both official and unofficial contacts at Apple, we are talking to other companies in a similar situation to us, and we’ve been diligent in reading the ToS to get to the best legal (and business-wise) analysis of it.

We haven’t heard anything from Apple about this affecting us, and we believe that with hundreds of titles (or probably over a thousand by now), including a significant proportion of the best selling ones, we’re adding so much value to the iPhone ecosystem that Apple can’t possibly want to shut that down.

Our current best guess is that we’ll be fine. But it would obviously be irresponsible to guarantee that. What I can guarantee is that we’ll continue to do everything in our power to make this work, and that we will be here to inform you when we know more – as soon as we know more.

PS. In the ancient days of the App Store (July 2008), Apple very late changed the kernel to disallow JIT (just-in-time) compilation. What we did instead was spend several months changing Mono to AOT (ahead of time) compile scripts instead (this is why some dynamic constructs in our JavaScript doesn’t work on the iPhone). It was a lot of work, but we made it work to enable all these amazing Unity games to be sold in the App Store, many of which have gone on to be bestsellers and made their creators rich and famous.

Thanks again for your support. We’re so very proud of you all.

First I would like to thank our forum users for their support and thoughtful analyses about Apple’s new ToS (terms of service) for iPhone OS 4.0, due to be released this summer. As you are probably all aware by now, the new ToS has led to widespread speculation on blogs and in the press about how the change in wording could affect apps sold on Apple’s App Store.

As is so often the case with “legalese,” the new ToS are difficult to parse with certainty and open to broad interpretation – not least by Apple itself. Some have noted that the strictest possible interpretation could prohibit many products from being marketed on the App Store. Others have argued that under more benign interpretations of the new terms, Unity and others will be just fine.

Apple has built a tremendous marketplace for all of us, and it’s great for those who successfully take advantage of it. The flipside, of course, is that the power there so clearly resides with Apple.

This is certainly not the first time that developers of all types of apps have faced sometimes confusing changes in rules, or their interpretation. It’s a risk we all run in basing parts of our businesses on Apple.

Here at Unity, we are working hard on getting good information, and working to understand whether – or how – the new changes could affect the developer community and others. We have reached out to both official and unofficial contacts at Apple, we are talking to other companies in a similar situation to us, and we’ve been diligent in reading the ToS to get to the best legal (and business-wise) analysis of it.

We haven’t heard anything from Apple about this affecting us, and we believe that with hundreds of titles (or probably over a thousand by now), including a significant proportion of the best selling ones, we’re adding so much value to the iPhone ecosystem that Apple can’t possibly want to shut that down.

Our current best guess is that we’ll be fine. But it would obviously be irresponsible to guarantee that. What I can guarantee is that we’ll continue to do everything in our power to make this work, and that we will be here to inform you when we know more – as soon as we know more.

PS. In the ancient days of the App Store (July 2008), Apple changed the kernel to disallow JIT (just-in-time) compilation. We worked around this by changing Mono to AOT (ahead of time) compile scripts instead (this is why some dynamic constructs in our JavaScript doesn’t work on the iPhone). It was a lot of work, but we made it work to enable all these amazing Unity games to be sold in the App Store, many of which have gone on to be bestsellers and made their creators rich and famous. We’re so very proud of you.

The problem with the proposal that EVERYONE who uses Iphone Unity, should Unity be banned, ALL head for Android! is that Apple has created a fantastic marketplace and store front which the others don’t really have (yet) so there is not all that much incentive for a lot of developers on the other platforms. What I don’t get is why Apple is not more creative to not restrict that market for developers.

If Unity apps are not retained on the App Store, I will definitely write 3D apps for the Android platform with Unity as well as 2D apps for iPhone / iPad with Objective C. The work required to develop one’s own realtime 3D engine plus middleware / level editor is huge. I have seen it with my colleagues back then at Kalisto Entertainment. If I had to write my own, I would be setup in at least two years. And most of us do this after work…

really someone should say something… I have a huge huge huge project in line and this would be a catastrophic decision to step on a landmine right now. There would be no time to recover… this is really a critical decision point and Im sitting here reading this daily trying to get a real answer.

were already ramping on SIO2 and straight C, C++ engine…but in all honesty Id rather stick with Unity.

I propose that EVERYONE who uses Iphone Unity, should Unity be banned, ALL head for Android! If Unity could create an Android compatible add-on (or the like), that would be sweet, and apple will return to it’s hole left from the 80s :P

Thanks Unity for fighting the hard fight and looking after us. May the creatives win! Our audiences care not for the tech, but the game itself.

Just a quick edit – I meant Apple never breached beyond niche markets.

Also its interesting to note that in the last several months already 2 Android based phones beat the 74 days to reach a million sales that iphone established. And lets face it the iphone sales are double dip figures(tainted with I have a new iphone voucher but not a real phone) , buy an iphone(missing real world functionality) then buy the upgraded iphone (3g) then buy the next upgrade etc..same double dip standard is being applied to ipad.

@Dell – you’re joking right ? – hey I have some old worldcom shares from the 90’s wanna buy them, I can give you a good deal.

Jobs screwed developers and software houses in the 80’s and a lot of them got burned, in turn that hurt Apple(lack of choice in software). Can you explain why Apple desktops never breached niche markets ?.

in 2007 there were no ‘iphone’ developers, existing developers came on board and gave Apple a much needed success, these same developers have the power to reverse that.

I don’t work for Unity. My comment still stands. It’s based on my knowledge of the software industry and Apple and is not endorsed by Unity or should be construed as anything other than what it is… my opinion. Unity is right to say there are no guarantees. After all they are the company that makes Unity and they have obligations to be conservative in their appraisement of the situation.

This is my gut feeling based on what I have seen in the past and current events. I am sure we will all find out shortly. A different company I know which I am not at liberty to discuss just went through this same hand wringing issue and it just came out on the positive side. Stay calm and keep developing your title..

I have worked in the software industry for longer than a few years and also developing Apple SW. I pride myself in reading between the lines of what is actually going to happen. In fact I have had more than a few public speaking gigs to explain how future game changing tech might affect the future business of developers, consumers and manufacturers.

If you hold off buying Unity 3.0 or pause your development plans because you are worried that Apple is going to toast Unity for the iPad and/or iPhone you will regret later stopping at this point.

I am 100% certain that Unity will be approved as it stands and in the rare event it does not I am sure the Unity dev team will provide a solution.

So buy 3.0 and Unity iPhone 1.7 and keep on developing for iPad and iPhone. Don’t let the “worried” dev posts on this forum deter you from your iPad/iPhone dev plans. Don’t waste your time being an Apple hater, just get on with your dev project. Apple’s app store is still the best way to reach the user base of customers who will buy your game. If the game is worthy, you will succeed.

In the past you made games and prayed you could get it into consumers hands and multiple confusing/expensive distribution channels. Now you have the easiest access to the end users in the history of SW development.

Be a professional and don’t panic because of a few people who proclaim “The Sky is Falling” online. Focus on your project, make it the best you can and keep pushing forward.

Refer back to this post at a future date and you will see my advice to you was excellent….

Well, as a developer of games for Sony, Nintendo and Microsoft, I find Apple’s actions absurd.

I’ve never been told by Sony and team that we can only use x engine or x technology to develop their games. So long as we meet their TRCs they’re happy. We can use whatever damn engine we want and each game is judged on a case by case basis. This is what Apple should be doing.

Sean, how does Flash “compiler entirely bypasses Apple’s SDK, which makes it far too easy for such applications to be built…” out of interest? It was my understanding too that it does use Xcode to build, too.

Don’t bow to the giants, let them decide if they want you or not, not the other way around, if apple want to lock it down, then I sure don;t want to go that way, who knows what will come next. They are boiling the frog!

We have already pre ordered Unity 3.0 pro and 3.0 iphone before OS4 was presented and we are concerned that now we may not be able to use this new release for the iphone.
We are also halfway through on our first ipohoneproject (as someone else also mentioned above). It would be devastating, if we could not publish it. But I think, we are all together in this and I´m sure Unity will try to do whatever it takes. You guys have done such an amazing job in the past!
If it really does not work out well, maybe you could give away for those who preordered 3.0 iphone some goodies for android, as soon as it is finished?
All the best to you!
Superwaugi

Sheesh, people, give it a rest already. This was entirely predictable the moment Adobe decided to throw a strop. Unity isn’t likely to be affected by this in any case: it *does* use XCode as part of its iPhone build process! THAT is the key.

Apple’s key criticism of cross-platform development is that it often results in Lowest Common Denominator Design, where the developer only uses features available on all his target platforms. Adobe’s iPhone Flash compiler entirely bypasses Apple’s SDK, which makes it far too easy for such applications to be built.

If you’re uncomfortable with being iPhone-only—and you damned well should be: putting all your eggs in one basket is a *terrible* business plan—then I strongly advise you design your applications using a modular approach and ensure the UI is separate from the model. That gives you the freedom to more easily convert the application to other platforms.

The iPhone may have a big customer base, but you need to redesign your game’s UI if you’re converting to / from other platforms anyway: last time I checked, most people didn’t have a 3.5″ multitouch display on their PC, Mac or games console.

The trick is to ensure you take *full* advantage of each platform’s capabilities. This is simply good practice: if you just do the bare minimum to get your app working on each platform, you’ll get a well-deserved reputation for writing “me-too” apps. The world really doesn’t need more of those. Your iPhone version should *feel* like an iPhone version; ditto for the Android release, for the XBLA release, for the Wii release, etc.

(Oh, and Objective-C 2 is no worse than C++ or C#. If you don’t know more than one programming language, you’re doing it wrong. Obj-C is actually one of the easiest languages to learn.)

So I guess this isn’t the best week to start getting into Mobile Game development?

I guess I’ll wait until Unity for Android is released, or this IPhone issue gets sorted out. I was already hesitant taking my time away from contract work to target a closed platform like the ones on Mobile Phones.

I almost fell for it too. I started dreaming of iPhone riches… but then Steve Jobs turned my dream into a nightmare by yelling at me “you can’t have an affordable game-engine and you can only code in Objective-C”. Scary stuff. Maybe a web start-up is a better option for me.

I think the smartest thing we (developers) can do is to wait for the unity team to gather more accurate information on the ToS interpretation. As David Helgason mentioned there were confusion times before and Unity successfully solved them. And for all of those that complain about Apple new terms: Welcome to professional development! This will always be there for making our life’s harder…

I agree Fernando, one of the things that makes the App Store great is that they can say “There’s an App for That”, well what is going to happen when we are all angry over this draconian decision they just made and move on to Google and Android? Do you honestly think that the Android market just won’t grow with all of those great apps moving to be exclusively on their platform instead of Apple? I mean I am just starting so it is no big deal for me to shift gears to a different handset. If I am any indication of the development community, that means most new endeavors will start targeting Android. That will HAVE to hurt Apple in the long run. Way to bite the hand that feeds you Apple.

Like everyone here, I’m nervous about this, and concerned about how Apple’s move will affect me as a developer; however, I can’t help but be a little perplexed by comments like “they want to own you”, “I hope Apple dies a slow death” etc.

I’m not sure how many of you folks were developing games for the mobile market before the advent of the iphone, but if you think Apple is a “control freak”, you have no idea what it was like trying to develop for earlier generations of handsets via the major carriers. There was such a small percentage of a chance that your game would get published to begin with, then there were the months and months of opaque and seemingly arbitrary approval processes, hellish update procedures and wait times, painful porting and testing across a myriad of handsets, greedy publishers between you and the carriers themselves, etc. — Apple may not be doing everything perfectly, but they set a precedent with the app store for ease of entry, opportunities for “the little guy” to publish just as easy as the major players, a complete ide with simulator test environment, etc. etc.

Yeah surprise surprise, Apple is a business and they make decisions in their own favor and to the detriment of others sometimes. It sucks for us that this could limit our ability to develop via the method of our choosing, but in our frustration we should try to keep some perspective and remember what chance we indies had of publishing a mobile game before the iphone. Android may be on its way toward viability as an alternative, but its publishing model wouldn’t even exist if it didn’t have the iphone and the app store to emulate.

Most developers I know have consistently complained about the hordes of low quality, throw-away junk apps that drowned out their game in the app store. Yet now they cry foul when Apple takes steps to quash the potential deluge of Flash-based crap that would make it all the more difficult for a good game to get noticed amongst the noise. Again, I too am nervous about how Apple intends to implement the new rules, and I would much prefer to keep developing in Unity (which I love) but I can appreciate that Apple’s in a tough position as an industry leader and innovator and I don’t envy the choices they have to make right now.

for the first Microsoft is doing something like this too. you don’t have native code access in windows phone 7 series. but i think it will be solved soon when Microsoft see people want it. they don’t want to sell the XNA/silverlight and just want to have apps in their marketplace. porting unity to XNA might not be good but microsoft is in our side because they got the native api to adobe to write flash player. think a litle, they have silverlight as a competitor but apple has no platform in the market to compete with flash. i think android/windows phone will be the winners. even if this time we save unity they might kill us next time. i think soon even mac computers will go away. i think this time the war is against adobe but unity is the next target.

I think Apple should have been more upfront about banning cross compilers in 2007 itself when Iphone was released. This is just an evil move. It sets bad precedents, now a lot of developers will always have doubts about any Apple Intent. To announce this so suddenly when all the companies like IPhone, Unity, Monotouch were busy developing cross compilers is completely mean and evil. Worse than ever Microsoft was. This decision has been done just to spite Adobe who have spent millions of dollars to write a cross compiler. Yes one should compete ruthlessly and I understand Apple’s move to sell more macs and get more interested in Objective C, but why did they not be more upfront.

Steve Jobs should stick to designing hardware, not meddle with developers. It is the developers who made app-store successful. Remember Apple did not even release the SDK for Iphone Gen1. The appstore success was not planned. It was accidental because the developers saw the benefit of writing apps to reach the large mass of audience. And as far as platform companies are concerned, Apple is nowhere in the league of Google or even Microsoft. Google and Microsoft would never treat their developers this way. They are giving away free tools, free phones, holding developer contests to encourage developers and in contrast Apple is making life of developers difficult. Apple Fanboi comments do not matter as they are emotionally/mentally incapable of any criticism of Apple. Yes my mind is ‘closed’ to apple fanboi thoughts.

Fact is, they know they have the masses and they want software exclusivity. They know many developers will be wooed by the 80+ million iPhone users. They know they have the upper hand. Why let Unity develop for iPhone when it will be relatively easy to eventually port the same games/apps to their competitors? This forces developers to be exclusive.

They don’t want your games to appear elsewhere. They want it to be difficult. They want to own you.

That’s why I’ve never been particularly interested in iPhone development. That’s why I’m far more interested in Android. Just because iPhone is in 1st place doesn’t mean it can’t be dethroned. And with Apple’s attitude as of late, I think it’s just a matter of time.

A little consumer perspective: I’ve got an iPhone, and I think it’s a nice, quick platform, and I like browsing the App Store. I dabble in (academic/experimental-type) coding, but I’m mainly just a glorified consumer.

In my experience, less technical users are not completely deaf to developer frustration with Apple. Even my (non-technical) dad has asked about this and that disabled/disallowed feature. And, to reiterate, while I applaud the jailbreakers, personally, an unsanctioned workaround seems like more trouble than it’s worth for a consumer device.

(Detour: Yes, I, too, began my “real” computing career on an Apple, and I stuck with Apple through OS 10.4, but now I’m out. Too expensive to maintain, limited and pricey software selection, little or no backwards compatibility, limited interoperability. It occurs to me the App Store/iPhone platform is a credible response to these criticisms–but no matter how high the quality or secure the environment, I’ve been around long enough to want to 1) keep my options open and 2) get my money’s worth (exploit device/platform capabilities to their fullest)–two things that don’t seem to figure highly in Apple’s “walled garden” approach to mobile computing.)

Hey, take it with a grain of salt–it’s hard to argue with 30M users! But besides frustration with the iPhone form factor “monoculture” (yes, I’m one of those still whining about the iPhone’s slick, non-stylus UI), it really irks me that tethering is purposely disabled in the U.S. And for entertainment, let me tell ya’, it’s useless, unpolished/unpolishable things like “Hello, World!” in some crazy javascript 3D engine that have always piqued my interest.

If that sounds silly, hey, as far as I’m concerned, we could be getting 99% of iPhone utility out of a Nokia candybar–yes, I’m saying the iPhone’s so-called “functionality” is mostly frivolous. The iPhone’s messaging capabilities are like a slender excuse for grownups to carry around a portable gaming device, (or MP3 player). Which is great. Which is why Apple should let crappy apps run rampant and stop taking their UI so seriously.

Again, speaking from a consumer POV, I only care about developer “freedom” indirectly, in that it somehow ensures there really is “an app for that” whenever I go shopping. Apple’s heavy-handed behavior interferes with my enjoyment of the platform, and it won’t be long before there are competitive open platforms: From iPhone clones you can tether in the U.S.A. to mini-tablets that can make phone calls…even take pictures! I don’t know if an Android phone is next, but after all the fun I’ve had with the iPhone, it feels like I’ve outgrown it, and I’m looking for something better, no jailbreaking required! I may not be the most typical user, but it’s a fickle market–it doesn’t take much to divert their attention, en masse….

I just don’t know what to do. I’m partway through my first project with Unity.

Unity is clearly banned according to the language. I really don’t even see any wiggle room. Monotouch can output Objective C code and it’s still banned because the app isn’t ‘originally’ written in Objective C.

But I just can’t believe Steve would get rid of so many awesome games and such an awesome toolset. Everyone seems to expect them to only enforce this rule against bad actors. I sure hope that’s true.

It costs a lot to develop an application. It costs more to develop a platform. Unless there’s a market for either, you’re wasting your effort developing them. When Apple introduced the iPhone, there where a lot of platforms (RIM, KVM, Symbian, CE) and no market where a developer could profit.

Developers saw a potential market in the iPhone. With SDK and AppStore, Apple created a mobile development market. I and other developers have a venue where we can profit. After Apple changes their licensing, as long as we can still profit in that market, we won’t abandon it. Android is another market where we can profit. We’ll see what Windows Mobile 7 has to offer.

Be realistic, it’s all about the money.

Apple’s new licensing will make cross-platform development more difficult and make some tool makers rethink their tools. The mobile and embedded platforms are difficult to cross-develop for. You have half a dozen different languages: Brew, Obj-C, C, C++, C#, Lua, Java, HTTP, Forth, JavaScript, etc. And even devices that share languages have distinct runtimes or just subtlety different profiles (KVM, ugh.) and completely distinct platform libraries. It is not easy and it is in the best interest of vendors – especially vendors with any amount of market share – to keep it that way.

If a developer leaves a platform’s market because they don’t have the time to make the effort to deliver a platform specific product to a mobile or embedded device, that is a good decision for all of us, developers, consumers and platform vendors. Developers lose noise that consumers have to dig through to find their app. Consumers don’t have to waste their time digging through half-baked/2nd thought applications. And vendors get developer lock-in, etc.

All that said… I won’t miss flash or mono touch. I’d be a bit flustered without Unity3d, though I’ve not delivered an app with it (perhaps eventually, albeit not work related).

Not sure about the microsoft “stooping low”. From my understand all .NET executables and .dlls contain MSIL (microsoft intermediate language) which you can target from a number of languages.
I certainly would be utterly amazed if they placed any restrictions upon how the MSIL was generated in the first place as that premise runs counter to the architecture of .NET itself.

I am still hopefully that Apple can be influenced to reconsider this by companies like Unity and the developer and user communities. But if they are on a track to stop cross-platform tools and their minds can’t be changed this is a serious problem. It does look like this might be more than a war against Flash, and part of a larger move to make it more difficult for their competitors to close the application gap. If they don’t change their course, I hope this backfires on Apple.

I’ve had it with Apple, Android for the win.. I hope Apple dies a slow death for how they treat their partners. BTW: Androids market share continue to increase at aproximately 5% each 3 months. Looks promising!

I would like to echo many other’s on this reply list. If this does affect Unity, then viva la Android. I bet Google wants new and exciting independent games to be EXCLUSIVELY developed and released on their platform. Let’s help them grow their footprint then. Even if this doesn’t affect Unity, I still think Android just got a LOT prettier to me. This childish behavior by Apple scares me.

“nah, we’re not Adobe, Apple wouldn’t do that to us.”
Heh, Sure they can. Steve jobs made the exact same decision years ago which ended almost in their bankruptcy. Same mistake, they guy is a control freak. if you’re wise, you will start to make your move to Android

Apple’s only reason for the new T’s & C’s is to ensure a consistent user experience. The user experience is ALL Apple cares about. The developer is secondary. Their design philosophy is entirely focused around the *user*, not the developer. This means controlling as much of the design and production process as possible—the App Store, iTunes, synchronisation, the APIs, the GUI, marketing, packaging design, etc. What many see as control freakery, is actually just an inherent aspect of their approach to design.

When Macs were still based around the PowerPC architecture, Apple were very badly let down by decisions by IBM and Motorola / Freescale (who made the PowerPC chips) which resulted in stagnation of these CPUs. Hence their switch to Intel processors. This experience left its mark on Apple, hence a big part of their philosophy is picking future technologies which they can exert some control over. HTML5 is an open standard which Apple can implement themselves. Flash is not, and would leave Apple dependent on a third party developer which has already proven to be a fair-weather friend at best. (Adobe’s treatment of the Mac version of Premiere is a good example.)

This has nothing to do with Flash’s notoriously poor performance on OS X (and Linux) platforms: Adobe certainly have the resources to fix that if they want to.

Remember, too, that OS X’s entire display technology is built around PDF, and has been since OS X’s first release. So this isn’t an “anti-Adobe” thing. This is a fundamental *philosophical* issue. Flash isn’t owned by Apple. Apple therefore cannot help shape its future, but Apple *do* have some say in the future of HTML5 as one of the two people in charge of its development is an Apple employee. (The other is paid by Google.)

Unlike Unity, Adobe’s pre-compiled Flash tool for producing iPhone apps does not appear to use Apple’s tools at all. This means such apps would not be able to take advantages of SDK updates—something which can easily break legacy apps if not used properly.

Unlike Microsoft, Apple aren’t all that bothered about retaining backwards compatibility over the full life-span of OS X. If a new API lets them improve the end user’s experience, Apple would rather you updated your app(s) to use it, rather than retaining their old interfaces. Apple are utterly ruthless about improving their APIs, and will cheerfully kill off older ones if their new one does things better.

Unity is not (yet) a threat to Apple’s philosophy directly, but Flash is. It’s possible Apple might not be that bothered about losing Unity support for their fully closed platforms—it’s unlikely, but a lot depends on Apple’s future plans—but I suspect they won’t go this far. Unity competes with Director, not Flash, and has uses far beyond games.

I think the key differentiator is that Unity does use Apple’s XCode toolchain as part of its build process. Adobe’s solution does not. It’s therefore much more likely that the latter will more easily fall foul of major changes to the underlying OS—for which Apple, not Adobe, would be blamed by users.

If Adobe’s solution were allowed in, developers might easily find iPhone OS 4 breaks their apps. Who would customers blame? Apple, not Adobe. This is a problem Microsoft have suffered from for years and Apple aren’t about to repeat history.

I hope that Apple focuses its requirements to Adobe CS5 only. But that will be an open door for a lawsuit from Adobe. So we (unity developers) are basically in a situation where having CS5 approved by Apple or NOT approved we lose both ways. Approving CS5 we are going to get a ton of flash apps to compete with, not approving CS5 then we might also be banned from developing on iphone. Sad day

“Vala COMPILER OUTPUT IS PLAIN C SOURCE CODE (so long section 3.3.1!!!)”
No, not at all. Your program was not originally in C, C++, Obj-C or Javascript. You’re just as screwed (or not screwed, depending on what the final terms of the agreement are) as if you wrote your program in Java, D, C#, Ruby or Python.

At least Adobe is upfront about it, but Mono, Unity, Titanium companied are living in denial, they are effectively banned(unless they write tools which only develop against Apple SDK). Sad but true and unfortunate

Apple is skating on thin ice, I think, they wanted to ban flash developers from their platform, but as collateral damage, even unity, monotouch, titanium etc is banned. I feel sorry for these companies who are the unintended victims of war between Apple and Adobe. I don’t think Apple can ban Adobe selectively through whatever legalese they write. It might be their hardware and their platform, but if it writes legalese in such a manner to just ban Adobe, they might be in for anti-trust litigations. It is like a 5 star hotel making rules about the dress code for admittance to their hotel, but the 5 star hotel owner does not like a particular person for some reason and he writes rules so as to ban that particular person only(through whatever unique things, say that persons unique social security number) through complicated legalese. This is USA, not China.

You didn’t get my point. Unity converts the C# code to ARM assembly. 100s or 1000s of games use Unity. iPad v3 switches to Intel (or even just adds new extensions forperformace gains). All Unity games must wait for Unity to release it’s new version of it’s compiler.

Had your games been written in one of the “supported” languages, a recompile is what would be needed. Apple is in charge of the toolset that creates the final application.

Any code that is not interpreted at runtime (i.e., all compiled source, versus source that is translated into byte codes) is tied to the underlying processor instruction set, regardless of how it was authored. The degree to which it is tied to the various hardware peripherals (screen, accelerometer, etc.) will depend on how good the OS is at abstracting such things, not on whose tools were used to write the code.

In any case, I don’t see how using third party tools that are designed for portability across platforms (that by definition use very different hardware) is going to limit portability across various incarnations of future iDevices.

You’ve already identified the most important part of the problem. The AOT compiles to ARM assembler. Now Apple has a tier of applications that are all dependent on the architecture of the underlying platform of the iPhone OS devices. Not only that, how efficient is your assembler?

Apple doesn’t want to be in the position of these types of problems, where 3rd parties are blocking considerations for future developments.

How could I possibly be objective in this manner. This whole thing gets me annoyed. And for the record, Unity doesn’t allow you to execute arbitrary code, because the code is COMPILED IN, it is not like XNA, get that out of your head. Let’s review:

This is a NATIVE application with that same restrictions as any other C++, Cocoa, Objective-C application on the iPhone. It is not a VM at this point (it does not execute bytecode). It is a game engine, doing all the game engine things; managing asset loading and destruction, handling input etc.

Why is it so hard to understand that my issue isn’t about Apple insisting that the application is native or that it is of good quality, or support the platform well.

My issue is that they are over-reaching into studios to dictate that developers invest in their tools directly to the detriment of others they might be using, that this lock-in attitude the are pedaling, doesn’t work in the real world where developers use middleware (yes even EA, Sony and Microsoft) to achieve an efficient development of a title.

Maybe we should leave the subjective criticisms out of each “summary” if you want to have a better argument.

Or maybe this version:

Apple: “I want you to make sure that your executable uses approved Apple libraries; you’re only allowed to use the public APIs and you are only allowed to use them in a manner that was intended. The only supported languages for your program are C, C++, or Objective-C as those are the languages that our compilers support (read: we can optimize our compilers for our platform better than you can). In addition, third party runtimes built on top of our systems are not allowed as that allows for the arbitrary execution of code that is against our terms of service (read: someone could write an app that runs arbitrary flash from an arbitrary system possibly compromising the security of the users’ system). Apple reserves the right to validate your adherence to these policies and will validate your program as a whole does not violate our policies.”

And I will again direct you to the XNA Live Indie games as just another example of this in the wild… requires you to build your games with the XNA Game Studio.

Doesn’t look good for MonoTouch nor Unity right this minute. If these letters that are circulating around the web, are real letters from Mr Jobs, i think CEO of Unity is being rather optimistic about Unity being allowed still in the Apple app store. Its pretty obvious to me that MonoTouch for sure is definitely not going to be allowed any more. I just hope i am wrong and Unity iPhone survives this somehow. Here’s the link to more correspondence to people that say they have been told by Mr Jobs some very concerning info about monotouch and by proxy i guess Unity3d.

Your analysis of Sony’s requirements makes sense, but up to a point.
We need to take into account two things:

First, the number of developers that each platform has.
I believe iPhone has an order of magnitute more developers than Sony has for its PS3 platform.
Second, the type of developers that each platform attracts. When you pay a big chunk of money to license Sony’s SDK, you most likely are a serious development outfit that really commits to this relationship and actually has some technical resources to throw at any problem.
With Apple’s iPhone platform, for the first time in history, we are witnessing the small indie developer getting access to the user’s phones and game consoles. Of course these indies come from all walks of the development world and they carry over their beliefs from the other development platforms.

You can’t compare EA developing for PS3 with Joe Shmuck developing for iPad in his basement. The power relationship is not the same and the rules of engagement are different. A large development outfit has more skin in the game to not mess things up on Sony’s platform.
Joe instead can quickly pretend to develop for iPad using the lazy Flash platform.

Yes, I know that Unity and MonoTouch appear to be collateral victims here.
I am sure that their products will actually survive this. We just have to wait to see what form this will take.

As an authorized and published 3rd party developer for the three platforms and PS2,PSP before then, I have never had either Sony, Microsoft or Nintendo dictate what tools I should use to generate the C++ or Assembler that then goes through THEIR authorized compiler / toolchain. EVER. They mgiht have requirements like, don’t have any strings in this section of your executable in cleartext, but nothing like this. They care about what is in the executable as CODE, what libraries are included and whether they are safe for their system. Perhaps a publisher, where they have been involved in the development process as an executive producer, might get involved to ensure best practices, but never like this.

The difference here. These two fictional statements sum up the difference between the two, for me, at the moment:

Sony: “I want you to make sure that your executable uses approved Sony libraries and please call the following functions and please don’t include the following. Don’t care how you do it, just adhere. And make sure that your product can compete with other titles. We will check you quality at SUBMISSION stage.”

Apple: “I want you to make sure that your executable uses approved Apple libraries and please call the following functions and please don’t include any of the following and you will have to do it this way. Don’t try to cheat, because we will pick it up in the submission process. You know, people who use middleware are lazy and they could never possibly produce high quality products like *cough* EA (because they could never possibly use technology like Unity). We will check your quality… oh no we won’t because our new policy will fix that for us and allow us to keep approving applications at the levels we currently are being 94% of applications in 7 days.”

Hm, if that e-mail from Steve Jobs is true, unity 3.0 is in deep trouble.

Maybe it makes sense then not to bundle the iPhone IDE into 3.0 but look how to address the requirements from the TOS. Maybe making a port from xcode to other platforms – making the iPhone code the leading source stream in the bundle.

I would look forward seeing unity get’s some kind of official excemption – or some sound solution avoiding excemption in the first place.

What is weird for me is the fact that the actual beneficiaries (ie: the high end Unity indie developers) are those who cry foul. Guys, rest assured that you will be able to develop in Unity and deploy to AppStore. But if the iPhone market is swamped by cheap Flash knock-offs, you will be out of the market, with no ability to price at all. You will end up going back to dark ages and work for clients that will demand you to do Flash ads for the iPhone.

Actually, you should be praying that the standards go up, because that will allow you to make a greater income from your products.

I think the way Apple try to limit the 3rd party dev tools is strange and not too effective. They should have just had a 3rd party development tools licensing policy, which would solve all their problems – if they want to license a technology, they could, and they would also make money out of this licensing process (it is their platform, after all!). If they want to keep a technology out of an ecosphere, just say the tool is unlicensed and reject any applications made using it, using whatever “reasons” necessary.

What I would like from Unity’s standpoint is some dialogue with their users about some risk mitigation strategies. Even if they don’t KNOW anything from Apple yet, they can tell us users (especially those of us who pre-ordered 3.0 advance for the iphone) here’s what we could do if the TOS turns out to be a worst case interpretation. That would certainly buy Unity some time and goodwill. Otherwise a lot of developers, like myself, will have to make the tough decision ourselves (maybe without all the info but such is business) and move forward with another solution. I’m hoping we can continue with Unity for the iPhone as well all are.

@Thomas Mayer.. I think David Owens said most of what I was going to reply, but I will add that I have had plenty of experience dealing directly with the console holders. You’re correct in a sense, that on the surface, the big three consoles appear to impose a standards and quality control function on the developers. In practice though, it is a far more… hmmm… invasive relationship, I guess you could say. Console holders (some are worse than others, for sure) will commonly meddle with the design of your product, make subtle feature requests (which are in fact veiled demands) and in some cases, stop the process of the development entirely unless certain criteria or arbitrary “quality thresholds” are met.

It’s true, the analogy is not perfect, but it’s naive to think that these are free environments to work in. “Steve” — if you believe that he gets involved at this level — is quite openly messing with the dev community right now. The Sony/MS/and Nintendos of the world just do it behind closed meeting doors.

“We haven’t heard anything from Apple about this affecting us, and we believe that with hundreds of titles (or probably over a thousand by now), including a significant proportion of the best selling ones, we’re adding so much value to the iPhone ecosystem that Apple can’t possibly want to shut that down.” WRONG — Steve said he specifically wants to stop cross-platform toolkits like yours — see http://www.taoeffect.com/blog/2010/04/steve-jobs-response-on-section-3-3-1/ — Unity (and MacRuby, and Rhodes, and…) are babies thrown out with the bathwater.

@Thomas Mayer… Right, because the Xbox 360 doesn’t have a special toolkit that you need to use (and pay thousands of dollars for)? And XNA Live Indie games aren’t required to use XNA to write their games?

The fundamental problem is that your premise is wrong. You think you have some intrinsic right to develop on a platform; you don’t have any. If Apple says they only want people to use binary, they can. The consumer wants the device for many reasons, if you want to develop and target that market then you need to adhere to the development requirements.

You can talk about how it sucks and how you’d like it changed, but trying to play some card about how you develop software is none of Apple’s business when you are developing for their platform is disingenuous at best.

I think you need to spend some more time developing on consoles before you comment on the apparent ‘same-ness’ of restrictions PS3 and 360 or even the Wii. While the big three consoles have TRCs and requirements, they are mostly console standards and qualitative requirements.

However, this situation with apple IS different. Here we have Apple over stepping the mark by dictating that you must use a development process that Apple approves of. Seriously wtf? How dare Apple do that. If I use Unity and it generates Objective-C, C++ and Assembler and then use X-Code to compile and package it into an application, that’s my business not there’s. They have no business how I produce that application if it is via the approved conduit. It they don’t approve of the quality of the application and it non-adherence to standards, that’s a completely different matter.

@David Owens… this is the most appropriate comment on the whole list here. I was going to point this out as well. So much complaining and outcry about Apple’s policies and control over the iPhone/touch/iPad store…. especially from the game development independents it seems. People talk about it like Apple is the first and only company to enforce tight security and quality control over what appears on their machines. All I can say is: welcome to professional software development. This is precisely what developing for consoles (Wii, Xbox, PS3, etc) is like for game studios (I know, as this is what I’ve done for the past 12 years). Is it free and wonderful and risk-free? No. Does it have a huge up-side, in terms of them (the companies producing the hardware) allowing us (the developers) to profit from their user-base? Yes.

As far as the reference to MS requireing C# in some cases (e.g. the new phone platfrom), it is more of a requirement to be based on the CLR. If a language does not need extra natve runtime DLLs it is fine. That is how Python Ruby and JavaScript are options for silverlight as well. The platfrom also specifically allows JIT code and has tools for making new languages. But this is straying a bit from the main topic here.

Also, re Daniel’s decision (and other such threats) we don’t yet know whether Apple even DID the thing that upsets us—in fact, so far it looks likely they didn’t. If so, this rage will be for nothing. (But understandable even so—and I share it.)

Now, even IF this is a false alarm, Apple still deserves everything they get for having unclear legalese. Then again, boycotting every platform with unclear (or changing) legalese would be a tough market! So I’ll be afraid and mad in turns, but I won’t take it as far as keeping my stuff out of the hands of Mac users (who are a good demographic to have, so they say).

IF this is a false alarm, I still see two pretty good reasons to be mad at Apple:

1. Nothing to do with Unity, but with Flash. Adobe (and anyone they can get on their side of the Flash issue) is probably never going to pull any good outcome out of this. However, I don’t yet know the full reasons why Apple would do this—it’s a surprise to me—and it’s possible (only possible) that they’re combatting a legitimate problem by keeping CS5 off of the iPhone OS. (Waves of shovelware? Mass destruction of the iPhone’s groundbreaking UI conventions? Poor performance and battery life? Hampering the new multitasking? Hampering other, future OS and SK innovations? Starting a slippery slope that ends badly? I don’t know.) Also, at least they timed the OS 4 unveiling BEFORE people buy CS5. Think how mad people would be to find out later!

2. Nothing to do with this instance at all, except that it’s a reminder of ongoing fear/anger over the past ham-fisted, unpredictably-changing, poorly-communicated handling of the App Store program. That is a serious offense, made worth it (to me) by how exciting, well-crafted, and even profitable the platform has turned out to be. Partly the problem may be that the success of the dev platform surprised them, and they hadn’t thought ahead about everything that would come up. And part of it is that they simply haven’t risen to the challenge (in developer relations) at the level we had come to expect from Apple. It’s not awful treatment as corporations go, but it’s somewhat shocking coming from Apple, when so many of us are used to dealing with, say, their excellent technical support staff. And although they’re improving the App Store’s problems (and adding a lot of good new things along the way) it’s discouraging how slowly they’ve done so.

As for whether Apple’s worse than some other company: history doesn’t matter to most people when it comes to those kinds of things. All that matters is who hurt me, personally, the most recently. They are the worst :-) Apple has done a heck of a lot FOR me recently, but that’s not worth so much to me if they kill my Unity game. Microsoft has driven me to abuse NyQuil time and time again, in so many ways. And Adobe, who I once viewed with the good will I now hold for Unity, has disappointed me a lot recently. Mainly due to the shockingly convoluted, inconsistent UI that their apps (especially Flash) have taken on over time. CS5 looks like more of the same, but we’ll see. I’m sure I’ll remain a Flash developer no matter what: it’s the only such tool around at the moment! But I’m hardly angry at Apple on Adobe’s behalf. Certainly not without knowing the full reasoning.

Most of the criticisms of Apple (as usual) start with “Apple is evil, I’m sure they are!” and work backwards from there to justify it. (While carefully ignoring that Apple’s “evil” moves also carry genuine benefits for users. It’s not black and white.)

Daniel, punishing Mac users for Apple’s behavior on the iPhone platform is petty. Even Adobe isn’t doing that, and they have more reason to be annoyed at Apple than you do. It’s not like Apple has any control over anything that anyone wants to publish for Macs. Considering the high sales percentages that indie games seem to get on the Mac platform (occasionally exceeding 50%), all you’re doing is cutting off your nose to spite your face.

If Apple does decide to enforce the strictest interpretation of its (beta) iPhone OS4 TOS, I wonder if is there any chance that Unity could develop a separate IDE based on its amazing technology, that would allow developers to code in Objective-C, C, and C++ in a way that is compliant with a strict interpretation of the iPhone OS4 TOS? Certainly, this will be a significant amount of work, but I’m wondering if it might be a possibility. Unity is absolutely amazing technology, and I know its currently dependent on Mono, but I also understand that large portions of Unity were written in C++, which would make it seem like there could be a possibility for an iPhone OS4 TOS compliant IDE with enough work (if Apple decided to be tough about their current beta iPhone OS4 TOS).

Hopefully, Apple will revise its TOS in a way that does not impact Unity iPhone negatively. It would be nice if Apple provides some clarification next week … or if not next week, sometime this month.

That’s the first time i hear that it’s indeed a “player” which only runs the things flash cs5 spits out – but if you say you have hand-ons experience (early beta or more recent version, mabye gold/rc candidate ?) i cannot argue against it.
It was just my impression after following alot of blog entries about this topic that lead me to the conclusion that it’s not a “player” but more an “engine”, and its not interpreted or runtime compiled Bytecode that runs on the iphone at the end. The latter would be against the old iphone SDK TOS anyway, that would not need such draconian new clauses. But i have to confess that maybe i fell vitctim to a lot of speculation and wishfull thinking on my side, because i hardly can believe any traditional method (standard flash VM ontop of iPhone os) would perform well enough for anything nearly usable…

Peter:
You are completely wrong informed about what the Flash CS5 -> iPhone transform will be. Adobe is building their ipa-files the same way as Unity is doing , except they don’t do it on OSX and thus without the need for Xcode. It’s all native iPhone/ARM code coming out of the packages – this is the reason apple doess not allow straight ARM assembly coding with this new restrictions – because you can do that without xcode too. Sure Adobe would have some sort of flash runtime inside the code, but thats the same exact case with unity too: they have their mono modules and their core engine code inside. That’s the reason every dev is on alert now – once again every iphone developer’s business depends on Apples/Jobs mercy – and that’s ridiculous !

I think the TOS is aimed at stopping a flood of flash titles into the app store. It’s been known for a while that apple simply don’t want this to occur.

The TOS basically requires that applications do not sit on top of a runtime interpreter. This wording was carefully crafted after Apple had analyzed how Adobe was creating it’s flash to iphone bridge. Effectively taking a binary swf and a native compiled flash player and dropping them onto the iphone as a native app. Behind the scenes many of us (simply from looking at the speed issues with even the most simple CS5 iphone apps) realised that this was probably what they were doing.

I would be up in arms at Apple but, I’ve actually tried to load a flash page on my android phone and it’s beyond painful! I can’t imagine it being any better on an Apple device. All it does is ruin my mobile surfing experience. My phone simply wasn’t created to render multi-layered vector art!

You know, it’s funny. I had a long conversation with our designer the other day about developing games on the iPhone and Mac (via Steam’s Mac support).

We’re now not only not going to develop for iPhone, we’re not going to develop for Mac at all. Doing business with Apple is putting your head in the lion’s mouth… a lion that’s inclined to bite it off for no better reason than “because”.

I am confident that nothing short of blatant, inexcusable evil on Apple’s part can ever hold Unity back from it’s position as the premier 3D iPhone development solution.

Long live Unity, and the opposite to Apple if they attempt to thwart you!

I couldn’t me more supportive of Apple – I first began my life as a programmer on a IIGS – but if the new amendment to their terms of service really does block Unity, they are no longer a corporation which I can proudly support.

David, Thank you for informing us, your developers and fan base, on the murky status of Apple’s new ToS and Unity iPhone. Many of us developers are not pleased with Apple but have faith this will be resolved one way or another.