2020 post

This commit is contained in:
2020-01-01 01:52:04 +03:00
parent b815c2b8c4
commit 418eec7ce6
21 changed files with 817 additions and 202 deletions

View File

@@ -0,0 +1,42 @@
Title: The pros and cons of restarting from scratch
Date: 2020-01-01 00:00
Category: News
Slug: the-pros-and-cons-of-restarting-from-scratch
Lang: en
![Happy 2020][screenshot]
Anyone, who watches our progress long enough, can say that we restarted the development from scratch plenty of times.
Even before releasing ["OGS Mahjong"][ogs-mahjong-1], we changed the underlying technology more than once. After that, we did it again several times, throwing away already completed features.
It seems that right now we have less completed features than before the release of ["OGS Mahjong"][ogs-mahjong-1]. It's true, but not entirely.
When ["OGS Mahjong"][ogs-mahjong-1] was released, we had a descent looking (for that moment) open-source game, that worked under Windows and Linux. With some luck and effort it still works today, but not out of the box.
Some parts of the underlying technology did not age very well. And fixing these problems today will require us to invest a lot of time into it.
Even setting the building environment for the game is time-consuming, because the game had some very particular dependencies.
So, as Michael stated before, we are trying to find the set of technologies, that will resolve two problems at the same time:
* greatly decrease the amount of effort needed to setup a building environment;
* age better.
During this year, Michel, who has some experience with teaching kids to code, added one more goal - making the simple game should be easy enough for the kid to understand.
So, we divided everything we wanted in two parts.
The first part is making an easy to use instrument that a child can use to create a simple game, and a professional or hobbyist can use to test new ideas quickly. This instrument should require zero time to setup the working environment, but should still be highly customizable. After many hours of arguing, we decided that this instrument should be web-based (self-hosted, preferably working locally). This instrument is [MUROM][murom] (named after one famous Russian city), and right now it highly customizable and works in the browser with zero setup time. [MUROM][murom] can be used to create simple games, but it's far from ready. And the third goal is also ahead.
We will start to work on the second part after completing the first part. It will include the native part of the engine. We'll try to let the web-based engine and the native engine use the same code for game logic, but we haven't decided on how exactly will we achieve this feature. Probably, we will have to use meta-language that can be translated into both JavaScript and C++. Also, creating separate plugins for something that is impossible in the web version (for example, using specific hardware or accessing a local file system) will still be required.
Will we ever start to work on the second part? We hope so. We're planning to use [MUROM][murom] to remake ["OGS Mahjong"][ogs-mahjong-1], so some things will be done just in order to make it possible.
And even if we will complete only the first part and [MUROM][murom] will just be a quick&dirty prototyping tool, it will be a tool we use, and we'll try to make it useful.
When you throw away all the code, one thing remains. That's experience. Every restart will make you slightly better at understanding what you are actually doing. But it's important to complete something from time to time. Otherwise, you can find yourself stuck in the endless loop of new beginnings.
And our own main goal for 2020 will be to break out of this loop and complete something.
Happy new year, everyone! Stay tuned!
[screenshot]: ../../images/2020-01-01-ny.jpg
[ogs-mahjong-1]: ../game/ogs-mahjong-1.html
[murom]: http://opengamestudio.org/murom

View File

@@ -94,6 +94,22 @@
<center>
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">The pros and cons of restarting from scratch</a>
</h2>
<p class="news_item_date">
2020-01-01 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2020-01-01-ny.jpg" alt="Happy 2020" /></p>
<p>Anyone, who watches our progress long enough, can say that we restarted the development from scratch plenty of times.</p>
<p>Even before releasing <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a>, we changed the underlying technology more than once. After that, we did it again several times, throwing away already completed features.. . .</p>
</div>
<div class="news_item_more">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="on-the-way-to-durable-applications.html">On the way to durable applications</a>
@@ -228,24 +244,8 @@
<a href="example-driven-development.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-examples.html">OpenSceneGraph cross-platform examples</a>
</h2>
<p class="news_item_date">
2018-04-20 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-04-20-openscenegraph-examples.png" alt="iOS Simulator renders a cube" /></p>
<p>This article summarizes the work we did to produce the first two cross-platform OpenSceneGraph examples.</p>
<p>By the time <a href="mahjong-techdemo1-gameplay.html">the first technology demonstration of OGS Mahjong 2</a> has been released, we've already had <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues/4">issue request</a> (to explain how to load images with OpenSceneGraph on Android) hanging for some time. We considered creating a new tutorial for <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">OpenSceneGraph cross-platform guide</a> at first. However, we realized that it's time-consuming and excessive for such a tiny topic (compared to what an average game has) as image loading. We decided to continue sharing our knowledge in the form of concrete examples. That's how <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> were born.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-examples.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 1 of 6</p>
<p class="pagination_title">Page 1 of 7</p>
<p>
<a href="index2.html">Older »</a>
</p>

