Данный проект представляет собой шаблон Android-приложения, включающего в себя минимальную версию интерпретатора текстовых квестов INSTEAD, и позволяющего запаковать вашу парсерную игру в APK-файл для запуска на телефоне.
"Парсерная игра" означает, что ваша игра должна быть написана с использованием модуля МЕТАПАРСЕР3.
Ваша игра будет выглядеть примерно так:
Для начала вам необходимо клонировать репозиторий, либо скачать последний релиз со страницы Releases и распаковать куда-нибудь.
Примечание: в дальнейшем все пути к директориям я буду указывать относительно корневой директории этого проекта.
Вам необходимо положить файлы вашей игры в директорию app/src/main/assets/game/
(предварительно создав её). Так же не забудьте удалить из своей игры файл morphs.mrd
.
Если у вас в игре используется автотема, то её необходимо удалить или объявлять следующим образом (иначе приложение будет падать):
if not instead.tiny then
require "autotheme"
end
В файле app/build.gradle
вам необходимо изменить значение переменной applicationId
на что-то своё. Обычно это домен вашего сайта "задом наперёд" плюс название приложения, например "com.mysite.mygame". Эта строка будет уникальным идентификатором приложения в телефоне и в Google Play (учтите, что после того как вы выложите приложение в маркет, поменять applicationId будет нельзя).
В файле app/build.gradle
вам необходимо изменить значение переменных versionCode
и versionName
.
-
versionCode
это целое положительное число, которое используется для определения более новой версии приложения: чем больше число, тем новее версия. С каждым обновлением игры в маркете вы должны увеличивать это значение (не обязательно по порядку). Максимальное значение 2100000000. -
versionName
строка, используемая в качестве номера версии, которая будет показана пользователям. Например "1.3-beta"
В файле app/src/main/res/values/strings.xml
вам нужно изменить значение строки <string name="app_name">metaparser</string>
. Вместо metaparser
впишите название игры. Оно будет отображаться под иконкой на рабочем столе и в тулбаре игры.
Теперь необходимо добавить иконку для игры. А если точнее, то несколько иконок разных размеров для телефонов с различной плотностью пикселей на экране.
Проще всего их сгенерировать онлайн в Android Assets Studio или внутри Android Studio.
Так же начиная с Android 8 поддерживаются адаптивные иконки, которые могут быть в векторном формате.
Иконки нужно заменить в директориях app/src/main/res/mipmap-*
(вместо * имеются ввиду: hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi и anydpi-v26 для адаптивных иконок).
Изменить цветовую гамму приложения можно в файле app/src/main/res/values/colors.xml
для светлой темы и в app/src/main/res/values-night/colors.xml
для тёмной темы.
Изменить размер шрифта и отступы от краёв можно в файле app/src/main/res/values/dimens.xml
для телефона, app/src/main/res/values-w600dp/dimens.xml
и app/src/main/res/values-w800dp/dimens.xml
для планшетов.
Что бы установить другой шрифт для текста вам необходимо заменить ttf файлы шрифтов в директории app/src/main/res/font/
.
Что бы изменить количество слотов для сохранений поменяйте параметр NUMBER_OF_SAVE_STATES
в файле app/src/main/kotlin/org/emunix/metaparser/storage/StorageImpl.kt
.
Для сборки приложения вам необходимо скачать Android SDK и Android NDK(для сборки из консоли), либо Android Studio(для любителей GUI).
Если вы выбрали Android Studio, то вам необходимо установить SDK и NDK по инструкции.
Каждый APK файл должен быть подписан вашим цифровым ключом. Создать себе ключ вы можете с помощью программы keytool которая входит в состав OpenJDK.
Что бы создать ключ выполните keytool -genkey -v -keystore keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key0
Теперь в корне нашего проекта переименуйте файл keystore.properties_example
в keystore.properties
и пропишите в нём путь к вашему ключу и пароли.
После этого система сборки будет автоматически подписывать этим ключом release версию вашей игры.
Важно: не потеряйте свой цифровой ключ и пароли от него, так как в этом случае вы больше не сможете обновлять свою игру в маркете.
Что бы собрать приложение мы используем систему сборки Gradle. В корне нашего проекта есть файл gradlew
, это скрипт который скачивает систему сборки и запускает команды для неё.
Что бы собрать APK вам нужно выполнить две команды:
./gradlew downloadDependencies
-- скачивает архивы c исходниками Instead и Lua и распаковывает их в подкаталоги app/src/main/c/
./gradlew build
-- собирает debug и release версии приложения. APK файлы вы сможете найти в каталоге app/build/outputs/apk/
Так же можно собирать debug и release версии по отдельности командами ./gradlew assembleDebug
и ./gradlew assembleRelease
Что бы установить приложение на телефон можете воспользоваться командой ./gradlew installRelease
Что бы очистить директории сборки и начать с чистого листа есть команда ./gradlew clean
Полный список доступных команд можно посмотреть так ./gradlew list
После этого вы можете распространять release версию своего APK.
Перед запуском приложение должно скопировать вашу игру и файлы stead из директории assets в файловую систему телефона. В debug сборке копирование происходит каждый раз при запуске, но в release сборке файлы копируются только при первом запуске и после обновления версии приложения (переменная versionCode
в файле app/build.gradle
).