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

@@ -50,7 +50,7 @@ Lang: ru
**Причина №2: народовластие**
Нынче любой чих в Интернете осуществляется посредством сервисов, которые почти всегда принадлежат какой-то компании: [сообщения][msg], [карты][map], [поиск][search], [музыка][music], [исходный код][src] и т.д.. Следствием подобной узурпации власти становится [закрытие][shutdown-01] тех [сервисов][shutdown-02], которые контролирующая компания считает нерентабельными. Причём без какого-либо обсуждения с теми пользователям, без которых этот сервис никогда бы не взлетел.
Нынче любой чих в Интернете осуществляется посредством сервисов, которые почти всегда принадлежат какой-то компании: [сообщения][msg], [карты][map], [поиск][search], [музыка][music], [исходный код][src] и т.д.. Следствием подобной узурпации власти становится [закрытие][shutdown-01] тех [сервисов][shutdown-02], которые контролирующая компания считает нерентабельным. Причём без какого-либо обсуждения с теми пользователям, без которых этот сервис никогда бы не взлетел.
В других случаях компания может просто запретить конкурирующему браузеру использовать свой сервис, как это недавно [случилось с веб-версией Скайпа][skype-block]. Вместе с тем, существуют люди, не согласные с такой политикой. Благодаря им появляются [инструменты отключения][skype-free] блокировок.

View File

