Отличия подготовки проекта для разных платформ

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
Simple.png

AppSalute Game Сreator позволяет использовать один проект (один лейаут), чтобы собирать приложение для разных платформ (маркетов). Значительная часть проекта одинакова для всех платформ, но существуют некоторые различия. Для того чтобы иметь один лейаут для всех платформ используется внутренняя переменная "market", которая задается в конфигурационном файле platform.icf. И которая переносится в приложении непосредственно при сборке.

В самом же проекте, проверяя значение этой переменной реализуем нужную логику. На данный момент такую проверку можно делать в машине состояний, а также в таскорганайзере.

На данный момент существует 2 основных вида сборок - для мобильных платформ (google, ios) и для веб-платформ (facebook). Как подготовить версию для веб-платформ из версии для мобильных платформ описано в этой статье: https://docs.google.com/document/d/1seTO3nphCsqqYHjumkl6b4r9RWLNGdokHjpDyDDP1T4/edit#

Кроме отличий в самом проекте, также есть отличия при сборке проекта. Эти особенности также будут описаны ниже, но на данный момент эти отличия применяются автоматически при сборке через артефактори.

Google Play

  • Значение переменной market = "android".
  • Если в проекте есть курсоры (для веб-версий), то при запуске (на глобальном экране) приложения опциям нужно вызывать состояние disableCursor.
  • Для приложений GP есть возможность использовать социальную сеть G+. Для этого при запуске приложения (на глобальном экране) нужно установить объекту Esocial параметр socialnet = 2.
  • На GP есть система внутриигровых достижений (ачивок). Для их корректной работы должен быть настроен объект Gamecenter. В частности в нем должны быть указаны ключи ачивок. Ачивки заводят маркетологи, они же дают ключи.
  • Для доступа к сервису GP в проекте должно быть 2 кнопки: одна для доступа к ачивкам, вторая для доступа к лидерам. Также, если в проект поддерживаются локальные достижения, то в Gamecenter нужно указать текст для этого достижения.
  • По системной кнопке "back" должно закрываться открытое окно. Если открытых окон нет, показывается окно выхода из приложения / хиддена / миниигры и тд.
  • Если в приложении есть реклама, то в файле конфигурации (platform.icf) в группе Advertisement должен быть указан ConfigUrl.
  • Если используется флурри в файле viewer.xml должен быть указан game_id.
  • Размер apk файла для приложения на GP ограничено 100 мб. Если приложение больше этого размера, то его нужно разделить на 2 пака. Это делается в открытом проекте в редакторе в Project Options в разделе Profiles Manager. Для групп платформ создаются профайлы с общими настройками паковки экранов. Для google в нулевой пак кладутся экраны, размер графики которых не превысит 100 Мб, остальные экраны нужно сложить в первый пак, они попадут в obb.
  • Перед тестированием версию всегда нужно заливать в бету GP. Что бы версию можно было залить в бету, нужно чтобы текущая версия была выше предыдущей.

iTunes

  • Значение переменной market = "ios".
  • Если в проекте есть курсоры (для веб-версий), то при запуске (на глобальном экране) приложения опциям нужно вызывать состояние disableCursor.
  • На iTunse есть система внутриигровых достижений (ачивок). Для их корректной работы должен быть настроен объект Gamecenter. В частности в нем должны быть указаны ключи ачивок. Ачивки заводят маркетологи, они же дают ключи.
  • Для доступа к геймцентру в проекте должно быть кнопка, которая вызывает состояние achievements_show. Также, если в проект поддерживаются локальные достижения, то в Gamecenter нужно указать текст для этого достижения.
  • Если в приложении есть реклама, то в файле конфигурации (platform.icf) в группе Advertisement должен быть указан ConfigUrl.
  • Если используется флурри в файле viewer.xml должен быть указан game_id.
  • Приложение пакуем в 2 пака, в нулевой пак, в отличии от google, кладутся только экран options и другие экраны, участвующие в запуске приложения. Все игровые экраны кладутся в первый пак.

