вторник, 17 апреля 2012 г.

Заметки AndEngine GLES1

Прежде чем переходить на AndEngine GLES2 версию, решил поработать с AndEngine GLES1 версией, здесь буду писать небольшие заметки.

17.04.2012
При запуске AndEngine Examples, любой пример использующий текст на эмуляторе выдавал "unfortunately...". Беседа с гугл поисковиком дала ссылку на официальный форум, где ,вроде бы, дан ответ по решению вопроса, связанный с упущением создателя движка. Необходимо заменить в классе andengine.ui.activity.BaseGameActivity заменить следующий метод:
public FontManager getFontManager() 
{
  // вместо return this.getFontManager();
  return this.mEngine.getFontManager();
}

Попробовал, но приложение по прежнему не захотелось запускаться.
Снова гугл, снова поиск и решение найдено! Необходимо отключить VertexBufferObjects в настройках движка: engineOptions.getRenderOptions().disableExtensionVertexBufferObjects();

пятница, 13 апреля 2012 г.

Часть 4. Запуск AndEngine GLES2 examples

Перед тем как мне  всё таки удалось запустить эмулятор android с GPU пришлось хорошенько пропариться, вместе с google-поисковиком и большим желанием тестировать игры на новом движке AndEngine GLES2.
( Часть1. Часть2. Часть3. )

Запуск AndEngine GLES2 examples на эмуляторе android используя Intellij IDEA 11.1:
  1. Установите самую последнюю версию эмулятора API-Level 15.
  2. Обновите драйвера видеокарты.
  3. Установите Git. Запустите git-bash.bat (или git-cmd.bat) и клонируйте  по списку http://www.andengine.org/forums/announces/andengine-gles2-pre-release-on-december-23rd-t6097.html
  4. Создайте новый Android проект в IDEA и перенесите src папки из скачанных git’ом в проект, а где нужно и lib и res и др.
  5. В настройках IDEA переставляем компилятор на Эклипсовский:                   File->Settings->Java Compiler->Use compiler[ Eclipse] 
  6. Запускаем созданный эмулятор Android 4.0.3 (с настройкой GPU=YES)  
  7. В настройках android включаем “Force GPU rendering” и “Show CPU usage”(по желанию): 
  8.  Компилируем проект с запуском на эмуляторе. Тестируем и изучаем библиотеки AndEngine GLES2 без использования девайсов. 
  9. Всем спасибо за внимание. У кого запустилось, отпишитесь характеристиками компьютеров.

Ссылка на ИСХОДНИК


Часть 3. Заключение. (2012-04-12 поздней ночью…)


Откладывать деньги на Android устройство пока не особо получается, да и отлаживать под разные разрешения нужно, еще есть много других плюсов разработки на эмуляторе. На данный момент веду разработку игрового проекта на движке AndEngine. Изучая материалы GLES1 версии (что сейчас довольно трудно, т.к. многое из исходников глючит), почитав официальный форум http://www.andengine.org/forums/announces/andengine-gles2-pre-release-on-december-23rd-t6097.html и пообщавшись с опытными людьми (DrDerico) принял решение переходить на GLES 2 версию. Но не тут то было, ведь на тот момент google android  эмулятор не поддерживал GLES2, хотя были и драйвера для Windows конвертирующие GLES2 в OpenGL.
Каждый день запуская SDK Manager хотелось увидеть долгожданную версию эмулятора. И вот наконец он вышел (см. Часть1). Запустить его в первые дни не удалось, были попытки запустить  другой эмулятор (см. Часть2), которые увенчались успехом, но не для AndEngine GLES2.
После тяжёлых двух дней заваривания с эмуляторами, уже ночью решил проверить обновление google эмулятора и о чудо оно появилось:
 
Перед тем как запустить его:
  1. Обновите драйвера видео-карты, на ноутбуке без обновления, эмулятор запускался только с черным дисплеем без признаков жизни.
  2. В процессе тестирования, эмулятор мог запуститься с чёрным дисплеем, заблокироваться и не реагировать на нажатия, запуститься в режиме offline, выдавать ошибки.  Лечение – перезапуск эмулятора J, или компьютера.
Он запустился(!) и запустился простейший пример AndEngine GLES2(!), по уроку http://www.andengine.org/forums/tutorials/updated-getting-started-with-andengine-t4858.html 
Вот только на рабочем компьютере к сожалению он отказался работать, либо выкидывая ошибку, либо показывая красивый black screen.

Часть 2. Android x86! (2012-04-12)


Не отчаявшись, вбивая в google новые строчки поиска, выбилась ссылка на сайт http://www.android-x86.org/ . Оказывается, группе разработчиков надоело, что гугл мало заботится о скорости стандартных эмуляторов и выпустили свой эмулятор.
           
При установке эмулятора на VirtualBox, стоял выбор межу несколькими образами эмуляторов на тот момент:
  • android-x86-4.0-RC1-amd_brazos.iso
  • android-x86-4.0-RC1-asus_laptop.iso
  • android-x86-4.0-RC1-eeepc.iso
  • android-x86-4.0-RC1-s103t.iso
  • android-x86-4.0-RC1-tegav2.iso

Различаются они, наверное, в типе эмулируемой машины. На PC1(см. таблицу 1) заработал только android-x86-4.0-RC1-eeepc.iso, остальные либо не запускались вообще, либо не хотели форматироваться в ext3.

После тяжких попыток получения Ethernet соединения между компьютером и эмулятором гугл направил на статью http://habrahabr.ru/post/119931/ .  Прочитав очень внимательно хабр статью еще раз, берём на вооружение следующий танец с бубном, в эмуляторе нажимаем ALT+F1 и вводим:
# netcfg
  # netcfg eth1 down
  # netcfg eth1 dhcp
  # netcfg eth1 up
  # netcfg //на этом шаге запоминаем eth ip номер; вместо eth1 может быть eth0, как у меня, в зависимости от того, что выдаёт netcfg.

Выходим  ALT+F7 в визуальный режим. Командуем «adb connect (ваш eth ip номер)»  в консоли windows и опля, есть контакт, вывелась надпись connect to (Ваш IP)).
Теперь компилируем простейший AndEngine GLES2 проект  в IDEA, получаем на выходе apk файл. Инсталлируем в наш эмулятор через adb, запускаем… разочаровываемся:

Оказывается на данный момент android 4.0 x-86 не поддерживаем GLES2 эмуляцию. Я опечалился еще больше и решил ждать исправления ошибок эмулятора от google или выхода обновлений android x86.

Часть 1. Новость (2012-04-11)

Узнав новость (http://android-developers.blogspot.com/2012/04/faster-emulator-with-better-hardware.html ), что эмулятор android от google теперь поддерживает GPU ускорение (GLES2), сразу же попробовал на домашнем ПК, ноутбуке и рабочем ПК. 
К сожалению, эмулятор запускался с чёрным экраном и ничего не делал, при запуске раз 5-ый, повисев минут 20 выдал системную ошибку на домашнем компьютере.

 Таблица 1. Характеристики компьютеров.

Домашний PC1
На работе PC2
Ноутбук PC3
ОС
Windows 7 Prof
XP SP 3 Prof
Windows 7 Prof
Процессор
Intel Core 2 Duo E4300
Athlon 64 X2 Dual Core 3800+
Intel Core i3 350M
Видео
Radeon HD 2900Pro
Nvidia geforce 6150(встроен)
Radeon HD 4670
Intel HD Graphics
ОЗУ
DDR2 dual 2048
DDR2 2048
DDR3 2048