From 418eec7ce637b3d431d03f4042d8201887b3c45c Mon Sep 17 00:00:00 2001 From: "Ivan \"KaiSD\" Korystin" Date: Wed, 1 Jan 2020 01:52:04 +0300 Subject: [PATCH] 2020 post --- ...020-01-01_about_restarting_from_scratch.md | 42 ++++++ en/news/index.html | 34 ++--- en/news/index2.html | 34 ++--- en/news/index3.html | 34 ++--- en/news/index4.html | 32 ++-- en/news/index5.html | 33 ++-- en/news/index6.html | 35 +++-- en/news/index7.html | 126 ++++++++++++++++ ...s-and-cons-of-restarting-from-scratch.html | 134 +++++++++++++++++ images/2020-01-01-ny.jpg | Bin 0 -> 84459 bytes ...8-05_on-the-way-to-durable-applications.md | 2 +- ...020-01-01_about_restarting_from_scratch.md | 42 ++++++ ru/news/index.html | 34 ++--- ru/news/index2.html | 34 ++--- ru/news/index3.html | 34 ++--- ru/news/index4.html | 32 ++-- ru/news/index5.html | 33 ++-- ru/news/index6.html | 35 +++-- ru/news/index7.html | 126 ++++++++++++++++ .../on-the-way-to-durable-applications.html | 2 +- ...s-and-cons-of-restarting-from-scratch.html | 141 ++++++++++++++++++ 21 files changed, 817 insertions(+), 202 deletions(-) create mode 100644 en/news/2020-01-01_about_restarting_from_scratch.md create mode 100644 en/news/index7.html create mode 100644 en/news/the-pros-and-cons-of-restarting-from-scratch.html create mode 100644 images/2020-01-01-ny.jpg create mode 100644 ru/news/2020-01-01_about_restarting_from_scratch.md create mode 100644 ru/news/index7.html create mode 100644 ru/news/the-pros-and-cons-of-restarting-from-scratch.html diff --git a/en/news/2020-01-01_about_restarting_from_scratch.md b/en/news/2020-01-01_about_restarting_from_scratch.md new file mode 100644 index 0000000..dd36435 --- /dev/null +++ b/en/news/2020-01-01_about_restarting_from_scratch.md @@ -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 diff --git a/en/news/index.html b/en/news/index.html index 909a6c7..6c4c387 100644 --- a/en/news/index.html +++ b/en/news/index.html @@ -94,6 +94,22 @@

News

+
+

+ The pros and cons of restarting from scratch +

+

+ 2020-01-01 00:00 +

+
+

Happy 2020

+

Anyone, who watches our progress long enough, can say that we restarted the development from scratch plenty of times.

+

Even before releasing "OGS Mahjong", we changed the underlying technology more than once. After that, we did it again several times, throwing away already completed features.. . .

+
+ +
-
-

- OpenSceneGraph cross-platform examples -

-

- 2018-04-20 00:00 -

-
-

iOS Simulator renders a cube

-

This article summarizes the work we did to produce the first two cross-platform OpenSceneGraph examples.

-

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

-
- -
-

Page 1 of 6

+

Page 1 of 7

Older »

diff --git a/en/news/index2.html b/en/news/index2.html index d9bfc64..3e07a0c 100644 --- a/en/news/index2.html +++ b/en/news/index2.html @@ -94,6 +94,22 @@

News

+
+

+ OpenSceneGraph cross-platform examples +

+

+ 2018-04-20 00:00 +

+
+

iOS Simulator renders a cube

+

This article summarizes the work we did to produce the first two cross-platform OpenSceneGraph examples.

+

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

+
+ +
-
-

- iOS tutorial -

-

- 2017-06-08 10:00 -

-
-

Earth and a rocket

-

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

-

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come up with a hackish demo that works for one person, but it's hard to create a concise example that works for everyone.. . .

-
- -
-

Page 2 of 6

+

Page 2 of 7

« Newer Older » diff --git a/en/news/index3.html b/en/news/index3.html index 811666b..31294d4 100644 --- a/en/news/index3.html +++ b/en/news/index3.html @@ -94,6 +94,22 @@

News

+
+

+ iOS tutorial +

+

+ 2017-06-08 10:00 +

+
+

Earth and a rocket

+

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

+

This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come up with a hackish demo that works for one person, but it's hard to create a concise example that works for everyone.. . .

+
+ +
-
-

- September 2016 recap -

-

- 2016-10-11 00:00 -

-
-

Mahjong created during live session

-

This article explains September 2016 live session stages: draft, rehearsal, live session itself, and publishing.

-

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.. . .

-
- -
-

Page 3 of 6

+

Page 3 of 7

« Newer Older » diff --git a/en/news/index4.html b/en/news/index4.html index f13ef3f..653b1ec 100644 --- a/en/news/index4.html +++ b/en/news/index4.html @@ -94,6 +94,22 @@

News

+
+

+ September 2016 recap +

+

+ 2016-10-11 00:00 +

+
+

Mahjong created during live session

+

This article explains September 2016 live session stages: draft, rehearsal, live session itself, and publishing.

+

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.. . .

+
+ +
-
-

- Live session: 28 May 2016 -

-

- 2016-05-17 00:00 -

-
-

We're glad to annouce that the LiveCoding session will take place on 28 May 2016 at 12:00 CEST. Join us!. . .

-
- -
-

Page 4 of 6

+

Page 4 of 7

« Newer Older » diff --git a/en/news/index5.html b/en/news/index5.html index cc779e7..bf4d827 100644 --- a/en/news/index5.html +++ b/en/news/index5.html @@ -94,6 +94,20 @@

News

+
+

+ Live session: 28 May 2016 +

+

+ 2016-05-17 00:00 +

+
+

We're glad to annouce that the LiveCoding session will take place on 28 May 2016 at 12:00 CEST. Join us!. . .

+
+ +
-
-

- SOON: Creating a simple game live (Editor 0.7) -

-

- 2015-11-02 00:00 -

-
-

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:

-
    -
  1. it takes more than 8 hours to recreate it (too long). . .
  2. -
-
- -
-

Page 5 of 6

+

Page 5 of 7

« Newer Older » diff --git a/en/news/index6.html b/en/news/index6.html index 81f158e..13cfba2 100644 --- a/en/news/index6.html +++ b/en/news/index6.html @@ -94,6 +94,23 @@

News

+
+

+ SOON: Creating a simple game live (Editor 0.7) +

+

+ 2015-11-02 00:00 +

+
+

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:

+
    +
  1. it takes more than 8 hours to recreate it (too long). . .
  2. +
+
+ +
-
-

- And another year has passed -

-

- 2014-12-31 12:00 -

-
-

Hello!

-

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.. . .

-
- -
-

Page 6 of 6

+

Page 6 of 7

« Newer + Older »

diff --git a/en/news/index7.html b/en/news/index7.html new file mode 100644 index 0000000..c4107b9 --- /dev/null +++ b/en/news/index7.html @@ -0,0 +1,126 @@ + + + + + + + + +
+

News

+ +
+

+ And another year has passed +

+

+ 2014-12-31 12:00 +

+
+

Hello!

+

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.. . .

+
+ +
+ +

Page 7 of 7

+

+ « Newer +

+ + + +
+ + diff --git a/en/news/the-pros-and-cons-of-restarting-from-scratch.html b/en/news/the-pros-and-cons-of-restarting-from-scratch.html new file mode 100644 index 0000000..2dc71f6 --- /dev/null +++ b/en/news/the-pros-and-cons-of-restarting-from-scratch.html @@ -0,0 +1,134 @@ + + + + + + + + +
+

In the news...

+
+

+ The pros and cons of restarting from scratch +

+

+ 2020-01-01 00:00 +

+
+

Happy 2020

+

Anyone, who watches our progress long enough, can say that we restarted the development from scratch plenty of times.

+

Even before releasing "OGS Mahjong", 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". It's true, but not entirely.

+

When "OGS Mahjong" 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 (named after one famous Russian city), and right now it highly customizable and works in the browser with zero setup time. 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 to remake "OGS Mahjong", 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 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!

+
+
+ +
+ + diff --git a/images/2020-01-01-ny.jpg b/images/2020-01-01-ny.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f12f4faee9a553098be3347516a43c5df2d23639 GIT binary patch literal 84459 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 zua2di

Новости

+
-
-

- Кросс-платформенные примеры OpenSceneGraph -

-

- 2018-04-20 00:00 -

-
-

iOS Simulator отображает куб

-

Эта статья резюмирует создание первых двух кросс-платформенных примеров OpenSceneGraph.

-

К тому времени, как мы выпустили первую техническую демонстрацию OGS Mahjong 2, нас уже дожидался запрос на описание работы с изображениями в OpenSceneGraph на Android. Сначала мы рассматривали возможность создания нового самоучителя для кросс-платформенного руководства OpenSceneGraph, но позже мы оценили необходимые трудозатраты и посчитали их излишними для освещения такой небольшой темы (по сравнению с тем, что умеет средняя игра) как загрузка изображений. Мы решили продолжить делиться нашими знаниями в виде конкретных примеров. Так на свет появились кросс-платформенные примеры OpenSceneGraph.. . .

-
- -
-

Страница 1 из 6

+

Страница 1 из 7

Старее »

diff --git a/ru/news/index2.html b/ru/news/index2.html index 988dc55..9324275 100644 --- a/ru/news/index2.html +++ b/ru/news/index2.html @@ -94,6 +94,22 @@

Новости

+
+

+ Кросс-платформенные примеры OpenSceneGraph +

+

+ 2018-04-20 00:00 +

+
+

iOS Simulator отображает куб

+

Эта статья резюмирует создание первых двух кросс-платформенных примеров OpenSceneGraph.

+

К тому времени, как мы выпустили первую техническую демонстрацию OGS Mahjong 2, нас уже дожидался запрос на описание работы с изображениями в OpenSceneGraph на Android. Сначала мы рассматривали возможность создания нового самоучителя для кросс-платформенного руководства OpenSceneGraph, но позже мы оценили необходимые трудозатраты и посчитали их излишними для освещения такой небольшой темы (по сравнению с тем, что умеет средняя игра) как загрузка изображений. Мы решили продолжить делиться нашими знаниями в виде конкретных примеров. Так на свет появились кросс-платформенные примеры OpenSceneGraph.. . .

+
+ +
-
-

- Самоучитель iOS -

-

- 2017-06-08 10:00 -

-
-

Земля и ракета

-

Эта статья описывает проблемы, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017.

-

В феврале мы сумели отобразить простую модель под iOS за считанные дни. Это дало нам уверенность, что самоучитель для iOS мы сделаем столь же быстро. Тем не менее, реальность напомнила нам о простой вещи: быстро сделать можно лишь поделку на коленке, работающую только у самого разработчика; над логически связанным примером, работающим у всех, придётся попотеть.. . .

-
- -
-

Страница 2 из 6

+

Страница 2 из 7

« Новее Старее » diff --git a/ru/news/index3.html b/ru/news/index3.html index 323254c..2cdec74 100644 --- a/ru/news/index3.html +++ b/ru/news/index3.html @@ -94,6 +94,22 @@

Новости

+
+

+ Самоучитель iOS +

+

+ 2017-06-08 10:00 +

+
+

Земля и ракета

+

Эта статья описывает проблемы, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017.

+

В феврале мы сумели отобразить простую модель под iOS за считанные дни. Это дало нам уверенность, что самоучитель для iOS мы сделаем столь же быстро. Тем не менее, реальность напомнила нам о простой вещи: быстро сделать можно лишь поделку на коленке, работающую только у самого разработчика; над логически связанным примером, работающим у всех, придётся попотеть.. . .

+
+ +
-
-

- Сентябрь 2016 кратко -

-

- 2016-10-11 00:00 -

-
-

Маджонг, созданный в прямом эфире

-

Эта статья описывает стадии по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.

-

Несмотря на то, что сам прямой эфир длится лишь несколько часов, мы готовимся к нему целый месяц. Рассмотрим каждую стадию прямого эфира подробнее.. . .

-
- -
-

Страница 3 из 6

+

Страница 3 из 7

« Новее Старее » diff --git a/ru/news/index4.html b/ru/news/index4.html index 36250a5..3296560 100644 --- a/ru/news/index4.html +++ b/ru/news/index4.html @@ -94,6 +94,22 @@

Новости

+
+

+ Сентябрь 2016 кратко +

+

+ 2016-10-11 00:00 +

+
+

Маджонг, созданный в прямом эфире

+

Эта статья описывает стадии по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.

+

Несмотря на то, что сам прямой эфир длится лишь несколько часов, мы готовимся к нему целый месяц. Рассмотрим каждую стадию прямого эфира подробнее.. . .

+
+ +
-
-

- Прямой эфир: 28 мая 2016 -

-

- 2016-05-17 00:00 -

-
-

Мы рады сообщить, что трансляция LiveCoding состоится 28 мая 2016 в 13:00 MSK. Присоединяйтесь!. . .

-
- -
-

Страница 4 из 6

+

Страница 4 из 7

« Новее Старее » diff --git a/ru/news/index5.html b/ru/news/index5.html index bcdac8c..9fe04c7 100644 --- a/ru/news/index5.html +++ b/ru/news/index5.html @@ -94,6 +94,20 @@

Новости

+
+

+ Прямой эфир: 28 мая 2016 +

+

+ 2016-05-17 00:00 +

+
+

Мы рады сообщить, что трансляция LiveCoding состоится 28 мая 2016 в 13:00 MSK. Присоединяйтесь!. . .

+
+ +
-
-

- СКОРО: Создание простой игры в прямом эфире (Редактор 0.7) -

-

- 2015-11-02 00:00 -

-
-

Как и было обещано, мы готовы предоставить вам Редактор 0.7, с помощью которого можно создать тестовый цех. Тем не менее, после воссоздания цеха стало ясно, что:

-
    -
  1. это занимает более 8 часов (слишком долго). . .
  2. -
-
- -
-

Страница 5 из 6

+

Страница 5 из 7

« Новее Старее » diff --git a/ru/news/index6.html b/ru/news/index6.html index 63d4480..890ef5b 100644 --- a/ru/news/index6.html +++ b/ru/news/index6.html @@ -94,6 +94,23 @@

Новости

+
+

+ СКОРО: Создание простой игры в прямом эфире (Редактор 0.7) +

+

+ 2015-11-02 00:00 +

+
+

Как и было обещано, мы готовы предоставить вам Редактор 0.7, с помощью которого можно создать тестовый цех. Тем не менее, после воссоздания цеха стало ясно, что:

+
    +
  1. это занимает более 8 часов (слишком долго). . .
  2. +
+
+ +
-
-

- И вот прошел еще один год -

-

- 2014-12-31 12:00 -

-
-

Привет.

-

Подходит к концу год, в течение которого мы разместили на сайте рекордно малое количество новостей. Мы не прекратили разработку, однако пока она находится в фазе "показывать нечего", а свободного времени, которое можно уделять проекту, у каждого из его участников сейчас найдется редко больше чем 30-40 часов в месяц.. . .

-
- -
-

Страница 6 из 6

+

Страница 6 из 7

« Новее + Старее »

diff --git a/ru/news/index7.html b/ru/news/index7.html new file mode 100644 index 0000000..64a30c3 --- /dev/null +++ b/ru/news/index7.html @@ -0,0 +1,126 @@ + + + + + + + + +
+

Новости

+ +
+

+ И вот прошел еще один год +

+

+ 2014-12-31 12:00 +

+
+

Привет.

+

Подходит к концу год, в течение которого мы разместили на сайте рекордно малое количество новостей. Мы не прекратили разработку, однако пока она находится в фазе "показывать нечего", а свободного времени, которое можно уделять проекту, у каждого из его участников сейчас найдется редко больше чем 30-40 часов в месяц.. . .

+
+ +
+ +

Страница 7 из 7

+

+ « Новее +

+ + + +
+ + diff --git a/ru/news/on-the-way-to-durable-applications.html b/ru/news/on-the-way-to-durable-applications.html index b646616..510f5f7 100644 --- a/ru/news/on-the-way-to-durable-applications.html +++ b/ru/news/on-the-way-to-durable-applications.html @@ -141,7 +141,7 @@

Во многом эта смерть обусловлена недоступностью: нужно приложить неизвестное количество усилий для достижения неизвестного результата. Врядли таким можно кого-либо нынче заманить. Совсем иначе дело обстоит с приложением в браузере, которое потенциально работает везде: необходимо приложить известное усилие - открыть ссылку - для достижения неизвестного результата. История проведения твиттер-революций говорит о том, что открывать ссылки и ставить лайки за смену "кровавого режима" умеют практически все.

Причина №2: народовластие

-

Нынче любой чих в Интернете осуществляется посредством сервисов, которые почти всегда принадлежат какой-то компании: сообщения, карты, поиск, музыка, исходный код и т.д.. Следствием подобной узурпации власти становится закрытие тех сервисов, которые контролирующая компания считает нерентабельными. Причём без какого-либо обсуждения с теми пользователям, без которых этот сервис никогда бы не взлетел.

+

Нынче любой чих в Интернете осуществляется посредством сервисов, которые почти всегда принадлежат какой-то компании: сообщения, карты, поиск, музыка, исходный код и т.д.. Следствием подобной узурпации власти становится закрытие тех сервисов, которые контролирующая компания считает нерентабельным. Причём без какого-либо обсуждения с теми пользователям, без которых этот сервис никогда бы не взлетел.

В других случаях компания может просто запретить конкурирующему браузеру использовать свой сервис, как это недавно случилось с веб-версией Скайпа. Вместе с тем, существуют люди, не согласные с такой политикой. Благодаря им появляются инструменты отключения блокировок.

На наш взгляд, подобное положение вещей недопустимо. Однако, вина в этом лежит не только лишь на одичавшем бизнесе, но и простых пользователях, каждом из нас. Вы можете возразить, что у пользователей нет выбора, что кто-то другой (власть, рептилоиды, нужное подчеркнуть) сделал этот мир несправедливым. Кто-то может даже прямо винить власть/рептилоидов и веровать в то, что вот без них-то мы заживём. К сожалению, история человечества говорит обратное: "государство — это не какая-то вражья орда, оккупировавшая общество, а то, что растет из общества и зеркально его отражает".

Будучи частью народа, мы начали с себя и решили употребить свою власть во благо: создавать необходимые нам приложения так, чтобы они работали для всех везде и всегда. ПСКОВ является первой попыткой, которая более чем превзошла наши ожидания. Конечно, у ПСКОВА есть свои ограничения в виде ЛФСД и работы по HTTP без шифрования; предстоит ещё многое сделать для увеличения доступности ПСКОВА, но уже сейчас мы готовы поспорить с любым: ПСКОВ через 10 лет будет работать без единого изменения. Как говорится, запомните этот твит.

diff --git a/ru/news/the-pros-and-cons-of-restarting-from-scratch.html b/ru/news/the-pros-and-cons-of-restarting-from-scratch.html new file mode 100644 index 0000000..c5caaa2 --- /dev/null +++ b/ru/news/the-pros-and-cons-of-restarting-from-scratch.html @@ -0,0 +1,141 @@ + + + + + + + + +
+

В новостях...

+
+

+ Минусы и плюсы начинания с начала +

+

+ 2020-01-01 00:00 +

+
+

Happy 2020

+

Любой, кто следит за нашим прогрессом достаточно долго, может сказать, что мы много раз перезапускали разработку с нуля.

+

Еще до выпуска "OGS Mahjong" мы несколько раз меняли технологии "под капотом". После релиза мы неоднократно делали это снова, отбрасывая уже готовые решения. +Может показаться, что сейчас у нас меньше готового, чем перед выходом "OGS Mahjong". Это правда, но не совсем.

+

Когда вышел "OGS Mahjong", у нас была приятно выглядящая (на тот момент) игра с открытым исходным кодом, которая работала под Windows и Linux. С некоторой удачей и усилием в нее можно поиграть и сегодня, но уже не "из коробки". +С некоторыми использованными нами библиотеками время обошлось не очень хорошо. И решение этих проблем сегодня потребует от нас больше времени, чем мы можем себе позволить на них выделить. +Даже настройка среды сборки для игры сейчас оказывается долгим занятием, потому что у игры были очень специфические зависимости.

+

Итак, как ранее писал Михаил, мы пытаемся найти набор технологий, которые позволят решить две проблемы одновременно:

+
    +
  • значительно уменьшить количество усилий, необходимых для настройки среды здания;
  • +
  • оставаться надежными с течением времени.
  • +
+

В течение этого года Михаил, имеющий некоторый опыт обучения детей программированию, добавил еще одну цель - сделать простую игру должно быть достаточно легко, чтобы ребенок мог в этом разобраться.

+

Для простоты, мы разделили все свои хотелки, на две части.

+

Первая часть - создание легкого в освоении инструмента, который ребенок может использовать для создания простой игры, а профессионал или любитель может быстро проверить с его помощью новые идеи. Этот инструмент не должен требовать времени для настройки рабочей среды, но все же должен быть сильно настраиваемым. После многочасовых споров, мы решили, что этот инструмент должен работать в браузере (self-hosted, по-возможности даже локально). Этот инструмент - MUROM (названный в честь одного известного русского города). Сейчас это очень настраиваемый и работающий в браузере редактор, не требующий установки. MUROM уже можно использовать для создания простых игр, но он далек от готовности. И третья цель пока впереди. Как показала практика - дети не очень хорошо понимают JavaScript.

+

Над второй частью мы начнем работать после завершения первой. Она будет включать в себя части движка, относящиеся к нативному коду. Мы попытаемся позволить веб-движку и нативному движку использовать один и тот же код для игровой логики, но мы не решили, как именно мы достигнем этого. Возможно, мы воспользуемся метаязыком, который можно будет перевести как на JavaScript, так и в C++. Разумеется, для чего-то, что невозможно в веб-версии (например, с использование определенного оборудования или доступа к локальной файловой системе) потребуется писать отдельные локальные плагины.

+

С учетом регулярной смены технологий, мы вообще когда-нибудь начнем работать над второй частью? Мы надеемся на это. Мы планируем использовать MUROM чтобы воссоздать "OGS Mahjong", поэтому некоторые вещи нам придется сделать только для того, чтобы это стало возможным. +И даже если мы закончим только первую часть, и MUROM останется просто инструментом быстрого прототипирования, это будет инструмент, который мы сами используем, и мы постараемся сделать его полезным.

+

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

+

И нашей главной целью на 2020 год будет выйти из этого цикла и что-то завершить.

+

Всех с Новым годом! Следите за новостями!

+
+
+ +
+ +
+

+ Минусы и плюсы начинания с начала +

+

+ 2020-01-01 00:00 +

+
+

Happy 2020

+

Любой, кто следит за нашим прогрессом достаточно долго, может сказать, что мы много раз перезапускали разработку с нуля.

+

Еще до выпуска "OGS Mahjong" мы несколько раз меняли технологии "под капотом". После релиза мы неоднократно делали это снова, отбрасывая уже готовые решения.. . .

+
+ +