Amazon Appstore

  • Значение переменной market = "amazon".
  • Если в проекте есть курсоры (для веб-версий), то при запуске (на глобальном экране) приложения опциям нужно вызывать состояние disableCursor.
  • На Amazon Appstore есть система внутриигровых достижений (ачивок). Для их корректной работы должен быть настроен объект Gamecenter. В частности в нем должны быть указаны ключи ачивок. Ачивки заводят маркетологи, они же дают ключи.
  • Для доступа к геймцентру в проекте должно быть кнопка, которая вызывает состояние achievements_show. Также, если в проект поддерживаются локальные достижения, то в Gamecenter нужно указать текст для этого достижения.
  • По системной кнопке "back" должно закрываться открытое окно. Если открытых окон нет, показывается окно выхода из приложения / хиддена / миниигы и тд.
  • Если в приложении есть реклама, то в файле конфигурации (platform.icf) в группе Advertisement должен быть указан ConfigUrl.
  • Если используется флурри в файле viewer_amazon.xml должен быть указан game_id.
  • Приложение разбивается на 2 пака, аналогично платформе ios.

Samsung Galaxy Apps

  • Значение переменной market = "samsung".
  • Если в проекте есть курсоры (для веб-версий), то при запуске (на глобальном экране) приложения опциям нужно вызывать состояние disableCursor.
  • Данный маркет не имеет собственного геймцентра, но на нем можно использовать локальные достижения. Для этого в Gamecenter нужно указать текст для этого достижения.
  • По системной кнопке "back" должно закрываться открытое окно. Если открытых окон нет, показывается окно выхода из приложения / хиддена / миниигы и тд.
  • Если в приложении есть реклама, то в файле конфигурации (platform.icf) в группе Advertisement должен быть указан ConfigUrl.
  • Если используется флурри в файле viewer_samsung.xml должен быть указан game_id.
  • Приложение использует настройки экспорта/паковки такие же, как amazon.
  • Samsung Galaxy Apps просит, чтобы их приложение чем то отличалось, от версии на GP. На начальном этапе игры можно сделать подарок, где указать, что это уникальная особенность для пользователей данного маркета.

Facebook

  • Значение переменной market = "webfb".
  • Для корректной работы курсора нужно указать его для каждого экрана в проекте, а также поместить на расшаренной сцене с альфой = 0. (Чтобы подтягивался ресурс при экспорте, но и не было переключений между текстурами). При загрузке приложения опциям нужно вызывать состояние readCursor. Также в файле app.icf в параметрах нужно указать id ресурса для курсора (используя param_name и param_value).
  • Если в приложении есть реклама, то в файле конфигурации (platform.icf) в группе Advertisement должен быть указан ConfigUrl.
  • Геймцентра нет, но есть механизм постов на стену при получении очередного достижения. В Gamecenter указываем ключи этих достижений. Ключи представляют собой адрес к файлу ачивки на сервере. Для показа ачивок используются локальные достижения. Для этого в Gamecenter нужно указать текст для этих достижений.
  • В веб-версиях человек может играть в фулскрине, для этого нужно сделать кнопки смены режима (обычный/фулскрин). Также нужно предусмотреть выход из фулскрина, при совершении покупки (Устанавливать опциям fullScreen = 0, при нажатии на кнопку совершения покупки).
  • Для веб-версий нужно отключить иконку социальной сети, выключив vis картинке, указанной в поле snIco, в темплейте иконки друга.
  • Для каждой покупки нужен специальный файл, который должен быть загружен на сервер. Так же обстоит дело с постами на стену (при сдаче коллекций, получении нового уровня, ачивки и тд). При получении очередного достижения (сдача коллекции, новый уровень и тд), человек может отправить себе на стену пост об этом достижении. При этом на соответствующей кнопке вместо "Принять" нужно писать "Поделиться".
  • Каждый экран должен быть упакован в отдельный пак. После экспорта, видео в формате absmp4 нужно изменить формат на mp4. Также нужно изменить расширение для видео в файле *.sirx.

Submit Facebook