@@ -0,0 +1,42 @@
Title: Минусы и плюсы начинания с начала
Date: 2020-01-01 00:00
Category: News
Slug: the-pros-and-cons-of-restarting-from-scratch
Lang: ru
![Happy 2020][screenshot]
Любой, кто следит за нашим прогрессом достаточно долго, может сказать, что мы много раз перезапускали разработку с нуля.
Еще до выпуска ["OGS Mahjong"][ogs-mahjong-1] мы несколько раз меняли технологии "под капотом". После релиза мы неоднократно делали это снова, отбрасывая уже готовые решения.
Может показаться, что сейчас у нас меньше готового, чем перед выходом ["OGS Mahjong"][ogs-mahjong-1]. Это правда, но не совсем.
Когда вышел ["OGS Mahjong"][ogs-mahjong-1], у нас была приятно выглядящая (на тот момент) игра с открытым исходным кодом, которая работала под Windows и Linux. С некоторой удачей и усилием в нее можно поиграть и сегодня, но уже не "из коробки".
С некоторыми использованными нами библиотеками время обошлось не очень хорошо. И решение этих проблем сегодня потребует от нас больше времени, чем мы можем себе позволить на них выделить.
Даже настройка среды сборки для игры сейчас оказывается долгим занятием, потому что у игры были очень специфические зависимости.
Итак, как ранее писал Михаил, мы пытаемся найти набор технологий, которые позволят решить две проблемы одновременно:
* значительно уменьшить количество усилий, необходимых для настройки среды здания;
* оставаться надежными с течением времени.
В течение этого года Михаил, имеющий некоторый опыт обучения детей программированию, добавил еще одну цель - сделать простую игру должно быть достаточно легко, чтобы ребенок мог в этом разобраться.
Для простоты, мы разделили все свои хотелки, на две части.
Первая часть - создание легкого в освоении инструмента, который ребенок может использовать для создания простой игры, а профессионал или любитель может быстро проверить с его помощью новые идеи. Этот инструмент не должен требовать времени для настройки рабочей среды, но все же должен быть сильно настраиваемым. После многочасовых споров, мы решили, что этот инструмент должен работать в браузере (self-hosted, по-возможности даже локально). Этот инструмент - [MUROM][murom] (названный в честь одного известного русского города). Сейчас это очень настраиваемый и работающий в браузере редактор, не требующий установки. [MUROM][murom] уже можно использовать для создания простых игр, но он далек от готовности. И третья цель пока впереди. Как показала практика - дети не очень хорошо понимают JavaScript.
Над второй частью мы начнем работать после завершения первой. Она будет включать в себя части движка, относящиеся к нативному коду. Мы попытаемся позволить веб-движку и нативному движку использовать один и тот же код для игровой логики, но мы не решили, как именно мы достигнем этого. Возможно, мы воспользуемся метаязыком, который можно будет перевести как на JavaScript, так и в C++. Разумеется, для чего-то, что невозможно в веб-версии (например, с использование определенного оборудования или доступа к локальной файловой системе) потребуется писать отдельные локальные плагины.
С учетом регулярной смены технологий, мы вообще когда-нибудь начнем работать над второй частью? Мы надеемся на это. Мы планируем использовать [MUROM][murom] чтобы воссоздать ["OGS Mahjong"][ogs-mahjong-1], поэтому некоторые вещи нам придется сделать только для того, чтобы это стало возможным.
И даже если мы закончим только первую часть, и [MUROM][murom] останется просто инструментом быстрого прототипирования, это будет инструмент, который мы сами используем, и мы постараемся сделать его полезным.
Когда вы выбрасываете весь код, остается одна вещь. Это опыт. Каждый перезапуск позволяет лучше понять куда вы двигаетесь. Но важно что-то доделывать время от времени. В противном случае вы можете оказаться в бесконечном цикле начинания с начала.
И нашей главной целью на 2020 год будет выйти из этого цикла и что-то завершить.
Всех с Новым годом! Следите за новостями!
[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>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">Минусы и плюсы начинания с начала</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>Любой, кто следит за нашим прогрессом достаточно долго, может сказать, что мы много раз перезапускали разработку с нуля.</p>
<p>Еще до выпуска <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a> мы несколько раз меняли технологии "под капотом". После релиза мы неоднократно делали это снова, отбрасывая уже готовые решения.. . .</p>
</div>
<div class="news_item_more">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="on-the-way-to-durable-applications.html">На пути к долговечным приложениям</a>
@@ -228,24 +244,8 @@
<a href="example-driven-development.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-examples.html">Кросс-платформенные примеры OpenSceneGraph</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 отображает куб" /></p>
<p>Эта статья резюмирует создание первых двух кросс-платформенных примеров OpenSceneGraph.</p>
<p>К тому времени, как мы выпустили <a href="mahjong-techdemo1-gameplay.html">первую техническую демонстрацию OGS Mahjong 2</a>, нас уже дожидался <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues/4">запрос на описание работы с изображениями</a> в OpenSceneGraph на Android. Сначала мы рассматривали возможность создания нового самоучителя для <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">кросс-платформенного руководства OpenSceneGraph</a>, но позже мы оценили необходимые трудозатраты и посчитали их излишними для освещения такой небольшой темы (по сравнению с тем, что умеет средняя игра) как загрузка изображений. Мы решили продолжить делиться нашими знаниями в виде конкретных примеров. Так на свет появились <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">кросс-платформенные примеры OpenSceneGraph</a>.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-examples.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 1 из 6</p>
<p class="pagination_title">Страница 1 из 7</p>
<p>
<a href="index2.html">Старее »</a>
</p>

View File

@@ -94,6 +94,22 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-examples.html">Кросс-платформенные примеры OpenSceneGraph</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 отображает куб" /></p>
<p>Эта статья резюмирует создание первых двух кросс-платформенных примеров OpenSceneGraph.</p>
<p>К тому времени, как мы выпустили <a href="mahjong-techdemo1-gameplay.html">первую техническую демонстрацию OGS Mahjong 2</a>, нас уже дожидался <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues/4">запрос на описание работы с изображениями</a> в OpenSceneGraph на Android. Сначала мы рассматривали возможность создания нового самоучителя для <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">кросс-платформенного руководства OpenSceneGraph</a>, но позже мы оценили необходимые трудозатраты и посчитали их излишними для освещения такой небольшой темы (по сравнению с тем, что умеет средняя игра) как загрузка изображений. Мы решили продолжить делиться нашими знаниями в виде конкретных примеров. Так на свет появились <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples">кросс-платформенные примеры OpenSceneGraph</a>.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-examples.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-techdemo1-gameplay.html">Первая технодемка OGS Mahjong 2: Игровая механика</a>
@@ -222,24 +238,8 @@
<a href="openscenegraph-cross-platform-guide.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ios-tutorial.html">Самоучитель iOS</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="Земля и ракета" /></p>
<p>Эта статья описывает проблемы, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017.</p>
<p><a href="https://twitter.com/OpenGameStudio/status/826816343433498627">В феврале</a> мы сумели отобразить простую модель под iOS за считанные дни. Это дало нам уверенность, что самоучитель для iOS мы сделаем столь же быстро. Тем не менее, реальность напомнила нам о простой вещи: быстро сделать можно лишь поделку на коленке, работающую только у самого разработчика; над логически связанным примером, работающим у всех, придётся попотеть.. . .</p>
</div>
<div class="news_item_more">
<a href="ios-tutorial.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 2 из 6</p>
<p class="pagination_title">Страница 2 из 7</p>
<p>
<a href="index.html">« Новее</a>
<a href="index3.html">Старее »</a>

View File

@@ -94,6 +94,22 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="ios-tutorial.html">Самоучитель iOS</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="Земля и ракета" /></p>
<p>Эта статья описывает проблемы, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017.</p>
<p><a href="https://twitter.com/OpenGameStudio/status/826816343433498627">В феврале</a> мы сумели отобразить простую модель под iOS за считанные дни. Это дало нам уверенность, что самоучитель для iOS мы сделаем столь же быстро. Тем не менее, реальность напомнила нам о простой вещи: быстро сделать можно лишь поделку на коленке, работающую только у самого разработчика; над логически связанным примером, работающим у всех, придётся попотеть.. . .</p>
</div>
<div class="news_item_more">
<a href="ios-tutorial.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="osg-sample.html">Приложение OpenSceneGraph</a>
@@ -221,24 +237,8 @@
<a href="2016-tech-showcases.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-september-recap.html">Сентябрь 2016 кратко</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="Маджонг, созданный в прямом эфире" /></p>
<p>Эта статья описывает стадии по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.</p>
<p>Несмотря на то, что сам прямой эфир длится лишь несколько часов, мы готовимся к нему целый месяц. Рассмотрим каждую стадию прямого эфира подробнее.. . .</p>
</div>
<div class="news_item_more">
<a href="2016-september-recap.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 3 из 6</p>
<p class="pagination_title">Страница 3 из 7</p>
<p>
<a href="index2.html">« Новее</a>
<a href="index4.html">Старее »</a>

View File

@@ -94,6 +94,22 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-september-recap.html">Сентябрь 2016 кратко</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="Маджонг, созданный в прямом эфире" /></p>
<p>Эта статья описывает стадии по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.</p>
<p>Несмотря на то, что сам прямой эфир длится лишь несколько часов, мы готовимся к нему целый месяц. Рассмотрим каждую стадию прямого эфира подробнее.. . .</p>
</div>
<div class="news_item_more">
<a href="2016-september-recap.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.10.html">OGS Editor 0.10 и материалы прямого эфира</a>
@@ -216,22 +232,8 @@
<a href="ogs-editor-0.9.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-announcement.html">Прямой эфир: 28 мая 2016</a>
</h2>
<p class="news_item_date">
2016-05-17 00:00
</p>
<div class="news_item_contents">
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=%D0%9C%D0%B0%D0%B9%D1%81%D0%BA%D0%B8%D0%B9+%D0%BF%D1%80%D1%8F%D0%BC%D0%BE%D0%B9+%D1%8D%D1%84%D0%B8%D1%80+Open+Game+Studio&iso=20160528T13&p1=166&ah=3">28 мая 2016 в 13:00 MSK</a>. Присоединяйтесь!. . .</p>
</div>
<div class="news_item_more">
<a href="may-live-session-announcement.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 4 из 6</p>
<p class="pagination_title">Страница 4 из 7</p>
<p>
<a href="index3.html">« Новее</a>
<a href="index5.html">Старее »</a>

View File

@@ -94,6 +94,20 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-announcement.html">Прямой эфир: 28 мая 2016</a>
</h2>
<p class="news_item_date">
2016-05-17 00:00
</p>
<div class="news_item_contents">
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=%D0%9C%D0%B0%D0%B9%D1%81%D0%BA%D0%B8%D0%B9+%D0%BF%D1%80%D1%8F%D0%BC%D0%BE%D0%B9+%D1%8D%D1%84%D0%B8%D1%80+Open+Game+Studio&iso=20160528T13&p1=166&ah=3">28 мая 2016 в 13:00 MSK</a>. Присоединяйтесь!. . .</p>
</div>
<div class="news_item_more">
<a href="may-live-session-announcement.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-decision.html">Майский прямой эфир (Редактор 0.9)</a>
@@ -210,25 +224,8 @@
<a href="livesession-editor-07.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="soon-game-creation-editor-07.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.7)</a>
</h2>
<p class="news_item_date">
2015-11-02 00:00
</p>
<div class="news_item_contents">
<p>Как и было обещано, мы готовы предоставить вам Редактор 0.7, с помощью которого можно создать тестовый цех. Тем не менее, после воссоздания цеха стало ясно, что:</p>
<ol>
<li>это занимает более 8 часов (слишком долго). . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="soon-game-creation-editor-07.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 5 из 6</p>
<p class="pagination_title">Страница 5 из 7</p>
<p>
<a href="index4.html">« Новее</a>
<a href="index6.html">Старее »</a>

