diff --git a/2016-11-19_2016-october-recap.png b/2016-11-19_2016-october-recap.png new file mode 100644 index 0000000..476b1b9 Binary files /dev/null and b/2016-11-19_2016-october-recap.png differ diff --git a/2016-october-recap-ru.html b/2016-october-recap-ru.html new file mode 100644 index 0000000..7c4ed14 --- /dev/null +++ b/2016-october-recap-ru.html @@ -0,0 +1,158 @@ + + + + + + + Октябрь 2016 кратко + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+

Октябрь 2016 кратко

+
+ +
Сб 19 Ноябрь 2016 + en + +

October recap

+

Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.

+

Первая попытка собрать OSG.

+

Не имея опыта разработки под Android, мы взяли последнюю версию Android Studio и начали проходить самоучители для начинающих. +Java далась легко. Всё работало из коробки. Затем наступил черёд C++ и проблем.

+

CMake. Android Studio для работы с C++ использует собственную версию CMake, которая конфликтует с системной. Для нас это было явным сигналом о необходимости подготовить отдельное окружение разработки специально под Android.

+

KVM. Мы установили Ubuntu на VirtualBox. Всё шло замечательно до того момента, пока мы не запустили эмулятор Android. Оказалось, что VirtualBox не может запустить эмулятор, т.к. виртуальная машина не предоставляет виртуализацию внутри уже виртуализированного окружения.

+

Chroot для Android. Вспомнив о положительном опыте работы с chroot для сборки OGS Editor, мы решили поместить окружение разработки Android в chroot. После небольших настроек мы сумели запустить эмулятор Android и собрать проект C++.

+

OSG. К этому моменту мы считали, что собрать OSG не составит труда, но не тут-то было. Всё, что мы получили, - это падение. +Предположив, что мы ошиблись где-то при первой сборке, мы решили пересобрать OSG ещё раз. И снова получили ту же ошибку. +Поиск решения проблемы не дал результатов. +Никто не помог нам в списке рассылок OSG.

+

Мы были в отчаянии.

+

Поиск альтернатив OSG.

+

Раз сообщество OSG нам не помогло, мы решили поискать альтернативный открытый проект, который мог решить наши задачи на Android (и, возможно, на других платформах).

+

Такой проект мы нашли: BabylonHX. Домашняя страница выглядела замечательно: она отображала WebGL в фоне! +Промелькнула мысль, что мы наконец нашли алмаз. К сожалению, пример на домашней странице просто не работал.

+

Думаем, вы понимаете наши чувства на тот момент.

+

Успех в сборке OSG.

+

Мы осознали, что никто за нас не запустит OSG на Android. Нужно было сделать это самостоятельно.

+

Потеряв доверие к очень короткой документации OSG 3.4 по сборке для Android, мы решили использовать первоначальную документацию OSG 3.0. +В ходе следования ей мы наткнулись на мёртвую ссылку, которая должна была содержать зависимости. +Поиск альтернативной ссылки вывел нас на самоучитель 2013 года по сборке OSG 3.0 для Android.

+

После прохождения самоучителя мы наконец смогли запустить OSG под Android! +Тем не менее, был нюанс: используемые в самоучителе версии OSG и средств разработки Android были древними. +В течение нескольких дней мы постепенно довели версии OSG и средств разработки Android до последних.

+

В ходе этого обновления мы узнали о двух вещах, помешавших нам запустить OSG с первого раза:

+
    +
  • Изменение заголовков Android API в NDK r12
  • +
  • OSG работает под Android лишь в виде статической библиотеки
  • +
+

На этом мы заканчиваем описание того, как мы потратили месяц на сборку OSG под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.

+

Category: News + +

+ + + +
+
+ + + + + +
+ + + + \ No newline at end of file diff --git a/2016-october-recap.html b/2016-october-recap.html new file mode 100644 index 0000000..7018851 --- /dev/null +++ b/2016-october-recap.html @@ -0,0 +1,157 @@ + + + + + + + October 2016 recap + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+