После каждого добавления новых постов ( лвл-апы, пост аччивок) нужно пройти проверку от Facebook. Для этого все посты настраиваются в админке, собирается версия на webfb релиз(если посты содержат новую графику) и отдаются две версии приложения на проверку. Два приложения - ios и google, должны соблюдать требования:

должны состоять из одного файла (apk,ipa - без obb файла);
посты должны отсылаться без проверки разрешений (пермишенов); Для этого в app.icf указываем в теге [s3eFacebook] параметр с значением: "DonotCheckAppPermision=1"


Одноклассники

  • Значение переменной market = "webok".
  • В проекте весь интерфейс, тексты должны быть на Русском. В app.icf указываем lang="ru".
  • В проекте должна быть отключена возможность смены языка ( всегда должен быть Русский).
  • На иконках постов, игровых картинках не должно быть надписей на иностранном языке ( в проекте если market="webok" меняем некот. графику) .
  • Иконки пользователей в социальных окнах должны вписываться ( в объекте image указываем параметр тайлинг="вписать"), т.к. одноклассники отдают нам не квадратные иконки.
  • Тексты постов, уведомлений - д.б. на Русском.
  • В проекте не д.б. внешних ссылок, кроме как отправить письмо и ссылки на группы в Одноклассниках.
  • В проекте не д.б. иконок других соцсетей.
  • Для корректной работы курсора нужно указать его для каждого экрана в проекте, а также поместить на расшаренной сцене с альфой = 0. (Чтобы подтягивался ресурс при экспорте и но не было переключений между текстурами). При загрузке приложения опциям нужно вызывать состояние readCursor. Также в файле app.icf в параметрах нужно указать id ресурса для курсора (используя param_name и param_value).
  • Таким же образом (используя param_name и param_value) указываем параметр lang = en.
  • Геймцентра нет, но есть локальные достижения. Для их показа в Gamecenter нужно указать текст для этих достижений.
  • В веб-версиях человек может играть в фулскрине, для этого нужно сделать кнопки смены режима (обычный/фулскрин). Также нужно предусмотреть выход из фулскрина, при совершении покупки (Устанавливать опциям fullScreen = 0, при нажатии на кнопку совершения покупки).
  • Для веб-версий нужно отключить иконку социальной сети, выключив vis картинке, указанной в поле snIco, в темплейте иконки друга.
  • Механизма постов на стену нет, надписи "Поделиться" быть не должно. Кнопку "Поделиться" из окна коллекций делаем недоступной.
  • Также прячем в настройках чекбокс "Уведомления". На Yahoo их нет.
  • Каждый экран должен быть упакован в отдельный пак. После экспорта, видео в формате absmp4 нужно изменить формат на mp4. Также нужно изменить расширение для видео в файле *.sirx.

Steam

  • Значение переменной market = "steam".
  • Экспортируется как обычная виндовая версия win_abs.
  • Для отображения сплеш скрина компании рядом с .exe файлом должен лежать файл default.dat. Создается он следующим образом:
- 1. В папке ..\project\icons\splash выбирается иконка размера 1024*768.
- 2. Через paint эта картинка сохраняется как .bmp.
- 3. И переименовывается на default.dat.
  Либо вариант видео: в кофиги платформы добавить файл splash.ogv. 
  Еще в app.icf в группе Game указать fullScreenOnStart=1. 
  • Для запуска приложения также рядом с .exe файлом должен лежать файл steam_appid.txt, содержащий только id приложения (просто число, без "id=" и т.д.). Этот id дают маркетологи. А вообще его нужно положить в конфигурациях .....\project\platforms\win_abs. При сборке он подтянется.
  • Объект Facebook не функционален. Сделать картинкой для улучшения производительности.
  • Работает abs-социалка, подарки. Планируется подключение социалки steam.
  • Объект Advertisement тоже сделать картинкой.
  • Вся графика проекта должна находится в нулевом паке.
  • Удалить из проекта все ссылки на absolutist.com и другие ресурсы, куда может перейти пользователь и купить игры вне Steam.