View File

@@ -94,6 +94,23 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="soon-game-creation-editor-07.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.7)</a>
</h2>
<p class="news_item_date">
2015-11-02 00:00
</p>
<div class="news_item_contents">
<p>Как и было обещано, мы готовы предоставить вам Редактор 0.7, с помощью которого можно создать тестовый цех. Тем не менее, после воссоздания цеха стало ясно, что:</p>
<ol>
<li>это занимает более 8 часов (слишком долго). . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="soon-game-creation-editor-07.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="bye-desura-hello-humblebundle.html">Прощай, Desura. Здравствуй, Humble Bundle Widget</a>
@@ -211,25 +228,11 @@
<a href="user-servey-finish-promise.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2014-another-year-passed.html">И вот прошел еще один год</a>
</h2>
<p class="news_item_date">
2014-12-31 12:00
</p>
<div class="news_item_contents">
<p>Привет.</p>
<p>Подходит к концу год, в течение которого мы разместили на сайте рекордно малое количество новостей. Мы не прекратили разработку, однако пока она находится в фазе "показывать нечего", а свободного времени, которое можно уделять проекту, у каждого из его участников сейчас найдется редко больше чем 30-40 часов в месяц.. . .</p>
</div>
<div class="news_item_more">
<a href="2014-another-year-passed.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 6 из 6</p>
<p class="pagination_title">Страница 6 из 7</p>
<p>
<a href="index5.html">« Новее</a>
<a href="index7.html">Старее »</a>
</p>

126
ru/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="../../ru/news/index.html">Новости</a>
<a href="../../ru/game/index.html">Игры</a>
<a href="../../ru/tool/index.html">Инструменты</a>
<a href="../../ru/page/about.html">О нас</a>
<div id="lang">
<a href="../../en/news/index7.html">EN</a>
<a href="../../ru/news/index7.html">RU</a>
</div>
</div>
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="2014-another-year-passed.html">И вот прошел еще один год</a>
</h2>
<p class="news_item_date">
2014-12-31 12:00
</p>
<div class="news_item_contents">
<p>Привет.</p>
<p>Подходит к концу год, в течение которого мы разместили на сайте рекордно малое количество новостей. Мы не прекратили разработку, однако пока она находится в фазе "показывать нечего", а свободного времени, которое можно уделять проекту, у каждого из его участников сейчас найдется редко больше чем 30-40 часов в месяц.. . .</p>
</div>
<div class="news_item_more">
<a href="2014-another-year-passed.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 7 из 7</p>
<p>
<a href="index6.html">« Новее</a>
</p>
<div id="footer">
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
Сайт размещён на <a href="https://pages.github.com">GitHub Pages</a>.
</div>
</center>
</body>
</html>

View File

@@ -141,7 +141,7 @@
</ul>
<p>Во многом эта смерть обусловлена недоступностью: нужно приложить неизвестное количество усилий для достижения неизвестного результата. Врядли таким можно кого-либо нынче заманить. Совсем иначе дело обстоит с приложением в браузере, которое потенциально работает везде: необходимо приложить известное усилие - открыть ссылку - для достижения неизвестного результата. История проведения <a href="https://ru.wikipedia.org/wiki/%D0%A2%D0%B2%D0%B8%D1%82%D1%82%D0%B5%D1%80-%D1%80%D0%B5%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F">твиттер-революций</a> говорит о том, что открывать ссылки и ставить лайки за смену "кровавого режима" умеют практически все.</p>
<p><strong>Причина №2: народовластие</strong></p>
<p>Нынче любой чих в Интернете осуществляется посредством сервисов, которые почти всегда принадлежат какой-то компании: <a href="http://twitter.com">сообщения</a>, <a href="http://2gis.ru">карты</a>, <a href="http://google.com">поиск</a>, <a href="http://music.yandex.ru">музыка</a>, <a href="http://github.com">исходный код</a> и т.д.. Следствием подобной узурпации власти становится <a href="https://techcrunch.com/2015/03/13/google-kills-off-google-code/">закрытие</a> тех <a href="https://www.reddit.com/r/sysadmin/comments/62orq9/codeplex_shutting_down_and_fosshub_is_sad/">сервисов</a>, которые контролирующая компания считает нерентабельными. Причём без какого-либо обсуждения с теми пользователям, без которых этот сервис никогда бы не взлетел.</p>
<p>Нынче любой чих в Интернете осуществляется посредством сервисов, которые почти всегда принадлежат какой-то компании: <a href="http://twitter.com">сообщения</a>, <a href="http://2gis.ru">карты</a>, <a href="http://google.com">поиск</a>, <a href="http://music.yandex.ru">музыка</a>, <a href="http://github.com">исходный код</a> и т.д.. Следствием подобной узурпации власти становится <a href="https://techcrunch.com/2015/03/13/google-kills-off-google-code/">закрытие</a> тех <a href="https://www.reddit.com/r/sysadmin/comments/62orq9/codeplex_shutting_down_and_fosshub_is_sad/">сервисов</a>, которые контролирующая компания считает нерентабельным. Причём без какого-либо обсуждения с теми пользователям, без которых этот сервис никогда бы не взлетел.</p>
<p>В других случаях компания может просто запретить конкурирующему браузеру использовать свой сервис, как это недавно <a href="https://www.reddit.com/r/firefox/comments/aw1umv/skype_web_is_now_blocked_in_firefox/">случилось с веб-версией Скайпа</a>. Вместе с тем, существуют люди, не согласные с такой политикой. Благодаря им появляются <a href="https://addons.mozilla.org/ru/firefox/addon/firefox-web-skype/">инструменты отключения</a> блокировок.</p>
<p>На наш взгляд, подобное положение вещей недопустимо. Однако, вина в этом лежит не только лишь на одичавшем бизнесе, но и простых пользователях, каждом из нас. Вы можете возразить, что у пользователей нет выбора, что кто-то другой (власть, рептилоиды, нужное подчеркнуть) сделал этот мир несправедливым. Кто-то может даже прямо винить власть/рептилоидов и веровать в то, что вот без них-то мы заживём. К сожалению, история человечества <a href="https://ria.ru/20190723/1556775012.html">говорит обратное</a>: "<strong>государство</strong> — это не какая-то вражья орда, оккупировавшая общество, а то, что <strong>растет из общества и зеркально его отражает</strong>".</p>
<p>Будучи частью народа, мы начали с себя и решили употребить свою власть во благо: создавать необходимые нам приложения так, чтобы они работали для всех везде и всегда. ПСКОВ является первой попыткой, которая более чем превзошла наши ожидания. Конечно, у ПСКОВА есть свои ограничения в виде ЛФСД и работы по HTTP без шифрования; предстоит ещё многое сделать для увеличения доступности ПСКОВА, но уже сейчас мы готовы поспорить с любым: ПСКОВ через 10 лет будет работать без единого изменения. Как говорится, запомните этот твит.</p>

