I am not really familiar with the apple ecosystem, but my understanding is that they frown on open execution environments, that is emulators, virtual machines, interpreters etc. and a system that lets anyone develop and load games sounds like just that.
The terms have changed gradually over the years and now we are boiling IDEs on the iPad.
My plan is to ship something that is both a great iPadOS app and operates within the confines of the AppStore restrictions.
I find restrictions as a powerful motivator to think about a problem differently. Lots of great art (and software) is great when it explores and brings to light what’s possible with the limitations of a medium.
I love the spirit here, but the limitations on iOS are not the limitations of the medium. Mobile computing has lots of interesting and inspiring limitations, we don't need apple to draw artificial squircles we can't cross in an api.
20 years is a generation, however for many of us, Apple's walled garden was a refreshing concept versus the mobile operators gardens.
First of all, getting SDKs was akin to console devkits, back in 2004 getting a Symbian SDK was still a commercial only product for example, same for Windows CE/Pocket PC,...
Followed by about 80% tax, only to be listed on mobile phones magazines, with the SMS code to trigger the application download.
Hence why everyone rushed for the garden, it was indeed easier to be creative in Apple land.
They allow execution environments and have for many years. See pythonista etc
They haven’t allowed emulators till this year, but Xodot isn’t an emulator.
But what you’re likely thinking of with regards to execution is that they don’t allow creating new executable code. Ie no JIT or compilers, but interpreters are fine. Hence you can do GDScript (which runs in an interpreter like Python does) but you won’t be able to use the other language backends which compile down.
> they don’t allow creating new executable code. Ie no JIT or compilers
The Metal compiler is embedded in the Metal runtime and runtime compilation of GPU kernels is part of the official API. So I'm not sure if Apple would actually prohibit JIT-ing GPU code.
Now that I think of it, I wonder if you could create a Metal IDE using nothing more than the Swift Treesitter module and a Metal definition for it. As of today, you can use the Swift Playgrounds app if you don't mind not having any compiler errors or warnings provided to you.
Programming languages (IDEs) were always allowed as long as the code couldn't be downloaded from the internet. Local or cloud load/save is OK. An user copying it manually using a clipboard from a web page is OK as that's user doing. But direct downloading was a no-no. This was explained as to prevent any application from becoming AppStore-like.
There are some tricks, like using curl | sh approach by the user for UNIX-like environments, or similar things for Python IDEs. But again it is something that the user have to do and learn about it from an outside source.
I am not really familiar with the apple ecosystem, but my understanding is that they frown on open execution environments, that is emulators, virtual machines, interpreters etc. and a system that lets anyone develop and load games sounds like just that.