Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

iPhone OS4 today

Discussion in 'iOS and tvOS' started by maxfax2009, Apr 8, 2010.

  1. Tempest

    Tempest

    Joined:
    Dec 10, 2008
    Posts:
    1,286
  2. NitroPye

    NitroPye

    Joined:
    Mar 16, 2010
    Posts:
    30
    Nothing in Gruber's article states either way. I wouldn't quote that as gospel.

    He even says in there

     
  3. bitomule

    bitomule

    Joined:
    Oct 27, 2008
    Posts:
    173
    But Unity Remote and unity games currently work on iphone os 4.0 beta?
     
  4. Big Pig

    Big Pig

    Joined:
    Feb 21, 2009
    Posts:
    92
    Even if linking ARM assembly gets an application banned, Unity3D/Monotouch could always output Objective-C instead of ARM code. I have full confidence in Unity and Miguel de Icaza (from Monotouch) to get through this "smallish" hurdle.
     
  5. Girl + Robot

    Girl + Robot

    Joined:
    Nov 30, 2009
    Posts:
    74
    I sure hope it can get fixed. I just shelled out for iPhone Advanced, and haven't released my game yet, would an utter waste of money if this becomes a no go situation.
     
  6. jerrodputman

    jerrodputman

    Joined:
    Jun 4, 2008
    Posts:
    181
    From the Unity product page (http://unity3d.com/unity/features/iphone-publishing):

     
  7. Big Pig

    Big Pig

    Joined:
    Feb 21, 2009
    Posts:
    92
    From Miguel de Icaza's twitter:

    "MonoTouch already has an option to compile to C + XCode, just call mtouch --xcode program.exe"

    Unity could do the same, even if it has to obfuscate code due to IP protection. This seems like a solvable issue, even if Apple is intransigent.
     
  8. Troy-Dawson

    Troy-Dawson

    Joined:
    Nov 2, 2009
    Posts:
    120
    IMO, Unity is in the same cross-hairs as Flash.

    As a new purchaser of iPhone Pro and an enthusiastic Unity dude I hate to say this, but AFAICT Apple's iPhone biz would be better off without Unity.

    iPhone had a 98% market share of apps last year, it's in Apple's corporate interest that iPhone OS apps are written solely to iPhone OS API and not through Unity or C#, which facilitates apps migrating from iPhone OS to Windows 7 Phone.

    Now, if I were Apple I would *buy* Unity, since its OS X gaming story is total crap and it horrifically needs the cross-compatibility with the DirectX mainstream.
     
  9. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Migrating to Android maybe, but there is no announced Windows 7 Phone deployment for Unity. However, a number of developers have produced Android versions of their iPhone apps anyway, even without Unity, so I'm not sure I buy that theory.

    --Eric
     
  10. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Depending on how Apple interprets it as Unity relies on the engine even with its compiled code.
    But I would expect this to be more a straight attack against any kind of VM: Sega, the C64 emulator but especially Shiva, Game Salad and T2Di which don't compile anything. Thats naturally assuming that apple does not allow such "intermediate" layers even if they use it as part of other functions, not just as 1 : 1 mapping.
    Flash would be in the same boat as Unity by this rule, but flash is already by the current rules illegal by at least 2 nda points.
     
  11. Phil W

    Phil W

    Joined:
    Dec 21, 2008
    Posts:
    231
    Hmm would be nice on one hand, but then you could say goodbye to all non-Apple support. Apple have no storage space issues when it comes to stowing away skeletons.

    I think it's far too early for panicking anyway - agreements change and exceptions are made all the time. I suspect Apple are just trying to reduce the margin for error in preparation for Multitasking. Housekeeping, so to speak.
     
  12. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    it wouldn't buy anything for this point.

    you can always implement the whole game in C++ and add a platform layer that handles the platform specific code.

    that way it works on all but Win mobile 7 where most of the games will never go unless they were simple enough to do a fast XY to C# - XNA conversion
     
  13. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Just that they never needed this step.
    As per the leaked NDA and known EULA, any flash application can be rejected legally already cause they are not developped with apples toolchain and osx as part of the work. they could actually not only reject the app but terminate the dev agreement with every single dev sending in flash apps for approval
     
  14. Bones3D

    Bones3D

    Joined:
    Apr 28, 2008
    Posts:
    314
    well if things come to the point where tricks like code obfuscation becomes necessary to deploy unity iphone apps, it'll certainly make things interesting for those of us running unity iphone basic, as the unremovable splash screen would be identifiable enough for immediate squashing of an app.

    Hopefully things won't come to that though...
     
  15. maxfax2009

    maxfax2009

    Joined:
    Feb 4, 2009
    Posts:
    410

    so apps will run slower, oh well hope Unity can work this out, sure they can!

    I would think ARM assembler code would be better then c,c++, obj-c
     
  16. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Not sure where that conclusion came from....

    Objective-C etc. are not what runs on the device; they are compiled languages, being compiled to ARM assembler, which is the only thing that can actually work on an ARM CPU. Even with interpreted languages, the only thing that actually runs in the end is ARM assembler, which is generated on the fly.

    --Eric
     
  17. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Well potentially this all could work out well for us too:

    Interesting tweet by Miguel de Icaza: http://twitter.com/migueldeicaza/status/11844609073

    the only requirement: unity would have to open up its sources or implement a fullscale preprocessor to make all calls to the api going directly from our compiles -> api not our compiles -> unity -> api

    But I guess we will get some final confirmation.
    But it would be epically stupid by Apple to force driving forces for its platform to the competition especially with win mobile 7 having an XNA base and Android having brought the NDK to a level where its more than a joke.
     
  18. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
  19. Troy-Dawson

    Troy-Dawson

    Joined:
    Nov 2, 2009
    Posts:
    120
    Just saying if I were Apple I would not want developers able to deploy iPhone apps to Flash or Windows XNA with the push of a button in an IDE -- at the corporate strategic level it desires to lock-in developers into Apple-specific API as much as possible.

    IMO Apple's running into some very difficult Anti-Trust ground here, given its immense share of the mobile app market. If Apple had 5% of the market they could get away with this, but 98% or whatever is ridiculous.
     
  20. billyzelsnack

    billyzelsnack

    Joined:
    Dec 31, 2008
    Posts:
    92
    It does not matter if Unity ends up kicking out obfuscated obj-c instead of asm. Apple still controls the distribution channel and it would be trivial for them to compare submitted apps against a known database of code translators.

    Apple can do whatever the hell they want. It's there store. Considering Apple's love for draconian measures I'd really not be shocked to see them crushing Unity to increase their control of the star systems.
     
  21. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Actually no apple can't or can no longer.
    They are not a small player but in a market controlling position and as such they are in the same S*** position as microsoft with browsers, DVD codecs and Security software on windows: they have the right to allow it or find their ass sued royaly first by the EU and then in the USA.

    What still makes me wonder is why everybody assumes that this is related to Flash CS5 as flash was not legal by the dev contract at any point in time.

    Also they could just have added 3.3.3:
    "Applications must offer an acceptable performance and responsiveness"

    That would have been worlds more effective as all S***-plications would have been out then too not just flash ;)


    I really hope there will be a way around that cause while it might blow a deployment channel for Adobe, it potentially / likely will blow me out of business if I do not find a way to move my income share drastically away from Unity iPhone. I wouldn't want Unity to take the hit either especially after the work for Unity 3. (Adobe is the only ones I would really love to take that hit, cause they deserve it with their monopolistic we are god attitude while deliviering royal trash of crap quality and with more holes than swiss cheese)
     
  22. StarManta

    StarManta

    Joined:
    Oct 23, 2006
    Posts:
    8,773
    Still no more official than any of the speculation in this thread or by Gruber.
     
  23. galent

    galent

    Joined:
    Jan 7, 2008
    Posts:
    1,078
    D*mn, I step away from the forums for a minute, and look what happens...


    Apple seems to be trying legal measures to get developers locked into their platform. (I seem to remember there being a clause about not releasing games submitted to Apple App store (even if they're rejected) on other platforms).

    Now, they have gotten away with a great deal of this kind of cr*p on the Mac (with their never ending war against those evil b*st*rds who try and run OSX on anything but Mac or even worse those devils trying to clone mac hardware!!! :eek: ). But as mentioned, they're in a much more difficult place with the iPhone , given their market penetration. But...

    As with anything in the US legal system (and many others - not to leave anyone out), it's not about what's right, it's about who can afford to be right. With the exception of THQ, I don't know if any of the other Unity devs have the financial muscle to pull a stand up - knock down fight with Apple in court over this. (I'll even assume the 'victim' will get the standard Microsoft $125 million 'kiss of death' support :) ).

    I hope this falls down the right way. I know I'll be done with iPhone if Unity can't pull this one out.

    Cheers,

    Galen
     
  24. StarManta

    StarManta

    Joined:
    Oct 23, 2006
    Posts:
    8,773
    Seconded. If the $600 I invested in making iPhone apps and the month (so far) I've spent working on it turn out only -now- to be wasted, I will turn on a F***ing dime and become the biggest Android supporter in the state.
     
  25. sigsom

    sigsom

    Joined:
    Aug 9, 2009
    Posts:
    133
    Some questions, when do these rules take effect? Has anyone been denied since the rules came out because they used Unity? What happens to the titles that have been released using Unity?

    We are very nervous about this as we are nearly done with our iPhone game and porting our game over through iPhone APIs seems not only daunting but near impossible. I guess we could release it as a web based game but it would lose all its fun factor with out an accelerometer or touchscreen.
     
  26. Gaspedal

    Gaspedal

    Joined:
    Mar 29, 2009
    Posts:
    376
    exactly ! That is the big different point between flash and unity. I hope that Unity can convince Apple with this argument.
     
  27. Morgan

    Morgan

    Joined:
    May 21, 2006
    Posts:
    1,223
    John Gruber (FWIW) doesn’t think this is just about Flash, but about any cross-platform development systems. Meaning, not the platform you develop ON, but the platform you develop TO. Maybe Apple wants iPhone apps to be developed ground-up for iPhone alone. Developing for a multi-target layer above that could, in theory, could lead to sub-standard apps. Maybe so in some cases (and they can fail in the marketplace) but I’d argue that games are a special case (they have their own UI anyway). Unity has proven its merits to the platform I think!

    It’s all guesswork for now, but his article at Daring Firelball has been updated:
    http://daringfireball.net/2010/04/iphone_agreement_bans_flash_compiler

    I wrote to Apple (I’m a registered developer although my game’s not out yet—if it ever will be) and maybe they can clarify.

    To recover the time/money I’ve put into my game, I can try releasing for Android and other smaller platforms, but I’ve been building Clockwork for iPhone, and iPhone/iPad is my personal platform of choice.

    (It’s thinking WAY too far ahead, but maybe UT could allow purchasers of Unity iPhone to apply the cost as a sidegrade to Unity Android or another platform. If the worst happens, and Unity iPhone is banned for good.)
     
  28. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    if you want to use the iphone os 4 beta at the time.
    though its only a matter of days to weeks that the agreement has to be accepted for any iphone dev.
     
  29. tau

    tau

    Joined:
    Dec 15, 2008
    Posts:
    113
    I have 2 points to make:

    1) Apple is protecting its App Store against a tornado of apps made with Flash CS5 - all web games will migrate.

    2) Unity iPhone can have a workaround if they create a SDK (as a static lib) which can be called from xCode, thus the game logic can be created in C++/Obj-C - that way no Mono framework can be involved.
     
  30. Troy-Dawson

    Troy-Dawson

    Joined:
    Nov 2, 2009
    Posts:
    120
    You can run DHTML games in a UIWebView and communicate any device events via the Objective-C -> JS bridge.

    See my article:

    http://www.mactech.com/articles/mactech/Vol.22/22.06/WebInfo/

    I assume this still works, haven't tried it on UIKit yet :)
     
  31. galent

    galent

    Joined:
    Jan 7, 2008
    Posts:
    1,078
    The new additions to the rules take effect when you accept the SDK 4.0 license, so no, no one would have been affected yet. And, as long as Apple accepts apps compiled using the older SDKs the new parts don't apply, so, current titles are clear.

    Now, that said, the rules have been there for some time, Apple could decide to go off the deep end and enforce them more strictly as soon as 4 goes live. That might affect updates, and apps built using older SDKs. Of course, the new bits are the most damning, so...

    Most of this is future seeking. Eventually (in the not too far off future) apple will require all apps be 4.0 tested, and ... pop goes your world. Unless Unity or someone else can clear this one out.

    There is one obvious alternative... the source code. Anyone who builds from the complete source code is free and clear... (Let's pick on EA for example). Unity could share (and EA would have their collective heads for whatever price they paid for source ;) ) or... Unity could do iPhone dev builds.....

    Just some thoughts.

    Hope this helps,

    Cheers,

    Galen
     
  32. EricJ13

    EricJ13

    Joined:
    Feb 28, 2009
    Posts:
    355
    There's a message on the iPhone developer site saying we have to agree to the new agreement by April 22. There are some folks that have had Unity iPad games approved this week. Titles already on the App store should be OK as they were released with the current or previous developer agreements in place... Grandfathered in so to speak.

    Oddly enough there is almost no chatter about this on the Adobe Flash forum.

    EDIT: I don't know if the offending verbiage is in the agreement that has the April 22 deadline, reading that is on my to-do list for tomorrow.
     
  33. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Thats actually incorrect tau.

    The SDK would not be allowed to offer you functions that nicify the iPhone SDK API basically.

    That brings up another question: What about those ad libraries and social gaming libraries that at the time don't offer any sources like Agon, AdMob etc?

    Or to put it differently and to go by Jobs wording from the OS 4 event that "apple does not know anything about advertisement": Is the kick of adobe the real intend or do they want to strengthen their monopol position on advertising and social gaming components?
     
  34. zibba

    zibba

    Joined:
    Mar 13, 2009
    Posts:
    165
    I hope so, it will be painless to convert C# game logic to C++
     
  35. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    There approval system would stop any crappy games anyways. Quite frankly, they are just hurting themselves when they don't allow apps that are perfectly fine. The reason is not about the web games.
     
  36. galent

    galent

    Joined:
    Jan 7, 2008
    Posts:
    1,078
    I can see the point in 1.

    2, not correct. The language expressly prohibits the calling of frameworks, especially ones that get between your code and Apple APIs. the only work around I can see is to build all from source (this might drop Beast and Umbra from possibilities on the iPhone, unless Unity has the source...). Mono is unfortunately, critical to the Unity Implementation, as near as I can tell, and .. definitely KIA in this.

    Cheers,

    Galen
     
  37. galent

    galent

    Joined:
    Jan 7, 2008
    Posts:
    1,078
    Ahh H*ll, I just had a thought... How did Adobe get flash to run on iPhone, and build/compile on Windows? Did they do a Java JVM port? Then do the same ahead of time compile thing as Unity with mono?

    I have a hard enough time getting flash (or other adobe web products) to work on my Mac. This path would make sense. But... It would also open up android and blackberry apps to try the same trick. Perhaps it's the use of a xVM that turned apple's crank...

    Thoughts?

    Galen
     
  38. zibba

    zibba

    Joined:
    Mar 13, 2009
    Posts:
    165
     
  39. bliprob

    bliprob

    Joined:
    May 13, 2007
    Posts:
    901
    It doesn't. UIKit doesn't support the bridge (or rather, it's private... iBooks uses it, but we can't.)

    Besides, AOT compiled JavaScript is 20 times faster than WebKit interpreted JavaScript. Bytecode compiled is one reason why Unity rocks compared to Shiva, Corona, et al.

    Very worried about this.

    Hey! Who wants to write an Objective-C language module for Mono?
     
  40. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    The point unhappily is not about virtual execution environments. (otherwise flash wouldn't be touched as flash has a compiler that compiles arm code).

    The point is about your code calling into library thats calling the iphone API.

    The remaining question of clarification here is: At which point is it just an intermediate layer and at what point is it an extension.

    Unity movie playback for example would independent of the interpretation be an intermediate layer as it calls whats there.
    The engine itself otherwise isn't as it normally interprets the data and does something with them.

    What it really hurts is MonoTouch but monotouch seems to be at least partially on the "other side of the fence" as you can see on http://twitter.com/migueldeicaza/status/11844609073


    without further legally binding clarification from UT which likely require it from Apple first, there is not much to do than go nuts and fear for your future
     
  41. MadMax

    MadMax

    Joined:
    Aug 5, 2009
    Posts:
    203
    I never liked Apple.

    Also Apple does not have 98% of the smart phone market. More like 25% and I think less in Europe. They will do whatever they want with that slice.
     
  42. sigsom

    sigsom

    Joined:
    Aug 9, 2009
    Posts:
    133
     
  43. tau

    tau

    Joined:
    Dec 15, 2008
    Posts:
    113
    Exactly, Unity static lib SDK is not something between your code and Apple API; it's more between your code and OpenGL API. I dont think 3rd party static libs are prohibited by the TOS - it says nothing about it explicitly.

    TOS says
    A static lib would not be a "compatibility tool", but rather a "rapid development tool".
     
  44. GamesByJerry

    GamesByJerry

    Joined:
    Oct 27, 2008
    Posts:
    71
    Yeah but that's not too bad when I'm weeks away from releasing an iphone game I've spent $10k and 2 years on :(

    But I remain confident apple wouldn't kill unity iphone, it's really helped push their platform and produced some of the best iphone games! Still be refreshing this page at work hourly for any news :)
     
  45. galent

    galent

    Joined:
    Jan 7, 2008
    Posts:
    1,078
    That's what I like about you dreamora.. you've always got a suggestion I can really go with! :D

    I don't know about the rest of you, but until I hear from HiggyB, I'm going with dreamora's suggestion! Nuts and fear anyone? :D

    Galen
     
  46. StarManta

    StarManta

    Joined:
    Oct 23, 2006
    Posts:
    8,773
    I'm down with that. ASFIQRGIHFIASFHODAOS AHHHHH WERE ALL GOING TO DIE
     
  47. sigsom

    sigsom

    Joined:
    Aug 9, 2009
    Posts:
    133
    So if UT cant publish to iPhone and iPad would that bankrupt UT? It seems as if most of the software that Unity sells is in the development of iPhone and iPad games. That plus the costs of a Unity 3.0 that cant sell iPhone licenses seems like they would take a pretty big hit.
     
  48. zibba

    zibba

    Joined:
    Mar 13, 2009
    Posts:
    165
    Yes that is the point to this TOS change - they do not want to execute code that has not been through their compiler chain. That bangs Flash, as Flash uses an ARM compiler that is not Apple's. That also bangs Unity and Mono AOT because that is a compiler that is not Apple's. If MonoTouch can generate C in it's AOT stage rather than straight ARM, then that might well be ok. I think at this stage Apple are assuming that Adobe won't be able to get a Flash to C compiler written. Jobs has a personal vendetta against Adobe. However, if Adobe can write such a compiler, Apple might get stricter.

    I have a game that's due out in May and I've spent a lot of time and money making it, so yes, I'm very much in fear!
     
  49. bliprob

    bliprob

    Joined:
    May 13, 2007
    Posts:
    901
    They explained it pretty clearly on their blog. The wrote a compiler (using LLVM) to compile AS3 into arm6 bytecode. They made a runtime library that it links to that supplies their base classes. Their publishing tool compiles everything, links the binary, adds the necessary resources (i.e. default.png, info.plist, etc), codesigns the binary, and zips the whole thing to an IPA file.


    There's no strict interpretation of the above that allows Unity games. Unity's written in C, of course, so Unity qualifies. It's just YOUR code written in JS/C# and compiled via Mono that doesn't.

    I guess hand-optimized assembly is out, too, if it calls APIs.

    This is flat-out nuts. I'm tired of being collateral damage in someone else's war.
     
  50. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    the same way Unity and Mono are touched by it: native compile of your source calls into the library which calls into the API.
    But by the wording you potentially will need your source calling into the API.

    Its all unknown though at the time. The horror news are a few hours old only.


    @tau: nice idea that it is not between yours and the API but tell that the movie playback, the gps feature, accelerator and touch handling please :)


    @galent: :D
    I've always pretended to be optimistic, potentially realistic but situations like this just force my real nature up which is deepest darkest pessimistic :)