@@ -49,6 +49,10 @@ | |||||
<table class="table-archive"> | <table class="table-archive"> | ||||
<tbody> | <tbody> | ||||
<tr> | |||||
<td>Вт 02 октября 2018</td> | |||||
<td><a href='mahjong-demo2.html'>OGS Mahjong 2: Demo 2</a></td> | |||||
</tr> | |||||
<tr> | <tr> | ||||
<td>Вт 21 августа 2018</td> | <td>Вт 21 августа 2018</td> | ||||
<td><a href='examples-and-dependencies.html'>Examples and dependencies</a></td> | <td><a href='examples-and-dependencies.html'>Examples and dependencies</a></td> | ||||
@@ -47,6 +47,51 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/mahjong-demo2.html"><h3 class="article-title">OGS Mahjong 2: Demo 2</h3></a> | |||||
<h6 class="subheader" title="2018-10-02T00:00:00+03:00">Вт 02 октября 2018 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/mahjong-demo2-ru.html">ru</a> | |||||
</h6><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>You are encouraged to run the game with <code>seed</code> parameter like this: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>This allows you to play the same layout each time you launch the game.</p> | |||||
<p>Each seed uniquely identifies the placement of tiles. Thus, different seeds | |||||
give you a different experience.</p> | |||||
<p><strong>Development techniques and foundation</strong></p> | |||||
<p>During the second demonstration development, we switched from standard | |||||
development to <a href="http://opengamestudio.org/example-driven-development.html">example-driven one</a>. This resulted in the | |||||
creation of three distinct repositories to back the development of OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> repository provides cross-platform foundation like resource handling, render window setup, etc.</li> | |||||
<li><a href="https://github.com/OGStudio/ogs-mahjong-components">OGS Mahjong components</a> repository provides Mahjong specific functionality like parsing layout, matching tiles, etc.</li> | |||||
<li><a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> repository contains snapshots of <code>OGS Mahjong components</code> features that comprise specific game version. E.g., <code>Demo 2</code> version is almost identical to <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> example of <code>OGS Mahjong components</code>.</li> | |||||
</ul> | |||||
<p><strong>Beyond Mahjong solitaire</strong></p> | |||||
<p>In addition to <code>seed</code> parameter, you can let the game use remote layout hosted at GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Utilizing remote resources is an extremely powerful approach allowing anyone | |||||
to create a layout of his/her choice and see the layout in action instantly.</p> | |||||
<p>Our next step is to turn game logic into a resource, too.</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
</article> | |||||
<hr class="gradient"/> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/examples-and-dependencies.html"><h3 class="article-title">Examples and dependencies</h3></a> | <a href="http://opengamestudio.org/examples-and-dependencies.html"><h3 class="article-title">Examples and dependencies</h3></a> | ||||
<h6 class="subheader" title="2018-08-21T00:00:00+03:00">Вт 21 августа 2018 | <h6 class="subheader" title="2018-08-21T00:00:00+03:00">Вт 21 августа 2018 | ||||
@@ -58,66 +103,14 @@ change in handling dependencies.</p> | |||||
<p><strong>Examples of HTTP client and node selection</strong></p> | <p><strong>Examples of HTTP client and node selection</strong></p> | ||||
<p>Once we finished working on <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">the remote debugging example</a> and | <p>Once we finished working on <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">the remote debugging example</a> and | ||||
<a href="http://opengamestudio.org/example-driven-development.html">reported its completion</a>, we were surprised by the fact | <a href="http://opengamestudio.org/example-driven-development.html">reported its completion</a>, we were surprised by the fact | ||||
that secure HTTP connection between a debugged application and debug broker | |||||
was only working in the web version of the example. Desktop and mobile versions | |||||
only worked with insecure HTTP.</p> | |||||
<p>Since current debug scheme has no authentication, insecure debugging over HTTP | |||||
doesn't really hurt. However, if we want to access resources located at popular | |||||
sites like GitHub and BitBucket, we have to support secure HTTP.</p> | |||||
<p>The need to support HTTPS on each platform spurred us to create | |||||
<a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.HTTPClient">HTTP client example</a>. Turned out, each platform had its own | |||||
preferred way of doing secure HTTP:</p> | |||||
<ul> | |||||
<li>web (Emscripten) provides Fetch API</li> | |||||
<li>desktop is fine with Mongoose and OpenSSL</li> | |||||
<li>Android provides HttpUrlConnection in Java</li> | |||||
<li>iOS provides NSURLSession in Objective-C</li> | |||||
</ul> | |||||
<p>The need to support different languages on different platforms resulted | |||||
in the creation of so-called 'host-guest' pattern:</p> | |||||
<ul> | |||||
<li>guest (platform agnostic)<ul> | |||||
<li>provides networking representation</li> | |||||
<li>used by cross-platform C++ code</li> | |||||
</ul> | |||||
</li> | |||||
<li>host (specific platform)<ul> | |||||
<li>polls guest for pending requests</li> | |||||
<li>processes them</li> | |||||
<li>reports results back to the guest</li> | |||||
</ul> | |||||
</li> | |||||
</ul> | |||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/05.NodeSelection">Node selection example</a> was straightforward and caused no troubles.</p> | |||||
<p><strong>The change in handling dependencies</strong></p> | |||||
<p>For over a year we had to deal with the following | |||||
<a href="http://forum.openscenegraph.org/viewtopic.php?t=17443">shortcomings</a> when building OpenSceneGraph across platforms | |||||
using conventional methods:</p> | |||||
<ul> | |||||
<li>macOS builds failing due to certain compile flags we use</li> | |||||
<li>hacking PNG plugin safety guards to have PNG support under Android</li> | |||||
<li>iOS simulator and device builds of the same example being in separate Xcode projects</li> | |||||
<li>OpenSceneGraph taking 20-30 minutes to build</li> | |||||
</ul> | |||||
<p>These shortcomings were slowing us down and complicating the development of | |||||
new examples. Upon hitting these problems ten more times this month we decided | |||||
it was time to solve them once and for all. Now OpenSceneGraph is built as part | |||||
of each example in 2-3 minutes, and there's no more dependency magic involved. | |||||
We took the same approach of building dependencies as part of each example to | |||||
other external libraries like Mongoose and libpng-android, too.</p> | |||||
<p>With these obstacles out of the way, we can now iterate faster. Just in time | |||||
for the next technical demonstration of Mahjong 2!</p> | |||||
<p>That's it for describing two new OpenSceneGraph cross-platform examples and | |||||
the change in handling dependencies.</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
that secure HTTP connection between a debugged application and debug …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | </p> | ||||
</article> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/examples-and-dependencies.html">Read More</a> | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | |||||
@@ -308,26 +301,6 @@ It seems that this is the technology capable of …</p><p class="subheader">Cate | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/scripting-research.html"><h3 class="article-title">Scripting research</h3></a> | |||||
<h6 class="subheader" title="2017-08-16T00:00:00+03:00">Ср 16 августа 2017 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/scripting-research-ru.html">ru</a> | |||||
</h6><p><img alt="Scripting research" src="http://opengamestudio.org/2017-08-scripting-research.png"></p> | |||||
<p>This article describes scripting research in July 2017.</p> | |||||
<p><strong>Our first goal of using a scripting language was to have a platform-independent code that runs unchanged on every supported platform.</strong></p> | |||||
<p>OGS Editor 0.10 supports Python for such a code thanks to <a href="http://swig.org/">SWIG</a>. SWIG provides a way to wrap almost any …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/scripting-research.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 1 of 5</h6> | <h6 class="subheader">Page 1 of 5</h6> | ||||
@@ -48,6 +48,26 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/scripting-research.html"><h3 class="article-title">Scripting research</h3></a> | |||||
<h6 class="subheader" title="2017-08-16T00:00:00+03:00">Ср 16 августа 2017 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/scripting-research-ru.html">ru</a> | |||||
</h6><p><img alt="Scripting research" src="http://opengamestudio.org/2017-08-scripting-research.png"></p> | |||||
<p>This article describes scripting research in July 2017.</p> | |||||
<p><strong>Our first goal of using a scripting language was to have a platform-independent code that runs unchanged on every supported platform.</strong></p> | |||||
<p>OGS Editor 0.10 supports Python for such a code thanks to <a href="http://swig.org/">SWIG</a>. SWIG provides a way to wrap almost any …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/scripting-research.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html"><h3 class="article-title">OpenSceneGraph cross-platform guide</h3></a> | <a href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html"><h3 class="article-title">OpenSceneGraph cross-platform guide</h3></a> | ||||
<h6 class="subheader" title="2017-07-17T00:00:00+03:00">Пн 17 июля 2017 | <h6 class="subheader" title="2017-07-17T00:00:00+03:00">Пн 17 июля 2017 | ||||
@@ -222,27 +242,6 @@ In case you missed it, here's …</p><p class="subheader">Category: <a href="htt | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/2016-tech-showcases.html"><h3 class="article-title">Technology showcases</h3></a> | |||||
<h6 class="subheader" title="2016-10-31T00:00:00+03:00">Пн 31 октября 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/2016-tech-showcases-ru.html">ru</a> | |||||
</h6><p><img alt="TechShowcases" src="http://opengamestudio.org/2016-10-31_tech-showcases.png"></p> | |||||
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p> | |||||
<p><strong>2015 and 2016: live sessions.</strong></p> | |||||
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. | |||||
We have conducted …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/2016-tech-showcases.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 2 of 5</h6> | <h6 class="subheader">Page 2 of 5</h6> | ||||
@@ -48,6 +48,27 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/2016-tech-showcases.html"><h3 class="article-title">Technology showcases</h3></a> | |||||
<h6 class="subheader" title="2016-10-31T00:00:00+03:00">Пн 31 октября 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/2016-tech-showcases-ru.html">ru</a> | |||||
</h6><p><img alt="TechShowcases" src="http://opengamestudio.org/2016-10-31_tech-showcases.png"></p> | |||||
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p> | |||||
<p><strong>2015 and 2016: live sessions.</strong></p> | |||||
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. | |||||
We have conducted …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/2016-tech-showcases.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/2016-september-recap.html"><h3 class="article-title">September 2016 recap</h3></a> | <a href="http://opengamestudio.org/2016-september-recap.html"><h3 class="article-title">September 2016 recap</h3></a> | ||||
<h6 class="subheader" title="2016-10-11T00:00:00+03:00">Вт 11 октября 2016 | <h6 class="subheader" title="2016-10-11T00:00:00+03:00">Вт 11 октября 2016 | ||||
@@ -226,23 +247,6 @@ It's time to create simple Mahjong solitaire game.</p><p class="subheader">Categ | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/may-live-session-announcement.html"><h3 class="article-title">Live session: 28 May 2016</h3></a> | |||||
<h6 class="subheader" title="2016-05-17T00:00:00+03:00">Вт 17 мая 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/may-live-session-announcement-ru.html">ru</a> | |||||
</h6><p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+May+live+session&iso=20160528T12&p1=37&ah=3">28 May 2016 at 12:00 CEST</a>. Join us!</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/may-live-session-announcement.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 3 of 5</h6> | <h6 class="subheader">Page 3 of 5</h6> | ||||
@@ -48,6 +48,23 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/may-live-session-announcement.html"><h3 class="article-title">Live session: 28 May 2016</h3></a> | |||||
<h6 class="subheader" title="2016-05-17T00:00:00+03:00">Вт 17 мая 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/may-live-session-announcement-ru.html">ru</a> | |||||
</h6><p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+May+live+session&iso=20160528T12&p1=37&ah=3">28 May 2016 at 12:00 CEST</a>. Join us!</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/may-live-session-announcement.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/may-live-session-decision.html"><h3 class="article-title">May live session (Editor 0.9)</h3></a> | <a href="http://opengamestudio.org/may-live-session-decision.html"><h3 class="article-title">May live session (Editor 0.9)</h3></a> | ||||
<h6 class="subheader" title="2016-04-24T00:00:00+03:00">Вс 24 апреля 2016 | <h6 class="subheader" title="2016-04-24T00:00:00+03:00">Вс 24 апреля 2016 | ||||
@@ -216,24 +233,6 @@ The exact date and time is …</p><p class="subheader">Category: <a href="http:/ | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/bye-desura-hello-humblebundle.html"><h3 class="article-title">Desura no more, hello Humble Bundle Widget</h3></a> | |||||
<h6 class="subheader" title="2015-07-23T00:00:00+03:00">Чт 23 июля 2015 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/bye-desura-hello-humblebundle-ru.html">ru</a> | |||||
</h6><p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p> | |||||
<p>Here it …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/bye-desura-hello-humblebundle.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 4 of 5</h6> | <h6 class="subheader">Page 4 of 5</h6> | ||||
@@ -48,6 +48,24 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/bye-desura-hello-humblebundle.html"><h3 class="article-title">Desura no more, hello Humble Bundle Widget</h3></a> | |||||
<h6 class="subheader" title="2015-07-23T00:00:00+03:00">Чт 23 июля 2015 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/bye-desura-hello-humblebundle-ru.html">ru</a> | |||||
</h6><p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p> | |||||
<p>Here it …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/bye-desura-hello-humblebundle.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/test-chamber-for-everyone.html"><h3 class="article-title">Test chamber for everyone (Editor 0.7.0)</h3></a> | <a href="http://opengamestudio.org/test-chamber-for-everyone.html"><h3 class="article-title">Test chamber for everyone (Editor 0.7.0)</h3></a> | ||||
<h6 class="subheader" title="2015-07-22T00:00:00+03:00">Ср 22 июля 2015 | <h6 class="subheader" title="2015-07-22T00:00:00+03:00">Ср 22 июля 2015 | ||||
@@ -47,6 +47,51 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/mahjong-demo2.html"><h3 class="article-title">OGS Mahjong 2: Demo 2</h3></a> | |||||
<h6 class="subheader" title="2018-10-02T00:00:00+03:00">Вт 02 октября 2018 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/mahjong-demo2-ru.html">ru</a> | |||||
</h6><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>You are encouraged to run the game with <code>seed</code> parameter like this: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>This allows you to play the same layout each time you launch the game.</p> | |||||
<p>Each seed uniquely identifies the placement of tiles. Thus, different seeds | |||||
give you a different experience.</p> | |||||
<p><strong>Development techniques and foundation</strong></p> | |||||
<p>During the second demonstration development, we switched from standard | |||||
development to <a href="http://opengamestudio.org/example-driven-development.html">example-driven one</a>. This resulted in the | |||||
creation of three distinct repositories to back the development of OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> repository provides cross-platform foundation like resource handling, render window setup, etc.</li> | |||||
<li><a href="https://github.com/OGStudio/ogs-mahjong-components">OGS Mahjong components</a> repository provides Mahjong specific functionality like parsing layout, matching tiles, etc.</li> | |||||
<li><a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> repository contains snapshots of <code>OGS Mahjong components</code> features that comprise specific game version. E.g., <code>Demo 2</code> version is almost identical to <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> example of <code>OGS Mahjong components</code>.</li> | |||||
</ul> | |||||
<p><strong>Beyond Mahjong solitaire</strong></p> | |||||
<p>In addition to <code>seed</code> parameter, you can let the game use remote layout hosted at GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Utilizing remote resources is an extremely powerful approach allowing anyone | |||||
to create a layout of his/her choice and see the layout in action instantly.</p> | |||||
<p>Our next step is to turn game logic into a resource, too.</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
</article> | |||||
<hr class="gradient"/> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/examples-and-dependencies.html"><h3 class="article-title">Examples and dependencies</h3></a> | <a href="http://opengamestudio.org/examples-and-dependencies.html"><h3 class="article-title">Examples and dependencies</h3></a> | ||||
<h6 class="subheader" title="2018-08-21T00:00:00+03:00">Вт 21 августа 2018 | <h6 class="subheader" title="2018-08-21T00:00:00+03:00">Вт 21 августа 2018 | ||||
@@ -58,66 +103,14 @@ change in handling dependencies.</p> | |||||
<p><strong>Examples of HTTP client and node selection</strong></p> | <p><strong>Examples of HTTP client and node selection</strong></p> | ||||
<p>Once we finished working on <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">the remote debugging example</a> and | <p>Once we finished working on <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">the remote debugging example</a> and | ||||
<a href="http://opengamestudio.org/example-driven-development.html">reported its completion</a>, we were surprised by the fact | <a href="http://opengamestudio.org/example-driven-development.html">reported its completion</a>, we were surprised by the fact | ||||
that secure HTTP connection between a debugged application and debug broker | |||||
was only working in the web version of the example. Desktop and mobile versions | |||||
only worked with insecure HTTP.</p> | |||||
<p>Since current debug scheme has no authentication, insecure debugging over HTTP | |||||
doesn't really hurt. However, if we want to access resources located at popular | |||||
sites like GitHub and BitBucket, we have to support secure HTTP.</p> | |||||
<p>The need to support HTTPS on each platform spurred us to create | |||||
<a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.HTTPClient">HTTP client example</a>. Turned out, each platform had its own | |||||
preferred way of doing secure HTTP:</p> | |||||
<ul> | |||||
<li>web (Emscripten) provides Fetch API</li> | |||||
<li>desktop is fine with Mongoose and OpenSSL</li> | |||||
<li>Android provides HttpUrlConnection in Java</li> | |||||
<li>iOS provides NSURLSession in Objective-C</li> | |||||
</ul> | |||||
<p>The need to support different languages on different platforms resulted | |||||
in the creation of so-called 'host-guest' pattern:</p> | |||||
<ul> | |||||
<li>guest (platform agnostic)<ul> | |||||
<li>provides networking representation</li> | |||||
<li>used by cross-platform C++ code</li> | |||||
</ul> | |||||
</li> | |||||
<li>host (specific platform)<ul> | |||||
<li>polls guest for pending requests</li> | |||||
<li>processes them</li> | |||||
<li>reports results back to the guest</li> | |||||
</ul> | |||||
</li> | |||||
</ul> | |||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/05.NodeSelection">Node selection example</a> was straightforward and caused no troubles.</p> | |||||
<p><strong>The change in handling dependencies</strong></p> | |||||
<p>For over a year we had to deal with the following | |||||
<a href="http://forum.openscenegraph.org/viewtopic.php?t=17443">shortcomings</a> when building OpenSceneGraph across platforms | |||||
using conventional methods:</p> | |||||
<ul> | |||||
<li>macOS builds failing due to certain compile flags we use</li> | |||||
<li>hacking PNG plugin safety guards to have PNG support under Android</li> | |||||
<li>iOS simulator and device builds of the same example being in separate Xcode projects</li> | |||||
<li>OpenSceneGraph taking 20-30 minutes to build</li> | |||||
</ul> | |||||
<p>These shortcomings were slowing us down and complicating the development of | |||||
new examples. Upon hitting these problems ten more times this month we decided | |||||
it was time to solve them once and for all. Now OpenSceneGraph is built as part | |||||
of each example in 2-3 minutes, and there's no more dependency magic involved. | |||||
We took the same approach of building dependencies as part of each example to | |||||
other external libraries like Mongoose and libpng-android, too.</p> | |||||
<p>With these obstacles out of the way, we can now iterate faster. Just in time | |||||
for the next technical demonstration of Mahjong 2!</p> | |||||
<p>That's it for describing two new OpenSceneGraph cross-platform examples and | |||||
the change in handling dependencies.</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
that secure HTTP connection between a debugged application and debug …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | </p> | ||||
</article> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/examples-and-dependencies.html">Read More</a> | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | |||||
@@ -308,26 +301,6 @@ It seems that this is the technology capable of …</p><p class="subheader">Cate | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/scripting-research.html"><h3 class="article-title">Scripting research</h3></a> | |||||
<h6 class="subheader" title="2017-08-16T00:00:00+03:00">Ср 16 августа 2017 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/scripting-research-ru.html">ru</a> | |||||
</h6><p><img alt="Scripting research" src="http://opengamestudio.org/2017-08-scripting-research.png"></p> | |||||
<p>This article describes scripting research in July 2017.</p> | |||||
<p><strong>Our first goal of using a scripting language was to have a platform-independent code that runs unchanged on every supported platform.</strong></p> | |||||
<p>OGS Editor 0.10 supports Python for such a code thanks to <a href="http://swig.org/">SWIG</a>. SWIG provides a way to wrap almost any …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/scripting-research.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 1 of 5</h6> | <h6 class="subheader">Page 1 of 5</h6> | ||||
@@ -48,6 +48,26 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/scripting-research.html"><h3 class="article-title">Scripting research</h3></a> | |||||
<h6 class="subheader" title="2017-08-16T00:00:00+03:00">Ср 16 августа 2017 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/scripting-research-ru.html">ru</a> | |||||
</h6><p><img alt="Scripting research" src="http://opengamestudio.org/2017-08-scripting-research.png"></p> | |||||
<p>This article describes scripting research in July 2017.</p> | |||||
<p><strong>Our first goal of using a scripting language was to have a platform-independent code that runs unchanged on every supported platform.</strong></p> | |||||
<p>OGS Editor 0.10 supports Python for such a code thanks to <a href="http://swig.org/">SWIG</a>. SWIG provides a way to wrap almost any …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/scripting-research.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html"><h3 class="article-title">OpenSceneGraph cross-platform guide</h3></a> | <a href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html"><h3 class="article-title">OpenSceneGraph cross-platform guide</h3></a> | ||||
<h6 class="subheader" title="2017-07-17T00:00:00+03:00">Пн 17 июля 2017 | <h6 class="subheader" title="2017-07-17T00:00:00+03:00">Пн 17 июля 2017 | ||||
@@ -222,27 +242,6 @@ In case you missed it, here's …</p><p class="subheader">Category: <a href="htt | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/2016-tech-showcases.html"><h3 class="article-title">Technology showcases</h3></a> | |||||
<h6 class="subheader" title="2016-10-31T00:00:00+03:00">Пн 31 октября 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/2016-tech-showcases-ru.html">ru</a> | |||||
</h6><p><img alt="TechShowcases" src="http://opengamestudio.org/2016-10-31_tech-showcases.png"></p> | |||||
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p> | |||||
<p><strong>2015 and 2016: live sessions.</strong></p> | |||||
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. | |||||
We have conducted …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/2016-tech-showcases.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 2 of 5</h6> | <h6 class="subheader">Page 2 of 5</h6> | ||||
@@ -48,6 +48,27 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/2016-tech-showcases.html"><h3 class="article-title">Technology showcases</h3></a> | |||||
<h6 class="subheader" title="2016-10-31T00:00:00+03:00">Пн 31 октября 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/2016-tech-showcases-ru.html">ru</a> | |||||
</h6><p><img alt="TechShowcases" src="http://opengamestudio.org/2016-10-31_tech-showcases.png"></p> | |||||
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p> | |||||
<p><strong>2015 and 2016: live sessions.</strong></p> | |||||
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. | |||||
We have conducted …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/2016-tech-showcases.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/2016-september-recap.html"><h3 class="article-title">September 2016 recap</h3></a> | <a href="http://opengamestudio.org/2016-september-recap.html"><h3 class="article-title">September 2016 recap</h3></a> | ||||
<h6 class="subheader" title="2016-10-11T00:00:00+03:00">Вт 11 октября 2016 | <h6 class="subheader" title="2016-10-11T00:00:00+03:00">Вт 11 октября 2016 | ||||
@@ -226,23 +247,6 @@ It's time to create simple Mahjong solitaire game.</p><p class="subheader">Categ | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/may-live-session-announcement.html"><h3 class="article-title">Live session: 28 May 2016</h3></a> | |||||
<h6 class="subheader" title="2016-05-17T00:00:00+03:00">Вт 17 мая 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/may-live-session-announcement-ru.html">ru</a> | |||||
</h6><p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+May+live+session&iso=20160528T12&p1=37&ah=3">28 May 2016 at 12:00 CEST</a>. Join us!</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/may-live-session-announcement.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 3 of 5</h6> | <h6 class="subheader">Page 3 of 5</h6> | ||||
@@ -48,6 +48,23 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/may-live-session-announcement.html"><h3 class="article-title">Live session: 28 May 2016</h3></a> | |||||
<h6 class="subheader" title="2016-05-17T00:00:00+03:00">Вт 17 мая 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/may-live-session-announcement-ru.html">ru</a> | |||||
</h6><p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+May+live+session&iso=20160528T12&p1=37&ah=3">28 May 2016 at 12:00 CEST</a>. Join us!</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/may-live-session-announcement.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/may-live-session-decision.html"><h3 class="article-title">May live session (Editor 0.9)</h3></a> | <a href="http://opengamestudio.org/may-live-session-decision.html"><h3 class="article-title">May live session (Editor 0.9)</h3></a> | ||||
<h6 class="subheader" title="2016-04-24T00:00:00+03:00">Вс 24 апреля 2016 | <h6 class="subheader" title="2016-04-24T00:00:00+03:00">Вс 24 апреля 2016 | ||||
@@ -216,24 +233,6 @@ The exact date and time is …</p><p class="subheader">Category: <a href="http:/ | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/bye-desura-hello-humblebundle.html"><h3 class="article-title">Desura no more, hello Humble Bundle Widget</h3></a> | |||||
<h6 class="subheader" title="2015-07-23T00:00:00+03:00">Чт 23 июля 2015 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/bye-desura-hello-humblebundle-ru.html">ru</a> | |||||
</h6><p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p> | |||||
<p>Here it …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/bye-desura-hello-humblebundle.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 4 of 5</h6> | <h6 class="subheader">Page 4 of 5</h6> | ||||
@@ -48,6 +48,24 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/bye-desura-hello-humblebundle.html"><h3 class="article-title">Desura no more, hello Humble Bundle Widget</h3></a> | |||||
<h6 class="subheader" title="2015-07-23T00:00:00+03:00">Чт 23 июля 2015 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/bye-desura-hello-humblebundle-ru.html">ru</a> | |||||
</h6><p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p> | |||||
<p>Here it …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/bye-desura-hello-humblebundle.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/test-chamber-for-everyone.html"><h3 class="article-title">Test chamber for everyone (Editor 0.7.0)</h3></a> | <a href="http://opengamestudio.org/test-chamber-for-everyone.html"><h3 class="article-title">Test chamber for everyone (Editor 0.7.0)</h3></a> | ||||
<h6 class="subheader" title="2015-07-22T00:00:00+03:00">Ср 22 июля 2015 | <h6 class="subheader" title="2015-07-22T00:00:00+03:00">Ср 22 июля 2015 | ||||
@@ -1,5 +1,72 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Opensource Game Studio</title><link href="http://opengamestudio.org/" rel="alternate"></link><link href="http://opengamestudio.org/feeds/all.atom.xml" rel="self"></link><id>http://opengamestudio.org/</id><updated>2018-08-21T00:00:00+03:00</updated><entry><title>Examples and dependencies</title><link href="http://opengamestudio.org/examples-and-dependencies.html" rel="alternate"></link><published>2018-08-21T00:00:00+03:00</published><updated>2018-08-21T00:00:00+03:00</updated><author><name>Opensource Game Studio</name></author><id>tag:opengamestudio.org,2018-08-21:/examples-and-dependencies.html</id><summary type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-08-21-examples-and-dependencies.png"></p> | |||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Opensource Game Studio</title><link href="http://opengamestudio.org/" rel="alternate"></link><link href="http://opengamestudio.org/feeds/all.atom.xml" rel="self"></link><id>http://opengamestudio.org/</id><updated>2018-10-02T00:00:00+03:00</updated><entry><title>OGS Mahjong 2: Demo 2</title><link href="http://opengamestudio.org/mahjong-demo2.html" rel="alternate"></link><published>2018-10-02T00:00:00+03:00</published><updated>2018-10-02T00:00:00+03:00</updated><author><name>Opensource Game Studio</name></author><id>tag:opengamestudio.org,2018-10-02:/mahjong-demo2.html</id><summary type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong …</a></p></summary><content type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>You are encouraged to run the game with <code>seed</code> parameter like this: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>This allows you to play the same layout each time you launch the game.</p> | |||||
<p>Each seed uniquely identifies the placement of tiles. Thus, different seeds | |||||
give you a different experience.</p> | |||||
<p><strong>Development techniques and foundation</strong></p> | |||||
<p>During the second demonstration development, we switched from standard | |||||
development to <a href="http://opengamestudio.org/example-driven-development.html">example-driven one</a>. This resulted in the | |||||
creation of three distinct repositories to back the development of OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> repository provides cross-platform foundation like resource handling, render window setup, etc.</li> | |||||
<li><a href="https://github.com/OGStudio/ogs-mahjong-components">OGS Mahjong components</a> repository provides Mahjong specific functionality like parsing layout, matching tiles, etc.</li> | |||||
<li><a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> repository contains snapshots of <code>OGS Mahjong components</code> features that comprise specific game version. E.g., <code>Demo 2</code> version is almost identical to <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> example of <code>OGS Mahjong components</code>.</li> | |||||
</ul> | |||||
<p><strong>Beyond Mahjong solitaire</strong></p> | |||||
<p>In addition to <code>seed</code> parameter, you can let the game use remote layout hosted at GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&amp;layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&amp;layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Utilizing remote resources is an extremely powerful approach allowing anyone | |||||
to create a layout of his/her choice and see the layout in action instantly.</p> | |||||
<p>Our next step is to turn game logic into a resource, too.</p></content></entry><entry><title>OGS Mahjong 2: Demo 2</title><link href="http://opengamestudio.org/mahjong-demo2-ru.html" rel="alternate"></link><published>2018-10-02T00:00:00+03:00</published><updated>2018-10-02T00:00:00+03:00</updated><author><name>Opensource Game Studio</name></author><id>tag:opengamestudio.org,2018-10-02:/mahjong-demo2-ru.html</id><summary type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были | |||||
улучшение техники разработки и создание надёжной основы кроссплатформенной | |||||
разработки.</p> | |||||
<p><strong>Выпуск</strong></p> | |||||
<p>Запустите последний выпуск OGS Mahjong 2 в вашем браузере: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>Рекомендуем запускать игру с параметром <code>seed</code> следующим образом: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong …</a></p></summary><content type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были | |||||
улучшение техники разработки и создание надёжной основы кроссплатформенной | |||||
разработки.</p> | |||||
<p><strong>Выпуск</strong></p> | |||||
<p>Запустите последний выпуск OGS Mahjong 2 в вашем браузере: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>Рекомендуем запускать игру с параметром <code>seed</code> следующим образом: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>Это позволяет вам играть в ту же самую раскладку после перезапуска.</p> | |||||
<p>Каждое значение зерна (seed) однозначно задаёт расположение фишек, так что | |||||
разные значения зерна дают разнообразие партий.</p> | |||||
<p><strong>Техника разработки и основа</strong></p> | |||||
<p>Во время разработки второй демонстрации мы перешли с обычной разработки на | |||||
<a href="http://opengamestudio.org/example-driven-development.html">разработку через создание примеров</a>. Это привело к | |||||
появлению трёх различных хранилищ для обеспечения разработки OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li>Хранилище <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">кроссплатформенных примеров OpenSceneGraph</a> содержит основу вроде работы с ресурсами, создание графического окна и т.д.</li> | |||||
<li>Хранилище <a href="https://github.com/OGStudio/ogs-mahjong-components">компонент OGS Mahjong</a> содержит специфичную для Маджонга функциональность вроде разбора раскладки, сопоставления фишек и т.д.</li> | |||||
<li>Хранилище <a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> содержит снимок набора функциональностей <code>компонент OGS Mahjong</code>, которые определяют версию игры. Например, версия <code>Demo 2</code> почти полностью повторяет пример <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> из <code>компонент OGS Mahjong</code>.</li> | |||||
</ul> | |||||
<p><strong>За пределами пасьянса Маджонг</strong></p> | |||||
<p>В дополнение к параметру <code>seed</code> вы можете указать игре использовать удалённую | |||||
раскладку, расположенную на GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&amp;layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&amp;layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Использование удалённых ресурсов открывает огромные возможности, т.к. позволяет | |||||
любому желающему создать раскладку на свой вкус и моментально её проверить.</p> | |||||
<p>Наш следующий шаг - это выделение игровой логики в виде ресурса.</p></content></entry><entry><title>Examples and dependencies</title><link href="http://opengamestudio.org/examples-and-dependencies.html" rel="alternate"></link><published>2018-08-21T00:00:00+03:00</published><updated>2018-08-21T00:00:00+03:00</updated><author><name>Opensource Game Studio</name></author><id>tag:opengamestudio.org,2018-08-21:/examples-and-dependencies.html</id><summary type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-08-21-examples-and-dependencies.png"></p> | |||||
<p>This article describes two new OpenSceneGraph cross-platform examples and the | <p>This article describes two new OpenSceneGraph cross-platform examples and the | ||||
change in handling dependencies.</p> | change in handling dependencies.</p> | ||||
<p><strong>Examples of HTTP client and node selection</strong></p> | <p><strong>Examples of HTTP client and node selection</strong></p> | ||||
@@ -1,5 +1,37 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Opensource Game Studio - News</title><link href="http://opengamestudio.org/" rel="alternate"></link><link href="http://opengamestudio.org/feeds/news.atom.xml" rel="self"></link><id>http://opengamestudio.org/</id><updated>2018-08-21T00:00:00+03:00</updated><entry><title>Examples and dependencies</title><link href="http://opengamestudio.org/examples-and-dependencies.html" rel="alternate"></link><published>2018-08-21T00:00:00+03:00</published><updated>2018-08-21T00:00:00+03:00</updated><author><name>Opensource Game Studio</name></author><id>tag:opengamestudio.org,2018-08-21:/examples-and-dependencies.html</id><summary type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-08-21-examples-and-dependencies.png"></p> | |||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Opensource Game Studio - News</title><link href="http://opengamestudio.org/" rel="alternate"></link><link href="http://opengamestudio.org/feeds/news.atom.xml" rel="self"></link><id>http://opengamestudio.org/</id><updated>2018-10-02T00:00:00+03:00</updated><entry><title>OGS Mahjong 2: Demo 2</title><link href="http://opengamestudio.org/mahjong-demo2.html" rel="alternate"></link><published>2018-10-02T00:00:00+03:00</published><updated>2018-10-02T00:00:00+03:00</updated><author><name>Opensource Game Studio</name></author><id>tag:opengamestudio.org,2018-10-02:/mahjong-demo2.html</id><summary type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong …</a></p></summary><content type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>You are encouraged to run the game with <code>seed</code> parameter like this: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>This allows you to play the same layout each time you launch the game.</p> | |||||
<p>Each seed uniquely identifies the placement of tiles. Thus, different seeds | |||||
give you a different experience.</p> | |||||
<p><strong>Development techniques and foundation</strong></p> | |||||
<p>During the second demonstration development, we switched from standard | |||||
development to <a href="http://opengamestudio.org/example-driven-development.html">example-driven one</a>. This resulted in the | |||||
creation of three distinct repositories to back the development of OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> repository provides cross-platform foundation like resource handling, render window setup, etc.</li> | |||||
<li><a href="https://github.com/OGStudio/ogs-mahjong-components">OGS Mahjong components</a> repository provides Mahjong specific functionality like parsing layout, matching tiles, etc.</li> | |||||
<li><a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> repository contains snapshots of <code>OGS Mahjong components</code> features that comprise specific game version. E.g., <code>Demo 2</code> version is almost identical to <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> example of <code>OGS Mahjong components</code>.</li> | |||||
</ul> | |||||
<p><strong>Beyond Mahjong solitaire</strong></p> | |||||
<p>In addition to <code>seed</code> parameter, you can let the game use remote layout hosted at GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&amp;layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&amp;layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Utilizing remote resources is an extremely powerful approach allowing anyone | |||||
to create a layout of his/her choice and see the layout in action instantly.</p> | |||||
<p>Our next step is to turn game logic into a resource, too.</p></content></entry><entry><title>Examples and dependencies</title><link href="http://opengamestudio.org/examples-and-dependencies.html" rel="alternate"></link><published>2018-08-21T00:00:00+03:00</published><updated>2018-08-21T00:00:00+03:00</updated><author><name>Opensource Game Studio</name></author><id>tag:opengamestudio.org,2018-08-21:/examples-and-dependencies.html</id><summary type="html"><p><img alt="Screenshot" src="http://opengamestudio.org/2018-08-21-examples-and-dependencies.png"></p> | |||||
<p>This article describes two new OpenSceneGraph cross-platform examples and the | <p>This article describes two new OpenSceneGraph cross-platform examples and the | ||||
change in handling dependencies.</p> | change in handling dependencies.</p> | ||||
<p><strong>Examples of HTTP client and node selection</strong></p> | <p><strong>Examples of HTTP client and node selection</strong></p> | ||||
@@ -47,6 +47,51 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/mahjong-demo2.html"><h3 class="article-title">OGS Mahjong 2: Demo 2</h3></a> | |||||
<h6 class="subheader" title="2018-10-02T00:00:00+03:00">Вт 02 октября 2018 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/mahjong-demo2-ru.html">ru</a> | |||||
</h6><p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>You are encouraged to run the game with <code>seed</code> parameter like this: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>This allows you to play the same layout each time you launch the game.</p> | |||||
<p>Each seed uniquely identifies the placement of tiles. Thus, different seeds | |||||
give you a different experience.</p> | |||||
<p><strong>Development techniques and foundation</strong></p> | |||||
<p>During the second demonstration development, we switched from standard | |||||
development to <a href="http://opengamestudio.org/example-driven-development.html">example-driven one</a>. This resulted in the | |||||
creation of three distinct repositories to back the development of OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> repository provides cross-platform foundation like resource handling, render window setup, etc.</li> | |||||
<li><a href="https://github.com/OGStudio/ogs-mahjong-components">OGS Mahjong components</a> repository provides Mahjong specific functionality like parsing layout, matching tiles, etc.</li> | |||||
<li><a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> repository contains snapshots of <code>OGS Mahjong components</code> features that comprise specific game version. E.g., <code>Demo 2</code> version is almost identical to <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> example of <code>OGS Mahjong components</code>.</li> | |||||
</ul> | |||||
<p><strong>Beyond Mahjong solitaire</strong></p> | |||||
<p>In addition to <code>seed</code> parameter, you can let the game use remote layout hosted at GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Utilizing remote resources is an extremely powerful approach allowing anyone | |||||
to create a layout of his/her choice and see the layout in action instantly.</p> | |||||
<p>Our next step is to turn game logic into a resource, too.</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
</article> | |||||
<hr class="gradient"/> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/examples-and-dependencies.html"><h3 class="article-title">Examples and dependencies</h3></a> | <a href="http://opengamestudio.org/examples-and-dependencies.html"><h3 class="article-title">Examples and dependencies</h3></a> | ||||
<h6 class="subheader" title="2018-08-21T00:00:00+03:00">Вт 21 августа 2018 | <h6 class="subheader" title="2018-08-21T00:00:00+03:00">Вт 21 августа 2018 | ||||
@@ -58,66 +103,14 @@ change in handling dependencies.</p> | |||||
<p><strong>Examples of HTTP client and node selection</strong></p> | <p><strong>Examples of HTTP client and node selection</strong></p> | ||||
<p>Once we finished working on <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">the remote debugging example</a> and | <p>Once we finished working on <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">the remote debugging example</a> and | ||||
<a href="http://opengamestudio.org/example-driven-development.html">reported its completion</a>, we were surprised by the fact | <a href="http://opengamestudio.org/example-driven-development.html">reported its completion</a>, we were surprised by the fact | ||||
that secure HTTP connection between a debugged application and debug broker | |||||
was only working in the web version of the example. Desktop and mobile versions | |||||
only worked with insecure HTTP.</p> | |||||
<p>Since current debug scheme has no authentication, insecure debugging over HTTP | |||||
doesn't really hurt. However, if we want to access resources located at popular | |||||
sites like GitHub and BitBucket, we have to support secure HTTP.</p> | |||||
<p>The need to support HTTPS on each platform spurred us to create | |||||
<a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.HTTPClient">HTTP client example</a>. Turned out, each platform had its own | |||||
preferred way of doing secure HTTP:</p> | |||||
<ul> | |||||
<li>web (Emscripten) provides Fetch API</li> | |||||
<li>desktop is fine with Mongoose and OpenSSL</li> | |||||
<li>Android provides HttpUrlConnection in Java</li> | |||||
<li>iOS provides NSURLSession in Objective-C</li> | |||||
</ul> | |||||
<p>The need to support different languages on different platforms resulted | |||||
in the creation of so-called 'host-guest' pattern:</p> | |||||
<ul> | |||||
<li>guest (platform agnostic)<ul> | |||||
<li>provides networking representation</li> | |||||
<li>used by cross-platform C++ code</li> | |||||
</ul> | |||||
</li> | |||||
<li>host (specific platform)<ul> | |||||
<li>polls guest for pending requests</li> | |||||
<li>processes them</li> | |||||
<li>reports results back to the guest</li> | |||||
</ul> | |||||
</li> | |||||
</ul> | |||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/05.NodeSelection">Node selection example</a> was straightforward and caused no troubles.</p> | |||||
<p><strong>The change in handling dependencies</strong></p> | |||||
<p>For over a year we had to deal with the following | |||||
<a href="http://forum.openscenegraph.org/viewtopic.php?t=17443">shortcomings</a> when building OpenSceneGraph across platforms | |||||
using conventional methods:</p> | |||||
<ul> | |||||
<li>macOS builds failing due to certain compile flags we use</li> | |||||
<li>hacking PNG plugin safety guards to have PNG support under Android</li> | |||||
<li>iOS simulator and device builds of the same example being in separate Xcode projects</li> | |||||
<li>OpenSceneGraph taking 20-30 minutes to build</li> | |||||
</ul> | |||||
<p>These shortcomings were slowing us down and complicating the development of | |||||
new examples. Upon hitting these problems ten more times this month we decided | |||||
it was time to solve them once and for all. Now OpenSceneGraph is built as part | |||||
of each example in 2-3 minutes, and there's no more dependency magic involved. | |||||
We took the same approach of building dependencies as part of each example to | |||||
other external libraries like Mongoose and libpng-android, too.</p> | |||||
<p>With these obstacles out of the way, we can now iterate faster. Just in time | |||||
for the next technical demonstration of Mahjong 2!</p> | |||||
<p>That's it for describing two new OpenSceneGraph cross-platform examples and | |||||
the change in handling dependencies.</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
that secure HTTP connection between a debugged application and debug …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | </p> | ||||
</article> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/examples-and-dependencies.html">Read More</a> | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | |||||
@@ -308,26 +301,6 @@ It seems that this is the technology capable of …</p><p class="subheader">Cate | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/scripting-research.html"><h3 class="article-title">Scripting research</h3></a> | |||||
<h6 class="subheader" title="2017-08-16T00:00:00+03:00">Ср 16 августа 2017 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/scripting-research-ru.html">ru</a> | |||||
</h6><p><img alt="Scripting research" src="http://opengamestudio.org/2017-08-scripting-research.png"></p> | |||||
<p>This article describes scripting research in July 2017.</p> | |||||
<p><strong>Our first goal of using a scripting language was to have a platform-independent code that runs unchanged on every supported platform.</strong></p> | |||||
<p>OGS Editor 0.10 supports Python for such a code thanks to <a href="http://swig.org/">SWIG</a>. SWIG provides a way to wrap almost any …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/scripting-research.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 1 of 5</h6> | <h6 class="subheader">Page 1 of 5</h6> | ||||
@@ -48,6 +48,26 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/scripting-research.html"><h3 class="article-title">Scripting research</h3></a> | |||||
<h6 class="subheader" title="2017-08-16T00:00:00+03:00">Ср 16 августа 2017 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/scripting-research-ru.html">ru</a> | |||||
</h6><p><img alt="Scripting research" src="http://opengamestudio.org/2017-08-scripting-research.png"></p> | |||||
<p>This article describes scripting research in July 2017.</p> | |||||
<p><strong>Our first goal of using a scripting language was to have a platform-independent code that runs unchanged on every supported platform.</strong></p> | |||||
<p>OGS Editor 0.10 supports Python for such a code thanks to <a href="http://swig.org/">SWIG</a>. SWIG provides a way to wrap almost any …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/scripting-research.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html"><h3 class="article-title">OpenSceneGraph cross-platform guide</h3></a> | <a href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html"><h3 class="article-title">OpenSceneGraph cross-platform guide</h3></a> | ||||
<h6 class="subheader" title="2017-07-17T00:00:00+03:00">Пн 17 июля 2017 | <h6 class="subheader" title="2017-07-17T00:00:00+03:00">Пн 17 июля 2017 | ||||
@@ -222,27 +242,6 @@ In case you missed it, here's …</p><p class="subheader">Category: <a href="htt | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/2016-tech-showcases.html"><h3 class="article-title">Technology showcases</h3></a> | |||||
<h6 class="subheader" title="2016-10-31T00:00:00+03:00">Пн 31 октября 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/2016-tech-showcases-ru.html">ru</a> | |||||
</h6><p><img alt="TechShowcases" src="http://opengamestudio.org/2016-10-31_tech-showcases.png"></p> | |||||
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p> | |||||
<p><strong>2015 and 2016: live sessions.</strong></p> | |||||
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. | |||||
We have conducted …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/2016-tech-showcases.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 2 of 5</h6> | <h6 class="subheader">Page 2 of 5</h6> | ||||
@@ -48,6 +48,27 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/2016-tech-showcases.html"><h3 class="article-title">Technology showcases</h3></a> | |||||
<h6 class="subheader" title="2016-10-31T00:00:00+03:00">Пн 31 октября 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/2016-tech-showcases-ru.html">ru</a> | |||||
</h6><p><img alt="TechShowcases" src="http://opengamestudio.org/2016-10-31_tech-showcases.png"></p> | |||||
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p> | |||||
<p><strong>2015 and 2016: live sessions.</strong></p> | |||||
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. | |||||
We have conducted …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/2016-tech-showcases.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/2016-september-recap.html"><h3 class="article-title">September 2016 recap</h3></a> | <a href="http://opengamestudio.org/2016-september-recap.html"><h3 class="article-title">September 2016 recap</h3></a> | ||||
<h6 class="subheader" title="2016-10-11T00:00:00+03:00">Вт 11 октября 2016 | <h6 class="subheader" title="2016-10-11T00:00:00+03:00">Вт 11 октября 2016 | ||||
@@ -226,23 +247,6 @@ It's time to create simple Mahjong solitaire game.</p><p class="subheader">Categ | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/may-live-session-announcement.html"><h3 class="article-title">Live session: 28 May 2016</h3></a> | |||||
<h6 class="subheader" title="2016-05-17T00:00:00+03:00">Вт 17 мая 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/may-live-session-announcement-ru.html">ru</a> | |||||
</h6><p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+May+live+session&iso=20160528T12&p1=37&ah=3">28 May 2016 at 12:00 CEST</a>. Join us!</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/may-live-session-announcement.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 3 of 5</h6> | <h6 class="subheader">Page 3 of 5</h6> | ||||
@@ -48,6 +48,23 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/may-live-session-announcement.html"><h3 class="article-title">Live session: 28 May 2016</h3></a> | |||||
<h6 class="subheader" title="2016-05-17T00:00:00+03:00">Вт 17 мая 2016 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/may-live-session-announcement-ru.html">ru</a> | |||||
</h6><p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+May+live+session&iso=20160528T12&p1=37&ah=3">28 May 2016 at 12:00 CEST</a>. Join us!</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/may-live-session-announcement.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/may-live-session-decision.html"><h3 class="article-title">May live session (Editor 0.9)</h3></a> | <a href="http://opengamestudio.org/may-live-session-decision.html"><h3 class="article-title">May live session (Editor 0.9)</h3></a> | ||||
<h6 class="subheader" title="2016-04-24T00:00:00+03:00">Вс 24 апреля 2016 | <h6 class="subheader" title="2016-04-24T00:00:00+03:00">Вс 24 апреля 2016 | ||||
@@ -216,24 +233,6 @@ The exact date and time is …</p><p class="subheader">Category: <a href="http:/ | |||||
<hr class="gradient"/> | <hr class="gradient"/> | ||||
</article> | </article> | ||||
<article> | |||||
<a href="http://opengamestudio.org/bye-desura-hello-humblebundle.html"><h3 class="article-title">Desura no more, hello Humble Bundle Widget</h3></a> | |||||
<h6 class="subheader" title="2015-07-23T00:00:00+03:00">Чт 23 июля 2015 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/bye-desura-hello-humblebundle-ru.html">ru</a> | |||||
</h6><p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p> | |||||
<p>Here it …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/bye-desura-hello-humblebundle.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<!-- /#posts-list --> | <!-- /#posts-list --> | ||||
<div class="pagination-centered"> | <div class="pagination-centered"> | ||||
<h6 class="subheader">Page 4 of 5</h6> | <h6 class="subheader">Page 4 of 5</h6> | ||||
@@ -48,6 +48,24 @@ | |||||
<article> | |||||
<a href="http://opengamestudio.org/bye-desura-hello-humblebundle.html"><h3 class="article-title">Desura no more, hello Humble Bundle Widget</h3></a> | |||||
<h6 class="subheader" title="2015-07-23T00:00:00+03:00">Чт 23 июля 2015 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/bye-desura-hello-humblebundle-ru.html">ru</a> | |||||
</h6><p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p> | |||||
<p>Here it …</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
<a class="button radius secondary small right" href="http://opengamestudio.org/bye-desura-hello-humblebundle.html">Read More</a> | |||||
<hr class="gradient"/> | |||||
</article> | |||||
<article> | <article> | ||||
<a href="http://opengamestudio.org/test-chamber-for-everyone.html"><h3 class="article-title">Test chamber for everyone (Editor 0.7.0)</h3></a> | <a href="http://opengamestudio.org/test-chamber-for-everyone.html"><h3 class="article-title">Test chamber for everyone (Editor 0.7.0)</h3></a> | ||||
<h6 class="subheader" title="2015-07-22T00:00:00+03:00">Ср 22 июля 2015 | <h6 class="subheader" title="2015-07-22T00:00:00+03:00">Ср 22 июля 2015 | ||||
@@ -0,0 +1,154 @@ | |||||
<!DOCTYPE html> | |||||
<head> | |||||
<meta charset="utf-8" /> | |||||
<!-- Set the viewport width to device width for mobile --> | |||||
<meta name="viewport" content="width=device-width" /> | |||||
<title>OGS Mahjong 2: Demo 2</title> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/normalize.css" /> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/foundation.min.css" /> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/style.css" /> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/pygments.css" /> | |||||
<script src="http://opengamestudio.org/theme/js/custom.modernizr.js"></script> | |||||
<!-- So Firefox can bookmark->"abo this site" --> | |||||
<link href="feeds/all.atom.xml" rel="alternate" title="Opensource Game Studio" type="application/atom+xml"> | |||||
</head> | |||||
<body> | |||||
<!-- Nav Bar --> | |||||
<nav> | |||||
<!-- Show menu items and pages --> | |||||
<div class="row"> | |||||
<div class="large-12 columns top-bar"> | |||||
<h1><a href="http://opengamestudio.org">Opensource Game Studio</a></h1> | |||||
</div> | |||||
</div> | |||||
<div class="row top-menu"> | |||||
<div class="large-12 columns"> | |||||
<a href="/pages/projects.html" class="menu-button secondary">Projects</a> | |||||
<a href="/pages/about.html" class="menu-button secondary">About</a> | |||||
</div> | |||||
</div> | |||||
</nav> | |||||
<!-- End Nav --> | |||||
<!-- Main Page Content and Sidebar --> | |||||
<div class="row"> | |||||
<!-- Main Blog Content --> | |||||
<div class="large-9 columns"> | |||||
<article> | |||||
<header> | |||||
<h3 class="article-title"><a href="http://opengamestudio.org/mahjong-demo2-ru.html" rel="bookmark" | |||||
title="Permalink to OGS Mahjong 2: Demo 2">OGS Mahjong 2: Demo 2</a></h3> | |||||
</header> | |||||
<h6 class="subheader" title="2018-10-02T00:00:00+03:00">Вт 02 октября 2018 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/mahjong-demo2.html">en</a> | |||||
</h6> <p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были | |||||
улучшение техники разработки и создание надёжной основы кроссплатформенной | |||||
разработки.</p> | |||||
<p><strong>Выпуск</strong></p> | |||||
<p>Запустите последний выпуск OGS Mahjong 2 в вашем браузере: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>Рекомендуем запускать игру с параметром <code>seed</code> следующим образом: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>Это позволяет вам играть в ту же самую раскладку после перезапуска.</p> | |||||
<p>Каждое значение зерна (seed) однозначно задаёт расположение фишек, так что | |||||
разные значения зерна дают разнообразие партий.</p> | |||||
<p><strong>Техника разработки и основа</strong></p> | |||||
<p>Во время разработки второй демонстрации мы перешли с обычной разработки на | |||||
<a href="http://opengamestudio.org/example-driven-development.html">разработку через создание примеров</a>. Это привело к | |||||
появлению трёх различных хранилищ для обеспечения разработки OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li>Хранилище <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">кроссплатформенных примеров OpenSceneGraph</a> содержит основу вроде работы с ресурсами, создание графического окна и т.д.</li> | |||||
<li>Хранилище <a href="https://github.com/OGStudio/ogs-mahjong-components">компонент OGS Mahjong</a> содержит специфичную для Маджонга функциональность вроде разбора раскладки, сопоставления фишек и т.д.</li> | |||||
<li>Хранилище <a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> содержит снимок набора функциональностей <code>компонент OGS Mahjong</code>, которые определяют версию игры. Например, версия <code>Demo 2</code> почти полностью повторяет пример <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> из <code>компонент OGS Mahjong</code>.</li> | |||||
</ul> | |||||
<p><strong>За пределами пасьянса Маджонг</strong></p> | |||||
<p>В дополнение к параметру <code>seed</code> вы можете указать игре использовать удалённую | |||||
раскладку, расположенную на GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Использование удалённых ресурсов открывает огромные возможности, т.к. позволяет | |||||
любому желающему создать раскладку на свой вкус и моментально её проверить.</p> | |||||
<p>Наш следующий шаг - это выделение игровой логики в виде ресурса.</p> | |||||
<p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
</article> | |||||
</div> | |||||
<!-- End Main Content --> | |||||
<!-- Sidebar --> | |||||
<aside class="large-3 columns"> | |||||
<!--k | |||||
<h5 class="sidebar-title">Site</h5> | |||||
<ul class="side-nav"> | |||||
<li><a href="http://opengamestudio.org/archives.html">Archives</a> | |||||
<li><a href="http://opengamestudio.org/tags.html">Tags</a> | |||||
<li><a href="http://opengamestudio.org/feeds/all.atom.xml" rel="alternate">Atom feed</a></li> | |||||
</ul> | |||||
<h5 class="sidebar-title">Categories</h5> | |||||
<ul class="side-nav"> | |||||
<li><a href="http://opengamestudio.org/category/news.html">News</a></li> | |||||
</ul> | |||||
--> | |||||
<h5 class="sidebar-title">Ads</h5> | |||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> | |||||
<!-- ogs2 --> | |||||
<ins class="adsbygoogle" | |||||
style="display:block" | |||||
data-ad-client="ca-pub-4473792248813084" | |||||
data-ad-slot="9024247127" | |||||
data-ad-format="auto"></ins> | |||||
<script> | |||||
(adsbygoogle = window.adsbygoogle || []).push({}); | |||||
</script> | |||||
</aside> <!-- End Sidebar --> | |||||
</div> <!-- End Main Content and Sidebar --> | |||||
<!-- Footer --> | |||||
<footer class="row"> | |||||
<div class="large-12 columns"> | |||||
<hr /> | |||||
<div class="row"> | |||||
<div class="large-7 columns"> | |||||
<p>Proudly powered by <a href="http://getpelican.com">Pelican</a>, which takes great advantage of <a href="http://python.org">Python</a>.</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<script type="text/javascript"> | |||||
var _gaq = _gaq || []; | |||||
_gaq.push(['_setAccount', 'UA-3773114-1']); | |||||
_gaq.push(['_trackPageview']); | |||||
(function() { | |||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | |||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | |||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | |||||
})(); | |||||
</script> | |||||
</footer> |
@@ -0,0 +1,153 @@ | |||||
<!DOCTYPE html> | |||||
<head> | |||||
<meta charset="utf-8" /> | |||||
<!-- Set the viewport width to device width for mobile --> | |||||
<meta name="viewport" content="width=device-width" /> | |||||
<title>OGS Mahjong 2: Demo 2</title> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/normalize.css" /> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/foundation.min.css" /> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/style.css" /> | |||||
<link rel="stylesheet" href="http://opengamestudio.org/theme/css/pygments.css" /> | |||||
<script src="http://opengamestudio.org/theme/js/custom.modernizr.js"></script> | |||||
<!-- So Firefox can bookmark->"abo this site" --> | |||||
<link href="feeds/all.atom.xml" rel="alternate" title="Opensource Game Studio" type="application/atom+xml"> | |||||
</head> | |||||
<body> | |||||
<!-- Nav Bar --> | |||||
<nav> | |||||
<!-- Show menu items and pages --> | |||||
<div class="row"> | |||||
<div class="large-12 columns top-bar"> | |||||
<h1><a href="http://opengamestudio.org">Opensource Game Studio</a></h1> | |||||
</div> | |||||
</div> | |||||
<div class="row top-menu"> | |||||
<div class="large-12 columns"> | |||||
<a href="/pages/projects.html" class="menu-button secondary">Projects</a> | |||||
<a href="/pages/about.html" class="menu-button secondary">About</a> | |||||
</div> | |||||
</div> | |||||
</nav> | |||||
<!-- End Nav --> | |||||
<!-- Main Page Content and Sidebar --> | |||||
<div class="row"> | |||||
<!-- Main Blog Content --> | |||||
<div class="large-9 columns"> | |||||
<article> | |||||
<header> | |||||
<h3 class="article-title"><a href="http://opengamestudio.org/mahjong-demo2.html" rel="bookmark" | |||||
title="Permalink to OGS Mahjong 2: Demo 2">OGS Mahjong 2: Demo 2</a></h3> | |||||
</header> | |||||
<h6 class="subheader" title="2018-10-02T00:00:00+03:00">Вт 02 октября 2018 | |||||
<a class="button secondary small translation-button" href="http://opengamestudio.org/mahjong-demo2-ru.html">ru</a> | |||||
</h6> <p><img alt="Screenshot" src="http://opengamestudio.org/2018-10-02-mahjong-demo2.png"></p> | |||||
<p>We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation.</p> | |||||
<p><strong>Release</strong></p> | |||||
<p>Run the latest version of OGS Mahjong 2 in your web browser: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong">http://ogstudio.github.io/ogs-mahjong</a></p> | |||||
<p>You are encouraged to run the game with <code>seed</code> parameter like this: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0">http://ogstudio.github.io/ogs-mahjong?seed=0</a></p> | |||||
<p>This allows you to play the same layout each time you launch the game.</p> | |||||
<p>Each seed uniquely identifies the placement of tiles. Thus, different seeds | |||||
give you a different experience.</p> | |||||
<p><strong>Development techniques and foundation</strong></p> | |||||
<p>During the second demonstration development, we switched from standard | |||||
development to <a href="http://opengamestudio.org/example-driven-development.html">example-driven one</a>. This resulted in the | |||||
creation of three distinct repositories to back the development of OGS Mahjong 2:</p> | |||||
<ul> | |||||
<li><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> repository provides cross-platform foundation like resource handling, render window setup, etc.</li> | |||||
<li><a href="https://github.com/OGStudio/ogs-mahjong-components">OGS Mahjong components</a> repository provides Mahjong specific functionality like parsing layout, matching tiles, etc.</li> | |||||
<li><a href="https://bitbucket.org/ogstudio-games/ogs-mahjong">OGS Mahjong</a> repository contains snapshots of <code>OGS Mahjong components</code> features that comprise specific game version. E.g., <code>Demo 2</code> version is almost identical to <a href="https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus">05.ColorfulStatus</a> example of <code>OGS Mahjong components</code>.</li> | |||||
</ul> | |||||
<p><strong>Beyond Mahjong solitaire</strong></p> | |||||
<p>In addition to <code>seed</code> parameter, you can let the game use remote layout hosted at GitHub: | |||||
<a href="http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout">http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout</a></p> | |||||
<p>Utilizing remote resources is an extremely powerful approach allowing anyone | |||||
to create a layout of his/her choice and see the layout in action instantly.</p> | |||||
<p>Our next step is to turn game logic into a resource, too.</p> | |||||
<p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a> | |||||
</p> | |||||
</article> | |||||
</div> | |||||
<!-- End Main Content --> | |||||
<!-- Sidebar --> | |||||
<aside class="large-3 columns"> | |||||
<!--k | |||||
<h5 class="sidebar-title">Site</h5> | |||||
<ul class="side-nav"> | |||||
<li><a href="http://opengamestudio.org/archives.html">Archives</a> | |||||
<li><a href="http://opengamestudio.org/tags.html">Tags</a> | |||||
<li><a href="http://opengamestudio.org/feeds/all.atom.xml" rel="alternate">Atom feed</a></li> | |||||
</ul> | |||||
<h5 class="sidebar-title">Categories</h5> | |||||
<ul class="side-nav"> | |||||
<li><a href="http://opengamestudio.org/category/news.html">News</a></li> | |||||
</ul> | |||||
--> | |||||
<h5 class="sidebar-title">Ads</h5> | |||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> | |||||
<!-- ogs2 --> | |||||
<ins class="adsbygoogle" | |||||
style="display:block" | |||||
data-ad-client="ca-pub-4473792248813084" | |||||
data-ad-slot="9024247127" | |||||
data-ad-format="auto"></ins> | |||||
<script> | |||||
(adsbygoogle = window.adsbygoogle || []).push({}); | |||||
</script> | |||||
</aside> <!-- End Sidebar --> | |||||
</div> <!-- End Main Content and Sidebar --> | |||||
<!-- Footer --> | |||||
<footer class="row"> | |||||
<div class="large-12 columns"> | |||||
<hr /> | |||||
<div class="row"> | |||||
<div class="large-7 columns"> | |||||
<p>Proudly powered by <a href="http://getpelican.com">Pelican</a>, which takes great advantage of <a href="http://python.org">Python</a>.</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<script type="text/javascript"> | |||||
var _gaq = _gaq || []; | |||||
_gaq.push(['_setAccount', 'UA-3773114-1']); | |||||
_gaq.push(['_trackPageview']); | |||||
(function() { | |||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | |||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | |||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | |||||
})(); | |||||
</script> | |||||
</footer> |
@@ -0,0 +1,54 @@ | |||||
Title: OGS Mahjong 2: Demo 2 | |||||
Date: 2018-10-02 00:00 | |||||
Category: News | |||||
Slug: mahjong-demo2 | |||||
Lang: ru | |||||
![Screenshot][screenshot] | |||||
Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были | |||||
улучшение техники разработки и создание надёжной основы кроссплатформенной | |||||
разработки. | |||||
**Выпуск** | |||||
Запустите последний выпуск OGS Mahjong 2 в вашем браузере: | |||||
[http://ogstudio.github.io/ogs-mahjong](http://ogstudio.github.io/ogs-mahjong) | |||||
Рекомендуем запускать игру с параметром `seed` следующим образом: | |||||
[http://ogstudio.github.io/ogs-mahjong?seed=0](http://ogstudio.github.io/ogs-mahjong?seed=0) | |||||
Это позволяет вам играть в ту же самую раскладку после перезапуска. | |||||
Каждое значение зерна (seed) однозначно задаёт расположение фишек, так что | |||||
разные значения зерна дают разнообразие партий. | |||||
**Техника разработки и основа** | |||||
Во время разработки второй демонстрации мы перешли с обычной разработки на | |||||
[разработку через создание примеров][article-2018-june]. Это привело к | |||||
появлению трёх различных хранилищ для обеспечения разработки OGS Mahjong 2: | |||||
* Хранилище [кроссплатформенных примеров OpenSceneGraph][osgcpe] содержит основу вроде работы с ресурсами, создание графического окна и т.д. | |||||
* Хранилище [компонент OGS Mahjong][omc] содержит специфичную для Маджонга функциональность вроде разбора раскладки, сопоставления фишек и т.д. | |||||
* Хранилище [OGS Mahjong][ogs-mahjong] содержит снимок набора функциональностей `компонент OGS Mahjong`, которые определяют версию игры. Например, версия `Demo 2` почти полностью повторяет пример [05.ColorfulStatus][omc-05] из `компонент OGS Mahjong`. | |||||
**За пределами пасьянса Маджонг** | |||||
В дополнение к параметру `seed` вы можете указать игре использовать удалённую | |||||
раскладку, расположенную на GitHub: | |||||
[http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout](http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout) | |||||
Использование удалённых ресурсов открывает огромные возможности, т.к. позволяет | |||||
любому желающему создать раскладку на свой вкус и моментально её проверить. | |||||
Наш следующий шаг - это выделение игровой логики в виде ресурса. | |||||
[screenshot]: {attach}/images/2018-10-02-mahjong-demo2.png | |||||
[article-2018-june]: {filename}/articles/2018-06-27-example-driven-development.md | |||||
[osgcpe]: https://github.com/OGStudio/openscenegraph-cross-platform-examples | |||||
[omc]: https://github.com/OGStudio/ogs-mahjong-components | |||||
[ogs-mahjong]: https://bitbucket.org/ogstudio-games/ogs-mahjong | |||||
[omc-05]: https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus |
@@ -0,0 +1,52 @@ | |||||
Title: OGS Mahjong 2: Demo 2 | |||||
Date: 2018-10-02 00:00 | |||||
Category: News | |||||
Slug: mahjong-demo2 | |||||
Lang: en | |||||
![Screenshot][screenshot] | |||||
We are glad to announce the release of the second demonstration of OGS Mahjong 2. | |||||
The purposes of this release were to refine our development techniques and | |||||
build a solid cross-platform foundation. | |||||
**Release** | |||||
Run the latest version of OGS Mahjong 2 in your web browser: | |||||
[http://ogstudio.github.io/ogs-mahjong](http://ogstudio.github.io/ogs-mahjong) | |||||
You are encouraged to run the game with `seed` parameter like this: | |||||
[http://ogstudio.github.io/ogs-mahjong?seed=0](http://ogstudio.github.io/ogs-mahjong?seed=0) | |||||
This allows you to play the same layout each time you launch the game. | |||||
Each seed uniquely identifies the placement of tiles. Thus, different seeds | |||||
give you a different experience. | |||||
**Development techniques and foundation** | |||||
During the second demonstration development, we switched from standard | |||||
development to [example-driven one][article-2018-june]. This resulted in the | |||||
creation of three distinct repositories to back the development of OGS Mahjong 2: | |||||
* [OpenSceneGraph cross-platform examples][osgcpe] repository provides cross-platform foundation like resource handling, render window setup, etc. | |||||
* [OGS Mahjong components][omc] repository provides Mahjong specific functionality like parsing layout, matching tiles, etc. | |||||
* [OGS Mahjong][ogs-mahjong] repository contains snapshots of `OGS Mahjong components` features that comprise specific game version. E.g., `Demo 2` version is almost identical to [05.ColorfulStatus][omc-05] example of `OGS Mahjong components`. | |||||
**Beyond Mahjong solitaire** | |||||
In addition to `seed` parameter, you can let the game use remote layout hosted at GitHub: | |||||
[http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout](http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout) | |||||
Utilizing remote resources is an extremely powerful approach allowing anyone | |||||
to create a layout of his/her choice and see the layout in action instantly. | |||||
Our next step is to turn game logic into a resource, too. | |||||
[screenshot]: {attach}/images/2018-10-02-mahjong-demo2.png | |||||
[article-2018-june]: {filename}/articles/2018-06-27-example-driven-development.md | |||||
[osgcpe]: https://github.com/OGStudio/openscenegraph-cross-platform-examples | |||||
[omc]: https://github.com/OGStudio/ogs-mahjong-components | |||||
[ogs-mahjong]: https://bitbucket.org/ogstudio-games/ogs-mahjong | |||||
[omc-05]: https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus |