danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

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

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

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

split97 split97

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

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Прочие движки

Запуск LibGDX игры на iOS

LibGDX позволяет создавать на Java ещё более кросплатформенные приложения, но просто сделать только ПК версию. Для прочих устройств требуется то сдк скачать, то с сервером помудрить, то мак купить… Вот о последнем и поговорим.

Я использовал eclipse, работа с другими IDE несколько отличается.

Подготовка

Для создания билда на iOS нам потребуются:

Нужна ОС, на которую поставится последняя версия xcode.

Xcode качаем из appstore.

На itunesconnect надо создать страницу игры. Добавить описание, контакты и тому подобное.

Всё самое полезное на developer (документация, сертификаты и т.д.) находится в сааамом низу сайта. Посколько мы имеем дело с эпл, то нужно купить годовую лицензию. Разумеется, только если хочется выкладывать игры в апстор.

После создания аккаунта на developer мотаем в самый низ и открываем страницу с сертификатами.

Есть 2 вида сертификатов: development и distribution. Ради второго и нужно проплачивать лицензию. Однако, если хочется просто попробовать запустить игру на iOS устройстве под рукой, то хватит и бесплатной версии.

Создаём нужный сертификат и подпись к нему. Скачиваем их.

Открываем keychain и вставляем туда сертификаты, чтобы RoboVM могла их использовать.

Регистрируемся и получаем 30-дневную пробную версию. Вам выдадут ключ, который понадобится для работы RoboVM. В профиле, в лицензиях – можно проапгрейдить ключ по условиям обычной лицензии (т.е. купить), а можно подать запрос на инди версию (бесплатно, на маленькую группу разработчиков с потолком прибыли за прошлый год), который будет рассматриваться пару дней, не дольше.

