I've been developing an experimental port of LÖVE 0.9.2 to iOS.
It's a "true" port - aside from the internal components which needed explicit porting / different library backends, it uses all of the same code as the 'main' LÖVE repository. This means that most of the port's API will behave identical to 0.9.2, since the code is mostly the same.
That being said, it hasn't been tested comprehensively. Post in the thread if you have any issues!
Here's a picture of the 0.9 no-game screen running at a smooth vsync'd 60 FPS on my iPad 2:
This port incorporates my common mobile branch of LÖVE 0.9.2 which adds support for OpenGL ES 2, a touch API, and a few other minor mobile-related things. That branch is also used in fysx' Android port of LÖVE 0.9.
Most of the API additions in the iOS port are also in the Android port, and are documented on its Wiki page.
- love.touchpressed, love.touchreleased, love.touchmoved, love.touchgestured.
- The love.touch module.
- Enhancements to love.mousepressed and love.keyboard.setTextInput.
- love.lowmemory callback function.
Building LÖVE for iOS
The code for the iOS port can be found in a branch of the love-experiments repository, here. You can download the files directly here.
In order to build properly, it needs some libraries. You'll need to put the 'include' and 'libraries' folders in this download (updated August 15, 2015) into the love/platform/ios/ folder.
To build the port, run the Xcode project in the ios platform folder.
I plan to provide friendlier ways of running LÖVE for iOS once the port is more mature.
Running .love games
To run a .love game with the port, you have a few options:
Running an unfused game with the iOS Simulator
With the iOS Simulator application open, drag the .love file onto the simulator and drop it. LÖVE will launch if it's not open already. If a game is already running, you may need to quit and re-launch LÖVE.
Running an unfused game on an iPhone / iPad
After LÖVE is built and installed on your iOS device, open iTunes, go to your iOS device which has LÖVE installed, go to the 'Apps' section, scroll down and find love, and add your .love to the Documents section. If LÖVE is currently running on the device you may need to quit and re-launch it.
Running a fused game in the Simulator or on a device
Before building LÖVE, drag your .love game into the 'Supporting Files' group visible in the iOS Xcode project. If you change the .love's contents, Xcode might not recognize changes to the .love until you do a full rebuild of the LÖVE code.
Issues and differences
This port has a few differences from desktop LÖVE 0.9.2 and a couple known issues:
- Smooth points are not supported - rough points will always be used.
- Shaders work, but the shading language is based on GLSL ES 1.0, which is a slightly more limited language than the version of GLSL (1.2) which LÖVE's shaders use on the desktop.
- Some obscure image formats are not supported.
- Some sound file formats (those normally handled by libmodplug) are not supported.
- LuaJIT is used, but JIT compilation is disabled as per Apple's policies.
- Fused games don't know they shouldn't be able to open .love files from the device. You can fix this by removing LÖVE Projects from the Document Types and Exported UTIs in the Info section of the love target pane in Xcode.
You can see the recent commits to the repository here: https://bitbucket.org/bartbes/love-expe ... branch/iOS