View File

@@ -94,6 +94,22 @@
<center>
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-examples.html">OpenSceneGraph cross-platform examples</a>
</h2>
<p class="news_item_date">
2018-04-20 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-04-20-openscenegraph-examples.png" alt="iOS Simulator renders a cube" /></p>
<p>This article summarizes the work we did to produce the first two cross-platform OpenSceneGraph examples.</p>
<p>By the time <a href="mahjong-techdemo1-gameplay.html">the first technology demonstration of OGS Mahjong 2</a> has been released, we've already had <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues/4">issue request</a> (to explain how to load images with OpenSceneGraph on Android) hanging for some time. We considered creating a new tutorial for <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">OpenSceneGraph cross-platform guide</a> at first. However, we realized that it's time-consuming and excessive for such a tiny topic (compared to what an average game has) as image loading. We decided to continue sharing our knowledge in the form of concrete examples. That's how <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">OpenSceneGraph cross-platform examples</a> were born.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-examples.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-techdemo1-gameplay.html">First techdemo of OGS Mahjong 2: Gameplay</a>
@@ -221,24 +237,8 @@
<a href="openscenegraph-cross-platform-guide.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ios-tutorial.html">iOS tutorial</a>
</h2>
<p class="news_item_date">
2017-06-08 10:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-06-08-ios-refactoring.png" alt="Earth and a rocket" /></p>
<p>This article describes problems we faced during the creation of iOS tutorial in May 2017.</p>
<p><a href="https://twitter.com/OpenGameStudio/status/826816343433498627">This February</a> we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come up with a hackish demo that works for one person, but it's hard to create a concise example that works for everyone.. . .</p>
</div>
<div class="news_item_more">
<a href="ios-tutorial.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 2 of 6</p>
<p class="pagination_title">Page 2 of 7</p>
<p>
<a href="index.html">« Newer</a>
<a href="index3.html">Older »</a>

View File

@@ -94,6 +94,22 @@
<center>
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="ios-tutorial.html">iOS tutorial</a>
</h2>
<p class="news_item_date">
2017-06-08 10:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-06-08-ios-refactoring.png" alt="Earth and a rocket" /></p>
<p>This article describes problems we faced during the creation of iOS tutorial in May 2017.</p>
<p><a href="https://twitter.com/OpenGameStudio/status/826816343433498627">This February</a> we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come up with a hackish demo that works for one person, but it's hard to create a concise example that works for everyone.. . .</p>
</div>
<div class="news_item_more">
<a href="ios-tutorial.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="osg-sample.html">OpenSceneGraph sample</a>
@@ -222,24 +238,8 @@
<a href="2016-tech-showcases.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-september-recap.html">September 2016 recap</a>
</h2>
<p class="news_item_date">
2016-10-11 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-11_september-recap.png" alt="Mahjong created during live session" /></p>
<p>This article explains September 2016 live session stages: draft, rehearsal, live session itself, and publishing.</p>
<p>Even though live session takes only a few hours, we devote a whole month to prepare for it. Let's have a look at live session stages in detail.. . .</p>
</div>
<div class="news_item_more">
<a href="2016-september-recap.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 3 of 6</p>
<p class="pagination_title">Page 3 of 7</p>
<p>
<a href="index2.html">« Newer</a>
<a href="index4.html">Older »</a>

View File

@@ -94,6 +94,22 @@
<center>
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-september-recap.html">September 2016 recap</a>
</h2>
<p class="news_item_date">
2016-10-11 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-11_september-recap.png" alt="Mahjong created during live session" /></p>
<p>This article explains September 2016 live session stages: draft, rehearsal, live session itself, and publishing.</p>
<p>Even though live session takes only a few hours, we devote a whole month to prepare for it. Let's have a look at live session stages in detail.. . .</p>
</div>
<div class="news_item_more">
<a href="2016-september-recap.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.10.html">OGS Editor 0.10 and live session materials</a>
@@ -216,22 +232,8 @@
<a href="ogs-editor-0.9.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-announcement.html">Live session: 28 May 2016</a>
</h2>
<p class="news_item_date">
2016-05-17 00:00
</p>
<div class="news_item_contents">
<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>
</div>
<div class="news_item_more">
<a href="may-live-session-announcement.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 4 of 6</p>
<p class="pagination_title">Page 4 of 7</p>
<p>
<a href="index3.html">« Newer</a>
<a href="index5.html">Older »</a>

View File

@@ -94,6 +94,20 @@
<center>
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-announcement.html">Live session: 28 May 2016</a>
</h2>
<p class="news_item_date">
2016-05-17 00:00
</p>
<div class="news_item_contents">
<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>
</div>
<div class="news_item_more">
<a href="may-live-session-announcement.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-decision.html">May live session (Editor 0.9)</a>
@@ -210,25 +224,8 @@
<a href="livesession-editor-07.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="soon-game-creation-editor-07.html">SOON: Creating a simple game live (Editor 0.7)</a>
</h2>
<p class="news_item_date">
2015-11-02 00:00
</p>
<div class="news_item_contents">
<p>As we have promised, we are ready to give you Editor 0.7 which is capable of creating the complete test chamber. However, after recreating the test chamber ourselves, it became clear that:</p>
<ol>
<li>it takes more than 8 hours to recreate it (too long). . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="soon-game-creation-editor-07.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 5 of 6</p>
<p class="pagination_title">Page 5 of 7</p>
<p>
<a href="index4.html">« Newer</a>
<a href="index6.html">Older »</a>

View File

@@ -94,6 +94,23 @@
<center>
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="soon-game-creation-editor-07.html">SOON: Creating a simple game live (Editor 0.7)</a>
</h2>
<p class="news_item_date">
2015-11-02 00:00
</p>
<div class="news_item_contents">
<p>As we have promised, we are ready to give you Editor 0.7 which is capable of creating the complete test chamber. However, after recreating the test chamber ourselves, it became clear that:</p>
<ol>
<li>it takes more than 8 hours to recreate it (too long). . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="soon-game-creation-editor-07.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="bye-desura-hello-humblebundle.html">Desura no more, hello Humble Bundle Widget</a>
@@ -213,25 +230,11 @@
<a href="user-servey-finish-promise.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2014-another-year-passed.html">And another year has passed</a>
</h2>
<p class="news_item_date">
2014-12-31 12:00
</p>
<div class="news_item_contents">
<p>Hello!</p>
<p>So, this year comes to the end. There were very little publications from us during this year. We haven't stopped working, but right now our work is in the phase, when we have nothing to show. And the spare time of the team members is rarely more then 30-40 hours a month.. . .</p>
</div>
<div class="news_item_more">
<a href="2014-another-year-passed.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 6 of 6</p>
<p class="pagination_title">Page 6 of 7</p>
<p>
<a href="index5.html">« Newer</a>
<a href="index7.html">Older »</a>
</p>

126
en/news/index7.html Normal file
View File

@@ -0,0 +1,126 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<style>
#header
{
background: #2BA6E3;
padding: 0.7em;
text-align: left;
}
#header a
{
color: white;
text-decoration: none;
padding: 0.5em 1em 0.5em 1em;
}
#lang
{
float: right;
}
.news_item
{
background: #FFFFFF;
width: 720px;
padding: 1em;
margin-top: 2em;
margin-bottom: 2em;
border: 1px solid #E0E0E0;
text-align: left;
}
.news_item_contents
{
color: #444;
line-height: 1.5em;
}
.news_item_date
{
margin-bottom: 2em;
color: #aaa;
}
html
{
font-family: sans-serif;
}
body
{
background: #FAFAFA;
}
code, pre
{
font-family: monospace, serif;
font-size: 1em;
color: #7f0a0c;
}
img
{
width: 720px;
}
a
{
color: #3A91CB;
text-decoration: none;
}
table
{
border-collapse: collapse;
}
table, th, td
{
border: 1px solid #aaa;
padding: 0.5em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
</style>
</head>
<body>
<div id="header">
<strong id="title">Open Game Studio</strong>
<a href="../../en/news/index.html">News</a>
<a href="../../en/game/index.html">Games</a>
<a href="../../en/tool/index.html">Tools</a>
<a href="../../en/page/about.html">About</a>
<div id="lang">
<a href="../../en/news/index7.html">EN</a>
<a href="../../ru/news/index7.html">RU</a>
</div>
</div>
<center>
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="2014-another-year-passed.html">And another year has passed</a>
</h2>
<p class="news_item_date">
2014-12-31 12:00
</p>
<div class="news_item_contents">
<p>Hello!</p>
<p>So, this year comes to the end. There were very little publications from us during this year. We haven't stopped working, but right now our work is in the phase, when we have nothing to show. And the spare time of the team members is rarely more then 30-40 hours a month.. . .</p>
</div>
<div class="news_item_more">
<a href="2014-another-year-passed.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 7 of 7</p>
<p>
<a href="index6.html">« Newer</a>
</p>
<div id="footer">
The site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>
from <a href="http://github.com/ogstudio/site-opengamestudio">this source code</a>.
The site is hosted by <a href="https://pages.github.com">GitHub Pages</a>.
</div>
</center>
</body>
</html>

View File

@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<style>
#header
{
background: #2BA6E3;
padding: 0.7em;
text-align: left;
}
#header a
{
color: white;
text-decoration: none;
padding: 0.5em 1em 0.5em 1em;
}
#lang
{
float: right;
}
.news_item
{
background: #FFFFFF;
width: 720px;
padding: 1em;
margin-top: 2em;
margin-bottom: 2em;
border: 1px solid #E0E0E0;
text-align: left;
}
.news_item_contents
{
color: #444;
line-height: 1.5em;
}
.news_item_date
{
margin-bottom: 2em;
color: #aaa;
}
html
{
font-family: sans-serif;
}
body
{
background: #FAFAFA;
}
code, pre
{
font-family: monospace, serif;
font-size: 1em;
color: #7f0a0c;
}
img
{
width: 720px;
}
a
{
color: #3A91CB;
text-decoration: none;
}
table
{
border-collapse: collapse;
}
table, th, td
{
border: 1px solid #aaa;
padding: 0.5em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
</style>
</head>
<body>
<div id="header">
<strong id="title">Open Game Studio</strong>
<a href="../../en/news/index.html">News</a>
<a href="../../en/game/index.html">Games</a>
<a href="../../en/tool/index.html">Tools</a>
<a href="../../en/page/about.html">About</a>
<div id="lang">
<a href="../../en/news/the-pros-and-cons-of-restarting-from-scratch.html">EN</a>
<a href="../../ru/news/the-pros-and-cons-of-restarting-from-scratch.html">RU</a>
</div>
</div>
<center>
<h1>In the news...</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">The pros and cons of restarting from scratch</a>
</h2>
<p class="news_item_date">
2020-01-01 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2020-01-01-ny.jpg" alt="Happy 2020" /></p>
<p>Anyone, who watches our progress long enough, can say that we restarted the development from scratch plenty of times.</p>
<p>Even before releasing <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a>, we changed the underlying technology more than once. After that, we did it again several times, throwing away already completed features.
It seems that right now we have less completed features than before the release of <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a>. It's true, but not entirely.</p>
<p>When <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a> was released, we had a descent looking (for that moment) open-source game, that worked under Windows and Linux. With some luck and effort it still works today, but not out of the box.
Some parts of the underlying technology did not age very well. And fixing these problems today will require us to invest a lot of time into it.
Even setting the building environment for the game is time-consuming, because the game had some very particular dependencies.</p>
<p>So, as Michael stated before, we are trying to find the set of technologies, that will resolve two problems at the same time:</p>
<ul>
<li>greatly decrease the amount of effort needed to setup a building environment;</li>
<li>age better.</li>
</ul>
<p>During this year, Michel, who has some experience with teaching kids to code, added one more goal - making the simple game should be easy enough for the kid to understand.</p>
<p>So, we divided everything we wanted in two parts.</p>
<p>The first part is making an easy to use instrument that a child can use to create a simple game, and a professional or hobbyist can use to test new ideas quickly. This instrument should require zero time to setup the working environment, but should still be highly customizable. After many hours of arguing, we decided that this instrument should be web-based (self-hosted, preferably working locally). This instrument is <a href="http://opengamestudio.org/murom">MUROM</a> (named after one famous Russian city), and right now it highly customizable and works in the browser with zero setup time. <a href="http://opengamestudio.org/murom">MUROM</a> can be used to create simple games, but it's far from ready. And the third goal is also ahead.</p>
<p>We will start to work on the second part after completing the first part. It will include the native part of the engine. We'll try to let the web-based engine and the native engine use the same code for game logic, but we haven't decided on how exactly will we achieve this feature. Probably, we will have to use meta-language that can be translated into both JavaScript and C++. Also, creating separate plugins for something that is impossible in the web version (for example, using specific hardware or accessing a local file system) will still be required.</p>
<p>Will we ever start to work on the second part? We hope so. We're planning to use <a href="http://opengamestudio.org/murom">MUROM</a> to remake <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a>, so some things will be done just in order to make it possible.
And even if we will complete only the first part and <a href="http://opengamestudio.org/murom">MUROM</a> will just be a quick&amp;dirty prototyping tool, it will be a tool we use, and we'll try to make it useful.</p>
<p>When you throw away all the code, one thing remains. That's experience. Every restart will make you slightly better at understanding what you are actually doing. But it's important to complete something from time to time. Otherwise, you can find yourself stuck in the endless loop of new beginnings.</p>
<p>And our own main goal for 2020 will be to break out of this loop and complete something. </p>
<p>Happy new year, everyone! Stay tuned!</p>
</div>
</div>
<div id="footer">
The site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>
from <a href="http://github.com/ogstudio/site-opengamestudio">this source code</a>.
The site is hosted by <a href="https://pages.github.com">GitHub Pages</a>.
</div>
</center>
</body>
</html>