October 2016 recap

+
+ +
Сб 19 Ноябрь 2016 + ru + +

October recap

+

This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.

+

First attempt to build OSG.

+

Having no prior knowledge of Android development, we grabbed the latest Android Studio and started doing beginner tutorials. +We passed Java part pretty fast. Everything worked out of the box. Then came C++ part and related problems.

+

CMake. To work with C++, Android Studio uses custom CMake, which conflicts with the system one. This was a clear indication that we had to set up a separate development environment specifically for Android.

+

KVM. We got Ubuntu under VirtualBox installed. All went fine until we tried to use Android Emulator. Turned out, VirtualBox could not run Android Emulator, because a virtual machine cannot provide kernel virtualization inside already virtualized environment.

+

Chroot for Android. Since we had a successful experience with chroot to build OGS Editor before, we decided to place Android development environment into chroot. With minor tweaking, we could finally run Android Emulator and build C++ project.

+

OSG. Building OSG seemed like a piece of cake at the time. However, all we got was a crash. Thinking that we got it wrong the first time, we tried to rebuild OSG once again. And the same crash again. +Searching for the problem did not reveal any hint. +Nobody helped us at the OSG mailing list.

+

We were in despair.

+

The search for OSG alternatives.

+

Since OSG community did not help us, we decided to search for an alternative open source project to fit our Android needs (and may be more).

+

And we found it: BabylonHX. The home page looked awesome: it rendered WebGL in the background! +We thought we finally found the gem we were looking for. However, the example on the home page simply did not work.

+

You can probably understand our feelings at the time.

+

The success in building OSG.

+

We realized nobody would make OSG work under Android for us. We had to do it ourselves.

+

Since OSG 3.4 document on building for Android was very short, we no longer trusted it and headed to original OSG 3.0 document. +While following it, we faced a dead link to third party dependencies. +The search for an alternative download link lead us to a 2013 tutorial on building OSG 3.0 for Android.

+

After following the tutorial, we finally got OSG to run under Android! +But there was a nuance: both OSG and Android tools used in the tutorial were ancient. +In a few days, we gradually updated both OSG and Android tools to their latest versions.

+

During the update process, we learned two things that prevented us from having OSG to work in the first place:

+
    +
  • Android API headers changed in NDK r12
  • +
  • OSG only works as a static library under Android
  • +
+

That's it for describing how we spent the month building OSG for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.

+

Category: News + +

+ + + +
+
+ + + + + +
+ + + + \ No newline at end of file diff --git a/archives.html b/archives.html index 99bceaf..8fe8933 100644 --- a/archives.html +++ b/archives.html @@ -97,6 +97,10 @@ Чт 15 Декабрь 2016 November 2016 recap + + Сб 19 Ноябрь 2016 + October 2016 recap + diff --git a/author/opensource-game-studio2.html b/author/opensource-game-studio2.html index b0c6bae..5c4d226 100644 --- a/author/opensource-game-studio2.html +++ b/author/opensource-game-studio2.html @@ -83,6 +83,26 @@
+ + + +
+

October 2016 recap

+
Сб 19 Ноябрь 2016 + ru + +

October recap

+

This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.

+

First attempt to build OSG.

+

Having no prior knowledge of Android development, we grabbed the latest Android Studio and started ...

Category: News + +

+ + + Read More +
+
+
Page 2 of 2
diff --git a/category/news2.html b/category/news2.html index 75d4481..2fe5ea9 100644 --- a/category/news2.html +++ b/category/news2.html @@ -83,6 +83,26 @@
+ + + +
+

October 2016 recap

+
Сб 19 Ноябрь 2016 + ru + +

October recap

+

This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.

+

First attempt to build OSG.

+

Having no prior knowledge of Android development, we grabbed the latest Android Studio and started ...

Category: News + +

