diff --git a/2018-06-27-example-driven-development.png b/2018-06-27-example-driven-development.png new file mode 100644 index 0000000..ac66148 Binary files /dev/null and b/2018-06-27-example-driven-development.png differ diff --git a/README.md b/README.md index 66dadc4..5e00ef1 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,9 @@ To publish new content: pelican -s publishconf.py ``` -* upload it to GitHub with the following command: +* upload it to GitHub with the following commands: ``` + git add . git push ``` diff --git a/archives.html b/archives.html index 5ef9b28..f294a8e 100644 --- a/archives.html +++ b/archives.html @@ -49,6 +49,10 @@ + + + + diff --git a/author/opensource-game-studio.html b/author/opensource-game-studio.html index bf58afb..2ca9a26 100644 --- a/author/opensource-game-studio.html +++ b/author/opensource-game-studio.html @@ -47,6 +47,67 @@ +
+

Example-driven development

+
Ср 27 Июнь 2018 + ru + +

Screenshot

+

This article explains how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

+

The third OpenSceneGraph cross-platform example

+

The third OpenSceneGraph cross-platform example explains how to implement +remote debugging across platforms. This example is less about +OpenSceneGraph and more about different platforms.

+

Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the +first idea was to embed HTTP server into an application and let HTTP clients +interact with the server. However, serving HTTP across all platforms is +complicated:

+ +

That's why we decided to create a mediator between debugged application and UI. +Debug broker, a small Node.js application, became that mediator. +Debug broker uses no external dependencies, so it's easy to run virtually +anywhere. Also, since debug broker is a server application, you can configure +it once and use it for any number of applications.

+

Both debug UI and debug broker use JavaScript +because we wanted these tools to be accessible from anywhere with no prior +installation. This decision limited us to web browser solution. Providing +any sort of desktop application would incur additional installation and +maintenance effort, which would only complicate the tools.

+

Example-driven development establishment

+

Once the third example was implemented, we realized how important and +beneficial it is to develop new features outside the main project:

+ +

When we publicly share our knowledge:

+ +

From now on, all new features like input handling, Mahjong layout loading, +resource caching, etc. are going to be first implemented as examples. +We call this example-driven development.

+

That's it for explaining how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

Category: News + +

+ + +
+ + +
+ + + + +

OpenSceneGraph cross-platform examples

Пт 20 Апрель 2018 @@ -58,35 +119,14 @@ cross-platform OpenSceneGraph examples.

By the time the first technology demonstration of OGS Mahjong 2 has been released, we've already had issue request (to explain how to load images with OpenSceneGraph on Android) hanging for some -time. We considered creating a new tutorial for -OpenSceneGraph cross-platform guide at first. However, we realized -that it's time-consuming and excessive for such a tiny topic (compared to -what an average game has) as image loading. We decided to continue sharing our -knowledge in the form of concrete examples. That's how -OpenSceneGraph cross-platform examples were born.

-

Each example:

- -

The first two examples cover the following topics:

- -

We will be adding new examples as we proceed with OGS Mahjong 2 development.

-

That's it for summarizing the work we did to produce the first two cross-platform OpenSceneGraph examples.

Category: News +time. We ...

Category: News

-
- - + Read More
- + @@ -271,25 +311,6 @@ In case you missed it, here ...

Category: - - - -

-

iOS tutorial

-
Чт 08 Июнь 2017 - ru - -

iOS tutorial

-

This article describes problems we faced during the creation of iOS tutorial in May 2017.

-

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come ...

Category: News - -

- - - Read More -
-
-
Page 1 of 4
diff --git a/author/opensource-game-studio2.html b/author/opensource-game-studio2.html index 19380c7..0c35f34 100644 --- a/author/opensource-game-studio2.html +++ b/author/opensource-game-studio2.html @@ -48,6 +48,25 @@ +
+

iOS tutorial

+
Чт 08 Июнь 2017 + ru + +

iOS tutorial

+

This article describes problems we faced during the creation of iOS tutorial in May 2017.

+

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come ...

Category: News + +

+ + + Read More +
+
+ + + +

OpenSceneGraph sample

Пт 12 Май 2017 @@ -226,27 +245,6 @@ We have conducted ...

Category:

- - - -
-

OGS Editor 0.10 and live session materials

-
Пн 03 Октябрь 2016 - ru - -

ogs-editor-0.10

-

Note: we won't release 0.10 for macOS due to technical difficulties with the build system. macOS support will be back for 0.11.

-

Category: News - -

- - - Read More -
-
-
Page 2 of 4
diff --git a/author/opensource-game-studio3.html b/author/opensource-game-studio3.html index a75c846..1654389 100644 --- a/author/opensource-game-studio3.html +++ b/author/opensource-game-studio3.html @@ -48,6 +48,27 @@ + + + + + - - - - -
Page 3 of 4
diff --git a/author/opensource-game-studio4.html b/author/opensource-game-studio4.html index 141c5c1..d7d7497 100644 --- a/author/opensource-game-studio4.html +++ b/author/opensource-game-studio4.html @@ -48,6 +48,30 @@ + + + + +

Game creation live session (part 2): 7 February 2016

Вт 02 Февраль 2016 diff --git a/category/news.html b/category/news.html index 33285a9..cc0c991 100644 --- a/category/news.html +++ b/category/news.html @@ -47,6 +47,67 @@ +
+

Example-driven development

+
Ср 27 Июнь 2018 + ru + +

Screenshot

+

This article explains how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

+

The third OpenSceneGraph cross-platform example

+

The third OpenSceneGraph cross-platform example explains how to implement +remote debugging across platforms. This example is less about +OpenSceneGraph and more about different platforms.

+

Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the +first idea was to embed HTTP server into an application and let HTTP clients +interact with the server. However, serving HTTP across all platforms is +complicated:

+
    +
  • desktops have firewalls
  • +
  • mobiles have restrictions on background processes
  • +
  • web browsers are HTTP clients by design
  • +
+

That's why we decided to create a mediator between debugged application and UI. +Debug broker, a small Node.js application, became that mediator. +Debug broker uses no external dependencies, so it's easy to run virtually +anywhere. Also, since debug broker is a server application, you can configure +it once and use it for any number of applications.

+

Both debug UI and debug broker use JavaScript +because we wanted these tools to be accessible from anywhere with no prior +installation. This decision limited us to web browser solution. Providing +any sort of desktop application would incur additional installation and +maintenance effort, which would only complicate the tools.

+

Example-driven development establishment

+

Once the third example was implemented, we realized how important and +beneficial it is to develop new features outside the main project:

+
    +
  • the main project is freed from excessive commit noise
  • +
  • a new feature is publicly shared for everyone to learn, criticize, and improve
  • +
+

When we publicly share our knowledge:

+
    +
  • we must create documentation for everyone (including ourselves later) to understand what's going on
  • +
  • we must not use hacks because that would break your trust in us
  • +
+

From now on, all new features like input handling, Mahjong layout loading, +resource caching, etc. are going to be first implemented as examples. +We call this example-driven development.

+

That's it for explaining how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

Category: News + +

+ + +
+ + +
+ + + + +

OpenSceneGraph cross-platform examples

Пт 20 Апрель 2018 @@ -58,35 +119,14 @@ cross-platform OpenSceneGraph examples.

By the time the first technology demonstration of OGS Mahjong 2 has been released, we've already had issue request (to explain how to load images with OpenSceneGraph on Android) hanging for some -time. We considered creating a new tutorial for -OpenSceneGraph cross-platform guide at first. However, we realized -that it's time-consuming and excessive for such a tiny topic (compared to -what an average game has) as image loading. We decided to continue sharing our -knowledge in the form of concrete examples. That's how -OpenSceneGraph cross-platform examples were born.

-

Each example:

-
    -
  • explains crucial code necessary to perform a specific task
  • -
  • accents platform-specific nuances
  • -
  • provides implementations to cover desktop, mobile, and web platforms
  • -
  • provides a web build to showcase results
  • -
-

The first two examples cover the following topics:

-
    -
  • Embed resource into executable: this greatly simplifies resource handling across platforms
  • -
  • Use PNG images with PNG plugins: this explains the requirements necessary to build and use PNG plugins
  • -
-

We will be adding new examples as we proceed with OGS Mahjong 2 development.

-

That's it for summarizing the work we did to produce the first two cross-platform OpenSceneGraph examples.

Category: News +time. We ...

Category: News

-
- - + Read More
- +
@@ -271,25 +311,6 @@ In case you missed it, here ...

Category: - - - -

-

iOS tutorial

-
Чт 08 Июнь 2017 - ru - -

iOS tutorial

-

This article describes problems we faced during the creation of iOS tutorial in May 2017.

-

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come ...

Category: News - -

- - - Read More -
-
-
Page 1 of 4
diff --git a/category/news2.html b/category/news2.html index 8c49dd9..55948d5 100644 --- a/category/news2.html +++ b/category/news2.html @@ -48,6 +48,25 @@ +
+

iOS tutorial

+
Чт 08 Июнь 2017 + ru + +

iOS tutorial

+

This article describes problems we faced during the creation of iOS tutorial in May 2017.

+

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come ...

Category: News + +

+ + + Read More +
+
+ + + + - - - - -
Page 2 of 4
diff --git a/category/news3.html b/category/news3.html index ba88fc9..d902168 100644 --- a/category/news3.html +++ b/category/news3.html @@ -48,6 +48,27 @@ + + + + + - - - - -
Page 3 of 4
diff --git a/category/news4.html b/category/news4.html index 89d6b6b..e120f1b 100644 --- a/category/news4.html +++ b/category/news4.html @@ -48,6 +48,30 @@ + + + + +

Game creation live session (part 2): 7 February 2016

Вт 02 Февраль 2016 diff --git a/example-driven-development-ru.html b/example-driven-development-ru.html new file mode 100644 index 0000000..495b3b7 --- /dev/null +++ b/example-driven-development-ru.html @@ -0,0 +1,174 @@ + + + + + + + Разработка через создание примеров + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+

Разработка через создание примеров

+
+ +
Ср 27 Июнь 2018 + en + +

Screenshot

+

Эта статья описывает то, как создание третьего кросс-платформенного примера +OpenSceneGraph привело нас к разработке через создание примеров.

+

Третий кросс-платформенный пример OpenSceneGraph

+

Третий кросс-платформенный пример OpenSceneGraph содержит реализацию +удалённой отладки, работающей на всех поддерживаемых платформах. +Этот пример относится не столько к OpenSceneGraph, сколько к поддержке +различных платформ.

+

Удалённое взаимодействие ныне предполагает использование HTTP(s) поверх +TCP/IP. Таким образом, первая идея реализации подразумевала встраивание сервера +HTTP в приложение, чтобы клиенты HTTP могли взаимодействовать с этим сервером. +Однако, раздача HTTP на различных платформах имеет свои сложности:

+
    +
  • на десктопах есть межсетевые экраны (firewalls)
  • +
  • на мобилках есть ограничения по работе фоновых процессов
  • +
  • веб-браузеры являются клиентами HTTP по дизайну
  • +
+

Эти ограничения подтолкнули нас к созданию посредника между отлаживаемым +приложением и пользовательским интерфейсом отладки. +Брокер отладки, небольшое приложение Node.js, стало тем самым +посредником. Брокер отладки не имеет внешних зависимостей, поэтому его легко +использовать практически везде. Благодаря тому, что брокер отладки - это +серверное приложение, его достаточно настроить лишь раз и использовать для +любого количества приложений.

+

И пользовательский интерфейс отладки, +и брокер отладки используют JavaScript, т.к. мы хотели сделать +эти инструменты максимально доступными без предварительной установки. Данное +решение привело нас к реализации инструментов именно для веб-браузеров. +Десктопное приложение потребовало бы дополнительных усилий на установку и +поддержку, что лишь усложнило бы работу с инструментами.

+

Разработка через создание примеров

+

После создания третьего примера мы осознали важность и достоинства разработки +новых функций вне основного проекта:

+
    +
  • освобождение основного проекта от шума изменений (commit noise)
  • +
  • публичное освещение новой функции приглашает всех к её изучению, критике и улучшению
  • +
+

Когда мы делимся нашими знаниями:

+
    +
  • мы обязаны создавать документацию, объясняющую происходящее (в том числе для нас самих позже)
  • +
  • мы обязаны сторониться непродуманных решений, т.к. они повредят нашей репутации
  • +
+

С этого момента все новые функции вроде обработки ввода, загрузки раскладок +Маджонга, кэширования ресурсов и т.п. мы будем сначала реализовывать в виде +примеров. Мы называем этот подход разработкой через создание примеров.

+

На этом мы заканчиваем описание того, как создание третьего +кросс-платформенного примера OpenSceneGraph привело нас к разработке через +создание примеров.

+

Category: News + +

+ + + +
+
+ + + + + +
+ + + +
+
+
+
+
+

Proudly powered by Pelican, which takes great advantage of Python.

+
+
+
+ +
\ No newline at end of file diff --git a/example-driven-development.html b/example-driven-development.html new file mode 100644 index 0000000..9c825c1 --- /dev/null +++ b/example-driven-development.html @@ -0,0 +1,169 @@ + + + + + + + Example-driven development + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+

Example-driven development

+
+ +
Ср 27 Июнь 2018 + ru + +

Screenshot

+

This article explains how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

+

The third OpenSceneGraph cross-platform example

+

The third OpenSceneGraph cross-platform example explains how to implement +remote debugging across platforms. This example is less about +OpenSceneGraph and more about different platforms.

+

Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the +first idea was to embed HTTP server into an application and let HTTP clients +interact with the server. However, serving HTTP across all platforms is +complicated:

+
    +
  • desktops have firewalls
  • +
  • mobiles have restrictions on background processes
  • +
  • web browsers are HTTP clients by design
  • +
+

That's why we decided to create a mediator between debugged application and UI. +Debug broker, a small Node.js application, became that mediator. +Debug broker uses no external dependencies, so it's easy to run virtually +anywhere. Also, since debug broker is a server application, you can configure +it once and use it for any number of applications.

+

Both debug UI and debug broker use JavaScript +because we wanted these tools to be accessible from anywhere with no prior +installation. This decision limited us to web browser solution. Providing +any sort of desktop application would incur additional installation and +maintenance effort, which would only complicate the tools.

+

Example-driven development establishment

+

Once the third example was implemented, we realized how important and +beneficial it is to develop new features outside the main project:

+
    +
  • the main project is freed from excessive commit noise
  • +
  • a new feature is publicly shared for everyone to learn, criticize, and improve
  • +
+

When we publicly share our knowledge:

+
    +
  • we must create documentation for everyone (including ourselves later) to understand what's going on
  • +
  • we must not use hacks because that would break your trust in us
  • +
+

From now on, all new features like input handling, Mahjong layout loading, +resource caching, etc. are going to be first implemented as examples. +We call this example-driven development.

+

That's it for explaining how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

+

Category: News + +

+ + + +
+
+ + + + + +
+ + + +
+
+
+
+
+

Proudly powered by Pelican, which takes great advantage of Python.

+
+
+
+ +
\ No newline at end of file diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml index 5261582..2f419ae 100644 --- a/feeds/all.atom.xml +++ b/feeds/all.atom.xml @@ -1,5 +1,94 @@ -Opensource Game Studiohttp://opengamestudio.org/2018-04-20T00:00:00+03:00OpenSceneGraph cross-platform examples2018-04-20T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2018-04-20:openscenegraph-examples.html<p><img alt="Screenshot" src="http://opengamestudio.org/2018-04-20-openscenegraph-examples.png" /></p> +Opensource Game Studiohttp://opengamestudio.org/2018-06-27T00:00:00+03:00Example-driven development2018-06-27T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2018-06-27:example-driven-development.html<p><img alt="Screenshot" src="http://opengamestudio.org/2018-06-27-example-driven-development.png" /></p> +<p>This article explains how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.</p> +<p><strong>The third OpenSceneGraph cross-platform example</strong></p> +<p>The third OpenSceneGraph cross-platform example explains how to implement +<a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.RemoteDebugging">remote debugging across platforms</a>. This example is less about +OpenSceneGraph and more about different platforms.</p> +<p>Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the +first idea was to embed HTTP server into an application and let HTTP clients +interact with the server. However, serving HTTP across all platforms is +complicated:</p> +<ul> +<li>desktops have firewalls</li> +<li>mobiles have restrictions on background processes</li> +<li>web browsers are HTTP clients by design</li> +</ul> +<p>That's why we decided to create a mediator between debugged application and UI. +<a href="https://github.com/OGStudio/debug-broker">Debug broker</a>, a small Node.js application, became that mediator. +Debug broker uses no external dependencies, so it's easy to run virtually +anywhere. Also, since debug broker is a server application, you can configure +it once and use it for any number of applications.</p> +<p>Both <a href="https://github.com/OGStudio/debug-ui">debug UI</a> and <a href="https://github.com/OGStudio/debug-broker">debug broker</a> use JavaScript +because we wanted these tools to be accessible from anywhere with no prior +installation. This decision limited us to web browser solution. Providing +any sort of desktop application would incur additional installation and +maintenance effort, which would only complicate the tools.</p> +<p><strong>Example-driven development establishment</strong></p> +<p>Once the third example was implemented, we realized how important and +beneficial it is to develop new features outside the main project:</p> +<ul> +<li>the main project is freed from excessive commit noise</li> +<li>a new feature is publicly shared for everyone to learn, criticize, and improve</li> +</ul> +<p>When we publicly share our knowledge:</p> +<ul> +<li>we must create documentation for everyone (including ourselves later) to understand what's going on</li> +<li>we must not use hacks because that would break your trust in us</li> +</ul> +<p>From now on, all new features like input handling, Mahjong layout loading, +resource caching, etc. are going to be first implemented as examples. +We call this example-driven development.</p> +<p>That's it for explaining how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.</p>Разработка через создание примеров2018-06-27T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2018-06-27:example-driven-development-ru.html<p><img alt="Screenshot" src="http://opengamestudio.org/2018-06-27-example-driven-development.png" /></p> +<p>Эта статья описывает то, как создание третьего кросс-платформенного примера +OpenSceneGraph привело нас к разработке через создание примеров.</p> +<p><strong>Третий кросс-платформенный пример OpenSceneGraph</strong></p> +<p>Третий кросс-платформенный пример OpenSceneGraph содержит реализацию +<a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.RemoteDebugging">удалённой отладки, работающей на всех поддерживаемых платформах</a>. +Этот пример относится не столько к OpenSceneGraph, сколько к поддержке +различных платформ.</p> +<p>Удалённое взаимодействие ныне предполагает использование HTTP(s) поверх +TCP/IP. Таким образом, первая идея реализации подразумевала встраивание сервера +HTTP в приложение, чтобы клиенты HTTP могли взаимодействовать с этим сервером. +Однако, раздача HTTP на различных платформах имеет свои сложности:</p> +<ul> +<li>на десктопах есть межсетевые экраны (firewalls)</li> +<li>на мобилках есть ограничения по работе фоновых процессов</li> +<li>веб-браузеры являются клиентами HTTP по дизайну</li> +</ul> +<p>Эти ограничения подтолкнули нас к созданию посредника между отлаживаемым +приложением и пользовательским интерфейсом отладки. +<a href="https://github.com/OGStudio/debug-broker">Брокер отладки</a>, небольшое приложение Node.js, стало тем самым +посредником. Брокер отладки не имеет внешних зависимостей, поэтому его легко +использовать практически везде. Благодаря тому, что брокер отладки - это +серверное приложение, его достаточно настроить лишь раз и использовать для +любого количества приложений.</p> +<p>И <a href="https://github.com/OGStudio/debug-ui">пользовательский интерфейс отладки</a>, +и <a href="https://github.com/OGStudio/debug-broker">брокер отладки</a> используют JavaScript, т.к. мы хотели сделать +эти инструменты максимально доступными без предварительной установки. Данное +решение привело нас к реализации инструментов именно для веб-браузеров. +Десктопное приложение потребовало бы дополнительных усилий на установку и +поддержку, что лишь усложнило бы работу с инструментами.</p> +<p><strong>Разработка через создание примеров</strong></p> +<p>После создания третьего примера мы осознали важность и достоинства разработки +новых функций вне основного проекта:</p> +<ul> +<li>освобождение основного проекта от шума изменений (commit noise)</li> +<li>публичное освещение новой функции приглашает всех к её изучению, критике и улучшению</li> +</ul> +<p>Когда мы делимся нашими знаниями:</p> +<ul> +<li>мы обязаны создавать документацию, объясняющую происходящее (в том числе для нас самих позже)</li> +<li>мы обязаны сторониться непродуманных решений, т.к. они повредят нашей репутации</li> +</ul> +<p>С этого момента все новые функции вроде обработки ввода, загрузки раскладок +Маджонга, кэширования ресурсов и т.п. мы будем сначала реализовывать в виде +примеров. Мы называем этот подход разработкой через создание примеров.</p> +<p>На этом мы заканчиваем описание того, как создание третьего +кросс-платформенного примера OpenSceneGraph привело нас к разработке через +создание примеров.</p>OpenSceneGraph cross-platform examples2018-04-20T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2018-04-20:openscenegraph-examples.html<p><img alt="Screenshot" src="http://opengamestudio.org/2018-04-20-openscenegraph-examples.png" /></p> <p>This article summarizes the work we did to produce the first two cross-platform OpenSceneGraph examples.</p> <p>By the time <a href="http://opengamestudio.org/mahjong-techdemo1-gameplay.html">the first technology demonstration of OGS Mahjong 2</a> diff --git a/feeds/news.atom.xml b/feeds/news.atom.xml index 8e09e96..8c0f821 100644 --- a/feeds/news.atom.xml +++ b/feeds/news.atom.xml @@ -1,5 +1,47 @@ -Opensource Game Studiohttp://opengamestudio.org/2018-04-20T00:00:00+03:00OpenSceneGraph cross-platform examples2018-04-20T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2018-04-20:openscenegraph-examples.html<p><img alt="Screenshot" src="http://opengamestudio.org/2018-04-20-openscenegraph-examples.png" /></p> +Opensource Game Studiohttp://opengamestudio.org/2018-06-27T00:00:00+03:00Example-driven development2018-06-27T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2018-06-27:example-driven-development.html<p><img alt="Screenshot" src="http://opengamestudio.org/2018-06-27-example-driven-development.png" /></p> +<p>This article explains how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.</p> +<p><strong>The third OpenSceneGraph cross-platform example</strong></p> +<p>The third OpenSceneGraph cross-platform example explains how to implement +<a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.RemoteDebugging">remote debugging across platforms</a>. This example is less about +OpenSceneGraph and more about different platforms.</p> +<p>Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the +first idea was to embed HTTP server into an application and let HTTP clients +interact with the server. However, serving HTTP across all platforms is +complicated:</p> +<ul> +<li>desktops have firewalls</li> +<li>mobiles have restrictions on background processes</li> +<li>web browsers are HTTP clients by design</li> +</ul> +<p>That's why we decided to create a mediator between debugged application and UI. +<a href="https://github.com/OGStudio/debug-broker">Debug broker</a>, a small Node.js application, became that mediator. +Debug broker uses no external dependencies, so it's easy to run virtually +anywhere. Also, since debug broker is a server application, you can configure +it once and use it for any number of applications.</p> +<p>Both <a href="https://github.com/OGStudio/debug-ui">debug UI</a> and <a href="https://github.com/OGStudio/debug-broker">debug broker</a> use JavaScript +because we wanted these tools to be accessible from anywhere with no prior +installation. This decision limited us to web browser solution. Providing +any sort of desktop application would incur additional installation and +maintenance effort, which would only complicate the tools.</p> +<p><strong>Example-driven development establishment</strong></p> +<p>Once the third example was implemented, we realized how important and +beneficial it is to develop new features outside the main project:</p> +<ul> +<li>the main project is freed from excessive commit noise</li> +<li>a new feature is publicly shared for everyone to learn, criticize, and improve</li> +</ul> +<p>When we publicly share our knowledge:</p> +<ul> +<li>we must create documentation for everyone (including ourselves later) to understand what's going on</li> +<li>we must not use hacks because that would break your trust in us</li> +</ul> +<p>From now on, all new features like input handling, Mahjong layout loading, +resource caching, etc. are going to be first implemented as examples. +We call this example-driven development.</p> +<p>That's it for explaining how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.</p>OpenSceneGraph cross-platform examples2018-04-20T00:00:00+03:00Opensource Game Studiotag:opengamestudio.org,2018-04-20:openscenegraph-examples.html<p><img alt="Screenshot" src="http://opengamestudio.org/2018-04-20-openscenegraph-examples.png" /></p> <p>This article summarizes the work we did to produce the first two cross-platform OpenSceneGraph examples.</p> <p>By the time <a href="http://opengamestudio.org/mahjong-techdemo1-gameplay.html">the first technology demonstration of OGS Mahjong 2</a> diff --git a/index.html b/index.html index df0b6ca..88fe1fd 100644 --- a/index.html +++ b/index.html @@ -47,6 +47,67 @@ +
+

Example-driven development

+
Ср 27 Июнь 2018 + ru + +

Screenshot

+

This article explains how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

+

The third OpenSceneGraph cross-platform example

+

The third OpenSceneGraph cross-platform example explains how to implement +remote debugging across platforms. This example is less about +OpenSceneGraph and more about different platforms.

+

Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the +first idea was to embed HTTP server into an application and let HTTP clients +interact with the server. However, serving HTTP across all platforms is +complicated:

+
    +
  • desktops have firewalls
  • +
  • mobiles have restrictions on background processes
  • +
  • web browsers are HTTP clients by design
  • +
+

That's why we decided to create a mediator between debugged application and UI. +Debug broker, a small Node.js application, became that mediator. +Debug broker uses no external dependencies, so it's easy to run virtually +anywhere. Also, since debug broker is a server application, you can configure +it once and use it for any number of applications.

+

Both debug UI and debug broker use JavaScript +because we wanted these tools to be accessible from anywhere with no prior +installation. This decision limited us to web browser solution. Providing +any sort of desktop application would incur additional installation and +maintenance effort, which would only complicate the tools.

+

Example-driven development establishment

+

Once the third example was implemented, we realized how important and +beneficial it is to develop new features outside the main project:

+
    +
  • the main project is freed from excessive commit noise
  • +
  • a new feature is publicly shared for everyone to learn, criticize, and improve
  • +
+

When we publicly share our knowledge:

+
    +
  • we must create documentation for everyone (including ourselves later) to understand what's going on
  • +
  • we must not use hacks because that would break your trust in us
  • +
+

From now on, all new features like input handling, Mahjong layout loading, +resource caching, etc. are going to be first implemented as examples. +We call this example-driven development.

+

That's it for explaining how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development.

Category: News + +

+ + +
+ + +
+ + + + +

OpenSceneGraph cross-platform examples

Пт 20 Апрель 2018 @@ -58,35 +119,14 @@ cross-platform OpenSceneGraph examples.

By the time the first technology demonstration of OGS Mahjong 2 has been released, we've already had issue request (to explain how to load images with OpenSceneGraph on Android) hanging for some -time. We considered creating a new tutorial for -OpenSceneGraph cross-platform guide at first. However, we realized -that it's time-consuming and excessive for such a tiny topic (compared to -what an average game has) as image loading. We decided to continue sharing our -knowledge in the form of concrete examples. That's how -OpenSceneGraph cross-platform examples were born.

-

Each example:

-
    -
  • explains crucial code necessary to perform a specific task
  • -
  • accents platform-specific nuances
  • -
  • provides implementations to cover desktop, mobile, and web platforms
  • -
  • provides a web build to showcase results
  • -
-

The first two examples cover the following topics:

-
    -
  • Embed resource into executable: this greatly simplifies resource handling across platforms
  • -
  • Use PNG images with PNG plugins: this explains the requirements necessary to build and use PNG plugins
  • -
-

We will be adding new examples as we proceed with OGS Mahjong 2 development.

-

That's it for summarizing the work we did to produce the first two cross-platform OpenSceneGraph examples.

Category: News +time. We ...

Category: News

-
- - + Read More
- +
@@ -271,25 +311,6 @@ In case you missed it, here ...

Category: - - - -

-

iOS tutorial

-
Чт 08 Июнь 2017 - ru - -

iOS tutorial

-

This article describes problems we faced during the creation of iOS tutorial in May 2017.

-

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come ...

Category: News - -

- - - Read More -
-
-
Page 1 of 4
diff --git a/index2.html b/index2.html index 57d29f2..cddcdb5 100644 --- a/index2.html +++ b/index2.html @@ -48,6 +48,25 @@ +
+

iOS tutorial

+
Чт 08 Июнь 2017 + ru + +

iOS tutorial

+

This article describes problems we faced during the creation of iOS tutorial in May 2017.

+

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come ...

Category: News + +

+ + + Read More +
+
+ + + + - - - - -
Page 2 of 4
diff --git a/index3.html b/index3.html index 66a3b2a..7d9a58c 100644 --- a/index3.html +++ b/index3.html @@ -48,6 +48,27 @@ + + + + + - - - - -
Page 3 of 4
diff --git a/index4.html b/index4.html index a5e6dd0..e845e42 100644 --- a/index4.html +++ b/index4.html @@ -48,6 +48,30 @@ + + + + +

Game creation live session (part 2): 7 February 2016

Вт 02 Февраль 2016 diff --git a/pelican/content/articles/2018-06-27-example-driven-development-ru.md b/pelican/content/articles/2018-06-27-example-driven-development-ru.md new file mode 100644 index 0000000..fa5cff3 --- /dev/null +++ b/pelican/content/articles/2018-06-27-example-driven-development-ru.md @@ -0,0 +1,70 @@ +Title: Разработка через создание примеров +Date: 2018-06-27 00:00 +Category: News +Slug: example-driven-development +Lang: ru + +![Screenshot][screenshot] + +Эта статья описывает то, как создание третьего кросс-платформенного примера +OpenSceneGraph привело нас к разработке через создание примеров. + +**Третий кросс-платформенный пример OpenSceneGraph** + +Третий кросс-платформенный пример OpenSceneGraph содержит реализацию +[удалённой отладки, работающей на всех поддерживаемых платформах][osgcpe-03]. +Этот пример относится не столько к OpenSceneGraph, сколько к поддержке +различных платформ. + +Удалённое взаимодействие ныне предполагает использование HTTP(s) поверх +TCP/IP. Таким образом, первая идея реализации подразумевала встраивание сервера +HTTP в приложение, чтобы клиенты HTTP могли взаимодействовать с этим сервером. +Однако, раздача HTTP на различных платформах имеет свои сложности: + +* на десктопах есть межсетевые экраны (firewalls) +* на мобилках есть ограничения по работе фоновых процессов +* веб-браузеры являются клиентами HTTP по дизайну + +Эти ограничения подтолкнули нас к созданию посредника между отлаживаемым +приложением и пользовательским интерфейсом отладки. +[Брокер отладки][debug-broker], небольшое приложение Node.js, стало тем самым +посредником. Брокер отладки не имеет внешних зависимостей, поэтому его легко +использовать практически везде. Благодаря тому, что брокер отладки - это +серверное приложение, его достаточно настроить лишь раз и использовать для +любого количества приложений. + +И [пользовательский интерфейс отладки][debug-ui], +и [брокер отладки][debug-broker] используют JavaScript, т.к. мы хотели сделать +эти инструменты максимально доступными без предварительной установки. Данное +решение привело нас к реализации инструментов именно для веб-браузеров. +Десктопное приложение потребовало бы дополнительных усилий на установку и +поддержку, что лишь усложнило бы работу с инструментами. + +**Разработка через создание примеров** + +После создания третьего примера мы осознали важность и достоинства разработки +новых функций вне основного проекта: + +* освобождение основного проекта от шума изменений (commit noise) +* публичное освещение новой функции приглашает всех к её изучению, критике и улучшению + +Когда мы делимся нашими знаниями: + +* мы обязаны создавать документацию, объясняющую происходящее (в том числе для нас самих позже) +* мы обязаны сторониться непродуманных решений, т.к. они повредят нашей репутации + +С этого момента все новые функции вроде обработки ввода, загрузки раскладок +Маджонга, кэширования ресурсов и т.п. мы будем сначала реализовывать в виде +примеров. Мы называем этот подход разработкой через создание примеров. + +На этом мы заканчиваем описание того, как создание третьего +кросс-платформенного примера OpenSceneGraph привело нас к разработке через +создание примеров. + + +[screenshot]: {attach}/images/2018-06-27-example-driven-development.png + +[osgcpe-03]: https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.RemoteDebugging +[debug-broker]: https://github.com/OGStudio/debug-broker +[debug-ui]: https://github.com/OGStudio/debug-ui + diff --git a/pelican/content/articles/2018-06-27-example-driven-development.md b/pelican/content/articles/2018-06-27-example-driven-development.md new file mode 100644 index 0000000..a895902 --- /dev/null +++ b/pelican/content/articles/2018-06-27-example-driven-development.md @@ -0,0 +1,64 @@ +Title: Example-driven development +Date: 2018-06-27 00:00 +Category: News +Slug: example-driven-development +Lang: en + +![Screenshot][screenshot] + +This article explains how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development. + +**The third OpenSceneGraph cross-platform example** + +The third OpenSceneGraph cross-platform example explains how to implement +[remote debugging across platforms][osgcpe-03]. This example is less about +OpenSceneGraph and more about different platforms. + +Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the +first idea was to embed HTTP server into an application and let HTTP clients +interact with the server. However, serving HTTP across all platforms is +complicated: + +* desktops have firewalls +* mobiles have restrictions on background processes +* web browsers are HTTP clients by design + +That's why we decided to create a mediator between debugged application and UI. +[Debug broker][debug-broker], a small Node.js application, became that mediator. +Debug broker uses no external dependencies, so it's easy to run virtually +anywhere. Also, since debug broker is a server application, you can configure +it once and use it for any number of applications. + +Both [debug UI][debug-ui] and [debug broker][debug-broker] use JavaScript +because we wanted these tools to be accessible from anywhere with no prior +installation. This decision limited us to web browser solution. Providing +any sort of desktop application would incur additional installation and +maintenance effort, which would only complicate the tools. + +**Example-driven development establishment** + +Once the third example was implemented, we realized how important and +beneficial it is to develop new features outside the main project: + +* the main project is freed from excessive commit noise +* a new feature is publicly shared for everyone to learn, criticize, and improve + +When we publicly share our knowledge: + +* we must create documentation for everyone (including ourselves later) to understand what's going on +* we must not use hacks because that would break your trust in us + +From now on, all new features like input handling, Mahjong layout loading, +resource caching, etc. are going to be first implemented as examples. +We call this example-driven development. + +That's it for explaining how the third OpenSceneGraph cross-platform example +opened our eyes to example-driven development. + +[screenshot]: {attach}/images/2018-06-27-example-driven-development.png + +[osgcpe-03]: https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.RemoteDebugging +[debug-broker]: https://github.com/OGStudio/debug-broker +[debug-ui]: https://github.com/OGStudio/debug-ui + diff --git a/pelican/content/images/2018-06-27-example-driven-development.png b/pelican/content/images/2018-06-27-example-driven-development.png new file mode 100644 index 0000000..ac66148 Binary files /dev/null and b/pelican/content/images/2018-06-27-example-driven-development.png differ
Ср 27 Июнь 2018Example-driven development
Пт 20 Апрель 2018 OpenSceneGraph cross-platform examples