View File

@@ -0,0 +1,141 @@
<!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;
}
/*
figure
{
margin: 0px;
padding: 0px;
}
*/
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="../../ru/news/index.html">Новости</a>
<a href="../../ru/game/index.html">Игры</a>
<a href="../../ru/tool/index.html">Инструменты</a>
<a href="../../ru/page/about.html">О нас</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>В новостях...</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">Минусы и плюсы начинания с начала</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>Любой, кто следит за нашим прогрессом достаточно долго, может сказать, что мы много раз перезапускали разработку с нуля.</p>
<p>Еще до выпуска <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a> мы несколько раз меняли технологии "под капотом". После релиза мы неоднократно делали это снова, отбрасывая уже готовые решения.
Может показаться, что сейчас у нас меньше готового, чем перед выходом <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a>. Это правда, но не совсем.</p>
<p>Когда вышел <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a>, у нас была приятно выглядящая (на тот момент) игра с открытым исходным кодом, которая работала под Windows и Linux. С некоторой удачей и усилием в нее можно поиграть и сегодня, но уже не "из коробки".
С некоторыми использованными нами библиотеками время обошлось не очень хорошо. И решение этих проблем сегодня потребует от нас больше времени, чем мы можем себе позволить на них выделить.
Даже настройка среды сборки для игры сейчас оказывается долгим занятием, потому что у игры были очень специфические зависимости.</p>
<p>Итак, как ранее писал Михаил, мы пытаемся найти набор технологий, которые позволят решить две проблемы одновременно:</p>
<ul>
<li>значительно уменьшить количество усилий, необходимых для настройки среды здания;</li>
<li>оставаться надежными с течением времени.</li>
</ul>
<p>В течение этого года Михаил, имеющий некоторый опыт обучения детей программированию, добавил еще одну цель - сделать простую игру должно быть достаточно легко, чтобы ребенок мог в этом разобраться.</p>
<p>Для простоты, мы разделили все свои хотелки, на две части.</p>
<p>Первая часть - создание легкого в освоении инструмента, который ребенок может использовать для создания простой игры, а профессионал или любитель может быстро проверить с его помощью новые идеи. Этот инструмент не должен требовать времени для настройки рабочей среды, но все же должен быть сильно настраиваемым. После многочасовых споров, мы решили, что этот инструмент должен работать в браузере (self-hosted, по-возможности даже локально). Этот инструмент - <a href="http://opengamestudio.org/murom">MUROM</a> (названный в честь одного известного русского города). Сейчас это очень настраиваемый и работающий в браузере редактор, не требующий установки. <a href="http://opengamestudio.org/murom">MUROM</a> уже можно использовать для создания простых игр, но он далек от готовности. И третья цель пока впереди. Как показала практика - дети не очень хорошо понимают JavaScript.</p>
<p>Над второй частью мы начнем работать после завершения первой. Она будет включать в себя части движка, относящиеся к нативному коду. Мы попытаемся позволить веб-движку и нативному движку использовать один и тот же код для игровой логики, но мы не решили, как именно мы достигнем этого. Возможно, мы воспользуемся метаязыком, который можно будет перевести как на JavaScript, так и в C++. Разумеется, для чего-то, что невозможно в веб-версии (например, с использование определенного оборудования или доступа к локальной файловой системе) потребуется писать отдельные локальные плагины.</p>
<p>С учетом регулярной смены технологий, мы вообще когда-нибудь начнем работать над второй частью? Мы надеемся на это. Мы планируем использовать <a href="http://opengamestudio.org/murom">MUROM</a> чтобы воссоздать <a href="../game/ogs-mahjong-1.html">"OGS Mahjong"</a>, поэтому некоторые вещи нам придется сделать только для того, чтобы это стало возможным.
И даже если мы закончим только первую часть, и <a href="http://opengamestudio.org/murom">MUROM</a> останется просто инструментом быстрого прототипирования, это будет инструмент, который мы сами используем, и мы постараемся сделать его полезным.</p>
<p>Когда вы выбрасываете весь код, остается одна вещь. Это опыт. Каждый перезапуск позволяет лучше понять куда вы двигаетесь. Но важно что-то доделывать время от времени. В противном случае вы можете оказаться в бесконечном цикле начинания с начала.</p>
<p>И нашей главной целью на 2020 год будет выйти из этого цикла и что-то завершить.</p>
<p>Всех с Новым годом! Следите за новостями!</p>
</div>
</div>
<div id="footer">
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
Сайт размещён на <a href="https://pages.github.com">GitHub Pages</a>.
</div>
</center>
</body>
</html>