+ + + Read More +
+
+
Page 2 of 2
diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml index a58de65..35343a6 100644 --- a/feeds/all.atom.xml +++ b/feeds/all.atom.xml @@ -509,4 +509,65 @@ The easiest way to achieve it was to use C API, because C ABI rules are much sim </ul> <p>Модули Sound и UIQt на текущий момент статически линкуются в MJIN, тогда как модуль Android линкуется динамически из-за ограничений JNI.</p> <p>В следующем году мы изменим структуру MJIN так, чтобы её можно было легче собрать под разные платформы.</p> -<p>На этом мы заканчиваем статью о начале разделения библиотеки MJIN на модули.</p> \ No newline at end of file +<p>На этом мы заканчиваем статью о начале разделения библиотеки MJIN на модули.</p>October 2016 recap2016-11-19T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2016-11-19:2016-october-recap.html<p><img alt="October recap" src="http://opengamestudio.org/2016-11-19_2016-october-recap.png" /></p> +<p>This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.</p> +<p><strong>First attempt to build OSG.</strong></p> +<p>Having no prior knowledge of Android development, we grabbed the latest Android Studio and started doing beginner tutorials. +We passed Java part pretty fast. Everything worked out of the box. Then came C++ part and related problems.</p> +<p><strong>CMake. </strong>To work with C++, Android Studio uses custom CMake, which conflicts with the system one. This was a clear indication that we had to set up a separate development environment specifically for Android.</p> +<p><strong>KVM. </strong>We got Ubuntu under VirtualBox installed. All went fine until we tried to use Android Emulator. Turned out, VirtualBox could not run Android Emulator, because a virtual machine cannot provide kernel virtualization inside already virtualized environment.</p> +<p><strong>Chroot for Android. </strong>Since we had a successful experience with chroot to build OGS Editor before, we decided to place Android development environment into chroot. With minor tweaking, we could finally run Android Emulator and build C++ project.</p> +<p><strong>OSG. </strong>Building OSG seemed like a piece of cake at the time. However, all we got was a crash. Thinking that we got it wrong the first time, we tried to rebuild OSG once again. And the same crash again. +Searching for the problem did not reveal any hint. +Nobody helped us at the OSG mailing list.</p> +<p>We were in despair.</p> +<p><strong>The search for OSG alternatives.</strong></p> +<p>Since OSG community did not help us, we decided to search for an alternative open source project to fit our Android needs (and may be more).</p> +<p>And we found it: <a href="http://babylonhx.gamestudiohx.com/">BabylonHX</a>. The home page looked awesome: it rendered WebGL in the background! +We thought we finally found the gem we were looking for. However, the example on the home page simply did not work.</p> +<p>You can probably understand our feelings at the time.</p> +<p><strong>The success in building OSG.</strong></p> +<p>We realized nobody would make OSG work under Android for us. We had to do it ourselves.</p> +<p>Since <a href="http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/178-building-openscenegraph-for-android-3-4">OSG 3.4 document</a> on building for Android was very short, we no longer trusted it and headed to <a href="http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/44-building-openscenegraph-for-android-3-0-3-0-1">original OSG 3.0 document</a>. +While following it, we faced a dead link to third party dependencies. +The search for an alternative download link lead us to a <a href="https://xinyustudio.wordpress.com/2013/09/24/install-osg-for-android-on-ubuntu-13-04-step-by-step-tutorials/">2013 tutorial</a> on building OSG 3.0 for Android.</p> +<p>After following the tutorial, we finally got OSG to run under Android! +But there was a nuance: both OSG and Android tools used in the tutorial were ancient. +In a few days, we gradually updated both OSG and Android tools to their latest versions.</p> +<p>During the update process, we learned two things that prevented us from having OSG to work in the first place:</p> +<ul> +<li>Android API headers changed in NDK r12</li> +<li>OSG only works as a static library under Android</li> +</ul> +<p>That's it for describing how we spent the month building OSG for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.</p>Октябрь 2016 кратко2016-11-19T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2016-11-19:2016-october-recap-ru.html<p><img alt="October recap" src="http://opengamestudio.org/2016-11-19_2016-october-recap.png" /></p> +<p>Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.</p> +<p><strong>Первая попытка собрать OSG.</strong></p> +<p>Не имея опыта разработки под Android, мы взяли последнюю версию Android Studio и начали проходить самоучители для начинающих. +Java далась легко. Всё работало из коробки. Затем наступил черёд C++ и проблем.</p> +<p><strong>CMake. </strong>Android Studio для работы с C++ использует собственную версию CMake, которая конфликтует с системной. Для нас это было явным сигналом о необходимости подготовить отдельное окружение разработки специально под Android.</p> +<p><strong>KVM. </strong>Мы установили Ubuntu на VirtualBox. Всё шло замечательно до того момента, пока мы не запустили эмулятор Android. Оказалось, что VirtualBox не может запустить эмулятор, т.к. виртуальная машина не предоставляет виртуализацию внутри уже виртуализированного окружения.</p> +<p><strong>Chroot для Android. </strong>Вспомнив о положительном опыте работы с chroot для сборки OGS Editor, мы решили поместить окружение разработки Android в chroot. После небольших настроек мы сумели запустить эмулятор Android и собрать проект C++.</p> +<p><strong>OSG. </strong>К этому моменту мы считали, что собрать OSG не составит труда, но не тут-то было. Всё, что мы получили, - это падение. +Предположив, что мы ошиблись где-то при первой сборке, мы решили пересобрать OSG ещё раз. И снова получили ту же ошибку. +Поиск решения проблемы не дал результатов. +Никто не помог нам в списке рассылок OSG.</p> +<p>Мы были в отчаянии.</p> +<p><strong>Поиск альтернатив OSG.</strong></p> +<p>Раз сообщество OSG нам не помогло, мы решили поискать альтернативный открытый проект, который мог решить наши задачи на Android (и, возможно, на других платформах).</p> +<p>Такой проект мы нашли: <a href="http://babylonhx.gamestudiohx.com/">BabylonHX</a>. Домашняя страница выглядела замечательно: она отображала WebGL в фоне! +Промелькнула мысль, что мы наконец нашли алмаз. К сожалению, пример на домашней странице просто не работал.</p> +<p>Думаем, вы понимаете наши чувства на тот момент.</p> +<p><strong>Успех в сборке OSG.</strong></p> +<p>Мы осознали, что никто за нас не запустит OSG на Android. Нужно было сделать это самостоятельно.</p> +<p>Потеряв доверие к очень короткой <a href="http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/178-building-openscenegraph-for-android-3-4">документации OSG 3.4</a> по сборке для Android, мы решили использовать <a href="http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/44-building-openscenegraph-for-android-3-0-3-0-1">первоначальную документацию OSG 3.0</a>. +В ходе следования ей мы наткнулись на мёртвую ссылку, которая должна была содержать зависимости. +Поиск альтернативной ссылки вывел нас на <a href="https://xinyustudio.wordpress.com/2013/09/24/install-osg-for-android-on-ubuntu-13-04-step-by-step-tutorials/">самоучитель 2013 года</a> по сборке OSG 3.0 для Android.</p> +<p>После прохождения самоучителя мы наконец смогли запустить OSG под Android! +Тем не менее, был нюанс: используемые в самоучителе версии OSG и средств разработки Android были древними. +В течение нескольких дней мы постепенно довели версии OSG и средств разработки Android до последних.</p> +<p>В ходе этого обновления мы узнали о двух вещах, помешавших нам запустить OSG с первого раза:</p> +<ul> +<li>Изменение заголовков Android API в NDK r12</li> +<li>OSG работает под Android лишь в виде статической библиотеки</li> +</ul> +<p>На этом мы заканчиваем описание того, как мы потратили месяц на сборку OSG под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.</p> \ No newline at end of file diff --git a/feeds/news.atom.xml b/feeds/news.atom.xml index 154d839..be54a72 100644 --- a/feeds/news.atom.xml +++ b/feeds/news.atom.xml @@ -255,4 +255,34 @@ The easiest way to achieve it was to use C API, because C ABI rules are much sim </ul> <p>Sound and UIQt modules are currently statically linked into MJIN library, while Android module is already a separate library due to JNI requirements.</p> <p>In the coming year, we're going to significantly restructure MJIN so that it suits as many platforms as possible.</p> -<p>That's it for describing the start of MJIN library separation into modules.</p> \ No newline at end of file +<p>That's it for describing the start of MJIN library separation into modules.</p>October 2016 recap2016-11-19T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2016-11-19:2016-october-recap.html<p><img alt="October recap" src="http://opengamestudio.org/2016-11-19_2016-october-recap.png" /></p> +<p>This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.</p> +<p><strong>First attempt to build OSG.</strong></p> +<p>Having no prior knowledge of Android development, we grabbed the latest Android Studio and started doing beginner tutorials. +We passed Java part pretty fast. Everything worked out of the box. Then came C++ part and related problems.</p> +<p><strong>CMake. </strong>To work with C++, Android Studio uses custom CMake, which conflicts with the system one. This was a clear indication that we had to set up a separate development environment specifically for Android.</p> +<p><strong>KVM. </strong>We got Ubuntu under VirtualBox installed. All went fine until we tried to use Android Emulator. Turned out, VirtualBox could not run Android Emulator, because a virtual machine cannot provide kernel virtualization inside already virtualized environment.</p> +<p><strong>Chroot for Android. </strong>Since we had a successful experience with chroot to build OGS Editor before, we decided to place Android development environment into chroot. With minor tweaking, we could finally run Android Emulator and build C++ project.</p> +<p><strong>OSG. </strong>Building OSG seemed like a piece of cake at the time. However, all we got was a crash. Thinking that we got it wrong the first time, we tried to rebuild OSG once again. And the same crash again. +Searching for the problem did not reveal any hint. +Nobody helped us at the OSG mailing list.</p> +<p>We were in despair.</p> +<p><strong>The search for OSG alternatives.</strong></p> +<p>Since OSG community did not help us, we decided to search for an alternative open source project to fit our Android needs (and may be more).</p> +<p>And we found it: <a href="http://babylonhx.gamestudiohx.com/">BabylonHX</a>. The home page looked awesome: it rendered WebGL in the background! +We thought we finally found the gem we were looking for. However, the example on the home page simply did not work.</p> +<p>You can probably understand our feelings at the time.</p> +<p><strong>The success in building OSG.</strong></p> +<p>We realized nobody would make OSG work under Android for us. We had to do it ourselves.</p> +<p>Since <a href="http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/178-building-openscenegraph-for-android-3-4">OSG 3.4 document</a> on building for Android was very short, we no longer trusted it and headed to <a href="http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/44-building-openscenegraph-for-android-3-0-3-0-1">original OSG 3.0 document</a>. +While following it, we faced a dead link to third party dependencies. +The search for an alternative download link lead us to a <a href="https://xinyustudio.wordpress.com/2013/09/24/install-osg-for-android-on-ubuntu-13-04-step-by-step-tutorials/">2013 tutorial</a> on building OSG 3.0 for Android.</p> +<p>After following the tutorial, we finally got OSG to run under Android! +But there was a nuance: both OSG and Android tools used in the tutorial were ancient. +In a few days, we gradually updated both OSG and Android tools to their latest versions.</p> +<p>During the update process, we learned two things that prevented us from having OSG to work in the first place:</p> +<ul> +<li>Android API headers changed in NDK r12</li> +<li>OSG only works as a static library under Android</li> +</ul> +<p>That's it for describing how we spent the month building OSG for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.</p> \ No newline at end of file diff --git a/index2.html b/index2.html index d84f6ba..5301da0 100644 --- a/index2.html +++ b/index2.html @@ -83,6 +83,26 @@
+ + + +
+

