Android Port of LÖVE, the awesome 2D game engine LÖVE (http://love2d.org)
Copyright (c) 2013-2014 Martin Felis [email protected]
Instructions:
For detailed instructions please refer to the wiki at https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/Home.
Download:
You can download pre-built Android packages from
https://bitbucket.org/MartinFelis/love-android-sdl2/downloads
that allow you to run .love files by opening them using a file manager of
your choice.
Quick Start:
Install the Android NDK and the Android SDK with SDK API 23, set the
environment variables ANDROID_NDK, ANDROID_SDK, and
ANDROID_HOME and run
ndk-build -j4
and after that
ant debug
in the root folder of this project or load the project using Eclipse and
compile/run it using Eclipse.
This should give you a .apk file in the bin/ subdirectory that you can then
install on your phone.
Bugs:
Bugs and feature requests should be reported to the issue tracker at https://bitbucket.org/MartinFelis/love-android-sdl2/issues?status=new&status=open.
Changelog:
0.10.0:
- first official release!
- Disabled JIT by default as it can cause performance problems. To enable JIT call jit.on()
0.10.0-alpha2:
- Update to the next love API 0.10.0 (not yet officially released)
- Added building of libtheora
- Updated LuaJIT from 2.0.1 to 2.1
- Fixed a compatibility issue with Android 2.3 devices
- Updated libogg from 1.3.2. to 1.3.5
- Updated OpenAL to 1.17.0
- Updated SDL2 to a dev version of 2.0.4
0.9.2a:
- Added bugfix for ParticleSystem:clone
0.9.2:
- updated API to match that of LÖVE 0.9.2
- love.window.setFullscreen can be used to switch between regular and immersive mode without status and navbar
- added loading of games by opening a main.lua file
- quitting LÖVE now conforms to the Android application lifecycle
- stop vibrator when app is paused
- fixed battery drain by properly pausing OpenAL device
- fixed printing of non-number and non-string values
- fixed compilation of Android NDK r10
- fixed compilation warnings concerning
APP_PLATFORM
- old instance is shut down when opening a new game (note: it may crash when opening games at a high frequency, e.g. more than 2 per second)
- updated OpenAL-Soft to version 1.16.0
- updated to newer SDL version (
f9244b2a15)
0.9.1b:
- added love.system.vibrate(seconds)
- print statements are now redirected to logcat. Output is prefixed with "[LOVE] "
- removed DevIL, libpng, libjpeg, libmng, and libtiff
- pngs are loaded using lodepng and jpegs using libturbo-jpeg
- repeatedly fixed a bug which caused Release builds to crash
- update to latest mobile-common branch
0.9.1a:
- using latest SDL_androidgl.c (fixes some random performance issues)
- using latest love-android @ changeset
8659be0e75 (adds support for
compressed textures)
0.9.1:
- uses 0.9.1 API
- fixed crash on Moto G (and possibly other devices). This was a nasty bug that would just show a blue screen without an error message. The bug was resolved using the help of headchant
- fixed loading of jpegs (it probably hasn't worked up to now)
- fixed issues with looping over active touches. This fix was sponsored by slime!
beta2:
- fixed bug with canvases
- fixed writing of files when no identity in conf.lua was set
- added file association (somewhat experimental)
beta1:
- fixed nasty crash on startup bug
- fixed love.filesystem.getDirectoryItems()
alpha9:
- Packaged games do not get duplicated for loading, instead are loaded from memory (!!!)
- Using inofficial physfs 2.1
- Removed love.android.getDisplayMetrics(), instead use love.window.getPixelScale()
- Properly link LGPL libraries dynamically. Everything else is linked statically
- Added an icon (design by @josefnpat)
- Fixed crash on startup on OUYA (and possibly other devices)
alpha8:
- Exposing DisplayMetrics in love.android.getDisplayMetrics())
- Accelerometer is now available as a joystick
- enabled armv6 compilation (larger files, better compatibility with Tegra2 devices)
- updated to latest mobile-common branch (including (very) basic multi-touch gesture tracking)
- updated OpenAL from 1.13 to 1.15.1
- updated jpeg library from 8c to 9a
- updated lcms from 2.2 to 2.5
- updated libogg from 1.3.0 to 1.3.1
- updated libvorbis from 1.3.2 to 1.3.4
- updated mpg123 from 1.13.4 to 1.17.0
alpha7:
- love.system.getOS() now returns "Android"
- hardware search key is reported as "search"
- switched to mobile-common branch
- using new love.touch module (love.touchpressed(id,x,y,p), love.touchmoved(id,x,y,p), love.touchmoved(id,x,y,p))
- added LOVE_ANDROID define
License:
This project contains code from multiple projects using various licenses.
Please look into the folders of jni// for the respective
licenses. A possibly incomplete overview of dependent and included
libraries and licenses is the following:
- FreeType2 (FreeType Project License)
- libjpeg-turbo (custom license)
- libmodplug (public domain)
- libogg (BSD License)
- libvorbis (BSD License)
- LuaJIT (MIT License)
- mpg123 (LGPL 2.1 License)
- openal-soft (LGPL 2 License)
- physfs (zlib License)
- SDL2 (zlib License)
This project also includes LÖVE, which itself is licensed under the zlib
license but includes the following libraries that are subject to other
licenses:
- modified Box2D (original Box2D license is zlib)
- ddsparse (MIT License)
- enet (MIT License)
- glad (MIT License)
- lodepng (zlib License)
- luasocket (MIT License)
- SimplexNoise1234 (public domain)
- stb_image (public domain)
- utf8 (Boost License)
- wuff (public domain)
As for the other code, modifications to LÖVE, and build system files are
are published under the zlib license (same as LÖVE).