Устанавливаем RoboVM. В случае с Eclipse – ставим плагин (открываем вкладку Help – Install New Software – в качестве сайта пишем http : //download.robovm.org/eclipse/).

Прописываем ключ в RoboVM. В случае с Eclipse – открываем вкладку RoboVM – License Manager – и вводим ключ.

iOS проект

Теперь взглянем на содержимое iOS проекта. Есть некоторые файлы, которые необходимо редактировать:

Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

Папка data содержит загрузочные экраны и иконки.

xml - ориентация экрана
<key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
xml - иконки
<key>CFBundleIcons</key>
    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>AppIcon57</string>
                <string>AppIcon57@2x</string>
                <string>AppIcon72</string>
                <string>AppIcon72@2x</string>
                <string>AppIcon76</string>
                <string>AppIcon76@2x</string>
                <string>AppIcon120</string>
                <string>AppIcon192</string>
            </array>
        </dict>
    </dict>
xml - полноэкранный режим
<key>UIRequiresFullScreen</key>
<true/>

Другие ключи.

xml - папки с интернал файлами
<resources>
    <resource>
      <directory>../android/assets</directory>
      <includes>
        <include>**</include>
      </includes>
      <skipPngCrush>true</skipPngCrush>
    </resource>
    <resource>
      <directory>data</directory>
    </resource>
  </resources>
xml - подключаемые фреймворки
<frameworks>
    <framework>UIKit</framework>
    <framework>OpenGLES</framework>
  </frameworks>
app.version=0.1 – версия игры
app.id=com.zoomgames.geometryx – айди игры, должен совпадать с айди на itunesconnect
app.mainclass=com.zoomgames.geometryx.IOSLauncher
app.executable=IOSLauncher
app.build=1 – номер билда. Изменяйте каждый раз, когда заливаете игру на itunesconnect
app.name=Geometry-X

Для проверки работоспособности вашей игры можно использовать симулятор айпада/айфона или подключить устройство через кабель. Для этого надо нажать правой кнопкой мыши на iOS проекте и выбрать "Run as...".

Компиляция проекта

Софт готов? Аккаунты подключены? RoboVM активирована? В любом случае - переходим к компиляции iOS версии игры.

Для отправки игры на itunesconnect сперва требуется создать ipa файл.
Жмём ПКМ по iOS проекту и выбираем RoboVM Tools - Package for App-Store/Adhoc Distribution.

Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

Выбираем папку, куда сохранится ipa файл, и подпись.

Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

Первый раз компиляция может занять минут 5. Вероятно, что IDE даже не хватит памяти и она закроется, но уже скомпилированные классы останутся в кеше и можно спокойно продолжить процесс после перезапуска IDE.

Затем запустить xcode и открыть Application Loader.

Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

Выбрать Deliver Your App.

Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

Выбрать созданный ipa файл.

Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

Проверить название и версию игры. Продолжить. Подождать, пока всё загрузится на сервер. Если возникнут ошибки или какие-то мелкие неполадки - апплоадер сообщит. К сожалению, он не скажет, как всё исправить.

Если в вашей команде есть iOS устройства, то для тестирования их стоит подключить на itunesconnect на странице игры в разделе TestFlight во вкладке внутреннего тестирования. Там же можно выбрать последний билд загруженной версии для тестирования.
Если в вашей команде разработчиков нет яблочных устройств, то можно поспрашивать родных/друзей/знакомых и сделать их внешними тестерами. Но тут есть одна проблемка – эпл некоторое время проверяет приложение, прежде чем позволить тестерам его загрузить.

Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

Вот, собственно, и всё, что требуется для портирования LibGDX игры на iOS.

Если кого-то интересует GameCenter (эпловские лидерборды, рейтинги, достижения и т.п.) - рекомендую.

java
public void share(int score, String gameMode){
    	NSString s = new NSString("My new highscore in Geometry-X - "+gameMode+" is "+score+"! Try to beat me!");
    	NSArray a;
    	if (Gdx.files.isExternalStorageAvailable()){
	    	FileHandle fh = Gdx.files.external(".temp/Geometry-X/scrn.png");
	    	Main.saveScreenshot(fh);
	    	UIImage i = new UIImage(fh.file());
	    	a = new NSArray(s, i);
    	} else a = new NSArray(s); 
		UIActivityViewController controller = new UIActivityViewController(a, null);
		keyWindow.getRootViewController().presentViewController(controller, true, null);
}
Запуск LibGDX игры на iOS — Прочие движки — DevTribe: инди-игры, разработка, сообщество

UIActivityViewController - та самая вьюшка, через которую делается шаринг. В конструктор подаётся массив объектов класса NSObject. В частности, NSString и UIImage - текст и картинка, потомки класса NSObject.
По непонятным мне причинам добавление объекта в массив у меня не работает.

java
NSArray a = new NSArray(s);
a.add(i);

Возможные ошибки

Requested but did not find extension point with identifier Xcode.DVTFoundation.DevicePlatformMapping

Эта ошибка возникла у меня после эпловского обновления xcode. Решил проблему довольно просто - закрыл Eclipse, открыл xcode и принял новое соглашение пользования.
--

Could not open url
error code 0xffffffd5: Unknown ext audio error
Error opening music file

У некоторых возникают проблемы с аудио файлами. Решение варьируется от случая к случаю.
Кому-то достаточно в robovm.xml указать папку с аудио отдельно.

    <resource>
      <directory>../android/assets/sounds</directory>
      <includes>
        <include>**</include>
      </includes>
      <skipPngCrush>true</skipPngCrush>
    </resource>

А кому-то приходится менять формат аудио. Документация говорит, что LibGDX поддерживает wav, mp3 и ogg. В моём случае сработал caf формат.

Смотрите также:


Комментарии



Круто, вот только нет у меня мака для сборки приложения для iOS. Можно как-нибудь без этого?

Решение варьируется от случая к случаю.
Кому-то достаточно в robovm.xml указать папку с аудио отдельно.
...
А кому-то приходится менять формат аудио. Документация говорит, что LibGDX поддерживает wav, mp3 и ogg. В моём случае сработал caf формат.

Достаточно понять, что в ошибке говорится

error code 0xffffffd5: Unknown ext audio error

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

alexprey:

нет у меня мака

Можно на эмуляторе, но с эмуляцией тоже придется попариться. Процессор должен быть интеловский и соответствовать современной яблочной ОС. Виртуальную машину надо поставить, установленный образ найти. Или просто установщик системы и ставить самостоятельно.
alexprey:

Достаточно понять, что в ошибке говорится

В ошибке говорится, что не может распознать формат, а по факту - иногда не видит файл.

SomeFire:

Можно на эмуляторе, но с эмуляцией тоже придется попариться. Процессор должен быть интеловский и соответствовать современной яблочной ОС. Виртуальную машину надо поставить, установленный образ найти. Или просто установщик системы и ставить самостоятельно.

да извращался я с виртуалкой. Думал, что можно совсем как-нибудь без этого

alexprey, можно попросить меня например :)
и образ сделать заодно :)

LibGDX позволяет создавать на Java ещё более кросплатформенные приложения, но просто сделать только ПК версию.

Хорошее предложение!)

http://www.gamefromscratch.com/page/LibGDX-Tutorial-series.aspx
тут отличный туториал, как сделать игру с libgdx на разных устройствах

Справка