You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

387 lines
18KB

  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8" />
  4. <!-- Set the viewport width to device width for mobile -->
  5. <meta name="viewport" content="width=device-width" />
  6. <title>Opensource Game Studio</title>
  7. <link rel="stylesheet" href="http://opengamestudio.org/theme/css/normalize.css" />
  8. <link rel="stylesheet" href="http://opengamestudio.org/theme/css/foundation.min.css" />
  9. <link rel="stylesheet" href="http://opengamestudio.org/theme/css/style.css" />
  10. <link rel="stylesheet" href="http://opengamestudio.org/theme/css/pygments.css" />
  11. <script src="http://opengamestudio.org/theme/js/custom.modernizr.js"></script>
  12. <!-- So Firefox can bookmark->"abo this site" -->
  13. <link href="feeds/all.atom.xml" rel="alternate" title="Opensource Game Studio" type="application/atom+xml">
  14. </head>
  15. <body>
  16. <!-- Nav Bar -->
  17. <nav>
  18. <!-- Show menu items and pages -->
  19. <div class="row">
  20. <div class="large-12 columns top-bar">
  21. <h1><a href="http://opengamestudio.org">Opensource Game Studio</a></h1>
  22. </div>
  23. </div>
  24. <div class="row top-menu">
  25. <div class="large-12 columns">
  26. <a href="/pages/projects.html" class="menu-button secondary">Projects</a>
  27. <a href="/pages/about.html" class="menu-button secondary">About</a>
  28. </div>
  29. </div>
  30. </nav>
  31. <!-- End Nav -->
  32. <!-- Main Page Content and Sidebar -->
  33. <div class="row">
  34. <!-- Main Blog Content -->
  35. <div class="large-9 columns">
  36. <article>
  37. <a href="http://opengamestudio.org/example-driven-development.html"><h3 class="article-title">Example-driven development</h3></a>
  38. <h6 class="subheader" title="2018-06-27T00:00:00+03:00">Ср 27 Июнь 2018
  39. <a class="button secondary small translation-button" href="http://opengamestudio.org/example-driven-development-ru.html">ru</a>
  40. </h6><p><img alt="Screenshot" src="http://opengamestudio.org/2018-06-27-example-driven-development.png" /></p>
  41. <p>This article explains how the third OpenSceneGraph cross-platform example
  42. opened our eyes to example-driven development.</p>
  43. <p><strong>The third OpenSceneGraph cross-platform example</strong></p>
  44. <p>The third OpenSceneGraph cross-platform example explains how to implement
  45. <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.RemoteDebugging">remote debugging across platforms</a>. This example is less about
  46. OpenSceneGraph and more about different platforms.</p>
  47. <p>Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the
  48. first idea was to embed HTTP server into an application and let HTTP clients
  49. interact with the server. However, serving HTTP across all platforms is
  50. complicated:</p>
  51. <ul>
  52. <li>desktops have firewalls</li>
  53. <li>mobiles have restrictions on background processes</li>
  54. <li>web browsers are HTTP clients by design</li>
  55. </ul>
  56. <p>That's why we decided to create a mediator between debugged application and UI.
  57. <a href="https://github.com/OGStudio/debug-broker">Debug broker</a>, a small Node.js application, became that mediator.
  58. Debug broker uses no external dependencies, so it's easy to run virtually
  59. anywhere. Also, since debug broker is a server application, you can configure
  60. it once and use it for any number of applications.</p>
  61. <p>Both <a href="https://github.com/OGStudio/debug-ui">debug UI</a> and <a href="https://github.com/OGStudio/debug-broker">debug broker</a> use JavaScript
  62. because we wanted these tools to be accessible from anywhere with no prior
  63. installation. This decision limited us to web browser solution. Providing
  64. any sort of desktop application would incur additional installation and
  65. maintenance effort, which would only complicate the tools.</p>
  66. <p><strong>Example-driven development establishment</strong></p>
  67. <p>Once the third example was implemented, we realized how important and
  68. beneficial it is to develop new features outside the main project:</p>
  69. <ul>
  70. <li>the main project is freed from excessive commit noise</li>
  71. <li>a new feature is publicly shared for everyone to learn, criticize, and improve</li>
  72. </ul>
  73. <p>When we publicly share our knowledge:</p>
  74. <ul>
  75. <li>we must create documentation for everyone (including ourselves later) to understand what's going on</li>
  76. <li>we must not use hacks because that would break your trust in us</li>
  77. </ul>
  78. <p>From now on, all new features like input handling, Mahjong layout loading,
  79. resource caching, etc. are going to be first implemented as examples.
  80. We call this example-driven development.</p>
  81. <p>That's it for explaining how the third OpenSceneGraph cross-platform example
  82. opened our eyes to example-driven development.</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  83. </p>
  84. </article>
  85. <hr class="gradient"/>
  86. <article>
  87. <a href="http://opengamestudio.org/openscenegraph-examples.html"><h3 class="article-title">OpenSceneGraph cross-platform examples</h3></a>
  88. <h6 class="subheader" title="2018-04-20T00:00:00+03:00">Пт 20 Апрель 2018
  89. <a class="button secondary small translation-button" href="http://opengamestudio.org/openscenegraph-examples-ru.html">ru</a>
  90. </h6><p><img alt="Screenshot" src="http://opengamestudio.org/2018-04-20-openscenegraph-examples.png" /></p>
  91. <p>This article summarizes the work we did to produce the first two
  92. cross-platform OpenSceneGraph examples.</p>
  93. <p>By the time <a href="http://opengamestudio.org/mahjong-techdemo1-gameplay.html">the first technology demonstration of OGS Mahjong 2</a>
  94. has been released, we've already had <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues/4">issue request</a>
  95. (to explain how to load images with OpenSceneGraph on Android) hanging for some
  96. time. We ...</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  97. </p>
  98. <a class="button radius secondary small right" href="http://opengamestudio.org/openscenegraph-examples.html">Read More</a>
  99. <hr class="gradient"/>
  100. </article>
  101. <article>
  102. <a href="http://opengamestudio.org/mahjong-techdemo1-gameplay.html"><h3 class="article-title">First techdemo of OGS Mahjong 2: Gameplay</h3></a>
  103. <h6 class="subheader" title="2018-02-16T00:00:00+03:00">Пт 16 Февраль 2018
  104. <a class="button secondary small translation-button" href="http://opengamestudio.org/mahjong-techdemo1-gameplay-ru.html">ru</a>
  105. </h6><p><img alt="Screenshot" src="http://opengamestudio.org/2018-02-16-mahjong-techdemo1-gameplay.png" /></p>
  106. <p>We are glad to announce the release of the first technical demonstration of
  107. OGS Mahjong 2. The purpose of this release was to verify gameplay across
  108. supported platforms.</p>
  109. <p>Get techdemo for your platform:</p>
  110. <ul>
  111. <li>Run <a href="https://ogstudio.github.io/game-mahjong/versions/013/mjin-player.html">Web version</a> in your browser</li>
  112. <li>Get <a href="https://drive.google.com/open?id=1KW8IEN8Dpz8ODeg8BctVSJyzj9-AL9hR">Android version</a></li>
  113. <li>Get <a href="https://drive.google.com/open?id=1oj0-OXSmEatttzn86u2vgP9SRAIC0ozB">Windows version</a></li>
  114. <li>Get <a href="https://drive.google.com/open?id=1EX7kLIThLiMz9_W7VmBPySms3mlrF-i6">Linux version</a></li>
  115. <li>Get <a href="https://drive.google.com/open?id=1KWnvbHzan8MpMcZPG2QC-7KWoEYbqrM2">macOS ...</a></li></ul><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  116. </p>
  117. <a class="button radius secondary small right" href="http://opengamestudio.org/mahjong-techdemo1-gameplay.html">Read More</a>
  118. <hr class="gradient"/>
  119. </article>
  120. <article>
  121. <a href="http://opengamestudio.org/mahjong-recreation-start.html"><h3 class="article-title">Mahjong recreation start</h3></a>
  122. <h6 class="subheader" title="2018-01-26T00:00:00+03:00">Пт 26 Январь 2018
  123. <a class="button secondary small translation-button" href="http://opengamestudio.org/mahjong-recreation-start-ru.html">ru</a>
  124. </h6><p><img alt="Screenshot" src="http://opengamestudio.org/2018-01-26-mahjong-recreation-start.png" /></p>
  125. <p>This article describes the start of Mahjong game recreation.</p>
  126. <p><strong>Plan</strong></p>
  127. <p>We started Mahjong recreation endeavour by composing a brief plan to get gameplay with minimal graphics:</p>
  128. <ul>
  129. <li>Load single layout</li>
  130. <li>Place tiles in layout positions</li>
  131. <li>Distinguish tiles</li>
  132. <li>Implement selection</li>
  133. <li>Implement matching</li>
  134. </ul>
  135. <p>Just like any other plan, this one looked fine at ...</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  136. </p>
  137. <a class="button radius secondary small right" href="http://opengamestudio.org/mahjong-recreation-start.html">Read More</a>
  138. <hr class="gradient"/>
  139. </article>
  140. <article>
  141. <a href="http://opengamestudio.org/the-year-of-lessons.html"><h3 class="article-title">The year of lessons</h3></a>
  142. <h6 class="subheader" title="2017-12-31T22:00:00+03:00">Вс 31 Декабрь 2017
  143. <a class="button secondary small translation-button" href="http://opengamestudio.org/the-year-of-lessons-ru.html">ru</a>
  144. </h6><p><img alt="Screenshot" src="http://opengamestudio.org/2017-12-31-celebration.jpg" /></p>
  145. <p>So, the year 2017 is approaching its finale, the year's results have already
  146. been summed up. We're going to take a break from igniting the fireworks or
  147. preparation of the champagne so that we can designate our goal for the
  148. following year.</p>
  149. <p>As it may be clear from ...</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  150. </p>
  151. <a class="button radius secondary small right" href="http://opengamestudio.org/the-year-of-lessons.html">Read More</a>
  152. <hr class="gradient"/>
  153. </article>
  154. <article>
  155. <a href="http://opengamestudio.org/2017-summary.html"><h3 class="article-title">2017 summary</h3></a>
  156. <h6 class="subheader" title="2017-11-22T00:00:00+03:00">Ср 22 Ноябрь 2017
  157. <a class="button secondary small translation-button" href="http://opengamestudio.org/2017-summary-ru.html">ru</a>
  158. </h6><p><img alt="Screenshot" src="http://opengamestudio.org/2017-11-22-2017-summary.png" /></p>
  159. <p>It's time to step back to see our accomplishments in 2017 and how they connect to the overall goal of Opensource Game Studio project.</p>
  160. <p><strong>Brief history</strong></p>
  161. <p>Opensource Game Studio project is 12 years old now.</p>
  162. <p><strong>2005.</strong> We started the project with a <a href="https://www.linuxquestions.org/questions/general-10/the-creation-of-the-best-rpg-355858/">fanatic call</a> to create the best game ...</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  163. </p>
  164. <a class="button radius secondary small right" href="http://opengamestudio.org/2017-summary.html">Read More</a>
  165. <hr class="gradient"/>
  166. </article>
  167. <article>
  168. <a href="http://opengamestudio.org/back-to-the-static.html"><h3 class="article-title">Back to the Static</h3></a>
  169. <h6 class="subheader" title="2017-10-16T00:00:00+03:00">Пн 16 Октябрь 2017
  170. <a class="button secondary small translation-button" href="http://opengamestudio.org/back-to-the-static-ru.html">ru</a>
  171. </h6><p><img alt="Back to the Static" src="http://opengamestudio.org/2017-10-16-back-to-the-static.png" /></p>
  172. <p>We have been using Wordpress as our website engine for more than seven years. And now it's time to move forward. Or backward.
  173. For some time we've been tracking the development of the new breed of website engines - static site generators.
  174. It seems that this is the technology ...</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  175. </p>
  176. <a class="button radius secondary small right" href="http://opengamestudio.org/back-to-the-static.html">Read More</a>
  177. <hr class="gradient"/>
  178. </article>
  179. <article>
  180. <a href="http://opengamestudio.org/mjin-world-birth.html"><h3 class="article-title">The birth of MJIN world</h3></a>
  181. <h6 class="subheader" title="2017-09-10T00:00:00+03:00">Вс 10 Сентябрь 2017
  182. <a class="button secondary small translation-button" href="http://opengamestudio.org/mjin-world-birth-ru.html">ru</a>
  183. </h6><p><img alt="The birth of MJIN world" src="http://opengamestudio.org/2017-09-mjin-world-birth.png" /></p>
  184. <p>This article describes the birth of MJIN world in August 2017.</p>
  185. <p><strong>mjin-player</strong></p>
  186. <p>As you know, <a href="http://opengamestudio.org/scripting-research.html">we spent July to research scripting</a>. We found a solution that satisfies the following criteria. Scripts should:</p>
  187. <ol>
  188. <li>run unchanged on all supported platforms</li>
  189. <li>allow extending C++ code</li>
  190. </ol>
  191. <p>We have verified the second criterion by writing ...</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  192. </p>
  193. <a class="button radius secondary small right" href="http://opengamestudio.org/mjin-world-birth.html">Read More</a>
  194. <hr class="gradient"/>
  195. </article>
  196. <article>
  197. <a href="http://opengamestudio.org/scripting-research.html"><h3 class="article-title">Scripting research</h3></a>
  198. <h6 class="subheader" title="2017-08-16T00:00:00+03:00">Ср 16 Август 2017
  199. <a class="button secondary small translation-button" href="http://opengamestudio.org/scripting-research-ru.html">ru</a>
  200. </h6><p><img alt="Scripting research" src="http://opengamestudio.org/2017-08-scripting-research.png" /></p>
  201. <p>This article describes scripting research in July 2017.</p>
  202. <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>
  203. <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>
  204. </p>
  205. <a class="button radius secondary small right" href="http://opengamestudio.org/scripting-research.html">Read More</a>
  206. <hr class="gradient"/>
  207. </article>
  208. <article>
  209. <a href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html"><h3 class="article-title">OpenSceneGraph cross-platform guide</h3></a>
  210. <h6 class="subheader" title="2017-07-17T00:00:00+03:00">Пн 17 Июль 2017
  211. <a class="button secondary small translation-button" href="http://opengamestudio.org/openscenegraph-cross-platform-guide-ru.html">ru</a>
  212. </h6><p><img alt="OpenSceneGraph guide" src="http://opengamestudio.org/2017-07-openscenegraph-guide.png" /></p>
  213. <p>This article summarizes the work we did to produce OpenSceneGraph cross-platform guide.</p>
  214. <p>June marked the finish of <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">OpenSceneGraph cross-platform guide</a> with the publishing of the last (initially planned) tutorial. The tutorial describes <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/tree/master/1.10.SampleWeb">how to build and run sample OpenSceneGraph application in Web</a> using Emscripten.
  215. In case you missed it, here ...</p><p class="subheader">Category: <a href="http://opengamestudio.org/category/news.html">News</a>
  216. </p>
  217. <a class="button radius secondary small right" href="http://opengamestudio.org/openscenegraph-cross-platform-guide.html">Read More</a>
  218. <hr class="gradient"/>
  219. </article>
  220. <!-- /#posts-list -->
  221. <div class="pagination-centered">
  222. <h6 class="subheader">Page 1 of 5</h6>
  223. <p>
  224. <a href="http://opengamestudio.org/index2.html">Next &raquo;</a>
  225. </p>
  226. </div>
  227. </div>
  228. <!-- End Main Content -->
  229. <!-- Sidebar -->
  230. <aside class="large-3 columns">
  231. <!--k
  232. <h5 class="sidebar-title">Site</h5>
  233. <ul class="side-nav">
  234. <li><a href="http://opengamestudio.org/archives.html">Archives</a>
  235. <li><a href="http://opengamestudio.org/tags.html">Tags</a>
  236. <li><a href="http://opengamestudio.org/feeds/all.atom.xml" rel="alternate">Atom feed</a></li>
  237. </ul>
  238. <h5 class="sidebar-title">Categories</h5>
  239. <ul class="side-nav">
  240. <li><a href="http://opengamestudio.org/category/news.html">News</a></li>
  241. </ul>
  242. -->
  243. <h5 class="sidebar-title">Ads</h5>
  244. <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  245. <!-- ogs2 -->
  246. <ins class="adsbygoogle"
  247. style="display:block"
  248. data-ad-client="ca-pub-4473792248813084"
  249. data-ad-slot="9024247127"
  250. data-ad-format="auto"></ins>
  251. <script>
  252. (adsbygoogle = window.adsbygoogle || []).push({});
  253. </script>
  254. </aside> <!-- End Sidebar -->
  255. </div> <!-- End Main Content and Sidebar -->
  256. <!-- Footer -->
  257. <footer class="row">
  258. <div class="large-12 columns">
  259. <hr />
  260. <div class="row">
  261. <div class="large-7 columns">
  262. <p>Proudly powered by <a href="http://getpelican.com">Pelican</a>, which takes great advantage of <a href="http://python.org">Python</a>.</p>
  263. </div>
  264. </div>
  265. </div>
  266. <script type="text/javascript">
  267. var _gaq = _gaq || [];
  268. _gaq.push(['_setAccount', 'UA-3773114-1']);
  269. _gaq.push(['_trackPageview']);
  270. (function() {
  271. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  272. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  273. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  274. })();
  275. </script>
  276. </footer>