October 2016 recap

+
Сб 19 Ноябрь 2016 + ru + +

October recap

+

This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.

+

First attempt to build OSG.

+

Having no prior knowledge of Android development, we grabbed the latest Android Studio and started ...

Category: News + +

+ + + Read More +
+
+
Page 2 of 2
diff --git a/pelican/content/articles/2016-11-19_2016-october-recap-ru.md b/pelican/content/articles/2016-11-19_2016-october-recap-ru.md new file mode 100644 index 0000000..6d0619f --- /dev/null +++ b/pelican/content/articles/2016-11-19_2016-october-recap-ru.md @@ -0,0 +1,61 @@ +Title: Октябрь 2016 кратко +Date: 2016-11-19 00:00 +Category: News +Slug: 2016-october-recap +Lang: ru + +![October recap][screenshot] + + +Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG. + +**Первая попытка собрать OSG.** + +Не имея опыта разработки под Android, мы взяли последнюю версию Android Studio и начали проходить самоучители для начинающих. +Java далась легко. Всё работало из коробки. Затем наступил черёд C++ и проблем. + +**CMake. **Android Studio для работы с C++ использует собственную версию CMake, которая конфликтует с системной. Для нас это было явным сигналом о необходимости подготовить отдельное окружение разработки специально под Android. + +**KVM. **Мы установили Ubuntu на VirtualBox. Всё шло замечательно до того момента, пока мы не запустили эмулятор Android. Оказалось, что VirtualBox не может запустить эмулятор, т.к. виртуальная машина не предоставляет виртуализацию внутри уже виртуализированного окружения. + +**Chroot для Android. **Вспомнив о положительном опыте работы с chroot для сборки OGS Editor, мы решили поместить окружение разработки Android в chroot. После небольших настроек мы сумели запустить эмулятор Android и собрать проект C++. + +**OSG. **К этому моменту мы считали, что собрать OSG не составит труда, но не тут-то было. Всё, что мы получили, - это падение. +Предположив, что мы ошиблись где-то при первой сборке, мы решили пересобрать OSG ещё раз. И снова получили ту же ошибку. +Поиск решения проблемы не дал результатов. +Никто не помог нам в списке рассылок OSG. + +Мы были в отчаянии. + +**Поиск альтернатив OSG.** + +Раз сообщество OSG нам не помогло, мы решили поискать альтернативный открытый проект, который мог решить наши задачи на Android (и, возможно, на других платформах). + +Такой проект мы нашли: [BabylonHX](http://babylonhx.gamestudiohx.com/). Домашняя страница выглядела замечательно: она отображала WebGL в фоне! +Промелькнула мысль, что мы наконец нашли алмаз. К сожалению, пример на домашней странице просто не работал. + +Думаем, вы понимаете наши чувства на тот момент. + +**Успех в сборке OSG.** + +Мы осознали, что никто за нас не запустит OSG на Android. Нужно было сделать это самостоятельно. + +Потеряв доверие к очень короткой [документации OSG 3.4](http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/178-building-openscenegraph-for-android-3-4) по сборке для Android, мы решили использовать [первоначальную документацию OSG 3.0](http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/44-building-openscenegraph-for-android-3-0-3-0-1). +В ходе следования ей мы наткнулись на мёртвую ссылку, которая должна была содержать зависимости. +Поиск альтернативной ссылки вывел нас на [самоучитель 2013 года](https://xinyustudio.wordpress.com/2013/09/24/install-osg-for-android-on-ubuntu-13-04-step-by-step-tutorials/) по сборке OSG 3.0 для Android. + +После прохождения самоучителя мы наконец смогли запустить OSG под Android! +Тем не менее, был нюанс: используемые в самоучителе версии OSG и средств разработки Android были древними. +В течение нескольких дней мы постепенно довели версии OSG и средств разработки Android до последних. + +В ходе этого обновления мы узнали о двух вещах, помешавших нам запустить OSG с первого раза: + +* Изменение заголовков Android API в NDK r12 +* OSG работает под Android лишь в виде статической библиотеки + + + +На этом мы заканчиваем описание того, как мы потратили месяц на сборку OSG под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG. + +[screenshot]: {attach}/images/2016-11-19_2016-october-recap.png + diff --git a/pelican/content/articles/2016-11-19_2016-october-recap.md b/pelican/content/articles/2016-11-19_2016-october-recap.md new file mode 100644 index 0000000..bd832ed --- /dev/null +++ b/pelican/content/articles/2016-11-19_2016-october-recap.md @@ -0,0 +1,60 @@ +Title: October 2016 recap +Date: 2016-11-19 00:00 +Category: News +Slug: 2016-october-recap +Lang: en + +![October recap][screenshot] + + +This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG. + +**First attempt to build OSG.** + +Having no prior knowledge of Android development, we grabbed the latest Android Studio and started doing beginner tutorials. +We passed Java part pretty fast. Everything worked out of the box. Then came C++ part and related problems. + +**CMake. **To work with C++, Android Studio uses custom CMake, which conflicts with the system one. This was a clear indication that we had to set up a separate development environment specifically for Android. + +**KVM. **We got Ubuntu under VirtualBox installed. All went fine until we tried to use Android Emulator. Turned out, VirtualBox could not run Android Emulator, because a virtual machine cannot provide kernel virtualization inside already virtualized environment. + +**Chroot for Android. **Since we had a successful experience with chroot to build OGS Editor before, we decided to place Android development environment into chroot. With minor tweaking, we could finally run Android Emulator and build C++ project. + +**OSG. **Building OSG seemed like a piece of cake at the time. However, all we got was a crash. Thinking that we got it wrong the first time, we tried to rebuild OSG once again. And the same crash again. +Searching for the problem did not reveal any hint. +Nobody helped us at the OSG mailing list. + +We were in despair. + +**The search for OSG alternatives.** + +Since OSG community did not help us, we decided to search for an alternative open source project to fit our Android needs (and may be more). + +And we found it: [BabylonHX](http://babylonhx.gamestudiohx.com/). The home page looked awesome: it rendered WebGL in the background! +We thought we finally found the gem we were looking for. However, the example on the home page simply did not work. + +You can probably understand our feelings at the time. + +**The success in building OSG.** + +We realized nobody would make OSG work under Android for us. We had to do it ourselves. + +Since [OSG 3.4 document](http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/178-building-openscenegraph-for-android-3-4) on building for Android was very short, we no longer trusted it and headed to [original OSG 3.0 document](http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/44-building-openscenegraph-for-android-3-0-3-0-1). +While following it, we faced a dead link to third party dependencies. +The search for an alternative download link lead us to a [2013 tutorial](https://xinyustudio.wordpress.com/2013/09/24/install-osg-for-android-on-ubuntu-13-04-step-by-step-tutorials/) on building OSG 3.0 for Android. + +After following the tutorial, we finally got OSG to run under Android! +But there was a nuance: both OSG and Android tools used in the tutorial were ancient. +In a few days, we gradually updated both OSG and Android tools to their latest versions. + +During the update process, we learned two things that prevented us from having OSG to work in the first place: + +* Android API headers changed in NDK r12 +* OSG only works as a static library under Android + + + +That's it for describing how we spent the month building OSG for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG. + +[screenshot]: {attach}/images/2016-11-19_2016-october-recap.png + diff --git a/pelican/content/images/2016-11-19_2016-october-recap.png b/pelican/content/images/2016-11-19_2016-october-recap.png new file mode 100644 index 0000000..476b1b9 Binary files /dev/null and b/pelican/content/images/2016-11-19_2016-october-recap.png differ