Publish durable applications
This commit is contained in:
131
ru/game/index.html
Normal file
131
ru/game/index.html
Normal file
@@ -0,0 +1,131 @@
|
||||
<!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/game/index.html">EN</a>
|
||||
<a href="../../ru/game/index.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<h1>Игры</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ogs-mahjong-1.html">OGS Mahjong 1</a>
|
||||
</h2>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/XdOzD_Hc2lQ" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Игра в жанрах "Пасьянс Маджонг" и "Шисен-Сё" с симпатичной 3D графикой и спокойным саундтреком.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="ogs-mahjong-1.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong.html">Маджонг 2 (в разработке)</a>
|
||||
</h2>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/ogs-mahjong-2-screenshot.png" alt="Снимок Маджонга" /></p>
|
||||
<p>Перевыпуск OGS Mahjong 1, теперь прямо в веб-браузере. <a href="http://opengamestudio.org/mahjong">Попробуйте прямо сейчас!</a></p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong.html">Читать далее</a>
|
||||
</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>
|
||||
106
ru/game/index.template
Normal file
106
ru/game/index.template
Normal file
@@ -0,0 +1,106 @@
|
||||
<!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/game/PSKOV_INDEX_URL">EN</a>
|
||||
<a href="../../ru/game/PSKOV_INDEX_URL">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<h1>Игры</h1>
|
||||
|
||||
PSKOV_PREVIEWS
|
||||
|
||||
<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>
|
||||
118
ru/game/item.template
Normal file
118
ru/game/item.template
Normal file
@@ -0,0 +1,118 @@
|
||||
<!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/game/PSKOV_ITEM_URL">EN</a>
|
||||
<a href="../../ru/game/PSKOV_ITEM_URL">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<h1>В играх...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="PSKOV_ITEM_URL">PSKOV_ITEM_TITLE</a>
|
||||
</h2>
|
||||
<div class="news_item_contents">
|
||||
PSKOV_ITEM_CONTENTS
|
||||
</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>
|
||||
119
ru/game/mahjong.html
Normal file
119
ru/game/mahjong.html
Normal file
@@ -0,0 +1,119 @@
|
||||
<!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/game/mahjong.html">EN</a>
|
||||
<a href="../../ru/game/mahjong.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<h1>В играх...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong.html">Маджонг 2 (в разработке)</a>
|
||||
</h2>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/ogs-mahjong-2-screenshot.png" alt="Снимок Маджонга" /></p>
|
||||
<p>Перевыпуск OGS Mahjong 1, теперь прямо в веб-браузере. <a href="http://opengamestudio.org/mahjong">Попробуйте прямо сейчас!</a></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>
|
||||
10
ru/game/mahjong.md
Normal file
10
ru/game/mahjong.md
Normal file
@@ -0,0 +1,10 @@
|
||||
Title: Маджонг 2 (в разработке)
|
||||
Slug: mahjong
|
||||
Lang: en
|
||||
|
||||
![Снимок Маджонга][mahjong-screenshot]
|
||||
|
||||
Перевыпуск OGS Mahjong 1, теперь прямо в веб-браузере. [Попробуйте прямо сейчас!][mahjong]
|
||||
|
||||
[mahjong-screenshot]: ../../images/ogs-mahjong-2-screenshot.png
|
||||
[mahjong]: http://opengamestudio.org/mahjong
|
||||
150
ru/game/ogs-mahjong-1.html
Normal file
150
ru/game/ogs-mahjong-1.html
Normal file
@@ -0,0 +1,150 @@
|
||||
<!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/game/ogs-mahjong-1.html">EN</a>
|
||||
<a href="../../ru/game/ogs-mahjong-1.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<h1>В играх...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ogs-mahjong-1.html">OGS Mahjong 1</a>
|
||||
</h2>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/XdOzD_Hc2lQ" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Игра в жанрах "Пасьянс Маджонг" и "Шисен-Сё" с симпатичной 3D графикой и спокойным саундтреком.</p>
|
||||
<p><strong>Особенности</strong></p>
|
||||
<ul>
|
||||
<li>3 режима игры: Пасьянс Маджонг, Шисен-сё и Шисен-сё с гравитацией.</li>
|
||||
<li>Более 150 раскладок. Совместимость с форматом раскладок KMahjongg.</li>
|
||||
<li>Редактор раскладок с возможностью быстро проверить раскладку в игре.</li>
|
||||
<li>Поддержка тем для фишек.</li>
|
||||
<li>4 темы: "Классика", "Нео-классика", "Цветы", "Дистрибутивы".</li>
|
||||
<li>Поддержка фонов.</li>
|
||||
<li>3 фона: "Комната", "Комната упрощенная" и "Внутри Компьютера".</li>
|
||||
<li>Поддержка сохранения и загрузки.</li>
|
||||
<li>Подсказки и перемешивание.</li>
|
||||
<li>Неограниченная возможность отмены хода.</li>
|
||||
<li>Анимации камеры и динамическая камера, следящая за курсором.</li>
|
||||
<li>"Подсветка" слоев для облегчения восприятия раскладки.</li>
|
||||
<li>6 языков: русский, английский, немецкий, французский, испанский и хинди.</li>
|
||||
<li>Онлайн рейтинг.</li>
|
||||
<li>Определение оптимальных настроек графики при первом запуске игры.</li>
|
||||
</ul>
|
||||
<p><strong>Базовая версия</strong></p>
|
||||
<ul>
|
||||
<li><a href="http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-1.1.0-windows32.exe/download" title="Download ogs-mahjong-1.1.0-windows32.exe">For Windows (exe)</a> (40 MB)</li>
|
||||
<li><a href="http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-full-1.1.0-windows32.exe/download" title="Download ogs-mahjong-1.1.0-full-windows32.exe">For Windows, with editor and additional music (exe)</a> (123 MB)</li>
|
||||
<li><a href="http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-1.1.0-linux64.tar.lzma/download" title="Download ogs-mahjong-1.1.0-linux64.tar.lzma">For Linux64 (tar.lzma)</a> (37 MB)</li>
|
||||
<li><a href="http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-full-1.1.0-linux64.tar.lzma/download" title="Download ogs-mahjong-1.1.0-full-linux64.tar.lzma">For Linux64, with editor and additional music (tar.lzma)</a> (110 MB)</li>
|
||||
<li><a href="http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-1.1.0-linux32.tar.lzma/download" title="Download ogs-mahjong-1.1.0-linux32.tar.lzma">For Linux32 (tar.lzma)</a> (37 MB)</li>
|
||||
<li><a href="http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-full-1.1.0-linux32.tar.lzma/download" title="Download ogs-mahjong-1.1.0-full-linux32.tar.lzma">For Linux32, with editor and additional music (tar.lzma)</a> (110 MB)</li>
|
||||
</ul>
|
||||
<p><strong>Версия Deluxe</strong></p>
|
||||
<p>Если вам нравится то, что мы делаем, вы можете поддержать нас, купив версию Deluxe.</p>
|
||||
<p>В <strong>OGS Mahjong Deluxe</strong> вы найдете две дополнительных темы фишек: "Восток" и "Спорт".</p>
|
||||
<iframe src="https://www.humblebundle.com/widget/v2/product/ogsmahjong/ySGF3h34?theme=transparent-light" width="720" height="500" style="border: none;" scrolling="no" frameborder="0"></iframe>
|
||||
</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>
|
||||
42
ru/game/ogs-mahjong-1.md
Normal file
42
ru/game/ogs-mahjong-1.md
Normal file
@@ -0,0 +1,42 @@
|
||||
Title: OGS Mahjong 1
|
||||
Slug: ogs-mahjong-1
|
||||
Lang: ru
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/XdOzD_Hc2lQ" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
Игра в жанрах "Пасьянс Маджонг" и "Шисен-Сё" с симпатичной 3D графикой и спокойным саундтреком.
|
||||
|
||||
**Особенности**
|
||||
|
||||
* 3 режима игры: Пасьянс Маджонг, Шисен-сё и Шисен-сё с гравитацией.
|
||||
* Более 150 раскладок. Совместимость с форматом раскладок KMahjongg.
|
||||
* Редактор раскладок с возможностью быстро проверить раскладку в игре.
|
||||
* Поддержка тем для фишек.
|
||||
* 4 темы: "Классика", "Нео-классика", "Цветы", "Дистрибутивы".
|
||||
* Поддержка фонов.
|
||||
* 3 фона: "Комната", "Комната упрощенная" и "Внутри Компьютера".
|
||||
* Поддержка сохранения и загрузки.
|
||||
* Подсказки и перемешивание.
|
||||
* Неограниченная возможность отмены хода.
|
||||
* Анимации камеры и динамическая камера, следящая за курсором.
|
||||
* "Подсветка" слоев для облегчения восприятия раскладки.
|
||||
* 6 языков: русский, английский, немецкий, французский, испанский и хинди.
|
||||
* Онлайн рейтинг.
|
||||
* Определение оптимальных настроек графики при первом запуске игры.
|
||||
|
||||
**Базовая версия**
|
||||
|
||||
- [For Windows (exe)](http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-1.1.0-windows32.exe/download "Download ogs-mahjong-1.1.0-windows32.exe") (40 MB)
|
||||
- [For Windows, with editor and additional music (exe)](http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-full-1.1.0-windows32.exe/download "Download ogs-mahjong-1.1.0-full-windows32.exe") (123 MB)
|
||||
- [For Linux64 (tar.lzma)](http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-1.1.0-linux64.tar.lzma/download "Download ogs-mahjong-1.1.0-linux64.tar.lzma") (37 MB)
|
||||
- [For Linux64, with editor and additional music (tar.lzma)](http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-full-1.1.0-linux64.tar.lzma/download "Download ogs-mahjong-1.1.0-full-linux64.tar.lzma") (110 MB)
|
||||
- [For Linux32 (tar.lzma)](http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-1.1.0-linux32.tar.lzma/download "Download ogs-mahjong-1.1.0-linux32.tar.lzma") (37 MB)
|
||||
- [For Linux32, with editor and additional music (tar.lzma)](http://sourceforge.net/projects/osrpgcreation/files/Mahjong/1.1.0/ogs-mahjong-full-1.1.0-linux32.tar.lzma/download "Download ogs-mahjong-1.1.0-full-linux32.tar.lzma") (110 MB)
|
||||
|
||||
**Версия Deluxe**
|
||||
|
||||
Если вам нравится то, что мы делаем, вы можете поддержать нас, купив версию Deluxe.
|
||||
|
||||
В **OGS Mahjong Deluxe** вы найдете две дополнительных темы фишек: "Восток" и "Спорт".
|
||||
|
||||
<iframe src="https://www.humblebundle.com/widget/v2/product/ogsmahjong/ySGF3h34?theme=transparent-light" width="720" height="500" style="border: none;" scrolling="no" frameborder="0"></iframe>
|
||||
4
ru/game/pagination.next.template
Normal file
4
ru/game/pagination.next.template
Normal file
@@ -0,0 +1,4 @@
|
||||
<p class="pagination_title">Страница PSKOV_PAGE_ID из PSKOV_PAGES_COUNT</p>
|
||||
<p>
|
||||
<a href="PSKOV_NEXT_PAGE_URL">Старее »</a>
|
||||
</p>
|
||||
4
ru/game/pagination.prev.template
Normal file
4
ru/game/pagination.prev.template
Normal file
@@ -0,0 +1,4 @@
|
||||
<p class="pagination_title">Страница PSKOV_PAGE_ID из PSKOV_PAGES_COUNT</p>
|
||||
<p>
|
||||
<a href="PSKOV_PREV_PAGE_URL">« Новее</a>
|
||||
</p>
|
||||
5
ru/game/pagination.template
Normal file
5
ru/game/pagination.template
Normal file
@@ -0,0 +1,5 @@
|
||||
<p class="pagination_title">Страница PSKOV_PAGE_ID из PSKOV_PAGES_COUNT</p>
|
||||
<p>
|
||||
<a href="PSKOV_PREV_PAGE_URL">« Новее</a>
|
||||
<a href="PSKOV_NEXT_PAGE_URL">Старее »</a>
|
||||
</p>
|
||||
11
ru/game/preview.template
Normal file
11
ru/game/preview.template
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="PSKOV_ITEM_URL">PSKOV_ITEM_TITLE</a>
|
||||
</h2>
|
||||
<div class="news_item_contents">
|
||||
PSKOV_PREVIEW
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="PSKOV_ITEM_URL">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
4
ru/index.html
Normal file
4
ru/index.html
Normal file
@@ -0,0 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; URL='news/index.html'"/>
|
||||
</html>
|
||||
13
ru/news/2014-12-31_2014-another-year-passed.md
Normal file
13
ru/news/2014-12-31_2014-another-year-passed.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Title: И вот прошел еще один год
|
||||
Date: 2014-12-31 12:00
|
||||
Category: News
|
||||
Slug: 2014-another-year-passed
|
||||
Lang: ru
|
||||
|
||||
Привет.
|
||||
|
||||
Подходит к концу год, в течение которого мы разместили на сайте рекордно малое количество новостей. Мы не прекратили разработку, однако пока она находится в фазе "показывать нечего", а свободного времени, которое можно уделять проекту, у каждого из его участников сейчас найдется редко больше чем 30-40 часов в месяц.
|
||||
|
||||
Но работа продвигается, и подробнее о ней расскажет [статья нашего программиста Михаила Капелько][exaggerated-expectations].
|
||||
|
||||
[exaggerated-expectations]: exaggerated-expectations.html
|
||||
15
ru/news/2014-12-31_user-servey-finish-promise.md
Normal file
15
ru/news/2014-12-31_user-servey-finish-promise.md
Normal file
@@ -0,0 +1,15 @@
|
||||
Title: Окончание опроса
|
||||
Date: 2014-12-31 11:00
|
||||
Category: News
|
||||
Slug: user-servey-finish-promise
|
||||
Lang: ru
|
||||
|
||||
Около года назад мы начинали опрос, с помощью которого планировали узнать ваше отношение к Open Source вообще и нашему проекту в частности. Сегодня мы его завершаем. Ответы набирались довольно медленно, но в целом мы собрали довольно приличное ответов, за что вам очень благодарны.
|
||||
|
||||
Сделанными выводами мы обязательно поделимся в одной из ближайших статей.
|
||||
|
||||
После завершения опроса для каждого из его участников был сгенерирован код. С помощью этого кода вы сможете получить доступ к альфа-тестированию OGS Mahjong 2, как только оно начнется (не могу обещать конкретных дат, но мы планируем запустить его в 2015 году), а также, на выбор, deluxe-версию OGS Mahjong 2 либо deluxe-версию Shuan, когда разработка этих игр будет закончена.
|
||||
|
||||
От всей души желаем всем счастливого Нового Года. Спасибо что вы с нами. И до встречи в следующем году.
|
||||
|
||||
P.S. Если вы участвовали в опросе и потеряли свой код - напишите нам, и мы что-нибудь придумаем.
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,31 +87,37 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2014-another-year-passed.html">EN</a>
|
||||
<a href="2014-another-year-passed.html">RU</a>
|
||||
<a href="../../ru/news/2014-another-year-passed.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<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>
|
||||
<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>
|
||||
<p>Но работа продвигается, и подробнее о ней расскажет <a href="exaggerated-expectations.html">статья нашего программиста Михаила Капелько</a>.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
11
ru/news/2015-01-13_editor-0.4.0-plans.md
Normal file
11
ru/news/2015-01-13_editor-0.4.0-plans.md
Normal file
@@ -0,0 +1,11 @@
|
||||
Title: План задач для Editor 0.4.0
|
||||
Date: 2015-01-13 00:00
|
||||
Category: News
|
||||
Slug: editor-0.4.0-plans
|
||||
Lang: ru
|
||||
|
||||
Разработка Editor 0.3.0 показала нам, что использование кастомного GUI не было столь хорошей идеей, как показалось на первый взгляд. Несмотря на более простую реализацию, кастомный GUI лишен множества мелких достоинств, которые оказываются практически необходимы, если задаться целью сделать удобный инструмент.
|
||||
|
||||
В конце концов, мы решили сделать то, что хотели сделать с самого начала - использовать для редактора библиотеку Qt.
|
||||
|
||||
В ближайшее время мы перепишем редактор, имея в виду Qt-интерфейс и немного обновленную концепцию проекта. Мы планируем выпустить редактор с новым интерфейсом и набором базовых функций, таких как загрузка и сохранение проектов, в мае.
|
||||
19
ru/news/2015-03-07_editor-0.4.0-and-0.5.0-plans.md
Normal file
19
ru/news/2015-03-07_editor-0.4.0-and-0.5.0-plans.md
Normal file
@@ -0,0 +1,19 @@
|
||||
Title: Редактор 0.4.0 и планы для 0.5.0
|
||||
Date: 2015-03-07 00:00
|
||||
Category: News
|
||||
Slug: editor-0.4.0-and-0.5.0-plans
|
||||
Lang: ru
|
||||
|
||||
Мы завершили работу над версией 0.4.0 редактора в январе. Как было запланировано, эта версия содержит лишь базовые возможности открыть и сохранить проект. Основная цель была в том, чтобы подружить MJIN, Python и Qt (в частности, по ряду технических причин мы не смогли использовать PyQt или PySide).
|
||||
|
||||
Вы можете <a title="Editor 0.4.0" href="http://youtu.be/3cqiTIjWwA8" target="_blank">увидеть 0.4.0 в действии здесь</a>.
|
||||
|
||||
Мы начали разработку Редактора 0.5.0 в феврале, на текущий момент сделаны 45% работ.
|
||||
|
||||
Запланированные возможности Редактора 0.5.0:
|
||||
|
||||
1. Редактирование дерева узлов сцены
|
||||
1. Браузер свойств с редактированием позиции и модели узла
|
||||
1. Поддержка Qt5 с целью простоты сборки на различных дистрибутивах Linux
|
||||
|
||||
Мы планируем завершить его в апреле.
|
||||
22
ru/news/2015-04-15_editor-06-roadmap.md
Normal file
22
ru/news/2015-04-15_editor-06-roadmap.md
Normal file
@@ -0,0 +1,22 @@
|
||||
Title: Редактор 0.5.0 и планы для 0.6.0
|
||||
Date: 2015-04-15 00:00
|
||||
Category: News
|
||||
Slug: editor-06-roadmap
|
||||
Lang: ru
|
||||
|
||||
Мы завершили работу над версией 0.5.0 редактора. Как было запланировано, эта версия содержит редактирование узлов сцены, браузер свойств, поддеркжу Qt5. Вы можете <a title="Editor 0.5.0" href="https://youtu.be/Vb2Q6IuQDbo" target="_blank">увидеть 0.5.0 в действии здесь</a>.
|
||||
|
||||
Также мы только что начали разработку Редактора 0.6.0.
|
||||
|
||||
Запланированные возможности Редактора 0.6.0:
|
||||
|
||||
1. Редактирование узлов с камерой
|
||||
1. Редактирование узлов со светом
|
||||
1. Редактирование вращения узлов
|
||||
1. Поддержка скриптов у узлов
|
||||
1. Диалог для предпросмотра моделей и материалов при редактировании моделей и материалов у узла
|
||||
1. Копирование и вставка узлов
|
||||
1. Выбор узла с помощью клика мышью в сцене
|
||||
|
||||
|
||||
Мы планируем завершить его в августе.
|
||||
20
ru/news/2015-06-28_editor-06.md
Normal file
20
ru/news/2015-06-28_editor-06.md
Normal file
@@ -0,0 +1,20 @@
|
||||
Title: Редактор 0.6.0
|
||||
Date: 2015-06-28 00:00
|
||||
Category: News
|
||||
Slug: editor-06
|
||||
Lang: ru
|
||||
|
||||
Мы завершили работу над версией 0.6.0 редактора. Вы можете <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">увидеть 0.6.0 в действии здесь</a>.
|
||||
|
||||
Список новых возможностей Редактора 0.6.0:
|
||||
|
||||
1. Позиционирование узлов с камерой и светом
|
||||
1. Вращение узлов по оси X
|
||||
1. Поддержка скриптов у узлов
|
||||
1. Диалог для предпросмотра моделей при редактировании моделей у узла
|
||||
1. Копирование и вставка узлов
|
||||
1. Выбор узла с помощью клика мышью в сцене
|
||||
1. Восстановление позиции и состояния окна после перезапуска
|
||||
|
||||
|
||||
На текущий момент у нас нет даты завершения 0.7.0, потому что мы решили взять паузу и потратить некоторое время на составление дорожной карты для Shuan и Mahjong 2. Как только мы её закончим, мы расскажем и о возможностях 0.7.0, и о дате завершения 0.7.0, и о самой дорожной карте.
|
||||
18
ru/news/2015-07-19_2015-roadmap.md
Normal file
18
ru/news/2015-07-19_2015-roadmap.md
Normal file
@@ -0,0 +1,18 @@
|
||||
Title: Дорожная карта 2015-2016
|
||||
Date: 2015-07-19 00:00
|
||||
Category: News
|
||||
Slug: 2015-roadmap
|
||||
Lang: ru
|
||||
|
||||
Как и было обещано, мы составили список вех и их примерные даты на ближайший год:
|
||||
|
||||
1. Редактор 0.7.0 (Октябрь 2015) - Система действий: мы воссоздаём <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a>
|
||||
1. Редактор 0.8.0 (Декабрь 2015) - Звуковая система
|
||||
1. Редактор 0.9.0 (Февраль 2016) - Система частиц и минимальный интерфейс пользователя (UI)
|
||||
1. Редактор 0.10.0, Проигрыватель 0.1.0 (Апрель 2016) - Проигрыватель воспроизводит созданное Редактором: мы создаём прототип Шуана на нашем движке
|
||||
1. Редактор 0.11.0, Проигрыватель 0.2.0 (Июнь 2016) - Поддержка сети: мы создаём прототип классического Маджонга для 4-х игроков
|
||||
|
||||
|
||||
Эти примерные даты предполагают трату 40 часов в месяц одним программистом. Это около 1 рабочей недели. Не много, но это всё время, что у нас есть.
|
||||
|
||||
Мы сообщим больше деталей о Редакторе 0.7.0 чуть позже: нам нужно решить, какие возможности заслуживают 80 часов нашего времени в следующие 2 месяца.
|
||||
10
ru/news/2015-07-22_test-chamber-for-everyone.md
Normal file
10
ru/news/2015-07-22_test-chamber-for-everyone.md
Normal file
@@ -0,0 +1,10 @@
|
||||
Title: Тестовый цех каждому (Редактор 0.7.0)
|
||||
Date: 2015-07-22 00:00
|
||||
Category: News
|
||||
Slug: test-chamber-for-everyone
|
||||
Lang: ru
|
||||
|
||||
|
||||
Как вы знаете, основная цель Редактора 0.7.0 - это возможность создать <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> с помощью него. Редактору не хватает системы Действий и исправления некоторых ошибок для этого. Помимо выпуска Редактора мы опубликуем подробную статью, описывающую создание тестового цеха, чтобы каждый мог создать себе свой тестовый цех!
|
||||
|
||||
Мы планируем завершить его в Октябре.
|
||||
15
ru/news/2015-07-23_bye-desura-hello-humblebundle.md
Normal file
15
ru/news/2015-07-23_bye-desura-hello-humblebundle.md
Normal file
@@ -0,0 +1,15 @@
|
||||
Title: Прощай, Desura. Здравствуй, Humble Bundle Widget
|
||||
Date: 2015-07-23 00:00
|
||||
Category: News
|
||||
Slug: bye-desura-hello-humblebundle
|
||||
Lang: ru
|
||||
|
||||
|
||||
После недавнего банкротства родительской компании сервиса Desura мы пришли к выводу, что нам необходима новая площадка для распространения Deluxe-версии игры. Более современная, удобная, надежная.
|
||||
Наш выбор пал на Humble Widget, благодаря которому вы можете приобрести Deluxe-версию игры прямо у нас на сайте.
|
||||
|
||||
Вот он:
|
||||
|
||||
<iframe src="https://www.humblebundle.com/widget/v2/product/ogsmahjong/ySGF3h34?theme=transparent-light" width="526" height="325" style="border: none;" scrolling="no" frameborder="0"></iframe>
|
||||
|
||||
К сожалению, мы не получили от Desura ни копейки (из-за минимального порога вывода средств, которого мы не достигли), однако, если вы приобретали Deluxe-версию OGS Mahjong на Desura и испытываете проблемы с ее скачиванием (в настоящее время проблем не обнаружено), напишите нам, указав свое имя на Desura, и мы что-нибудь придумаем.
|
||||
15
ru/news/2015-11-02_soon-game-creation-editor-07.md
Normal file
15
ru/news/2015-11-02_soon-game-creation-editor-07.md
Normal file
@@ -0,0 +1,15 @@
|
||||
Title: СКОРО: Создание простой игры в прямом эфире (Редактор 0.7)
|
||||
Date: 2015-11-02 00:00
|
||||
Category: News
|
||||
Slug: soon-game-creation-editor-07
|
||||
Lang: ru
|
||||
|
||||
Как и было обещано, мы готовы предоставить вам Редактор 0.7, с помощью которого можно создать тестовый цех. Тем не менее, после воссоздания цеха стало ясно, что:
|
||||
|
||||
1. это занимает более 8 часов (слишком долго)
|
||||
1. описание в виде статьи не подходит по формату (слишком скучно)
|
||||
|
||||
|
||||
Поэтому мы решили провести прямую трансляцию на <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> СКОРО, чтобы показать, как создать простую <a title="Whac-a-mole" href="http://google.com/search?q=whac+a+mole">игру типа "поймай крота"</a> с нуля.
|
||||
|
||||
Сейчас мы заняты последними приготовлениями, поэтому точные дату и время мы сообщим на этой неделе. Оставайтесь на связи!
|
||||
7
ru/news/2015-11-09_livesession-editor-07.md
Normal file
7
ru/news/2015-11-09_livesession-editor-07.md
Normal file
@@ -0,0 +1,7 @@
|
||||
Title: Создание простой игры в прямом эфире: 15 ноября 2015
|
||||
Date: 2015-11-09 00:00
|
||||
Category: News
|
||||
Slug: livesession-editor-07
|
||||
Lang: ru
|
||||
|
||||
Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a title="Локальное время" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Whac-a-mole+game+from+scratch+live&iso=20151115T14&p1=166&ah=3">15 ноября 2015 в 14:00 MSK</a>. Присоединяйтесь!
|
||||
22
ru/news/2015-11-15_livesession-materials-editor-07.md
Normal file
22
ru/news/2015-11-15_livesession-materials-editor-07.md
Normal file
@@ -0,0 +1,22 @@
|
||||
Title: Видеозапись живой сессии и материалы
|
||||
Date: 2015-11-15 00:00
|
||||
Category: News
|
||||
Slug: livesession-materials-editor-07
|
||||
Lang: ru
|
||||
|
||||
|
||||
Если вы пропустили живую сессию, вы можете посмотреть ее здесь:
|
||||
[https://www.livecoding.tv/video/kornerr/playlists/whac-a-mole-from-scratch/](https://www.livecoding.tv/video/kornerr/playlists/whac-a-mole-from-scratch/)
|
||||
|
||||
Проект, созданный в ходе сессии, можно скачать здесь:
|
||||
[https://github.com/OGStudio/liveSessionWhacAMole/archive/master.zip](https://github.com/OGStudio/liveSessionWhacAMole/archive/master.zip)
|
||||
|
||||
Последняя версия редактора доступна здесь:
|
||||
[http://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/42_2015-11-13_08-16-46_0.7.4/](http://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/42_2015-11-13_08-16-46_0.7.4/)
|
||||
|
||||
Скачайте редактор, разархивируйте, удалите папку wam.ogs из редактора, скопируйте папку wam.ogs из архива живой сессии в папку редактора.
|
||||
|
||||
* в Windows - запустите файл `run.bat`.
|
||||
* в Linux и OSX - запустите файл `run`.
|
||||
|
||||
|
||||
15
ru/news/2015-12-26_2016-roadmap.md
Normal file
15
ru/news/2015-12-26_2016-roadmap.md
Normal file
@@ -0,0 +1,15 @@
|
||||
Title: Дорожная карта 2016
|
||||
Date: 2015-12-26 00:00
|
||||
Category: News
|
||||
Slug: 2016-roadmap
|
||||
Lang: ru
|
||||
|
||||
Как вы знаете, согласно [ранее опубликованной дорожной карте][roadmap-2015-2016], мы добавили звуковую систему. Тем не менее, мы решили пойти дальше и создать первую версию Проигрывателя. Мы хотели завершить его в декабре, но, к сожалению, изменение планов вылилось в изменение сроков.
|
||||
|
||||
Представляем вам обновлённую дорожную карту на первую половину 2016:
|
||||
|
||||
1. Редактор + Проигрыватель 0.8.0 (Январь 2016): Звуковая система, игра "Поймай крота" со звуком
|
||||
1. Редактор + Проигрыватель 0.9.0 (Апрель 2016): Сетевая система, простая игра ping pong для двух игроков по сети
|
||||
1. Редактор + Проигрыватель 0.10.0 (Июль 2016): Полировка, прототип игры "Шуан"
|
||||
|
||||
[roadmap-2015-2016]: 2015-roadmap.html
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,27 +87,29 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2015-roadmap.html">EN</a>
|
||||
<a href="2015-roadmap.html">RU</a>
|
||||
<a href="../../ru/news/2015-roadmap.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2015-roadmap.html">Дорожная карта 2015-2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как и было обещано, мы составили список вех и их примерные даты на ближайший год:</p>
|
||||
<ol type="1">
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2015-roadmap.html">Дорожная карта 2015-2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как и было обещано, мы составили список вех и их примерные даты на ближайший год:</p>
|
||||
<ol>
|
||||
<li>Редактор 0.7.0 (Октябрь 2015) - Система действий: мы воссоздаём <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a></li>
|
||||
<li>Редактор 0.8.0 (Декабрь 2015) - Звуковая система</li>
|
||||
<li>Редактор 0.9.0 (Февраль 2016) - Система частиц и минимальный интерфейс пользователя (UI)</li>
|
||||
@@ -117,9 +118,13 @@
|
||||
</ol>
|
||||
<p>Эти примерные даты предполагают трату 40 часов в месяц одним программистом. Это около 1 рабочей недели. Не много, но это всё время, что у нас есть.</p>
|
||||
<p>Мы сообщим больше деталей о Редакторе 0.7.0 чуть позже: нам нужно решить, какие возможности заслуживают 80 часов нашего времени в следующие 2 месяца.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
9
ru/news/2016-01-21_january-live-session-decision.md
Normal file
9
ru/news/2016-01-21_january-live-session-decision.md
Normal file
@@ -0,0 +1,9 @@
|
||||
Title: СКОРО: Создание простой игры в прямом эфире (Редактор 0.8)
|
||||
Date: 2016-01-21 00:00
|
||||
Category: News
|
||||
Slug: january-live-session-decision
|
||||
Lang: ru
|
||||
|
||||
Мы готовы предоставить вам Редактор 0.8 с Проигрывателем. Прямая трансляция будет проведена на <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> СКОРО. Мы покажем вам, как создать простую игру со звуком с нуля. И на этот раз она не будет требовать Редактора для работы.
|
||||
|
||||
Точную дату и время мы объявим в ближайшие дни. Оставайтесь на связи!
|
||||
7
ru/news/2016-01-25_january-live-session-announcement.md
Normal file
7
ru/news/2016-01-25_january-live-session-announcement.md
Normal file
@@ -0,0 +1,7 @@
|
||||
Title: Создание игры в прямом эфире: 31 января 2016
|
||||
Date: 2016-01-25 00:00
|
||||
Category: News
|
||||
Slug: january-live-session-announcement
|
||||
Lang: ru
|
||||
|
||||
Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится [31 января 2016 в 14:00 MSK](http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B&iso=20160131T14&p1=166&ah=3). Присоединяйтесь!
|
||||
9
ru/news/2016-02-02_rolling-ball-live-session-pt2.md
Normal file
9
ru/news/2016-02-02_rolling-ball-live-session-pt2.md
Normal file
@@ -0,0 +1,9 @@
|
||||
Title: Создание игры в прямом эфире (часть 2): 7 февраля 2016
|
||||
Date: 2016-02-02 00:00
|
||||
Category: News
|
||||
Slug: rolling-ball-live-session-pt2
|
||||
Lang: ru
|
||||
|
||||
К сожалению, нам не удалось завершить создание простой игры "Катящийся мяч" за 3 часа. Поэтому вторая часть трансляции <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится [7 февраля 2016 в 14:00 MSK](http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B%2C+%D1%87%D0%B0%D1%81%D1%82%D1%8C+2&iso=20160207T14&p1=166&ah=3).
|
||||
|
||||
Давайте завершим игру!
|
||||
27
ru/news/2016-02-10_rolling-ball.md
Normal file
27
ru/news/2016-02-10_rolling-ball.md
Normal file
@@ -0,0 +1,27 @@
|
||||
Title: Запись прямого эфира "Катящийся мяч" и материалы
|
||||
Date: 2016-02-10 00:00
|
||||
Category: News
|
||||
Slug: rolling-ball
|
||||
Lang: ru
|
||||
|
||||
Т.к. мы провели 2 прямые трансляции для создания игры "Катящийся мяч", ниже вы можете увидеть 2 записи этого процесса на YouTube:
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
<iframe width="560" height="315" src="http://www.youtube.com/embed/851IlFT7y18" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
|
||||
|
||||
Игра "Катящийся мяч" для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Games/RollingBall/">доступна на SourceForge</a>.
|
||||
Просто распакуйте и запустите скрипт 'run'.
|
||||
|
||||
Редактор 0.8 <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/46_2016-01-30_22-20-41_0.8.0/">доступен тоже на SourceForge</a>.
|
||||
|
||||
Проект "Катящийся мяч" для Редактора <a title="GitHub" href="https://github.com/OGStudio/rollingBall.ogs/archive/master.zip">доступен на GitHub</a>.
|
||||
|
||||
Чтобы открыть его в Редакторе:
|
||||
|
||||
* замените slideDown.ogs загруженным rollingBall.ogs
|
||||
* переименуйте rollingBall.ogs в slideDown.ogs
|
||||
|
||||
Т.к. прямой эфир занял гораздо больше времени, чем мы планировали, мы решили сконцентрировать свои усилия на улучшении удобства редактора. Его возможности уже довольно обширны, но использовать их крайне неудобно. Наиболее серьезные из этих проблем мы планируем исправить в следующем релизе Редактора.
|
||||
12
ru/news/2016-04-24_may-live-session-decision.md
Normal file
12
ru/news/2016-04-24_may-live-session-decision.md
Normal file
@@ -0,0 +1,12 @@
|
||||
Title: Майский прямой эфир (Редактор 0.9)
|
||||
Date: 2016-04-24 00:00
|
||||
Category: News
|
||||
Slug: may-live-session-decision
|
||||
Lang: ru
|
||||
|
||||
Как вы знаете, ранее опубликованная дорожная карта предполагала, что в апреле будет прямой эфир, в котором с помощью Редактора 0.9 мы создадим игру пинг-понг.
|
||||
|
||||
Мы должны признать, что наши способности к планированию всё ещё недостаточно высоки, поэтому следующий прямой эфир состоится в конце мая. Точную дату мы объявим позже.
|
||||
|
||||
Вот пара моментов из будущей игры:
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/V3EvCVPc6kg" frameborder="0" allowfullscreen></iframe>
|
||||
7
ru/news/2016-05-17_may-live-session-announcement.md
Normal file
7
ru/news/2016-05-17_may-live-session-announcement.md
Normal file
@@ -0,0 +1,7 @@
|
||||
Title: Прямой эфир: 28 мая 2016
|
||||
Date: 2016-05-17 00:00
|
||||
Category: News
|
||||
Slug: may-live-session-announcement
|
||||
Lang: ru
|
||||
|
||||
Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится [28 мая 2016 в 13:00 MSK](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). Присоединяйтесь!
|
||||
12
ru/news/2016-05-29_ogs-editor-0.9.md
Normal file
12
ru/news/2016-05-29_ogs-editor-0.9.md
Normal file
@@ -0,0 +1,12 @@
|
||||
Title: Материалы прямого эфира за май 2016
|
||||
Date: 2016-05-29 00:00
|
||||
Category: News
|
||||
Slug: ogs-editor-0.9
|
||||
Lang: ru
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/8gHYOkMRoos?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J" frameborder="0" allowfullscreen></iframe>
|
||||
В этот раз мы показали, как создать простую игру на основе Домино. Ниже приведены все материалы, связанные с созданием игры.
|
||||
|
||||
1. Редактор 0.9 для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/49_2016-05-24_04-48-47_0.9.0/">доступен на SourceForge</a>. Просто распакуйте и запустите скрипт run.
|
||||
2. Проект Домино, созданный во время прямого эфира <a title="GitHub" href="https://github.com/OGStudio/domino-livesession">доступен на GitHub</a>.
|
||||
3. Видео репетиции создания игры, на которые есть ссылки в прямом эфире, <a title="YouTube" href="https://www.youtube.com/playlist?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J">доступны на YouTube</a>
|
||||
15
ru/news/2016-08-10_once-mahjong-always-mahjong.md
Normal file
15
ru/news/2016-08-10_once-mahjong-always-mahjong.md
Normal file
@@ -0,0 +1,15 @@
|
||||
Title: Раз Маджонг – всегда Маджонг
|
||||
Date: 2016-08-10 00:00
|
||||
Category: News
|
||||
Slug: once-mahjong-always-mahjong
|
||||
Lang: ru
|
||||
|
||||
Мы начали проект Opensource Game Studio очень давно. Мы хотели дать сообществу свободного программного обеспечения средства для создания игр. Правда, тогда не было ясно, что они из себя должны представлять. Поэтому решили начать с малого: создать игру.
|
||||
|
||||
Мы потратили 3 года для достижения этой цели: выпуск OGS Mahjong 1.0 состоялся в 2012 году. Даже для хобби-проекта (мы тратим в среднем около 40 часов в месяц) это очень долго.
|
||||
|
||||
После выпуска игры до нас дошло: **Средства для создания игр должны экономить время разработки**.
|
||||
|
||||
Мы потратили ещё 4 года на их разработку. Пришло время доказать, что они стоят каждого затраченного дня. Как? Мы **воссоздадим режим "пасьянс Маджонг"** за считанные часы!
|
||||
|
||||
Присоединяйтесь к нашему следующему прямому эфиру в сентябре.
|
||||
9
ru/news/2016-08-18_back-to-social-networks.md
Normal file
9
ru/news/2016-08-18_back-to-social-networks.md
Normal file
@@ -0,0 +1,9 @@
|
||||
Title: Мы вернулись в социальные сети
|
||||
Date: 2016-08-18 00:00
|
||||
Category: News
|
||||
Slug: back-to-social-networks
|
||||
Lang: ru
|
||||
|
||||
Если вы подписаны на нашу группу в [Facebook](https://www.facebook.com/groups/162611230470183/), [Twitter](https://twitter.com/OpenGameStudio) или [VK](https://new.vk.com/opengamestudo), вы заметили, что мы начали использовать её снова. Это не случайно: мы наконец созрели для вербального общения после 4 лет молчаливой разработки.
|
||||
|
||||
Подписывайтесь!
|
||||
197
ru/news/2016-09-03_2016-august-recap.md
Normal file
197
ru/news/2016-09-03_2016-august-recap.md
Normal file
@@ -0,0 +1,197 @@
|
||||
Title: Август 2016 кратко
|
||||
Date: 2016-09-03 00:00
|
||||
Category: News
|
||||
Slug: 2016-august-recap
|
||||
Lang: ru
|
||||
|
||||
![Редактор со сферическим узлом сцены][screenshot]
|
||||
|
||||
|
||||
Эта статья описывает самые важные технические детали разработки за август: модуль UIQt, его переработку, новый подход к разработке на основе функционала и его преимущества.
|
||||
|
||||
**Модуль UIQt** - это коллекция компонент UI на основе Qt. Сейчас используем лишь для интерфейса редактора.
|
||||
|
||||
Список компонент модуля UIQt с описанием и размером кода:<table>
|
||||
<tr>
|
||||
<th>**№**</th>
|
||||
<th>**Компонента**</th>
|
||||
<th>**Описание**</th>
|
||||
<th>**Размер (Б)**</th>
|
||||
<th>**Размер (%)**</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>UIQtAction</td>
|
||||
<td>Действия (события) для меню</td>
|
||||
<td>11224</td>
|
||||
<td>9</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>UIQtAux</td>
|
||||
<td>Инициализирует Qt и главное окно. Предоставляет поиск виджета по имени для других компонент</td>
|
||||
<td>15518</td>
|
||||
<td>12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>UIQtDock</td>
|
||||
<td>Виджет стыковки</td>
|
||||
<td>5273</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>UIQtFileDialog</td>
|
||||
<td>Диалог выбора файла</td>
|
||||
<td>8960</td>
|
||||
<td>7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>UIQtMenu</td>
|
||||
<td>Меню для главного окна и на ПКМ (вроде меню по добавлению/копированию/вставке/удалению узла)</td>
|
||||
<td>4566</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>UIQtMenuBar</td>
|
||||
<td>Панель меню для главного окна</td>
|
||||
<td>4222</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>UIQtRunner</td>
|
||||
<td>Позволяет запустить QApplication</td>
|
||||
<td>2450</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td>UIQtThumbnailDialog</td>
|
||||
<td>Диалог с изображениями</td>
|
||||
<td>18615</td>
|
||||
<td>14</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td>UIQtToolBar</td>
|
||||
<td>Панель инструментов для главого окна</td>
|
||||
<td>4276</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10</td>
|
||||
<td>UIQtTree</td>
|
||||
<td>Предоставляет сложные виджеты вроде Дерева сцены и Редактора свойств</td>
|
||||
<td>51216</td>
|
||||
<td>39</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>11</td>
|
||||
<td>UIQtWidget</td>
|
||||
<td>Общие свойства виджетов вроде фокуса и видимости</td>
|
||||
<td>5465</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
**Мы переработали модуль UIQt** для замены старого State API на новый Environment API, который позволяет делать то же самое лаконичнее, т.е. упрощает и ускоряет разработку.
|
||||
|
||||
Переработку начали в июле и должны были закончить в том же месяце. Тем не менеe, работы завершили лишь в августе. Начальный план предполагал, что 28 часов должно хватить, но мы потратили 65. Мы оценивали необходимое время на основе количества вызовов публичного API каждой компоненты. Это хорошо сработало для небольших компонент, т.к. число вызовов их публичного API было примерно равно количеству их функционала, а сам функционал был очень маленький. Однако такой подход полностью провалился для компонеты UIQtTree, составляющей 39% кода модуля UIQt, потому что не было прямой связи между публичным API и функционалом.
|
||||
|
||||
**Новый подход к разработке на основе функционала** родился после решения проблем с переработкой UIQtTree. Т.к. Qt использует MVC, компонента UIQtTree состоит из нескольких классов. К тому моменту, когда UIQtTree могла отображать и управлять иерархией элементов, компонента уже имела размер в 27К. Мы заметили, что UIQtTree стала потреблять непомерное количество времени разработки даже для мелкого функционала. Это было явным проявлением [количественной сложности](http://rsdn.org/article/philosophy/Complexity.xml).
|
||||
|
||||
Мы решили разбить UIQtTree на базовую часть и дополнительные. База содержит лишь необходимый минимум кода. Дополнение содержит код, специфичный для данного функционала, и может быть безболезненно изменено. В случае UIQtTree, отображение и управление иерархией элементов - это минимальный функционал, а переименование элементов - это дополнение.
|
||||
|
||||
Текущий функционал UIQtTree состоит из следующих возможностей:
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>**№**</th>
|
||||
<th>**Функционал**</th>
|
||||
<th>**Описание**</th>
|
||||
<th>**Размер (Б)**</th>
|
||||
<th>**Размер (%)**</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Base</td>
|
||||
<td>Создание, изменение, отображение иерархии элементов</td>
|
||||
<td>26966</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>Item open state</td>
|
||||
<td>Хранит состояние свойства скрыто/отображено элемента</td>
|
||||
<td>3094</td>
|
||||
<td>6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>Item renaming</td>
|
||||
<td>Переименование элемента</td>
|
||||
<td>3471</td>
|
||||
<td>7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>Item selection</td>
|
||||
<td>Получение/установка выбранного элемента</td>
|
||||
<td>2338</td>
|
||||
<td>5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>Item value</td>
|
||||
<td>Предоставляет второй и последующие столбцы для элементов, используется Редактором свойств</td>
|
||||
<td>1307</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>Item value editing</td>
|
||||
<td>Редактирование значений элемента с помощью стандартного виджета</td>
|
||||
<td>1996</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>Item value editing with combobox</td>
|
||||
<td>Редактирование значений элемента с помощью виджета combobox</td>
|
||||
<td>5819</td>
|
||||
<td>11</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td>Item value editing with spinner</td>
|
||||
<td>Редактирование значений элемента с помощью виджета spinbox</td>
|
||||
<td>5290</td>
|
||||
<td>10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td>Menu</td>
|
||||
<td>Меню на ПКМ</td>
|
||||
<td>1248</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Пример файла функционала Menu для UIQtTree: [TREE_MENU](https://bitbucket.org/ogstudio-history/mjin-pre-pre/src/0c4cc3c3213f4687c0f3bd6a5426a6054cadd79b/f/TREE_MENU.cpp?at=Studio+0.10&fileviewer=file-view-default).
|
||||
|
||||
**Преимущества подхода:**
|
||||
|
||||
1. Более быстрое чтение/понимание благодаря небольшому размеру
|
||||
1. Более простое и безболезненное изменение благодаря изолированному коду
|
||||
|
||||
|
||||
|
||||
Есть и недостаток: новый подход требует изучения.
|
||||
|
||||
На этом мы заканчиваем описание самых важных технических деталей разработки за август: модуль UIQt, его переработку, новый подход к разработке на основе функционала и его преимущества.
|
||||
|
||||
[screenshot]: ../../images/2016-09-03_august-recap.png
|
||||
@@ -0,0 +1,9 @@
|
||||
Title: Прямой эфир: 25 сентября 2016
|
||||
Date: 2016-09-17 00:00
|
||||
Category: News
|
||||
Slug: september-live-session-announcement
|
||||
Lang: ru
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Y5hOGKcQ8wA" frameborder="0" allowfullscreen></iframe>
|
||||
[25 сентября 2016 в 13:00 MSK](http://www.timeanddate.com/worldclock/fixedtime.html?msg=%D0%9F%D1%80%D1%8F%D0%BC%D0%BE%D0%B9+%D1%8D%D1%84%D0%B8%D1%80+Open+Game+Studio%3A+%D0%A1%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8C+2016&iso=20160925T13&p1=166&ah=2) мы проведём [прямой эфир](https://www.livecoding.tv/kornerr).
|
||||
Самое время создать простой пасьянс Маджонг
|
||||
@@ -0,0 +1,8 @@
|
||||
Title: Прямой эфир через 24 часа
|
||||
Date: 2016-09-24 00:00
|
||||
Category: News
|
||||
Slug: september-live-session-announcement-tomorrow
|
||||
Lang: ru
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Fj4yHG-mV1U" frameborder="0" allowfullscreen></iframe>
|
||||
Приготовьтесь к [прямому эфиру](https://www.livecoding.tv/kornerr), он начнётся через 24 часа!
|
||||
12
ru/news/2016-09-26_yesterdays-live-session-short-overview.md
Normal file
12
ru/news/2016-09-26_yesterdays-live-session-short-overview.md
Normal file
@@ -0,0 +1,12 @@
|
||||
Title: Пара слов о вчерашнем прямом эфире
|
||||
Date: 2016-09-26 00:00
|
||||
Category: News
|
||||
Slug: yesterdays-live-session-short-overview
|
||||
Lang: ru
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
|
||||
Создание пасьянса Маджонг прошло успешно, и заняло менее 4 часов.
|
||||
|
||||
Мы опубликуем материалы прямого эфира чуть позже на этой неделе.
|
||||
|
||||
Спасибо за участие.
|
||||
16
ru/news/2016-10-03_ogs-editor-0.10.md
Normal file
16
ru/news/2016-10-03_ogs-editor-0.10.md
Normal file
@@ -0,0 +1,16 @@
|
||||
Title: OGS Editor 0.10 и материалы прямого эфира
|
||||
Date: 2016-10-03 00:00
|
||||
Category: News
|
||||
Slug: ogs-editor-0.10
|
||||
Lang: ru
|
||||
|
||||
![Редактор с игрой Маджонг][screenshot]
|
||||
|
||||
Внимание: мы не выпустим версию 0.10 для macOS из-за технических проблем с системой сборки. Поддержку macOS вернём к 0.11.
|
||||
|
||||
* **OGS Editor 0.10** [доступен на SourceForge](https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/51_2016-10-01_06-39-48_0.10.0/). Просто распакуйте архив и запустите скрипт run.
|
||||
* **Пасьянс маджонг** тоже [доступен на SourceForge](https://sourceforge.net/projects/osrpgcreation/files/Games/MahjongSolitaire/). Просто распакуйте архив и запустите скрипт run.
|
||||
* **Проект прямого эфира** [доступен на GitHub](https://github.com/OGStudio/mahjong-solitaire-livesession).
|
||||
* **Запись прямого эфира** [доступна на YouTube](https://youtu.be/g8Tyj_YH2Qc?list=PLWMTZqE4MAMJzBnXS9qU_ObWnzJuskI3F). Видео содержит весь процесс создания пасьянса маджонг.
|
||||
|
||||
[screenshot]: ../../images/2016-10-03_ogs-editor-0.10.png
|
||||
50
ru/news/2016-10-11_2016-september-recap.md
Normal file
50
ru/news/2016-10-11_2016-september-recap.md
Normal file
@@ -0,0 +1,50 @@
|
||||
Title: Сентябрь 2016 кратко
|
||||
Date: 2016-10-11 00:00
|
||||
Category: News
|
||||
Slug: 2016-september-recap
|
||||
Lang: ru
|
||||
|
||||
![Маджонг, созданный в прямом эфире][screenshot]
|
||||
|
||||
|
||||
Эта статья описывает стадии по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.
|
||||
|
||||
Несмотря на то, что сам прямой эфир длится лишь несколько часов, мы готовимся к нему целый месяц. Рассмотрим каждую стадию прямого эфира подробнее.
|
||||
|
||||
1. **Черновик.** Создание игры в первый раз.
|
||||
|
||||
Цели:
|
||||
|
||||
* проверить наши технологии и исправить основные ошибки;
|
||||
* узнать о неудобствах использования технологий, чтобы исправить их в следующей итерации разработки;
|
||||
* перечислить точные шаги для воссоздания игры позже;
|
||||
* создать черновой вариант ресурсов игры (модели, текстуры, звуки, скрипты).
|
||||
|
||||
После завершения стадии мы объявляем о дате прямого эфира и показываем примерный вид игры.
|
||||
|
||||
1. **Репетиция.** Повторное создание игры.
|
||||
|
||||
Цели:
|
||||
|
||||
* убедиться в отсутствии основных ошибок;
|
||||
* записать полный процесс создания игры;
|
||||
* создать финальный вариант ресурсов игры.
|
||||
|
||||
Это 99% публикуемой позже игры.
|
||||
|
||||
1. **Прямой эфир.** Воссоздание игры в прямом эфире.
|
||||
|
||||
Цели:
|
||||
|
||||
* показать простоту создания игр;
|
||||
* объяснить нюансы создания игр;
|
||||
* получить обратную связь от вас;
|
||||
* ответить на ваши вопросы.
|
||||
|
||||
Мы используем ресурсы из репетиции, чтобы быстро воссоздать игру за считанные часы.
|
||||
|
||||
1. **Публикация.** Выпуск последней версии наших технологий, материалов прямого эфира и самостоятельной игры.
|
||||
|
||||
На этом мы заканчиваем описание стадий по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.
|
||||
|
||||
[screenshot]: ../../images/2016-10-11_september-recap.png
|
||||
85
ru/news/2016-10-31_2016-tech-showcases.md
Normal file
85
ru/news/2016-10-31_2016-tech-showcases.md
Normal file
@@ -0,0 +1,85 @@
|
||||
Title: Демонстрации технологий
|
||||
Date: 2016-10-31 00:00
|
||||
Category: News
|
||||
Slug: 2016-tech-showcases
|
||||
Lang: ru
|
||||
|
||||
![Файл с функциональностью на фоне][screenshot]
|
||||
|
||||
|
||||
Сегодня мы ещё раз взглянем на формат демонстраций в 2015-2016 годах, а также сообщим о новом формате 2017-го.
|
||||
|
||||
**2015 и 2016: демонстрации в прямом эфире.**
|
||||
|
||||
Как вы знаете, в ходе демонстраций мы в прямом эфире показываем состояние наших технологий и собираем небольшую работающую игру с нуля. За прошедший год мы провели 4 демонстрации в прямом эфире, в ходе которых создали следующие небольшие игры:
|
||||
<table>
|
||||
<tr>
|
||||
<th>**№**</th>
|
||||
<th>**Созданная игра**</th>
|
||||
<th>**Дата демонстрации в прямом эфире**</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Поймай крота</td>
|
||||
<td>Ноябрь 2015</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>Катящийся мяч</td>
|
||||
<td>Февраль 2016</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>Домино</td>
|
||||
<td>Май 2016</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>Пасьянс Маджонг</td>
|
||||
<td>Сентябрь 2016</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
На подготовку ко всем 4-м демонстрациям у нас ушло 4 месяца. Это был очень полезный для нас опыт. Тем не менее, в 2017-м году мы ограничимся лишь двумя такими демонстрациями. Почему? Потому что мы будем тратить больше времени непосредственно на разработку!
|
||||
|
||||
**2017: демонстрации в прямом эфире + технические анонсы.**
|
||||
|
||||
Место двух демонстраций займут технические анонсы. Технический анонс - это тоже демонстрация прогресса наших технологий, но без создания игр в прямом эфире.
|
||||
|
||||
Примерный календарь технических анонсов и демонстраций на 2017-й год выглядит следующим образом:
|
||||
<table>
|
||||
<tr>
|
||||
<th>**№**</th>
|
||||
<th>**Месяц**</th>
|
||||
<th>**Вид демонстрации**</th>
|
||||
<th>**Тема**</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Январь</td>
|
||||
<td>Технический анонс</td>
|
||||
<td>Поддержка платформы Android</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>Апрель</td>
|
||||
<td>Демонстрация в прямом эфире</td>
|
||||
<td>Создание игры для Android</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>Июль</td>
|
||||
<td>Технический анонс</td>
|
||||
<td>Будет объявлено позднее</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>Октябрь</td>
|
||||
<td>Демонстрация в прямом эфире</td>
|
||||
<td>Будет объявлено позднее</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
На этом мы заканчиваем рассказ о формате демонстраций в 2015-2016 годах, а также о новом формате 2017-го.
|
||||
|
||||
[screenshot]: ../../images/2016-10-31_tech-showcases.png
|
||||
52
ru/news/2016-11-19_2016-october-recap.md
Normal file
52
ru/news/2016-11-19_2016-october-recap.md
Normal file
@@ -0,0 +1,52 @@
|
||||
Title: Октябрь 2016 кратко
|
||||
Date: 2016-11-19 00:00
|
||||
Category: News
|
||||
Slug: 2016-october-recap
|
||||
Lang: ru
|
||||
|
||||
![Достижение поддержки Android было сродни покорению горы для нас][screenshot]
|
||||
|
||||
|
||||
Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.
|
||||
|
||||
**Первая попытка собрать OSG.**
|
||||
|
||||
Не имея опыта разработки под Android, мы взяли последнюю версию Android Studio и начали проходить самоучители для начинающих. Java далась легко. Всё работало из коробки. Затем наступил черёд C++ и проблем.
|
||||
|
||||
**CMake. **Android Studio для работы с C++ использует собственную версию CMake, которая конфликтует с системной. Для нас это было явным сигналом о необходимости подготовить отдельное окружение разработки специально под Android.
|
||||
|
||||
**KVM. **Мы установили Ubuntu на VirtualBox. Всё шло замечательно до того момента, пока мы не запустили эмулятор Android. Оказалось, что VirtualBox не может запустить эмулятор, т.к. виртуальная машина не предоставляет виртуализацию внутри уже виртуализированного окружения.
|
||||
|
||||
**Chroot для Android. **Вспомнив о положительном опыте работы с chroot для сборки OGS Editor, мы решили поместить окружение разработки Android в chroot. После небольших настроек мы сумели запустить эмулятор Android и собрать проект C++.
|
||||
|
||||
**OSG. **К этому моменту мы считали, что собрать OSG не составит труда, но не тут-то было. Всё, что мы получили, - это падение. Предположив, что мы ошиблись где-то при первой сборке, мы решили пересобрать OSG ещё раз. И снова получили ту же ошибку. Поиск решения проблемы не дал результатов. Никто не помог нам в списке рассылок OSG.
|
||||
|
||||
Мы были в отчаянии.
|
||||
|
||||
**Поиск альтернатив OSG.**
|
||||
|
||||
Раз сообщество OSG нам не помогло, мы решили поискать альтернативный открытый проект, который мог решить наши задачи на Android (и, возможно, на других платформах).
|
||||
|
||||
Такой проект мы нашли: [BabylonHX](http://babylonhx.gamestudiohx.com/). Домашняя страница выглядела замечательно: она отображала WebGL в фоне! Промелькнула мысль, что мы наконец нашли алмаз. К сожалению, пример на домашней странице просто не работал.
|
||||
|
||||
Думаем, вы понимаете наши чувства на тот момент.
|
||||
|
||||
**Успех в сборке OSG.**
|
||||
|
||||
Мы осознали, что никто за нас не запустит OSG на Android. Нужно было сделать это самостоятельно.
|
||||
|
||||
Потеряв доверие к очень короткой [документации OSG 3.4](http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/178-building-openscenegraph-for-android-3-4) по сборке для Android, мы решили использовать [первоначальную документацию OSG 3.0](http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/44-building-openscenegraph-for-android-3-0-3-0-1). В ходе следования ей мы наткнулись на мёртвую ссылку, которая должна была содержать зависимости. Поиск альтернативной ссылки вывел нас на [самоучитель 2013 года](https://xinyustudio.wordpress.com/2013/09/24/install-osg-for-android-on-ubuntu-13-04-step-by-step-tutorials/) по сборке OSG 3.0 для Android.
|
||||
|
||||
После прохождения самоучителя мы наконец смогли запустить OSG под Android! Тем не менее, был нюанс: используемые в самоучителе версии OSG и средств разработки Android были древними. В течение нескольких дней мы постепенно довели версии OSG и средств разработки Android до последних.
|
||||
|
||||
В ходе этого обновления мы узнали о двух вещах, помешавших нам запустить OSG с первого раза:
|
||||
|
||||
* Изменение заголовков Android API в NDK r12
|
||||
* OSG работает под Android лишь в виде статической библиотеки
|
||||
|
||||
|
||||
|
||||
На этом мы заканчиваем описание того, как мы потратили месяц на сборку OSG под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.
|
||||
|
||||
[screenshot]: ../../images/2016-11-19_2016-october-recap.png
|
||||
|
||||
47
ru/news/2016-12-15_2016-november-recap.md
Normal file
47
ru/news/2016-12-15_2016-november-recap.md
Normal file
@@ -0,0 +1,47 @@
|
||||
Title: Ноябрь 2016 кратко
|
||||
Date: 2016-12-15 00:00
|
||||
Category: News
|
||||
Slug: 2016-november-recap
|
||||
Lang: ru
|
||||
|
||||
![Постройка здания][screenshot]
|
||||
|
||||
|
||||
Эта статья описывает начало разделения библиотеки MJIN на модули.
|
||||
|
||||
Как только мы собрали OpenSceneGraph для Android, стало очевидно, что часть функционала MJIN не нужна на Android. Например, UIQt - это основа интерфейса Редактора. Раз Редактор - это приложение для ПК, то UIQt не нужен на Android.
|
||||
|
||||
Мы решили рассмотреть два подхода к разделению MJIN на модули: во время сборки (build-time) и исполнения (run-time).
|
||||
Разделение **во время сборки** означает гибкую систему настроек MJIN, что позволит собирать её различно под каждую платформу.
|
||||
Разделение **во время исполнения** означает разделение MJIN на несколько небольших библиотек с последующим соединением во время исполнения, что позволит легко менять функционал без повторной сборки.
|
||||
|
||||
**Исследование разделения во время исполнения.**
|
||||
|
||||
Т.к. разделение во время исполнения имеет больше преимуществ, мы начали с этого подхода. Самый простой способ достичь его заключался в использовании C API, т.к. правила C ABI намного проще правил C++ ABI.
|
||||
|
||||
Мы создали маленький проект, включающий в себя приложение, библиотеку и плагин:
|
||||
|
||||
* **Приложение** было слинковано с библиотекой и использовало её для загрузки плагина.
|
||||
* **Библиотека** предоставляла функции для регистрации плагина и вызывала его функции.
|
||||
* **Плагин** предоставлял функции для библиотеки и вызывал её функции.
|
||||
|
||||
Исследование прошло на ура: проект работал в полном соответствии с нашими ожиданиями на Linux и Windows. Тем не менее, т.к. MJIN на текущий момент является большой монолитной сущностью, мы отложили применение C API до окончания разделения во время сборки.
|
||||
|
||||
**Начало разделения во время сборки.**
|
||||
|
||||
Мы выделили следующие модули из MJIN:
|
||||
|
||||
* Android: предоставляет Java Native Interface (JNI) к MJIN
|
||||
* Sound: предоставляет доступ к OpenAL
|
||||
* UIQt: предоставляет доступ к Qt
|
||||
|
||||
|
||||
|
||||
|
||||
Модули Sound и UIQt на текущий момент статически линкуются в MJIN, тогда как модуль Android линкуется динамически из-за ограничений JNI.
|
||||
|
||||
В следующем году мы изменим структуру MJIN так, чтобы её можно было легче собрать под разные платформы.
|
||||
|
||||
На этом мы заканчиваем статью о начале разделения библиотеки MJIN на модули.
|
||||
|
||||
[screenshot]: ../../images/2016-12-15_2016-november-recap.png
|
||||
24
ru/news/2016-12-31_2017-happy-new-year.md
Normal file
24
ru/news/2016-12-31_2017-happy-new-year.md
Normal file
@@ -0,0 +1,24 @@
|
||||
Title: Счастливого 2017-го
|
||||
Date: 2016-12-31 00:00
|
||||
Category: News
|
||||
Slug: 2017-happy-new-year
|
||||
Lang: ru
|
||||
|
||||
![Новогодняя ёлка][screenshot]
|
||||
|
||||
Ну вот. Это был тяжелый год для всех в команде. И он почти закончен. Хвала окончанию старого! Хвала наступлению нового!
|
||||
|
||||
Может показаться, что наш прогресс застопорился. Три года назад мы объявили о начале нового проекта (двух, если быть точным), но до сих пор мы работаем над движком и редактором, даже не начали делать ни Shuan, ни Mahjong 2.
|
||||
|
||||
Если вы следили за новостями в течение года, вы знаете что мы провели несколько "живых сессий", демонстрируя в реальном времени как можно использовать наш инструментарий для создания простой игры. Каждая сессия была шагом в долгом пути к нашей цели. В процессе подготовки к ним, мы добавляли важные элементы, которые будут необходимы для создания любой игры.
|
||||
|
||||
Будущие сессии и демонстрации добавят даже больше, так что в будущем (надеюсь не слишком отдаленном), у нас будет все необходимое для того чтобы просто сесть и собрать планируемую игру из этих элементов.
|
||||
|
||||
Так что проект не умер; идея не отброшена. Очень много работы предстоит сделать, прежде чем мы можем начать делать игру. И нас только двое, занимающихся всем этим в свое свободное время.
|
||||
Итак, вы хотите, чтобы наша игра стала реальностью? Присоединяйтесь к нам. Вместе мы будем править галактикой. Или можете просто подождать. Мы не бросили все это несколько лет назад. Не станем и сейчас.
|
||||
В конце концов, есть только один способ создать годный инструмент (а это наша первоначальная цель, если вы помните) - мы должны использовать его сами.
|
||||
Мы будем. Следите за новостями.
|
||||
|
||||
Счастливого 2017-го. Пусть он будет простым.
|
||||
|
||||
[screenshot]: ../../images/2016-12-31_happy-new-year.png
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,237 +87,116 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2016-august-recap.html">EN</a>
|
||||
<a href="2016-august-recap.html">RU</a>
|
||||
<a href="../../ru/news/2016-august-recap.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-august-recap.html">Август 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-03 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-09-03_august-recap.png" alt="Редактор со сферическим узлом сцены" /><figcaption>Редактор со сферическим узлом сцены</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-august-recap.html">Август 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-03 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-09-03_august-recap.png" alt="Редактор со сферическим узлом сцены" /></p>
|
||||
<p>Эта статья описывает самые важные технические детали разработки за август: модуль UIQt, его переработку, новый подход к разработке на основе функционала и его преимущества.</p>
|
||||
<p><strong>Модуль UIQt</strong> - это коллекция компонент UI на основе Qt. Сейчас используем лишь для интерфейса редактора.</p>
|
||||
Список компонент модуля UIQt с описанием и размером кода:
|
||||
<table>
|
||||
<p>Список компонент модуля UIQt с описанием и размером кода:<table>
|
||||
<tr>
|
||||
<th>
|
||||
<strong>№</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Компонента</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Описание</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Размер (Б)</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Размер (%)</strong>
|
||||
</th>
|
||||
<th><strong>№</strong></th>
|
||||
<th><strong>Компонента</strong></th>
|
||||
<th><strong>Описание</strong></th>
|
||||
<th><strong>Размер (Б)</strong></th>
|
||||
<th><strong>Размер (%)</strong></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
1
|
||||
</td>
|
||||
<td>
|
||||
UIQtAction
|
||||
</td>
|
||||
<td>
|
||||
Действия (события) для меню
|
||||
</td>
|
||||
<td>
|
||||
11224
|
||||
</td>
|
||||
<td>
|
||||
9
|
||||
</td>
|
||||
<td>1</td>
|
||||
<td>UIQtAction</td>
|
||||
<td>Действия (события) для меню</td>
|
||||
<td>11224</td>
|
||||
<td>9</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
2
|
||||
</td>
|
||||
<td>
|
||||
UIQtAux
|
||||
</td>
|
||||
<td>
|
||||
Инициализирует Qt и главное окно. Предоставляет поиск виджета по имени для других компонент
|
||||
</td>
|
||||
<td>
|
||||
15518
|
||||
</td>
|
||||
<td>
|
||||
12
|
||||
</td>
|
||||
<td>2</td>
|
||||
<td>UIQtAux</td>
|
||||
<td>Инициализирует Qt и главное окно. Предоставляет поиск виджета по имени для других компонент</td>
|
||||
<td>15518</td>
|
||||
<td>12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>
|
||||
UIQtDock
|
||||
</td>
|
||||
<td>
|
||||
Виджет стыковки
|
||||
</td>
|
||||
<td>
|
||||
5273
|
||||
</td>
|
||||
<td>
|
||||
4
|
||||
</td>
|
||||
<td>3</td>
|
||||
<td>UIQtDock</td>
|
||||
<td>Виджет стыковки</td>
|
||||
<td>5273</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
4
|
||||
</td>
|
||||
<td>
|
||||
UIQtFileDialog
|
||||
</td>
|
||||
<td>
|
||||
Диалог выбора файла
|
||||
</td>
|
||||
<td>
|
||||
8960
|
||||
</td>
|
||||
<td>
|
||||
7
|
||||
</td>
|
||||
<td>4</td>
|
||||
<td>UIQtFileDialog</td>
|
||||
<td>Диалог выбора файла</td>
|
||||
<td>8960</td>
|
||||
<td>7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
5
|
||||
</td>
|
||||
<td>
|
||||
UIQtMenu
|
||||
</td>
|
||||
<td>
|
||||
Меню для главного окна и на ПКМ (вроде меню по добавлению/копированию/вставке/удалению узла)
|
||||
</td>
|
||||
<td>
|
||||
4566
|
||||
</td>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>5</td>
|
||||
<td>UIQtMenu</td>
|
||||
<td>Меню для главного окна и на ПКМ (вроде меню по добавлению/копированию/вставке/удалению узла)</td>
|
||||
<td>4566</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
6
|
||||
</td>
|
||||
<td>
|
||||
UIQtMenuBar
|
||||
</td>
|
||||
<td>
|
||||
Панель меню для главного окна
|
||||
</td>
|
||||
<td>
|
||||
4222
|
||||
</td>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>6</td>
|
||||
<td>UIQtMenuBar</td>
|
||||
<td>Панель меню для главного окна</td>
|
||||
<td>4222</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
7
|
||||
</td>
|
||||
<td>
|
||||
UIQtRunner
|
||||
</td>
|
||||
<td>
|
||||
Позволяет запустить QApplication
|
||||
</td>
|
||||
<td>
|
||||
2450
|
||||
</td>
|
||||
<td>
|
||||
2
|
||||
</td>
|
||||
<td>7</td>
|
||||
<td>UIQtRunner</td>
|
||||
<td>Позволяет запустить QApplication</td>
|
||||
<td>2450</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
8
|
||||
</td>
|
||||
<td>
|
||||
UIQtThumbnailDialog
|
||||
</td>
|
||||
<td>
|
||||
Диалог с изображениями
|
||||
</td>
|
||||
<td>
|
||||
18615
|
||||
</td>
|
||||
<td>
|
||||
14
|
||||
</td>
|
||||
<td>8</td>
|
||||
<td>UIQtThumbnailDialog</td>
|
||||
<td>Диалог с изображениями</td>
|
||||
<td>18615</td>
|
||||
<td>14</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
9
|
||||
</td>
|
||||
<td>
|
||||
UIQtToolBar
|
||||
</td>
|
||||
<td>
|
||||
Панель инструментов для главого окна
|
||||
</td>
|
||||
<td>
|
||||
4276
|
||||
</td>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>9</td>
|
||||
<td>UIQtToolBar</td>
|
||||
<td>Панель инструментов для главого окна</td>
|
||||
<td>4276</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
10
|
||||
</td>
|
||||
<td>
|
||||
UIQtTree
|
||||
</td>
|
||||
<td>
|
||||
Предоставляет сложные виджеты вроде Дерева сцены и Редактора свойств
|
||||
</td>
|
||||
<td>
|
||||
51216
|
||||
</td>
|
||||
<td>
|
||||
39
|
||||
</td>
|
||||
<td>10</td>
|
||||
<td>UIQtTree</td>
|
||||
<td>Предоставляет сложные виджеты вроде Дерева сцены и Редактора свойств</td>
|
||||
<td>51216</td>
|
||||
<td>39</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
11
|
||||
</td>
|
||||
<td>
|
||||
UIQtWidget
|
||||
</td>
|
||||
<td>
|
||||
Общие свойства виджетов вроде фокуса и видимости
|
||||
</td>
|
||||
<td>
|
||||
5465
|
||||
</td>
|
||||
<td>
|
||||
4
|
||||
</td>
|
||||
<td>11</td>
|
||||
<td>UIQtWidget</td>
|
||||
<td>Общие свойства виджетов вроде фокуса и видимости</td>
|
||||
<td>5465</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
</table>
|
||||
</table></p>
|
||||
<p><strong>Мы переработали модуль UIQt</strong> для замены старого State API на новый Environment API, который позволяет делать то же самое лаконичнее, т.е. упрощает и ускоряет разработку.</p>
|
||||
<p>Переработку начали в июле и должны были закончить в том же месяце. Тем не менеe, работы завершили лишь в августе. Начальный план предполагал, что 28 часов должно хватить, но мы потратили 65. Мы оценивали необходимое время на основе количества вызовов публичного API каждой компоненты. Это хорошо сработало для небольших компонент, т.к. число вызовов их публичного API было примерно равно количеству их функционала, а сам функционал был очень маленький. Однако такой подход полностью провалился для компонеты UIQtTree, составляющей 39% кода модуля UIQt, потому что не было прямой связи между публичным API и функционалом.</p>
|
||||
<p><strong>Новый подход к разработке на основе функционала</strong> родился после решения проблем с переработкой UIQtTree. Т.к. Qt использует MVC, компонента UIQtTree состоит из нескольких классов. К тому моменту, когда UIQtTree могла отображать и управлять иерархией элементов, компонента уже имела размер в 27К. Мы заметили, что UIQtTree стала потреблять непомерное количество времени разработки даже для мелкого функционала. Это было явным проявлением <a href="http://rsdn.org/article/philosophy/Complexity.xml">количественной сложности</a>.</p>
|
||||
@@ -326,187 +204,91 @@ UIQtWidget
|
||||
<p>Текущий функционал UIQtTree состоит из следующих возможностей:</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<strong>№</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Функционал</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Описание</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Размер (Б)</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Размер (%)</strong>
|
||||
</th>
|
||||
<th>**№**</th>
|
||||
<th>**Функционал**</th>
|
||||
<th>**Описание**</th>
|
||||
<th>**Размер (Б)**</th>
|
||||
<th>**Размер (%)**</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
1
|
||||
</td>
|
||||
<td>
|
||||
Base
|
||||
</td>
|
||||
<td>
|
||||
Создание, изменение, отображение иерархии элементов
|
||||
</td>
|
||||
<td>
|
||||
26966
|
||||
</td>
|
||||
<td>
|
||||
52
|
||||
</td>
|
||||
<td>1</td>
|
||||
<td>Base</td>
|
||||
<td>Создание, изменение, отображение иерархии элементов</td>
|
||||
<td>26966</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
2
|
||||
</td>
|
||||
<td>
|
||||
Item open state
|
||||
</td>
|
||||
<td>
|
||||
Хранит состояние свойства скрыто/отображено элемента
|
||||
</td>
|
||||
<td>
|
||||
3094
|
||||
</td>
|
||||
<td>
|
||||
6
|
||||
</td>
|
||||
<td>2</td>
|
||||
<td>Item open state</td>
|
||||
<td>Хранит состояние свойства скрыто/отображено элемента</td>
|
||||
<td>3094</td>
|
||||
<td>6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>
|
||||
Item renaming
|
||||
</td>
|
||||
<td>
|
||||
Переименование элемента
|
||||
</td>
|
||||
<td>
|
||||
3471
|
||||
</td>
|
||||
<td>
|
||||
7
|
||||
</td>
|
||||
<td>3</td>
|
||||
<td>Item renaming</td>
|
||||
<td>Переименование элемента</td>
|
||||
<td>3471</td>
|
||||
<td>7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
4
|
||||
</td>
|
||||
<td>
|
||||
Item selection
|
||||
</td>
|
||||
<td>
|
||||
Получение/установка выбранного элемента
|
||||
</td>
|
||||
<td>
|
||||
2338
|
||||
</td>
|
||||
<td>
|
||||
5
|
||||
</td>
|
||||
<td>4</td>
|
||||
<td>Item selection</td>
|
||||
<td>Получение/установка выбранного элемента</td>
|
||||
<td>2338</td>
|
||||
<td>5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
5
|
||||
</td>
|
||||
<td>
|
||||
Item value
|
||||
</td>
|
||||
<td>
|
||||
Предоставляет второй и последующие столбцы для элементов, используется Редактором свойств
|
||||
</td>
|
||||
<td>
|
||||
1307
|
||||
</td>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>5</td>
|
||||
<td>Item value</td>
|
||||
<td>Предоставляет второй и последующие столбцы для элементов, используется Редактором свойств</td>
|
||||
<td>1307</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
6
|
||||
</td>
|
||||
<td>
|
||||
Item value editing
|
||||
</td>
|
||||
<td>
|
||||
Редактирование значений элемента с помощью стандартного виджета
|
||||
</td>
|
||||
<td>
|
||||
1996
|
||||
</td>
|
||||
<td>
|
||||
4
|
||||
</td>
|
||||
<td>6</td>
|
||||
<td>Item value editing</td>
|
||||
<td>Редактирование значений элемента с помощью стандартного виджета</td>
|
||||
<td>1996</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
7
|
||||
</td>
|
||||
<td>
|
||||
Item value editing with combobox
|
||||
</td>
|
||||
<td>
|
||||
Редактирование значений элемента с помощью виджета combobox
|
||||
</td>
|
||||
<td>
|
||||
5819
|
||||
</td>
|
||||
<td>
|
||||
11
|
||||
</td>
|
||||
<td>7</td>
|
||||
<td>Item value editing with combobox</td>
|
||||
<td>Редактирование значений элемента с помощью виджета combobox</td>
|
||||
<td>5819</td>
|
||||
<td>11</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
8
|
||||
</td>
|
||||
<td>
|
||||
Item value editing with spinner
|
||||
</td>
|
||||
<td>
|
||||
Редактирование значений элемента с помощью виджета spinbox
|
||||
</td>
|
||||
<td>
|
||||
5290
|
||||
</td>
|
||||
<td>
|
||||
10
|
||||
</td>
|
||||
<td>8</td>
|
||||
<td>Item value editing with spinner</td>
|
||||
<td>Редактирование значений элемента с помощью виджета spinbox</td>
|
||||
<td>5290</td>
|
||||
<td>10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
9
|
||||
</td>
|
||||
<td>
|
||||
Menu
|
||||
</td>
|
||||
<td>
|
||||
Меню на ПКМ
|
||||
</td>
|
||||
<td>
|
||||
1248
|
||||
</td>
|
||||
<td>
|
||||
2
|
||||
</td>
|
||||
<td>9</td>
|
||||
<td>Menu</td>
|
||||
<td>Меню на ПКМ</td>
|
||||
<td>1248</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>Пример файла функционала Menu для UIQtTree: <a href="https://bitbucket.org/ogstudio-history/mjin-pre-pre/src/0c4cc3c3213f4687c0f3bd6a5426a6054cadd79b/f/TREE_MENU.cpp?at=Studio+0.10&fileviewer=file-view-default">TREE_MENU</a>.</p>
|
||||
<p>Пример файла функционала Menu для UIQtTree: <a href="https://bitbucket.org/ogstudio-history/mjin-pre-pre/src/0c4cc3c3213f4687c0f3bd6a5426a6054cadd79b/f/TREE_MENU.cpp?at=Studio+0.10&fileviewer=file-view-default">TREE_MENU</a>.</p>
|
||||
<p><strong>Преимущества подхода:</strong></p>
|
||||
<ol type="1">
|
||||
<ol>
|
||||
<li>Более быстрое чтение/понимание благодаря небольшому размеру</li>
|
||||
<li>Более простое и безболезненное изменение благодаря изолированному коду</li>
|
||||
</ol>
|
||||
<p>Есть и недостаток: новый подход требует изучения.</p>
|
||||
<p>На этом мы заканчиваем описание самых важных технических деталей разработки за август: модуль UIQt, его переработку, новый подход к разработке на основе функционала и его преимущества.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,31 +87,33 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2016-november-recap.html">EN</a>
|
||||
<a href="2016-november-recap.html">RU</a>
|
||||
<a href="../../ru/news/2016-november-recap.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-november-recap.html">Ноябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-12-15_2016-november-recap.png" alt="Постройка здания" /><figcaption>Постройка здания</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-november-recap.html">Ноябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-12-15_2016-november-recap.png" alt="Постройка здания" /></p>
|
||||
<p>Эта статья описывает начало разделения библиотеки MJIN на модули.</p>
|
||||
<p>Как только мы собрали OpenSceneGraph для Android, стало очевидно, что часть функционала MJIN не нужна на Android. Например, UIQt - это основа интерфейса Редактора. Раз Редактор - это приложение для ПК, то UIQt не нужен на Android.</p>
|
||||
<p>Мы решили рассмотреть два подхода к разделению MJIN на модули: во время сборки (build-time) и исполнения (run-time). Разделение <strong>во время сборки</strong> означает гибкую систему настроек MJIN, что позволит собирать её различно под каждую платформу. Разделение <strong>во время исполнения</strong> означает разделение MJIN на несколько небольших библиотек с последующим соединением во время исполнения, что позволит легко менять функционал без повторной сборки.</p>
|
||||
<p>Мы решили рассмотреть два подхода к разделению MJIN на модули: во время сборки (build-time) и исполнения (run-time).
|
||||
Разделение <strong>во время сборки</strong> означает гибкую систему настроек MJIN, что позволит собирать её различно под каждую платформу.
|
||||
Разделение <strong>во время исполнения</strong> означает разделение MJIN на несколько небольших библиотек с последующим соединением во время исполнения, что позволит легко менять функционал без повторной сборки.</p>
|
||||
<p><strong>Исследование разделения во время исполнения.</strong></p>
|
||||
<p>Т.к. разделение во время исполнения имеет больше преимуществ, мы начали с этого подхода. Самый простой способ достичь его заключался в использовании C API, т.к. правила C ABI намного проще правил C++ ABI.</p>
|
||||
<p>Мы создали маленький проект, включающий в себя приложение, библиотеку и плагин:</p>
|
||||
@@ -132,9 +133,13 @@
|
||||
<p>Модули Sound и UIQt на текущий момент статически линкуются в MJIN, тогда как модуль Android линкуется динамически из-за ограничений JNI.</p>
|
||||
<p>В следующем году мы изменим структуру MJIN так, чтобы её можно было легче собрать под разные платформы.</p>
|
||||
<p>На этом мы заканчиваем статью о начале разделения библиотеки MJIN на модули.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,35 +87,35 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2016-october-recap.html">EN</a>
|
||||
<a href="2016-october-recap.html">RU</a>
|
||||
<a href="../../ru/news/2016-october-recap.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-october-recap.html">Октябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-11-19_2016-october-recap.png" alt="Достижение поддержки Android было сродни покорению горы для нас" /><figcaption>Достижение поддержки Android было сродни покорению горы для нас</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-october-recap.html">Октябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-11-19_2016-october-recap.png" alt="Достижение поддержки Android было сродни покорению горы для нас" /></p>
|
||||
<p>Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.</p>
|
||||
<p><strong>Первая попытка собрать OSG.</strong></p>
|
||||
<p>Не имея опыта разработки под Android, мы взяли последнюю версию Android Studio и начали проходить самоучители для начинающих. Java далась легко. Всё работало из коробки. Затем наступил черёд C++ и проблем.</p>
|
||||
<p><strong>CMake. </strong>Android Studio для работы с C++ использует собственную версию CMake, которая конфликтует с системной. Для нас это было явным сигналом о необходимости подготовить отдельное окружение разработки специально под Android.</p>
|
||||
<p><strong>KVM. </strong>Мы установили Ubuntu на VirtualBox. Всё шло замечательно до того момента, пока мы не запустили эмулятор Android. Оказалось, что VirtualBox не может запустить эмулятор, т.к. виртуальная машина не предоставляет виртуализацию внутри уже виртуализированного окружения.</p>
|
||||
<p><strong>Chroot для Android. </strong>Вспомнив о положительном опыте работы с chroot для сборки OGS Editor, мы решили поместить окружение разработки Android в chroot. После небольших настроек мы сумели запустить эмулятор Android и собрать проект C++.</p>
|
||||
<p><strong>OSG. </strong>К этому моменту мы считали, что собрать OSG не составит труда, но не тут-то было. Всё, что мы получили, - это падение. Предположив, что мы ошиблись где-то при первой сборке, мы решили пересобрать OSG ещё раз. И снова получили ту же ошибку. Поиск решения проблемы не дал результатов. Никто не помог нам в списке рассылок OSG.</p>
|
||||
<p>**CMake. **Android Studio для работы с C++ использует собственную версию CMake, которая конфликтует с системной. Для нас это было явным сигналом о необходимости подготовить отдельное окружение разработки специально под Android.</p>
|
||||
<p>**KVM. **Мы установили Ubuntu на VirtualBox. Всё шло замечательно до того момента, пока мы не запустили эмулятор Android. Оказалось, что VirtualBox не может запустить эмулятор, т.к. виртуальная машина не предоставляет виртуализацию внутри уже виртуализированного окружения.</p>
|
||||
<p>**Chroot для Android. **Вспомнив о положительном опыте работы с chroot для сборки OGS Editor, мы решили поместить окружение разработки Android в chroot. После небольших настроек мы сумели запустить эмулятор Android и собрать проект C++.</p>
|
||||
<p>**OSG. **К этому моменту мы считали, что собрать OSG не составит труда, но не тут-то было. Всё, что мы получили, - это падение. Предположив, что мы ошиблись где-то при первой сборке, мы решили пересобрать OSG ещё раз. И снова получили ту же ошибку. Поиск решения проблемы не дал результатов. Никто не помог нам в списке рассылок OSG.</p>
|
||||
<p>Мы были в отчаянии.</p>
|
||||
<p><strong>Поиск альтернатив OSG.</strong></p>
|
||||
<p>Раз сообщество OSG нам не помогло, мы решили поискать альтернативный открытый проект, который мог решить наши задачи на Android (и, возможно, на других платформах).</p>
|
||||
@@ -132,9 +131,13 @@
|
||||
<li>OSG работает под Android лишь в виде статической библиотеки</li>
|
||||
</ul>
|
||||
<p>На этом мы заканчиваем описание того, как мы потратили месяц на сборку OSG под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,35 +87,41 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2016-roadmap.html">EN</a>
|
||||
<a href="2016-roadmap.html">RU</a>
|
||||
<a href="../../ru/news/2016-roadmap.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-roadmap.html">Дорожная карта 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-12-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, согласно <a href="2015-roadmap.html">ранее опубликованной дорожной карте</a>, мы добавили звуковую систему. Тем не менее, мы решили пойти дальше и создать первую версию Проигрывателя. Мы хотели завершить его в декабре, но, к сожалению, изменение планов вылилось в изменение сроков.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-roadmap.html">Дорожная карта 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-12-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, согласно <a href="2015-roadmap.html">ранее опубликованной дорожной карте</a>, мы добавили звуковую систему. Тем не менее, мы решили пойти дальше и создать первую версию Проигрывателя. Мы хотели завершить его в декабре, но, к сожалению, изменение планов вылилось в изменение сроков.</p>
|
||||
<p>Представляем вам обновлённую дорожную карту на первую половину 2016:</p>
|
||||
<ol type="1">
|
||||
<li>Редактор + Проигрыватель 0.8.0 (Январь 2016): Звуковая система, игра “Поймай крота” со звуком</li>
|
||||
<ol>
|
||||
<li>Редактор + Проигрыватель 0.8.0 (Январь 2016): Звуковая система, игра "Поймай крота" со звуком</li>
|
||||
<li>Редактор + Проигрыватель 0.9.0 (Апрель 2016): Сетевая система, простая игра ping pong для двух игроков по сети</li>
|
||||
<li>Редактор + Проигрыватель 0.10.0 (Июль 2016): Полировка, прототип игры “Шуан”</li>
|
||||
<li>Редактор + Проигрыватель 0.10.0 (Июль 2016): Полировка, прототип игры "Шуан"</li>
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,47 +87,45 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2016-september-recap.html">EN</a>
|
||||
<a href="2016-september-recap.html">RU</a>
|
||||
<a href="../../ru/news/2016-september-recap.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<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">
|
||||
<figure>
|
||||
<img src="../../images/2016-10-11_september-recap.png" alt="Маджонг, созданный в прямом эфире" /><figcaption>Маджонг, созданный в прямом эфире</figcaption>
|
||||
</figure>
|
||||
<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>
|
||||
<ol type="1">
|
||||
<ol>
|
||||
<li><p><strong>Черновик.</strong> Создание игры в первый раз.</p>
|
||||
<p>Цели:</p>
|
||||
<ul>
|
||||
<li>проверить наши технологии и исправить основные ошибки;</li>
|
||||
<li>узнать о неудобствах использования технологий, чтобы исправить их в следующей итерации разработки;</li>
|
||||
<li>перечислить точные шаги для воссоздания игры позже;</li>
|
||||
<li>создать черновой вариант ресурсов игры (модели, текстуры, звуки, скрипты).</li>
|
||||
</ul>
|
||||
<li>создать черновой вариант ресурсов игры (модели, текстуры, звуки, скрипты).</li></ul>
|
||||
<p>После завершения стадии мы объявляем о дате прямого эфира и показываем примерный вид игры.</p></li>
|
||||
<li><p><strong>Репетиция.</strong> Повторное создание игры.</p>
|
||||
<p>Цели:</p>
|
||||
<ul>
|
||||
<li>убедиться в отсутствии основных ошибок;</li>
|
||||
<li>записать полный процесс создания игры;</li>
|
||||
<li>создать финальный вариант ресурсов игры.</li>
|
||||
</ul>
|
||||
<li>создать финальный вариант ресурсов игры.</li></ul>
|
||||
<p>Это 99% публикуемой позже игры.</p></li>
|
||||
<li><p><strong>Прямой эфир.</strong> Воссоздание игры в прямом эфире.</p>
|
||||
<p>Цели:</p>
|
||||
@@ -136,15 +133,18 @@
|
||||
<li>показать простоту создания игр;</li>
|
||||
<li>объяснить нюансы создания игр;</li>
|
||||
<li>получить обратную связь от вас;</li>
|
||||
<li>ответить на ваши вопросы.</li>
|
||||
</ul>
|
||||
<li>ответить на ваши вопросы.</li></ul>
|
||||
<p>Мы используем ресурсы из репетиции, чтобы быстро воссоздать игру за считанные часы.</p></li>
|
||||
<li><p><strong>Публикация.</strong> Выпуск последней версии наших технологий, материалов прямого эфира и самостоятельной игры.</p></li>
|
||||
</ol>
|
||||
<p>На этом мы заканчиваем описание стадий по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,168 +87,102 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2016-tech-showcases.html">EN</a>
|
||||
<a href="2016-tech-showcases.html">RU</a>
|
||||
<a href="../../ru/news/2016-tech-showcases.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-tech-showcases.html">Демонстрации технологий</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-10-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-10-31_tech-showcases.png" alt="Файл с функциональностью на фоне" /><figcaption>Файл с функциональностью на фоне</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-tech-showcases.html">Демонстрации технологий</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-10-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-10-31_tech-showcases.png" alt="Файл с функциональностью на фоне" /></p>
|
||||
<p>Сегодня мы ещё раз взглянем на формат демонстраций в 2015-2016 годах, а также сообщим о новом формате 2017-го.</p>
|
||||
<p><strong>2015 и 2016: демонстрации в прямом эфире.</strong></p>
|
||||
Как вы знаете, в ходе демонстраций мы в прямом эфире показываем состояние наших технологий и собираем небольшую работающую игру с нуля. За прошедший год мы провели 4 демонстрации в прямом эфире, в ходе которых создали следующие небольшие игры:
|
||||
<p>Как вы знаете, в ходе демонстраций мы в прямом эфире показываем состояние наших технологий и собираем небольшую работающую игру с нуля. За прошедший год мы провели 4 демонстрации в прямом эфире, в ходе которых создали следующие небольшие игры:</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<strong>№</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Созданная игра</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Дата демонстрации в прямом эфире</strong>
|
||||
</th>
|
||||
<th>**№**</th>
|
||||
<th>**Созданная игра**</th>
|
||||
<th>**Дата демонстрации в прямом эфире**</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
1
|
||||
</td>
|
||||
<td>
|
||||
Поймай крота
|
||||
</td>
|
||||
<td>
|
||||
Ноябрь 2015
|
||||
</td>
|
||||
<td>1</td>
|
||||
<td>Поймай крота</td>
|
||||
<td>Ноябрь 2015</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
2
|
||||
</td>
|
||||
<td>
|
||||
Катящийся мяч
|
||||
</td>
|
||||
<td>
|
||||
Февраль 2016
|
||||
</td>
|
||||
<td>2</td>
|
||||
<td>Катящийся мяч</td>
|
||||
<td>Февраль 2016</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>
|
||||
Домино
|
||||
</td>
|
||||
<td>
|
||||
Май 2016
|
||||
</td>
|
||||
<td>3</td>
|
||||
<td>Домино</td>
|
||||
<td>Май 2016</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
4
|
||||
</td>
|
||||
<td>
|
||||
Пасьянс Маджонг
|
||||
</td>
|
||||
<td>
|
||||
Сентябрь 2016
|
||||
</td>
|
||||
<td>4</td>
|
||||
<td>Пасьянс Маджонг</td>
|
||||
<td>Сентябрь 2016</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>На подготовку ко всем 4-м демонстрациям у нас ушло 4 месяца. Это был очень полезный для нас опыт. Тем не менее, в 2017-м году мы ограничимся лишь двумя такими демонстрациями. Почему? Потому что мы будем тратить больше времени непосредственно на разработку!</p>
|
||||
<p><strong>2017: демонстрации в прямом эфире + технические анонсы.</strong></p>
|
||||
<p>Место двух демонстраций займут технические анонсы. Технический анонс - это тоже демонстрация прогресса наших технологий, но без создания игр в прямом эфире.</p>
|
||||
Примерный календарь технических анонсов и демонстраций на 2017-й год выглядит следующим образом:
|
||||
<p>Примерный календарь технических анонсов и демонстраций на 2017-й год выглядит следующим образом:</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<strong>№</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Месяц</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Вид демонстрации</strong>
|
||||
</th>
|
||||
<th>
|
||||
<strong>Тема</strong>
|
||||
</th>
|
||||
<th>**№**</th>
|
||||
<th>**Месяц**</th>
|
||||
<th>**Вид демонстрации**</th>
|
||||
<th>**Тема**</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
1
|
||||
</td>
|
||||
<td>
|
||||
Январь
|
||||
</td>
|
||||
<td>
|
||||
Технический анонс
|
||||
</td>
|
||||
<td>
|
||||
Поддержка платформы Android
|
||||
</td>
|
||||
<td>1</td>
|
||||
<td>Январь</td>
|
||||
<td>Технический анонс</td>
|
||||
<td>Поддержка платформы Android</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
2
|
||||
</td>
|
||||
<td>
|
||||
Апрель
|
||||
</td>
|
||||
<td>
|
||||
Демонстрация в прямом эфире
|
||||
</td>
|
||||
<td>
|
||||
Создание игры для Android
|
||||
</td>
|
||||
<td>2</td>
|
||||
<td>Апрель</td>
|
||||
<td>Демонстрация в прямом эфире</td>
|
||||
<td>Создание игры для Android</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
3
|
||||
</td>
|
||||
<td>
|
||||
Июль
|
||||
</td>
|
||||
<td>
|
||||
Технический анонс
|
||||
</td>
|
||||
<td>
|
||||
Будет объявлено позднее
|
||||
</td>
|
||||
<td>3</td>
|
||||
<td>Июль</td>
|
||||
<td>Технический анонс</td>
|
||||
<td>Будет объявлено позднее</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
4
|
||||
</td>
|
||||
<td>
|
||||
Октябрь
|
||||
</td>
|
||||
<td>
|
||||
Демонстрация в прямом эфире
|
||||
</td>
|
||||
<td>
|
||||
Будет объявлено позднее
|
||||
</td>
|
||||
<td>4</td>
|
||||
<td>Октябрь</td>
|
||||
<td>Демонстрация в прямом эфире</td>
|
||||
<td>Будет объявлено позднее</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>На этом мы заканчиваем рассказ о формате демонстраций в 2015-2016 годах, а также о новом формате 2017-го.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
30
ru/news/2017-01-25_the-year-of-challenges.md
Normal file
30
ru/news/2017-01-25_the-year-of-challenges.md
Normal file
@@ -0,0 +1,30 @@
|
||||
Title: Год испытаний
|
||||
Date: 2017-01-25 00:00
|
||||
Category: News
|
||||
Slug: the-year-of-challenges
|
||||
Lang: ru
|
||||
|
||||
![Запуск ракеты на Байконуре][screenshot]
|
||||
|
||||
|
||||
Эта статья содержит наши планы на 2017 год.
|
||||
|
||||
Наши предыдущие планы предполагали, что сейчас у нас уже будет поддержка платформы Android. Тем не менее, у нас впереди ещё очень много работы, прежде чем мы сможем объявить о поддержке Android. Судите сами:
|
||||
|
||||
![Отображение кубов на Android][android-rendering]
|
||||
|
||||
Кто-нибудь может посчитать это неудачей. Но не мы. Мы видим шанс начать с низкого старта и прыгнуть высоко!
|
||||
|
||||
Т.к. ранее мы имели опыт работы лишь с либеральным и всё прощающим настольным ПК, Android стал для нас полной неожиданностью. На каждом шагу нас ожидало наказание за фривольное использование памяти, ресурсов, графики. Чаще всего в ответ на наши действия мы получали либо падение приложения, либо пустой экран.
|
||||
С другой стороны, такие суровые условия высветили слабые места в наших технологиях и помогли увидеть, куда нам двигаться дальше.
|
||||
|
||||
В этом месяце мы начинаем работу над поддержкой платформы iOS, хотя мы лишь слегка коснулись платформы Android. Почему? Потому что намного проще отобразить эти красные кубы на iOS без предварительной полировки Android. Мы не хотим потратить месяцы на полировку Android лишь для того, чтобы позже узнать о том, что какой-либо функционал следовало делать иначе для его работы на всех поддерживаемых платформах.
|
||||
|
||||
Сразу после отображения этих кубов на iOS мы начнём работу над их отображением в Вебе.
|
||||
|
||||
**Всё верно: нашей целью в этом году является поддержка платформ Android, iOS и Веб.**
|
||||
|
||||
На этом мы заканчиваем описание наших планов на 2017 год.
|
||||
|
||||
[screenshot]: ../../images/2017-01_the-year-of-challenges.png
|
||||
[android-rendering]: ../../images/2017-01_mjin-android-gles.png
|
||||
49
ru/news/2017-03-16_lets-go.md
Normal file
49
ru/news/2017-03-16_lets-go.md
Normal file
@@ -0,0 +1,49 @@
|
||||
Title: Поехали
|
||||
Date: 2017-03-16 00:00
|
||||
Category: News
|
||||
Slug: lets-go
|
||||
Lang: ru
|
||||
|
||||
![Слова Гагарина][screenshot]
|
||||
|
||||
|
||||
В этой статье мы расскажем о результатах нашей работы в январе и феврале 2017: отображении куба на iOS/Веб и нашем инструменте для создания самоучителей.
|
||||
|
||||
**Отображение куба на iOS/Web**
|
||||
|
||||
К нашему удивлению, мы смогли отобразить простой красный куб на [iOS](https://twitter.com/OpenGameStudio/status/826816343433498627) и [Веб](https://twitter.com/OpenGameStudio/status/829731986264698881) довольно быстро: в начале февраля. Тем не менее, это лишь начало поддержки платформ Android, iOS и Веб. Впереди нас ждёт тернистая дорога, т.к. нам предстоит сделать ещё много вещей, прежде чем мы сможем объявить о полноценной поддержке этих платформ: визуальные эффекты, скрипты Python, архивы данных.
|
||||
|
||||
Т.к. нам потребовалось четыре месяца для начала поддержки платформ Android, iOS и Веб, мы решили поделиться своими знаниями и помочь сообществу OpenSceneGraph. Мы напишем руководство по использованию OpenSceneGraph на ПК, мобилках и Вебе. Мы верим: чем более распространён OpenSceneGraph, тем сильнее наши собственные технологии. Как сказал Исаак Ньютон: "Если я видел дальше других, то потому, что стоял на плечах гигантов". OpenSceneGraph - наш гигант.
|
||||
|
||||
|
||||
**Инструмент для создания самоучителей**
|
||||
|
||||
Имея за плечами опыт проведения четырёх прямых эфиров, нам стало ясно, что руководство по использованию OpenSceneGraph будет полезно лишь при наличии видео. Но голое видео способно отразить лишь то, что мы делаем, но не то, почему мы делаем именно это и именно так. Поэтому мы решили совместить видео с текстом в форме как субтитров к видео, так и отдельных статей.
|
||||
|
||||
Первую попытку совмещения видео с текстом мы начали с помощью [OpenShot](http://openshotvideo.com). Инструмент хороший, но с первого же дня использования стали очевидны следующие ограничения:
|
||||
|
||||
* Настройка моментов отображения текста и анимаций занимает много времени
|
||||
* Файл проекта и исходные ресурсы сложно положить в систему контроля версий
|
||||
|
||||
|
||||
|
||||
Т.к. руководство по использованию OpenSceneGraph будет состоять из нескольких самоучителей, мы решили автоматизировать процесс. Быстрый поиск рассказал нам о существовании замечательного мультимедийного фреймворка [MLT](http://mltframework.org), который используется и в OpenShot. С помощью MLT мы быстро сделали свой инструмент для создания самоучителей.
|
||||
|
||||
На текущий момент наш инструмент позволяет совместить видео и текст с помощью простого текстового файла:
|
||||
|
||||
```
|
||||
background bg.png
|
||||
text 5 Let's install Blender
|
||||
video 0:6 install_blender.mp4
|
||||
text 5 Installing it with apt
|
||||
video 6:26 install_blender.mp4
|
||||
text 5 We're still installing it
|
||||
video 26:56 install_blender.mp4
|
||||
text 5 Congratulations! We just finished installing Blender
|
||||
```
|
||||
|
||||
Это реальный скрипт. Конечный результат можно увидеть [здесь](https://github.com/ogstudio/tutorial-tool).
|
||||
|
||||
На этом мы заканчиваем рассказ о результатах нашей работы в январе и феврале 2017: отображении куба на iOS/Веб и нашем инструменте для создания самоучителей.
|
||||
|
||||
[screenshot]: ../../images/2017-03_lets-go.png
|
||||
35
ru/news/2017-04-07_its-all-fine.md
Normal file
35
ru/news/2017-04-07_its-all-fine.md
Normal file
@@ -0,0 +1,35 @@
|
||||
Title: Всё проходит хорошо
|
||||
Date: 2017-04-07 00:00
|
||||
Category: News
|
||||
Slug: its-all-fine
|
||||
Lang: ru
|
||||
|
||||
![Полёт ракеты][screenshot]
|
||||
|
||||
|
||||
Эта статья рассказывает о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.
|
||||
|
||||
[Первые четыре самоучителя OpenSceneGraph](https://github.com/OGStudio/openscenegraph-cross-platform-guide/) объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph.
|
||||
|
||||
Процесс создания одного самоучителя оказался довольно утомительным, т.к. он состоит из следующих задач:
|
||||
|
||||
1. Записать видео с одним или более шагами
|
||||
1. Назвать эти шаги как можно яснее
|
||||
1. Выбрать те части видео, которые непосредственно показывают шаг
|
||||
1. Убрать те части видео, которые не имеют значения, например, ожидание сборки
|
||||
1. Выбрать один кадр, лучше всего передающий смысл этого шага, например, набор команды
|
||||
1. Добавить детальное описание в статью, почему этот шаг был необходим
|
||||
1. Перечитать статью
|
||||
1. Поправить опечатки и монтаж видео
|
||||
1. Пересмотреть полное видео
|
||||
1. Загрузить видео на YouTube с временными отметками шагов для упрощения навигации
|
||||
|
||||
|
||||
|
||||
Некоторые из этих задач приходилось повторять несколько раз до тех пор, пока комбинация видео, текста и статьи не получилась целостной.
|
||||
|
||||
Всего мы потратили 30 часов на создание самоучителей. В ходе их создания мы почерпнули много нового, что поможет нам улучшить обучающие материалы наших технологий в будущем. Сейчас мы ещё не в курсе, как именно эти материалы будут выглядеть, но они точно будут лучше.
|
||||
|
||||
На этом мы заканчиваем рассказ о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.
|
||||
|
||||
[screenshot]: ../../images/2017-04_its-all-fine.png
|
||||
60
ru/news/2017-05-12_osg-sample.md
Normal file
60
ru/news/2017-05-12_osg-sample.md
Normal file
@@ -0,0 +1,60 @@
|
||||
Title: Приложение OpenSceneGraph
|
||||
Date: 2017-05-12 00:00
|
||||
Category: News
|
||||
Slug: osg-sample
|
||||
Lang: ru
|
||||
|
||||
![Ракета в дали][screenshot]
|
||||
|
||||
|
||||
Эта статья описывает создание самоучителей по сборке приложения OpenSceneGraph на Linux, macOS, Windows и Android в апреле 2017.
|
||||
|
||||
Предыдущие самоучители описывали установку OpenSceneGraph на Linux, macOS, Windows и отображение модели с помощью стандартного инструмента **osgviewer**. На этот раз результатом нашей работы стало [приложение OpenSceneGraph](https://github.com/OGStudio/openscenegraph-cross-platform-guide-application), которое работает на Linux, macOS, Windows и Android.
|
||||
|
||||
Приложение очень простое. Оно умеет следующее:
|
||||
|
||||
1. Создание окна для отрисовки
|
||||
1. Загрузка модели
|
||||
1. Отрисовка модели с помощью простых шейдеров GLSL
|
||||
1. Перемещение модели с помощью мыши на Linux, macOS, Windows и пальца на Android
|
||||
|
||||
|
||||
|
||||
Создать самоучители для Linux, macOS, Windows было настолько простой и понятной задачей, что мы справились с ней за пару недель. Оставшуюся половину месяца мы потратили на создание самоучителя для Android.
|
||||
|
||||
Наша [первая успешная сборка под Android][oct16_article] в прошлом году требовала множество неочивидных телодвижений. В этот раз мы хотели получить более чистый, быстрый и дешёвый подход.
|
||||
|
||||
Нам это удалось. В результате всё, что нужно для работы приложения OpenSceneGraph на Android, уместилось в набор из нескольких файлов и небольших изменений для стандартного проекта Android Studio (с поддержкой C++).
|
||||
|
||||
Краткий перечень файлов:
|
||||
|
||||
1. Поверхность GLES2
|
||||
1. Activity для отрисовки на этой поверхности
|
||||
1. Интерфейс Java для нативной библиотеки
|
||||
1. Реализация нативной библиотеки на C++
|
||||
1. Файл CMake для сборки нативной библиотеки
|
||||
1. Activity layout
|
||||
1. Модель для отрисовки
|
||||
|
||||
|
||||
|
||||
Краткий перечень изменений проекта:
|
||||
|
||||
1. Обновление Android manifest для использования GLES2 и Activity
|
||||
1. Использование файла CMake нативной библиотеки в проектном файле CMake
|
||||
|
||||
|
||||
|
||||
Документация OpenSceneGraph предполагает сборку OpenSceneGraph вне Android Studio с помощью CMake. Такой подход имеет следующие ограничения:
|
||||
|
||||
1. Ручная сборка OpenSceneGraph под каждую платформу
|
||||
1. Ручное копирование собранных библиотек OpenSceneGraph в проект Android Studio
|
||||
|
||||
|
||||
|
||||
Наш подход включает в себя сборку OpenSceneGraph для тех платформ, для которых собирается проект Android Studio. К тому же, OpenSceneGraph используется как часть проекта, поэтому нет никакой дополнительной рутины: достаточно просто пересобрать проект, и всё готово.
|
||||
|
||||
На этом мы заканчиваем описание создания самоучителей по сборке приложения OpenSceneGraph на Linux, macOS, Windows и Android в апреле 2017.
|
||||
|
||||
[screenshot]: ../../images/2017-05_osg-sample.png
|
||||
[oct16_article]: 2016-october-recap.html
|
||||
50
ru/news/2017-06-08-ios-refactoring.md
Normal file
50
ru/news/2017-06-08-ios-refactoring.md
Normal file
@@ -0,0 +1,50 @@
|
||||
Title: Самоучитель iOS
|
||||
Date: 2017-06-08 10:00
|
||||
Category: News
|
||||
Slug: ios-tutorial
|
||||
Lang: ru
|
||||
|
||||

|
||||
|
||||
Эта статья описывает проблемы, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017.
|
||||
|
||||
[В феврале](https://twitter.com/OpenGameStudio/status/826816343433498627) мы сумели отобразить простую модель под iOS за считанные дни. Это дало нам уверенность, что самоучитель для iOS мы сделаем столь же быстро. Тем не менее, реальность напомнила нам о простой вещи: быстро сделать можно лишь поделку на коленке, работающую только у самого разработчика; над логически связанным примером, работающим у всех, придётся попотеть.
|
||||
|
||||
**Нативная библиотека**
|
||||
|
||||
Прежде всего нам необходимо было ответить на следующий вопрос: "должен ли пример приложения быть частью проекта Xcode или отдельной библиотекой?"
|
||||
|
||||
Для принятия решения мы использовали следующие факты:
|
||||
|
||||
1. Проект Xcode может напрямую использовать C++ (благодаря Objective-C++) без прослоек вроде JNI
|
||||
* Отдельная библиотека не нужна (+ приложение)
|
||||
* Создание отдельной библиотеки - это дополнительная работа (- библиотека)
|
||||
1. OpenSceneGraph собирается в библиотеки
|
||||
* Легче использовать стандартный процесс сборки (+ библиотека)
|
||||
* Создавать свой процесс сборки лишь для одной платформы сложно (- приложение)
|
||||
1. OpenSceneGraph использует систему сборки CMake, которая не поддерживается Xcode
|
||||
* Проект Xcode не может включать файлы CMake (- приложение)
|
||||
* Свой файл CMake может с лёгкостью включить файл OpenSceneGraph CMake для сборки единой библиотеки (+ библиотека)
|
||||
1. CMake может генерировать проект Xcode
|
||||
* Можно создать файл CMake, который будет собирать как OpenSceneGraph, так и пример приложения (+ приложение)
|
||||
* Xcode - это де-факто инструмент для создания проектов Xcode; легче использовать стандартный процесс сборки (+ библиотека)
|
||||
|
||||
Оценив плюсы и минусы обоих подходов, мы решили сделать библиотеку, которую можно включать в проект Xcode. Минусом данного подхода является то, что сборки приложения для симулятора и реального устройства используют разные сборки библиотеки.
|
||||
|
||||
**Рефакторинг**
|
||||
|
||||
Также нам пришлось ответить на ещё один вопрос: "использовать ли единую кодовую базу для всех платформ или несколько под каждую платформу?"
|
||||
|
||||
При создании самоучителя для Android мы использовали единую кодовую базу, т.к. она отлично работала для десктопа и Android. Когда мы начали работу над самоучителем iOS, стало ясно, что часть функционала либо работает, либо не работает на некоторых платформах. Например, один функционал может работать на десктопе и iOS, но не работать на Android. Другой функционал может работать на iOS и Android, но не работать на десктопе. Т.к. мы не хотели загрязнять код кучей #ifdef, мы решили помещать функционал, специфичный для конкретной платформы или нескольких платформ, в разные файлы. Это привело к резкому увеличению количества файлов. Такой подход хорошо подходил для повторного использования, но совершенно не годился для понимания общей картины.
|
||||
|
||||
В этот момент мы осознали необходимость ответа на второй вопрос. Мы напомнили себе, что главная цель примера приложения состоит в том, чтобы обучить базовым вещам OpenSceneGraph, а не создать повторно используемую библиотеку с API, который будет жить без изменений десятилетиями.
|
||||
|
||||
Для ответа на этот вопрос нам помог наш внутренний инструмент feature tool. С его помощью мы разделили код на несколько частей, который в итоге собирается ровно в два файла для каждой платформы:
|
||||
|
||||
1. functions.h - содержит повторно используемые бесклассовые функции
|
||||
1. main.h - содержит остальной код приложения
|
||||
|
||||
Их содержимое несколько отличается для каждой из платформ, но наличие всего двух файлов позволяет увидеть общую картину.
|
||||
|
||||
На этом мы заканчиваем описание проблем, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017.
|
||||
|
||||
31
ru/news/2017-07-openscenegraph-guide.md
Normal file
31
ru/news/2017-07-openscenegraph-guide.md
Normal file
@@ -0,0 +1,31 @@
|
||||
Title: OpenSceneGraph cross-platform guide
|
||||
Date: 2017-07-17 00:00
|
||||
Category: News
|
||||
Slug: openscenegraph-cross-platform-guide
|
||||
Lang: ru
|
||||
|
||||

|
||||
|
||||
Эта статья резюмирует создание кросс-платформенного руководства OpenSceneGraph.
|
||||
|
||||
Июнь ознаменовал собой окончание работы над [кросс-платформенным руководством OpenSceneGraph](https://github.com/OGStudio/openscenegraph-cross-platform-guide). Мы опубликовали последний самоучитель (из изначально запланированных). Этот самоучитель описывает [сборку и запуск примера приложения OpenSceneGraph в вебе](https://github.com/OGStudio/openscenegraph-cross-platform-guide/tree/master/1.10.SampleWeb) с помощью Emscripten.
|
||||
Если вы упустили этот самоучитель, то вот [ссылка на приложение](https://ogstudio.github.io/openscenegraph-cross-platform-guide/) из него. Откройте ссылку в веб-браузере.
|
||||
|
||||
Мы начали составление руководства в феврале, как только нам удалось отобразить простую модель на мобилках и вебе. Мы потратили 120 часов за пять месяцев на составление десяти самоучителей этого руководства.
|
||||
|
||||
Создание кросс-платформенного руководства OpenSceneGraph преследовало две основные цели:
|
||||
|
||||
1. Сохранить знания о кросс-платформенной работе с OpenSceneGraph в легкодоступной и воспроизводимой форме
|
||||
1. Поделиться этим знанием с сообществом OpenSceneGraph и тем самым усилить сообщество
|
||||
|
||||
Мы уверены в том, что нам удалось достичь обе цели. И вот почему:
|
||||
|
||||
1. Хранилище руководства получило больше [звёзд](https://github.com/OGStudio/openscenegraph-cross-platform-guide/stargazers) (лайков), чем любое другое наше хранилище
|
||||
1. Robert Osfield, лидер проекта OpenSceneGraph, оценил руководство как ["отличную работу"](http://www.mail-archive.com/osg-users@lists.openscenegraph.org/msg74815.html); это значит для нас многое</li>
|
||||
1. У руководства уже есть [два тикета](https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues)
|
||||
|
||||
В конце концов, мы просто рады тому факту, что изучили кросс-платформенную разработку с OpenSceneGraph и поделились этим знанием с сообществом.
|
||||
|
||||
Тем не менее, наше путешествие на этом не окончено. Используя знания руководства, мы продолжаем работу над тем, чтобы добавить в свои инструменты поддержку мобилок и веба, как мы [обещали в январе](the-year-of-challenges.html).
|
||||
|
||||
На этом мы заканчиваем резюме о создании кросс-платформенного руководства OpenSceneGraph.
|
||||
60
ru/news/2017-08-scripting-research.md
Normal file
60
ru/news/2017-08-scripting-research.md
Normal file
@@ -0,0 +1,60 @@
|
||||
Title: Изучение скриптования
|
||||
Date: 2017-08-16 00:00
|
||||
Category: News
|
||||
Slug: scripting-research
|
||||
Lang: ru
|
||||
|
||||

|
||||
|
||||
Эта статья описывает изучение скриптования в июле 2017.
|
||||
|
||||
**Наша основная цель использования скриптового языка - это наличие платформо-независимого кода, выполняемого без изменений на каждой поддерживаемой платформе.**
|
||||
|
||||
Редактор 0.10 использует Python в качестве подобного кода с помощью [SWIG](http://swig.org/). SWIG позволяет использовать практически любой код C/C++ из языков вроде Python, Ruby, Lua, Java, C# и т.д.. SWIG помог нам впервые оценить прелесть платформо-независимого кода. К сожалению, SWIG работает лишь в одном направлении: из C/C++ в язык назначения. Это приводит к тому, что основное приложение должно быть написано на языке назначения, а код C/C++ может быть использован лишь в виде библиотеки.
|
||||
|
||||
Основное приложение на языке Python вполне подходит для десктопа, но не для мобилок и веба, где языки C и C++ являются единственными языками, поддерживаемыми нативно на каждой платформе. Конечно, существуют проекты вроде [Kivy](https://kivy.org), которые позволяет разрабатывать кросс-платформенные приложения на Python, но они не поддерживаются нативно. Отсутствие нативной поддержки выливается в огромную головную боль при изменении API у Android и iOS.
|
||||
|
||||
Необходимость в приложении на C/C++ и поддержке скриптов приводит к обязательному интерпретированию скриптового языка самим приложением. Это как раз то, что SWIG, Kivy и подобные проекты не позволяют сделать.
|
||||
|
||||
**Наша вторичная цель использования скриптового языка - это возможность расширения кода C++.**
|
||||
|
||||
Одни модули Редактора 0.10 написаны на C++, а другие на Python. С точки зрения основного приложения, все модули равны. Для приложения нет никакой разницы, на каком языке написан конкретный модуль.
|
||||
|
||||
Для достижения этой гибкости мы ввели так называемое Окружение (Environment). Каждый модуль регистрирует ключи (keys), на которые он отвечает, а Окружение доставляет соответствующие сообщения. Технически такое поведение можно достигнуть с помощью наследования базового класса и переопределения его методов как в C++, так и в скриптовом языке.
|
||||
|
||||
**Python был первым языком, который мы рассмотрели в качестве платформо-независимого скриптового языка.**
|
||||
|
||||
Т.к. мы уже использовали Python, то логично было начать изучение с него. Мы хотели проверить, можно ли запустить код Python на каждой поддерживаемой платформе. К сожалению, результаты были удручающими, т.к. документация CPython (реализация Python, используемая по умолчанию на десктопе) никак не упоминала ни мобилки, ни веб. Всё, что мы нашли, - это пара форков CPython лохматых годов, которые якобы работают либо на Android, либо на iOS. Такой раздрай нас не устроил.
|
||||
Мы также рассмотрели [PyPy](http://pypy.org), ещё одну реализацию Python, но она тоже не содержала информации о мобилках и вебе.
|
||||
|
||||
Это было чётким сигналом об отсутствии интереса к мобилками и вебу со стороны сообщества Python. Либо об отсутствии времени даже на то, чтобы описать использование Python на данных платформах. В любом случае, такое положение вещей нас не устроило.
|
||||
|
||||
**[Wren](http://wren.io) был вторым языком, который мы рассмотрели в качестве платформо-независимого скриптового языка.**
|
||||
|
||||
Wren был первым языком из длинного списка малоизвестных скриптовых языков.
|
||||
|
||||
Wren преподносился как небольшой и простой язык. Согласно документации, основная цель Wren - это быть встроенным в приложение. По иронии судьбы, у автора [не было времени описать в документации встраивание Wren](http://wren.io/embedding-api.html) в приложение. Когда мы [спросили о сроках публикации](https://github.com/munificent/wren/issues/465) этой критически важной части документации, мы [получили в ответ ссылку на тикет](https://github.com/munificent/wren/issues/402), в котором другой человек спрашивал тот же самый вопрос полгода назад!
|
||||
|
||||
На этом мы закончили отношения с Wren.
|
||||
|
||||
**[Chai](http://chaiscript.com) был третьим языком, который мы рассмотрели в качестве платформо-независимого скриптового языка.**
|
||||
|
||||
Chai был в том же длинном списке малоизвестных скриптовых языков. Он преподносился как язык, специально предназначенный для встраивания в приложения C++. Мы без проблем вызвали функцию C++ из Chai, но нам не удалось вызвать метод класса. [Мы попросили о помощи](http://discourse.chaiscript.com/t/cannot-call-a-function-that-accepts-a-string-and-a-vector/334), но ответом была лишь тишина.
|
||||
|
||||
Нам пришлось завершить отношения с Chai.
|
||||
|
||||
**Lua был четвёртым языком, который мы рассмотрели в качестве платформо-независимого скриптового языка.**
|
||||
|
||||
Lua является популярным языком для встраивания. Мы решили попробовать очевидный вариант. Документация выглядела многообещающе, однако под конец чтения главы [C API](https://www.lua.org/pil/24.html) у нас не было ни малейшего представления, как наследовать класс C++ в Lua.
|
||||
|
||||
Этот вопрос заставил нас найти библиотеку, которая смогла бы на него ответить: [Sol2](http://sol2.rtfd.io). Первая попытка вызвать функцию C++ из Lua провалилась. Правда, на этот раз наш вопрос был услышан, и [мы получили ответ](https://github.com/ThePhD/sol2/issues/465)! Мы были сильно удивлены.
|
||||
Далее мы попытались наследовать класс C++ в Lua, чтобы переопределить методы класса. Нам это не удалось с первого раза, но автор Sol2 [снова помог нам](https://github.com/ThePhD/sol2/issues/468).
|
||||
|
||||
В тот момент мы поняли, что это начало долгого и взаимовыгодного сотрудничества с Sol2/Lua.
|
||||
|
||||
**Поиск скриптового языка открыл для нас следующую истину: люди важнее технологий.**
|
||||
|
||||
Существует множество скриптовых языков, которые выглядят привлекательно на первый взгляд, но которые мертвы. Почему? Потому что у некоторых авторов нет времени на пользователей. В ответ пользователи предпочитают не тратить своё время на проекты подобных авторов.
|
||||
|
||||
На этом мы заканчиваем описание изучения скриптования в июле 2017.
|
||||
|
||||
38
ru/news/2017-09-mjin-world-birth.md
Normal file
38
ru/news/2017-09-mjin-world-birth.md
Normal file
@@ -0,0 +1,38 @@
|
||||
Title: Рождение вселенной MJIN
|
||||
Date: 2017-09-10 00:00
|
||||
Category: News
|
||||
Slug: mjin-world-birth
|
||||
Lang: ru
|
||||
|
||||

|
||||
|
||||
Эта статья описывает рождение вселенной MJIN в августе 2017.
|
||||
|
||||
**mjin-player**
|
||||
|
||||
Как вы знаете, [в июле мы изучали скриптование](scripting-research.html). Мы нашли решение, которое удовлетворяет следующим критериям. Скрипты должны:
|
||||
|
||||
1. исполняться в исходном виде без изменений на всех поддерживаемых платформах
|
||||
1. позволять расширять код C++
|
||||
|
||||
Мы проверили второй критерий в рамках тестового приложения. В первый критерий мы просто поверили, т.к. он ДОЛЖЕН быть верен.
|
||||
|
||||
В тот момент мы видели два варианта проверки первого критерия:
|
||||
|
||||
1. создать по одному тестовому приложению под каждую платформу для проверки лишь этого критерия
|
||||
1. создать одно кросс-платформенное приложение, которому можно скормить практически любой код
|
||||
|
||||
Мы выбрали второй подход, т.к. он выгоднее в долгосрочной перспективе. Как вы уже догадались, [mjin-player](https://bitbucket.org/ogstudio/mjin-player) является тем самым кросс-платформенным приложением.
|
||||
|
||||
mjin-player служит базой для остальных проектов MJIN, которая позволяет этим проектам работать на всех поддерживаемых платформах. Тем не менее, в mjin-player нет никакой магии, проекты никак не скрыты от деталей платформ, да и не было такой задачи. Вместо скрытия деталей платформы mjin-player предоставляет набор правил, которым должны удовлетворять проекты MJIN для работы на всех поддерживаемых платформах.
|
||||
|
||||
**mjin-application**
|
||||
|
||||
Этот набор правил представлен в виде [mjin-application](https://bitbucket.org/ogstudio/mjin-application). mjin-application является библиотекой с базовым функционалом, необходимым для каждого проекта MJIN, но не более. Например, mjin-application не содержит и никогда не будет содержать скриптования или подобного специфического функционала.
|
||||
|
||||
**Вселенная MJIN**
|
||||
|
||||
Так что же такое [вселенная MJIN](https://bitbucket.org/ogstudio/mjin)? Это множество проектов, которые являются нашими средствами для разработки игр. mjin-player и mjin-application - первые кирпичики недавно появившейся вселенной MJIN. А будет их намного больше. Оставайтесь на связи, нас ждёт светлое будущее с MJIN.
|
||||
|
||||
На этом мы заканчиваем описание рождения вселенной MJIN в августе 2017.
|
||||
|
||||
13
ru/news/2017-10-16-back-to-the-static.md
Normal file
13
ru/news/2017-10-16-back-to-the-static.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Title: Назад в Статику
|
||||
Date: 2017-10-16 00:00
|
||||
Category: News
|
||||
Slug: back-to-the-static
|
||||
Lang: ru
|
||||
|
||||

|
||||
|
||||
Мы используем Wordpress в качестве движка нашего сайта уже более семи лет. И теперь пришло время двигаться вперед. Или назад. Некоторое время мы следили за разработкой нового поколения движков - генераторов статических сайтов. Похоже, что это технология, способная превратить прошлое в будущее.
|
||||
|
||||
Статический веб-сайт проще, быстрее и безопаснее. И с помощью генераторов им настолько же легко управлять, как и динамическим веб-сайтом. Так что мы начинаем наш сайт заново с помощью [Pelican](https://blog.getpelican.com/).
|
||||
|
||||
Сейчас здесь нет всего контента с нашего старого сайта, но мы добавим его в ближайшее время.
|
||||
45
ru/news/2017-11-22-2017-summary.md
Normal file
45
ru/news/2017-11-22-2017-summary.md
Normal file
@@ -0,0 +1,45 @@
|
||||
Title: Итоги 2017-го
|
||||
Date: 2017-11-22 00:00
|
||||
Category: News
|
||||
Slug: 2017-summary
|
||||
Lang: ru
|
||||
|
||||
![Игра на память в фоне][screenshot]
|
||||
|
||||
Настало время сделать ревизию наших достижений в 2017 году и проверить, насколько они следуют основной цели проекта Opensource Game Studio.
|
||||
|
||||
**Краткая история**
|
||||
|
||||
Проекту Opensource Game Studio уже 12 лет.
|
||||
|
||||
**2005.** Мы начали проект с [фанатичного призыва][fanatic_call] к созданию самой лучшей игры. Видимо, сразу же после прохождения Half-Life 2 или Morrowind. 99.99% тех, кто хотел участвовать, отвалились в течение первых двух лет. Остались лишь два человека: Михаил (программирование) и Иван (всё остальное). Проект находился в стадии постоянного беспорядка, т.к. у нас не было ни чёткой цели, ни дисциплины. Неудивительно, что за этот период мы можем похвастаться лишь небольшим набором сумбурных демонстраций.
|
||||
|
||||
**2010.** Первый год признания нашего поражения. После принятия поражения мы поставили себе целью создать игру Маджонг. Мы также осознали, что для выпуска игры нам придётся работать каждый день. Работа по выходным не приносила результатов, т.к. она часто сталкивалась с необходимостью уделять время семье.
|
||||
|
||||
**2012, 2013.** Мы выпустили версии 1.0 и 1.1 Маджонга соответственно. Мы создали полноценную отполированную игру за 3-4 года, тогда как до этого 5 лет не могли сделать ничего вразумительного. Маджонг до сих пор остаётся нашей лучшей и единственной выпущенной игрой. Мы всё ещё гордимся им, и нам всё ещё нравится в него играть.
|
||||
|
||||
**2015.** Мы продемонстрировали первую версию нашего средства разработки. Мы приступили к его созданию сразу после выпуска Маджонга, т.к. решили сделать инструмент для экономии времени разработки следующих игр.
|
||||
|
||||
**2016.** Мы воссоздали игровую механику Маджонга с помощью нашего инструмента. Тем не менее, к тому моменту мы осознали, что разработка лишь под настольные компьютеры нежизнеспособна. Это понимание подтолкнуло нас к изучению мобильных платформ.
|
||||
|
||||
**Последний год**
|
||||
|
||||
**2016, октябрь.** Мы начали изучение мобильных платформ с создания простейшего приложения OpenSceneGraph, которое сможет работать на Android.
|
||||
|
||||
**2017, январь.** Мы получили версию Android и начали изучение iOS с Вебом.
|
||||
|
||||
**2017, февраль.** Мы запустили простейшее приложение везде: настольный компьютер, мобильные платформы, веб.
|
||||
|
||||
Изучение мобильных платформ и веба заняло у нас около пяти месяцев. Нам пришлось потратить это время по причине отсутствия какой-либо внятной документации по работе с OpenSceneGraph на разных платформах. После таких громадных трат времени мы решили сэкономить это время другим разработчикам и занялись созданием указанной документации.
|
||||
|
||||
**2017, июль.** Мы опубликовали [инструкцию по работе с OpenSceneGraph на разных платформах][osgcp_guide], которая рассказывает в деталях о создании простейшего приложения OpenSceneGraph и запуске его на настольных компьютерах, мобильных платформах и вебе. Эта инструкция является нашим самым популярным проектом на GitHub.
|
||||
|
||||
**2017, ноябрь.** Мы выпустили простую [игру "Память: Цвета"][memory-colors] и [инструкцию][memory-colors-guide] по созданию этой игры с нуля. Игра создана с помощью MJIN, нашего нового инструмента для разработки игр, этому инструменту всего лишь несколько месяцев.
|
||||
|
||||
На текущий момент MJIN лишь начинает развитие. Этому инструменту нужна настоящая игра, чтобы расцвести. Поэтому мы уже работаем над Маджонгом, который будет радовать вас и на настольных компьютерах, и на мобильных платформах, и в вебе. На этот раз мы постараемся сделать Маджонг быстрее.
|
||||
|
||||
[screenshot]: ../../images/2017-11-22-2017-summary.png
|
||||
[fanatic_call]: https://unixforum.org/index.php?showtopic=9989
|
||||
[osgcp_guide]: https://github.com/OGStudio/openscenegraph-cross-platform-guide
|
||||
[memory-colors]: https://ogstudio.github.io/game-memory-colors/tutorial-5.3/mjin-player.html
|
||||
[memory-colors-guide]: https://bitbucket.org/ogstudio-games/memory-colors
|
||||
19
ru/news/2017-12-31-new-year.md
Normal file
19
ru/news/2017-12-31-new-year.md
Normal file
@@ -0,0 +1,19 @@
|
||||
Title: Год новых уроков
|
||||
Date: 2017-12-31 22:00
|
||||
Category: News
|
||||
Slug: the-year-of-lessons
|
||||
Lang: ru
|
||||
|
||||

|
||||
|
||||
Итак, 2017й год стремительно приближается к финалу, итоги года уже подведены, так что в свободное от расчехления фейерверков и подготовки систем залпового огня шампанским время мы обозначим свою цель в следующем году.
|
||||
|
||||
Как, наверное, понятно из других статей на сайте, примерно половине наших планов в 2017 году было суждено осуществиться хотя бы приблизительно так как мы предполагали, остальные поменялись существенно.
|
||||
|
||||
В течение года люди приходили в команду, уходили из нее, в итоге конец года мы встречаем с тем же составом что и 365 дней назад. Это заставило нас задуматься, но о выводах как-нибудь в другой раз.
|
||||
|
||||
Цель на 2018й год у нас будет ровно одна. Мы возьмем все результаты своих технологических поисков, и снова вернемся к маджонгу. Первым будет то, что мы уже умеем делать и делали - пасьянс. На этот раз, он будет кроссплатформенным. Точно постараемся охватить Windows, Linux, macOs, Web и Android. На счет iOS пока ничего обещать не будем (хотя и зарекаться - тоже).
|
||||
|
||||
Наверное нет смысла писать больше чем хочется сказать. Мы многому научились за этот год, и в следующем постараемся все это применить. Так что желаем всем счастливого Нового Года и оставайтесь с нами.
|
||||
|
||||
Команда Opensource Game Studio.
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,37 +87,44 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2017-happy-new-year.html">EN</a>
|
||||
<a href="2017-happy-new-year.html">RU</a>
|
||||
<a href="../../ru/news/2017-happy-new-year.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-happy-new-year.html">Счастливого 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-12-31_happy-new-year.png" alt="Новогодняя ёлка" /><figcaption>Новогодняя ёлка</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-happy-new-year.html">Счастливого 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-12-31_happy-new-year.png" alt="Новогодняя ёлка" /></p>
|
||||
<p>Ну вот. Это был тяжелый год для всех в команде. И он почти закончен. Хвала окончанию старого! Хвала наступлению нового!</p>
|
||||
<p>Может показаться, что наш прогресс застопорился. Три года назад мы объявили о начале нового проекта (двух, если быть точным), но до сих пор мы работаем над движком и редактором, даже не начали делать ни Shuan, ни Mahjong 2.</p>
|
||||
<p>Если вы следили за новостями в течение года, вы знаете что мы провели несколько “живых сессий”, демонстрируя в реальном времени как можно использовать наш инструментарий для создания простой игры. Каждая сессия была шагом в долгом пути к нашей цели. В процессе подготовки к ним, мы добавляли важные элементы, которые будут необходимы для создания любой игры.</p>
|
||||
<p>Если вы следили за новостями в течение года, вы знаете что мы провели несколько "живых сессий", демонстрируя в реальном времени как можно использовать наш инструментарий для создания простой игры. Каждая сессия была шагом в долгом пути к нашей цели. В процессе подготовки к ним, мы добавляли важные элементы, которые будут необходимы для создания любой игры.</p>
|
||||
<p>Будущие сессии и демонстрации добавят даже больше, так что в будущем (надеюсь не слишком отдаленном), у нас будет все необходимое для того чтобы просто сесть и собрать планируемую игру из этих элементов.</p>
|
||||
<p>Так что проект не умер; идея не отброшена. Очень много работы предстоит сделать, прежде чем мы можем начать делать игру. И нас только двое, занимающихся всем этим в свое свободное время. Итак, вы хотите, чтобы наша игра стала реальностью? Присоединяйтесь к нам. Вместе мы будем править галактикой. Или можете просто подождать. Мы не бросили все это несколько лет назад. Не станем и сейчас. В конце концов, есть только один способ создать годный инструмент (а это наша первоначальная цель, если вы помните) - мы должны использовать его сами. Мы будем. Следите за новостями.</p>
|
||||
<p>Так что проект не умер; идея не отброшена. Очень много работы предстоит сделать, прежде чем мы можем начать делать игру. И нас только двое, занимающихся всем этим в свое свободное время.
|
||||
Итак, вы хотите, чтобы наша игра стала реальностью? Присоединяйтесь к нам. Вместе мы будем править галактикой. Или можете просто подождать. Мы не бросили все это несколько лет назад. Не станем и сейчас.
|
||||
В конце концов, есть только один способ создать годный инструмент (а это наша первоначальная цель, если вы помните) - мы должны использовать его сами.
|
||||
Мы будем. Следите за новостями.</p>
|
||||
<p>Счастливого 2017-го. Пусть он будет простым.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,28 +87,28 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2017-summary.html">EN</a>
|
||||
<a href="2017-summary.html">RU</a>
|
||||
<a href="../../ru/news/2017-summary.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-summary.html">Итоги 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-11-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-11-22-2017-summary.png" alt="Игра на память в фоне" /><figcaption>Игра на память в фоне</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-summary.html">Итоги 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-11-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-11-22-2017-summary.png" alt="Игра на память в фоне" /></p>
|
||||
<p>Настало время сделать ревизию наших достижений в 2017 году и проверить, насколько они следуют основной цели проекта Opensource Game Studio.</p>
|
||||
<p><strong>Краткая история</strong></p>
|
||||
<p>Проекту Opensource Game Studio уже 12 лет.</p>
|
||||
@@ -117,18 +116,22 @@
|
||||
<p><strong>2010.</strong> Первый год признания нашего поражения. После принятия поражения мы поставили себе целью создать игру Маджонг. Мы также осознали, что для выпуска игры нам придётся работать каждый день. Работа по выходным не приносила результатов, т.к. она часто сталкивалась с необходимостью уделять время семье.</p>
|
||||
<p><strong>2012, 2013.</strong> Мы выпустили версии 1.0 и 1.1 Маджонга соответственно. Мы создали полноценную отполированную игру за 3-4 года, тогда как до этого 5 лет не могли сделать ничего вразумительного. Маджонг до сих пор остаётся нашей лучшей и единственной выпущенной игрой. Мы всё ещё гордимся им, и нам всё ещё нравится в него играть.</p>
|
||||
<p><strong>2015.</strong> Мы продемонстрировали первую версию нашего средства разработки. Мы приступили к его созданию сразу после выпуска Маджонга, т.к. решили сделать инструмент для экономии времени разработки следующих игр.</p>
|
||||
<p><strong>2016.</strong> Мы воссоздали игровую механику Маджонга с помощью нашего инструмента. Тем не менее, к тому моменту мы осознали, что разработка лишь под настольные компьютеры нежизнеспособна. Это понимание подтолкнуло нас к изучению мобильных платформ.</p>
|
||||
<p><strong>2016.</strong> Мы воссоздали игровую механику Маджонга с помощью нашего инструмента. Тем не менее, к тому моменту мы осознали, что разработка лишь под настольные компьютеры нежизнеспособна. Это понимание подтолкнуло нас к изучению мобильных платформ.</p>
|
||||
<p><strong>Последний год</strong></p>
|
||||
<p><strong>2016, октябрь.</strong> Мы начали изучение мобильных платформ с создания простейшего приложения OpenSceneGraph, которое сможет работать на Android.</p>
|
||||
<p><strong>2017, январь.</strong> Мы получили версию Android и начали изучение iOS с Вебом.</p>
|
||||
<p><strong>2017, февраль.</strong> Мы запустили простейшее приложение везде: настольный компьютер, мобильные платформы, веб.</p>
|
||||
<p>Изучение мобильных платформ и веба заняло у нас около пяти месяцев. Нам пришлось потратить это время по причине отсутствия какой-либо внятной документации по работе с OpenSceneGraph на разных платформах. После таких громадных трат времени мы решили сэкономить это время другим разработчикам и занялись созданием указанной документации.</p>
|
||||
<p><strong>2017, июль.</strong> Мы опубликовали <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">инструкцию по работе с OpenSceneGraph на разных платформах</a>, которая рассказывает в деталях о создании простейшего приложения OpenSceneGraph и запуске его на настольных компьютерах, мобильных платформах и вебе. Эта инструкция является нашим самым популярным проектом на GitHub.</p>
|
||||
<p><strong>2017, ноябрь.</strong> Мы выпустили простую <a href="https://ogstudio.github.io/game-memory-colors/tutorial-5.3/mjin-player.html">игру “Память: Цвета”</a> и <a href="https://bitbucket.org/ogstudio-games/memory-colors">инструкцию</a> по созданию этой игры с нуля. Игра создана с помощью MJIN, нашего нового инструмента для разработки игр, этому инструменту всего лишь несколько месяцев.</p>
|
||||
<p>На текущий момент MJIN лишь начинает развитие. Этому инструменту нужна настоящая игра, чтобы расцвести. Поэтому мы уже работаем над Маджонгом, который будет радовать вас и на настольных компьютерах, и на мобильных платформах, и в вебе. На этот раз мы постараемся сделать Маджонг быстрее.</p>
|
||||
|
||||
</div>
|
||||
<p><strong>2017, ноябрь.</strong> Мы выпустили простую <a href="https://ogstudio.github.io/game-memory-colors/tutorial-5.3/mjin-player.html">игру "Память: Цвета"</a> и <a href="https://bitbucket.org/ogstudio-games/memory-colors">инструкцию</a> по созданию этой игры с нуля. Игра создана с помощью MJIN, нашего нового инструмента для разработки игр, этому инструменту всего лишь несколько месяцев.</p>
|
||||
<p>На текущий момент MJIN лишь начинает развитие. Этому инструменту нужна настоящая игра, чтобы расцвести. Поэтому мы уже работаем над Маджонгом, который будет радовать вас и на настольных компьютерах, и на мобильных платформах, и в вебе. На этот раз мы постараемся сделать Маджонг быстрее. </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>
|
||||
|
||||
72
ru/news/2018-01-26-mahjong-recreation-start.md
Normal file
72
ru/news/2018-01-26-mahjong-recreation-start.md
Normal file
@@ -0,0 +1,72 @@
|
||||
Title: Начало воссоздания Маджонга
|
||||
Date: 2018-01-26 00:00
|
||||
Category: News
|
||||
Slug: mahjong-recreation-start
|
||||
Lang: ru
|
||||
|
||||
![Сферические фишки в раскладке Маджонг][screenshot]
|
||||
|
||||
Эта статья описывает начало воссоздания игры Маджонг.
|
||||
|
||||
**План**
|
||||
|
||||
Мы начали воссоздание Маджонга с составления краткого плана реализации игровой механики с минимальной графикой:
|
||||
|
||||
* Загрузить раскладку
|
||||
* Поместить фишки в позиции раскладки
|
||||
* Различить фишки
|
||||
* Реализовать выбор фишек
|
||||
* Реализовать сравнение фишек
|
||||
|
||||
Как и любой другой план, этот выглядел вполне адекватно на первый взгляд. Тем не менее стоит начать разработку, как появляются новые детали. Этот план не был исключением. Ниже представлена пара проблем, вскрывшихся во время разработки.
|
||||
|
||||
**Проблема №1: предоставить бинарные ресурсы на поддерживаемых платформах**
|
||||
|
||||
Маджонг будет доступен для десктопа, мобилок и веба. Каждая платформа имеет ограничения на доступ к внешним файлам:
|
||||
|
||||
* Десктоп позволяет получить доступ почти к любому файлу
|
||||
* Мобилки имеют ограниченный доступ к файловой системе
|
||||
* Веб не имеет файловой системы
|
||||
|
||||
Мы решили сделать единый способ доступа к ресурсам путём их встраивания в исполняемый файл. Это решение привело к рождению проектов **mjin-resource** и **mahjong-data**.
|
||||
|
||||
Проект [mjin-resource][mjin-resource] служит для:
|
||||
|
||||
* перевода бинарных файлов в заголовочные файлы C с помощью утилиты **xxd**
|
||||
* создания проекта MJIN, состоящего из сгенерированных заголовочных файлов, который собирается в статическую библиотеку
|
||||
* предоставления интерфейса C++ для работы с ресурсами
|
||||
|
||||
Проект [mahjong-data][mahjong-data] является примером подобного проекта MJIN, ресурсы из которого использует проект [mahjong][mahjong].
|
||||
|
||||
**Проблема №2: загрузка изображений PNG на поддерживаемых платформах**
|
||||
|
||||
Для загрузки PNG мы используем соответствующий плагин OpenSceneGraph. Мы собрали его без проблем для десктопа. Сборка же для веба (Emscripten) оказалась сложнее: Emscripten содержит собственную версию **libpng**, которую сборочный скрипт OpenSceneGraph не видит. Нам пришлось обойти несколько проверок OpenSceneGraph, чтобы успешно собрать плагин для Emscripten.
|
||||
Сборка плагина под мобилки ещё ждёт нас впереди. Как только мы разберёмся с плагином PNG на всех поддерживаемых платформах, мы опубликуем информацию о его сборке в новом самоучителе для [кросс-платформенного руководства OpenSceneGraph][osgcp_guide]. Нас уже [попросили это сделать][img_loading_issue].
|
||||
|
||||
**Разработка**
|
||||
|
||||
[Как вы знаете][lets-go], мы опубликовали кросс-платформенное руководство OpenSceneGraph для усиления сообщества OpenSceneGraph. Мы ценим обучение и любим делиться своими знаниями. Поэтому мы решили разрабатывать Маджонг небольшими воспроизводимыми частями, каждая из которых имеет уникальную внутреннюю версию. Эти версии доступны в [хранилище проекта mahjong][mahjong].
|
||||
|
||||
Мы также предоставляем [историю версий, каждая из которых сопровождается сборкой под веб][web-releases], для следующих целей:
|
||||
|
||||
* обучение: показать ход разработки изнутри
|
||||
* доступность: предоставить старые версии для сравнения
|
||||
|
||||
**Текущее состояние игры Маджонг**
|
||||
|
||||
На момент написания этой статьи мы закончили реализацию выбора фишек. [Проверьте в своём браузере!][mahjong-version-tile-selection]
|
||||
|
||||
После реализации сравнения фишек мы опубликуем промежуточный результат для всех поддерживаемых платформ.
|
||||
|
||||
На этом мы заканчиваем описание начала воссоздания игры Маджонг.
|
||||
|
||||
[screenshot]: ../../images/2018-01-26-mahjong-recreation-start.png
|
||||
|
||||
[mjin-resource]: https://bitbucket.org/ogstudio/mjin-resource
|
||||
[mahjong]: https://bitbucket.org/ogstudio-games/ogs-mahjong
|
||||
[mahjong-data]: https://bitbucket.org/ogstudio-games/mahjong-data
|
||||
[osgcp_guide]: https://github.com/ogstudio/openscenegraph-cross-platform-guide
|
||||
[img_loading_issue]: https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues/4
|
||||
[lets-go]: lets-go.html
|
||||
[web-releases]: http://ogstudio.github.io/game-mahjong
|
||||
[mahjong-version-tile-selection]: https://ogstudio.github.io/game-mahjong/versions/010/mjin-player.html
|
||||
34
ru/news/2018-02-16-mahjong-techdemo1-gameplay.md
Normal file
34
ru/news/2018-02-16-mahjong-techdemo1-gameplay.md
Normal file
@@ -0,0 +1,34 @@
|
||||
Title: Первая технодемка OGS Mahjong 2: Игровая механика
|
||||
Date: 2018-02-16 00:00
|
||||
Category: News
|
||||
Slug: mahjong-techdemo1-gameplay
|
||||
Lang: ru
|
||||
|
||||
![Конец партии Маджонг][screenshot]
|
||||
|
||||
Мы ради сообщить о выпуске первой технической демонастрации OGS Mahjong 2. Её цель была в проверке игровой механики на всех поддерживаемых платформах.
|
||||
|
||||
Проверьте технодемку на своей платформе:
|
||||
|
||||
* Запустить [версию для веба][tech-demo-1-web] в браузере
|
||||
* Получить [версию для Android][tech-demo-1-android]
|
||||
* Получить [версию для Windows][tech-demo-1-windows]
|
||||
* Получить [версию для Linux][tech-demo-1-linux]
|
||||
* Получить [версию для macOS][tech-demo-1-macos]
|
||||
|
||||
Замечания:
|
||||
|
||||
* Версия для iOS не выпущена, т.к. нет простого способа её распространения вне AppStore.
|
||||
* Запустите скрипт `run` в версиях для Linux и macOS.
|
||||
* Версия для Linux доступна лишь в 64-битном варианте.
|
||||
* Версия для macOS должна работать на macOS Sierra или новее.
|
||||
|
||||
На сегодня это всё, хорошей проверки!
|
||||
|
||||
[screenshot]: ../../images/2018-02-16-mahjong-techdemo1-gameplay.png
|
||||
|
||||
[tech-demo-1-web]: https://ogstudio.github.io/game-mahjong/versions/013/mjin-player.html
|
||||
[tech-demo-1-android]: https://drive.google.com/open?id=1KW8IEN8Dpz8ODeg8BctVSJyzj9-AL9hR
|
||||
[tech-demo-1-windows]: https://drive.google.com/open?id=1oj0-OXSmEatttzn86u2vgP9SRAIC0ozB
|
||||
[tech-demo-1-linux]: https://drive.google.com/open?id=1EX7kLIThLiMz9_W7VmBPySms3mlrF-i6
|
||||
[tech-demo-1-macos]: https://drive.google.com/open?id=1KWnvbHzan8MpMcZPG2QC-7KWoEYbqrM2
|
||||
36
ru/news/2018-04-20-openscenegraph-examples.md
Normal file
36
ru/news/2018-04-20-openscenegraph-examples.md
Normal file
@@ -0,0 +1,36 @@
|
||||
Title: Кросс-платформенные примеры OpenSceneGraph
|
||||
Date: 2018-04-20 00:00
|
||||
Category: News
|
||||
Slug: openscenegraph-examples
|
||||
Lang: ru
|
||||
|
||||
![iOS Simulator отображает куб][screenshot]
|
||||
|
||||
Эта статья резюмирует создание первых двух кросс-платформенных примеров OpenSceneGraph.
|
||||
|
||||
К тому времени, как мы выпустили [первую техническую демонстрацию OGS Mahjong 2][tech-demo-1], нас уже дожидался [запрос на описание работы с изображениями][android-image-issue] в OpenSceneGraph на Android. Сначала мы рассматривали возможность создания нового самоучителя для [кросс-платформенного руководства OpenSceneGraph][osgcpg], но позже мы оценили необходимые трудозатраты и посчитали их излишними для освещения такой небольшой темы (по сравнению с тем, что умеет средняя игра) как загрузка изображений. Мы решили продолжить делиться нашими знаниями в виде конкретных примеров. Так на свет появились [кросс-платформенные примеры OpenSceneGraph][osgcpe].
|
||||
|
||||
Каждый пример:
|
||||
|
||||
* объясняет критически важный код для выполнения поставленной задачи
|
||||
* акцентирует внимание на нюансах, специфичных для каждой платформы
|
||||
* предоставляет реализации примера для десктопа, мобилок и веба
|
||||
* предоставляет сборку для веба, чтобы упростить оценку результата
|
||||
|
||||
Первая пара примеров освещает следующие темы:
|
||||
|
||||
* Встраивание ресурсов в исполняемый файл: значительное упрощение работы с ресурсами на всех платформах
|
||||
* Использование изображений PNG с помощью плагинов PNG: описание требований, необходимых для сборки и использования плагинов PNG
|
||||
|
||||
Мы будем и впредь добавлять новые примеры по мере продвижения нашей разработки OGS Mahjong 2.
|
||||
|
||||
На этом мы заканчиваем резюме о создании первых двух кросс-платформенных примеров OpenSceneGraph.
|
||||
|
||||
|
||||
[screenshot]: ../../images/2018-04-20-openscenegraph-examples.png
|
||||
|
||||
[tech-demo-1]: mahjong-techdemo1-gameplay.html
|
||||
[android-image-issue]: https://github.com/OGStudio/openscenegraph-cross-platform-guide/issues/4
|
||||
[osgcpg]: https://github.com/OGStudio/openscenegraph-cross-platform-guide
|
||||
[osgcpe]: https://github.com/OGStudio/openscenegraph-cross-platform-examples
|
||||
|
||||
52
ru/news/2018-06-27-example-driven-development.md
Normal file
52
ru/news/2018-06-27-example-driven-development.md
Normal file
@@ -0,0 +1,52 @@
|
||||
Title: Разработка через создание примеров
|
||||
Date: 2018-06-27 00:00
|
||||
Category: News
|
||||
Slug: example-driven-development
|
||||
Lang: ru
|
||||
|
||||
![Брокер отладки][screenshot]
|
||||
|
||||
Эта статья описывает то, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров.
|
||||
|
||||
**ИЗМЕНЕНИЯ ОТ 2018-08**: третий пример был переименован в четвёртый в связи с причинами, изложенными в [следующей статье][article-2018-august].
|
||||
|
||||
**Третий кросс-платформенный пример OpenSceneGraph**
|
||||
|
||||
Третий кросс-платформенный пример OpenSceneGraph содержит реализацию [удалённой отладки, работающей на всех поддерживаемых платформах][osgcpe-04]. Этот пример относится не столько к OpenSceneGraph, сколько к поддержке различных платформ.
|
||||
|
||||
Удалённое взаимодействие ныне предполагает использование HTTP(s) поверх TCP/IP. Таким образом, первая идея реализации подразумевала встраивание сервера HTTP в приложение, чтобы клиенты HTTP могли взаимодействовать с этим сервером.
|
||||
|
||||
Однако, раздача HTTP на различных платформах имеет свои сложности:
|
||||
|
||||
* на десктопах есть межсетевые экраны (firewalls)
|
||||
* на мобилках есть ограничения по работе фоновых процессов
|
||||
* веб-браузеры являются клиентами HTTP по дизайну
|
||||
|
||||
Эти ограничения подтолкнули нас к созданию посредника между отлаживаемым приложением и пользовательским интерфейсом отладки. [Брокер отладки][debug-broker], небольшое приложение Node.js, стало тем самым посредником. Брокер отладки не имеет внешних зависимостей, поэтому его легко использовать практически везде. Благодаря тому, что брокер отладки - это серверное приложение, его достаточно настроить лишь раз и использовать для любого количества приложений.
|
||||
|
||||
И [пользовательский интерфейс отладки][debug-ui], и [брокер отладки][debug-broker] используют JavaScript, т.к. мы хотели сделать эти инструменты максимально доступными без предварительной установки. Данное решение привело нас к реализации инструментов именно для веб-браузеров. Десктопное приложение потребовало бы дополнительных усилий на установку и поддержку, что лишь усложнило бы работу с инструментами.
|
||||
|
||||
**Разработка через создание примеров**
|
||||
|
||||
После создания третьего примера мы осознали важность и достоинства разработки новых функций вне основного проекта:
|
||||
|
||||
* освобождение основного проекта от шума изменений (commit noise)
|
||||
* публичное освещение новой функции приглашает всех к её изучению, критике и улучшению
|
||||
|
||||
Когда мы делимся нашими знаниями:
|
||||
|
||||
* мы обязаны создавать документацию, объясняющую происходящее (в том числе для нас самих позже)
|
||||
* мы обязаны сторониться непродуманных решений, т.к. они повредят нашей репутации
|
||||
|
||||
С этого момента все новые функции вроде обработки ввода, загрузки раскладок Маджонга, кэширования ресурсов и т.п. мы будем сначала реализовывать в виде примеров. Мы называем этот подход разработкой через создание примеров.
|
||||
|
||||
На этом мы заканчиваем описание того, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров.
|
||||
|
||||
|
||||
[screenshot]: ../../images/2018-06-27-example-driven-development.png
|
||||
[article-2018-august]: examples-and-dependencies.html
|
||||
|
||||
[osgcpe-04]: https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging
|
||||
[debug-broker]: https://github.com/OGStudio/debug-broker
|
||||
[debug-ui]: https://github.com/OGStudio/debug-ui
|
||||
|
||||
59
ru/news/2018-08-21-examples-and-dependencies.md
Normal file
59
ru/news/2018-08-21-examples-and-dependencies.md
Normal file
@@ -0,0 +1,59 @@
|
||||
Title: Примеры и зависимости
|
||||
Date: 2018-08-21 00:00
|
||||
Category: News
|
||||
Slug: examples-and-dependencies
|
||||
Lang: ru
|
||||
|
||||
![Облако][screenshot]
|
||||
|
||||
Эта статья описывает два новых кросс-платформенных примера OpenSceneGraph и изменение в работе с зависимостями.
|
||||
|
||||
**Примеры клиента HTTP и выбора узла сцены**
|
||||
|
||||
После окончания работы над [примером удалённой отладки][osgcpe-04] и [сообщения об этом][article-2018-june] мы с удивлением обнаружили, что безопасное соединение HTTPS между отлаживаемым приложением и брокером отладки работало лишь в веб-версии примера. Десктопная и мобильная версии работали лишь с помощью обычного соединения HTTP.
|
||||
|
||||
Т.к. текущая схема отладки не имеет авторизации, отладка по обычному соединению HTTP не несёт никаких проблем. Однако, если мы хотим получить доступ к ресурсам, расположенным на популярных сайтах вроде GitHub и BitBucket, мы обязаны поддерживать HTTPS.
|
||||
|
||||
Необходимость поддержки HTTPS на каждой платформе побудила нас создать [пример клиента HTTP][osgcpe-03]. Оказалось, что каждая платформа имеет собственные правила по работе с HTTPS:
|
||||
|
||||
* веб (Emscripten) предоставляет Fetch API
|
||||
* десктоп может использовать Mongoose с OpenSSL
|
||||
* Android предоставляет HttpUrlConnection в языке Java
|
||||
* iOS предоставляет NSURLSession в языке Objective-C
|
||||
|
||||
Необходимость поддержки разных языков на разных платформах привела к созданию так называемого шаблона "хозяин-гость":
|
||||
|
||||
* гость (не привязан к платформе)
|
||||
* имеет сетевое представление
|
||||
* используется кросс-платформенным кодом на C++
|
||||
* хозяин (определённая платформа)
|
||||
* опрашивает гостя на наличие ожидающих выполнение запросов
|
||||
* обрабатывает их
|
||||
* сообщает результат гостю
|
||||
|
||||
[Пример выбора узла сцены][osgcpe-05] оказался простым и не создал особых проблем.
|
||||
|
||||
**Изменение в работе с зависимостями**
|
||||
|
||||
Больше года нам приходилось жить со следующими [недостатками][osg-shortcomings] сборки OpenSceneGraph официальными средствами:
|
||||
|
||||
* проблемы сборки под macOS ввиду использования определённых флагов сборки
|
||||
* обход механизмов проверки зависимостей для использования PNG на Android
|
||||
* принадлежность сборок iOS под симулятор и устройство к разным проектам Xcode
|
||||
* ожидания в 20-30 минут для сборки OpenSceneGraph
|
||||
|
||||
Эти недостатки замедляли нас и усложняли разработку новых примеров. После того, как мы десятый раз столкнулись с указанными проблемами в этом месяце, мы решили исправить их раз и навсегда. Теперь мы собираем OpenSceneGraph как часть каждого примера за 2-3 минуты без какой-либо магии. Также мы использовали этот подход включения зависимости как части каждого примера для остальных библиотек вроде Mongoose и libpng-android.
|
||||
|
||||
Теперь без этих препятствий мы можем разрабатывать быстрее. Это значительно облегчит создание следующей технической демонстрации Mahjong 2!
|
||||
|
||||
На этом мы заканчиваем описание двух новых кросс-платформенных примеров OpenSceneGraph и изменения в работе с зависимостями.
|
||||
|
||||
[screenshot]: ../../images/2018-08-21-examples-and-dependencies.png
|
||||
|
||||
[article-2018-june]: example-driven-development.html
|
||||
|
||||
[osgcpe-03]: https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.HTTPClient
|
||||
[osgcpe-04]: https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging
|
||||
[osgcpe-05]: https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/05.NodeSelection
|
||||
|
||||
[osg-shortcomings]: http://forum.openscenegraph.org/viewtopic.php?t=17443
|
||||
44
ru/news/2018-10-02-mahjong-demo2.md
Normal file
44
ru/news/2018-10-02-mahjong-demo2.md
Normal file
@@ -0,0 +1,44 @@
|
||||
Title: OGS Mahjong 2: Demo 2
|
||||
Date: 2018-10-02 00:00
|
||||
Category: News
|
||||
Slug: mahjong-demo2
|
||||
Lang: ru
|
||||
|
||||
![Начало партии Маджонг][screenshot]
|
||||
|
||||
Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были улучшение техники разработки и создание надёжной основы кроссплатформенной разработки.
|
||||
|
||||
**Выпуск**
|
||||
|
||||
Запустите последний выпуск OGS Mahjong 2 в вашем браузере: [http://ogstudio.github.io/ogs-mahjong](http://ogstudio.github.io/ogs-mahjong)
|
||||
|
||||
Рекомендуем запускать игру с параметром `seed` следующим образом: [http://ogstudio.github.io/ogs-mahjong?seed=0](http://ogstudio.github.io/ogs-mahjong?seed=0)
|
||||
|
||||
Это позволяет вам играть в ту же самую раскладку после перезапуска.
|
||||
|
||||
Каждое значение зерна (seed) однозначно задаёт расположение фишек, так что разные значения зерна дают разнообразие партий.
|
||||
|
||||
**Техника разработки и основа**
|
||||
|
||||
Во время разработки второй демонстрации мы перешли с обычной разработки на [разработку через создание примеров][article-2018-june]. Это привело к появлению трёх различных хранилищ для обеспечения разработки OGS Mahjong 2:
|
||||
|
||||
* Хранилище [кроссплатформенных примеров OpenSceneGraph][osgcpe] содержит основу вроде работы с ресурсами, создание графического окна и т.д.
|
||||
* Хранилище [компонент OGS Mahjong][omc] содержит специфичную для Маджонга функциональность вроде разбора раскладки, сопоставления фишек и т.д.
|
||||
* Хранилище [OGS Mahjong][ogs-mahjong] содержит снимок набора функциональностей `компонент OGS Mahjong`, которые определяют версию игры. Например, версия `Demo 2` почти полностью повторяет пример [05.ColorfulStatus][omc-05] из `компонент OGS Mahjong`.
|
||||
|
||||
**За пределами пасьянса Маджонг**
|
||||
|
||||
В дополнение к параметру `seed` вы можете указать игре использовать удалённую раскладку, расположенную на GitHub: [http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout](http://ogstudio.github.io/ogs-mahjong?seed=0&layout=github://OGStudio/ogs-mahjong-components/data/cat.layout)
|
||||
|
||||
Использование удалённых ресурсов открывает огромные возможности, т.к. позволяет любому желающему создать раскладку на свой вкус и моментально её проверить.
|
||||
|
||||
Наш следующий шаг - это выделение игровой логики в виде ресурса.
|
||||
|
||||
|
||||
[screenshot]: ../../images/2018-10-02-mahjong-demo2.png
|
||||
|
||||
[article-2018-june]: example-driven-development.html
|
||||
[osgcpe]: https://github.com/OGStudio/openscenegraph-cross-platform-examples
|
||||
[omc]: https://github.com/OGStudio/ogs-mahjong-components
|
||||
[ogs-mahjong]: https://bitbucket.org/ogstudio-games/ogs-mahjong
|
||||
[omc-05]: https://github.com/OGStudio/ogs-mahjong-components/tree/master/05.ColorfulStatus
|
||||
59
ru/news/2018-11-19-ideal-gamedev.md
Normal file
59
ru/news/2018-11-19-ideal-gamedev.md
Normal file
@@ -0,0 +1,59 @@
|
||||
Title: Идеальные игры и средства для их разработки
|
||||
Date: 2018-11-19 00:00
|
||||
Category: News
|
||||
Slug: ideal-gamedev
|
||||
Lang: ru
|
||||
|
||||
![Человек без и с инструментами][screenshot]
|
||||
|
||||
В этой статье мы обсудим, как выглядят идеальные видеоигра и инструмент для разработки видеоигр, по нашему мнению.
|
||||
|
||||
**Вопросы**
|
||||
|
||||
Как вы знаете, [целями Opensource Game Studio][ogs-goals] являются:
|
||||
|
||||
* создание бесплатных инструментов для разработки видеоигр
|
||||
* создание видеоигр с помощью этих инструментов
|
||||
* создание самоучителей по разработке видеоигр
|
||||
|
||||
В этот раз мы решили задать себе пару простых вопросов:
|
||||
|
||||
* Какова идеальная видеоигра?
|
||||
* Каков идеальный инструмент для разработки видеоигр?
|
||||
|
||||
Ниже представлены наши ответы.
|
||||
|
||||
**Ответ 1: Видеоигра идеальна, если она доставляет максимально возможное удовольствие**
|
||||
|
||||
Несмотря на то, что содержание является, пожалуй, самой важной частью, удерживающей человека в игре, техническая сторона является транспортом для доставки этого содержания. Существует немало технических проблем, которые могут полностью испортить впечатление даже от превосходного содержания:
|
||||
|
||||
* недостаточная доступность: игра не идёт на оборудовании человека
|
||||
* недостаточная оптимизация: игра тормозит
|
||||
* критичные ошибки: игра падает время от времени
|
||||
|
||||
Мы тратим много сил, чтобы сделать наши игры доступными везде. Именно поэтому мы выпустили [вторую демонстрацию OGS Mahjong 2][mahjong-demo2] лишь для веба: т.к. вы можете запустить веб-версию практически где угодно.
|
||||
|
||||
**Ответ 2: Инструмент для разработки видеоигр идеален, если он позволяет создать игру мечты в кратчайшие возможные сроки**
|
||||
|
||||
Несмотря на то, что мы тратим много усилий на то, чтобы делиться своими знаниями с помощью [руководств][osgcpg] и [самоучителей][osgcpe], мы осознаём, что на работу с ними уходит много времени. Сейчас нельзя создать даже простейшую [видеоигру на память][concentration] без выполнения следующих шагов:
|
||||
|
||||
* настроить окружение разработки
|
||||
* написать код
|
||||
* собрать приложение
|
||||
* отладить приложение
|
||||
* повторить шаги `написать-собрать-отладить` столько раз, сколько нужно
|
||||
|
||||
Написание кода и отладка, пожалуй, являются конечными формами входа и выхода любого программного обеспечения, поэтому мы их не избежим. Однако, мы можем полностью избавиться от шагов (или хотя бы значительно сократить их) `настройки окружения разработки` и `сборки`. Именно на это мы и потратим ближайшие месяцы.
|
||||
|
||||
Наша цель на ближайшие месяцы состоит в том, чтобы создать такой инструмент разработки видеоигр, чтобы любой программист (или достаточно квалифицированный человек) мог создать [видеоигру на память][concentration] с нуля за час.
|
||||
|
||||
На этом мы заканчиваем обсуждение, как выглядят идеальные видеоигра и инструмент для разработки видеоигр, по нашему мнению.
|
||||
|
||||
|
||||
[screenshot]: ../../images/2018-11-19-ideal-gamedev.png
|
||||
|
||||
[ogs-goals]: ../../ru/page/about.html
|
||||
[mahjong-demo2]: mahjong-demo2.html
|
||||
[osgcpg]: https://github.com/OGStudio/openscenegraph-cross-platform-guide
|
||||
[osgcpe]: https://github.com/OGStudio/openscenegraph-cross-platform-examples
|
||||
[concentration]: https://en.wikipedia.org/wiki/Concentration_(game)
|
||||
21
ru/news/2019-01-01_year-of-rethinking.md
Normal file
21
ru/news/2019-01-01_year-of-rethinking.md
Normal file
@@ -0,0 +1,21 @@
|
||||
Title: Год переосмысления
|
||||
Date: 2019-01-01 0:01
|
||||
Category: News
|
||||
Slug: 2019-year-of-rethinking
|
||||
Lang: ru
|
||||
|
||||

|
||||
|
||||
Этот год во-многом стал для нас годом переосмысления и определенности. Как некоторые из вас помнят, мы начинали этот проект, для создания среды для разработки игр. В течение многих лет идея развивалась от одной формы к другой, иногда изменения были значительными, в других случаях мы отбрасывали весь код и начинали заново.
|
||||
|
||||
В результате всех этих изменений мы подошли к концу 2018 года без готового инструмента, но с четким пониманием того, что за инструмент мы создаем.
|
||||
|
||||
Существует множество прекрасных средств для разработки игр. Некоторые из них даже с открытым исходным кодом. Мы потратили много времени, пробуя разные, и некоторые из них действительно заслуживают внимания.
|
||||
|
||||
Мы не можем, и мы не хотим конкурировать с ними. Наши цели - максимальная доступность и простота. Наша основная цель - создать инструмент, подходящий для обучения детей, но достаточно мощный, чтобы его можно было использовать для создания прототипов.
|
||||
|
||||
Сейчас, чтобы использовать любой мощный инструмент разработки, вам нужен ПК или ноутбук. Мы хотим сделать набор инструментов, который можно использовать где угодно. Мы уже сделали некоторые шаги в этом направлении, и мы продолжим работать в этом направлении.
|
||||
|
||||
Итак, мы начинаем новый год без четких планов, но с четким знанием нашей цели. Давайте подождем и посмотрим, будет ли этот подход работать лучше.
|
||||
|
||||
Счастливого Нового Года всем вам! До скорой встречи!
|
||||
242
ru/news/2019-02-04_teaching-kids-to-program.md
Normal file
242
ru/news/2019-02-04_teaching-kids-to-program.md
Normal file
@@ -0,0 +1,242 @@
|
||||
Title: Обучение детей программированию
|
||||
Date: 2019-02-04 00:00
|
||||
Category: News
|
||||
Slug: teaching-kids-to-program
|
||||
Lang: ru
|
||||
|
||||
![Ученики и учителя][screenshot]
|
||||
|
||||
В этой статье Михаил делится своим опытом обучения детей программированию.
|
||||
|
||||
Он расскажет о следующем:
|
||||
|
||||
- организация процесса обучения
|
||||
- программа обучения
|
||||
- игра на память
|
||||
- инструмент программирования
|
||||
- уроки
|
||||
- результаты и планы
|
||||
|
||||
**Организация процесса обучения**
|
||||
|
||||
Обучение проходит в рамках социальной ответственности бизнеса: компания предоставляет помещение с оборудованием, а также объединяет сотрудников, желающих попробовать себя в роли преподавателей, с сотрудниками, желающими обучить своих детей. Всё это исключительно на добровольной основе.
|
||||
|
||||
Потенциальных преподавателей разбивают по группам таким образом, чтобы группа из трёх преподавателей состояла из одного опытного и двух новичков. Одна группа преподавателей ведёт одну группу учеников. Учеников разбивают по возрасту и навыкам.
|
||||
|
||||
В 2018-м я второй раз участвовал в программе обучения детей в возрасте примерно десяти лет. Наша группа работала с октября по декабрь 2018-го по субботам с 10:00 до 12:00. Пользуясь служебным положением, я также затащил на курсы и свою жену.
|
||||
|
||||
**Программа обучения**
|
||||
|
||||
Когда я участвовал первый раз, наша группа обучала детей программированию довольно бесцельно: мы придумывали простейшие задания на урок для объяснения операторов. В результате в конце обучения у нас не было ничего конкретного, что можно было бы оценить, чем похвастаться и что проанализировать.
|
||||
|
||||
В этот второй раз я решил, что мы с детьми реализуем так называемую игру на память. Критерием успешности обучения я определил следующее условие: каждый ученик к концу курса самостоятельно создаёт простейшую игру на память с нуля за 1 час.
|
||||
|
||||
Для достижения этого критерия я решил проверить утверждение "Повторение - мать учения", поэтому каждый урок мы создавали всё с нуля. Подчеркну, что мы ничего не сохраняли в учётной записи учеников. Задача была в сохранении навыка создания игры в голове, не в компьютере.
|
||||
|
||||
**Игра на память**
|
||||
|
||||
Давайте рассмотрим, что представляет собой игра на память.
|
||||
|
||||
**1)** В простейшем случае у нас есть 16 карт, причём уникальных лишь 8, остальные 8 являются их парами.
|
||||
|
||||
![Карты лицом вверх][all-cards-face-up]
|
||||
|
||||
В представленном изображении у нас есть лишь две карты с котом, собакой и т.д..
|
||||
|
||||
**2)** В начале игры мы перемешиваем карты и раскладываем их **рубашкой** вверх.
|
||||
|
||||
![Карты лицом вниз][all-cards-face-down]
|
||||
|
||||
**3)** Первый из участников игры открывает две карты.
|
||||
|
||||
![Пара карт][first-pair]
|
||||
|
||||
**4)** Если карты различаются, возвращаем их в исходное положение: кладём **рубашкой** вверх.
|
||||
|
||||
![Карты лицом вниз][all-cards-face-down]
|
||||
|
||||
**5)** Следующий участник игры открывает другую пару карт.
|
||||
|
||||
![Вторая пара карт][second-pair]
|
||||
|
||||
**6)** Если карты совпадают, убираем их с игрового поля.
|
||||
|
||||
![Пара совпадающих карт убрана][remove-pair]
|
||||
|
||||
Цель игры в том, чтобы убрать все карты с поля. Игра в данном виде не включает соревнование, поэтому играть можно одному человеку.
|
||||
|
||||
С одной стороны, игра на память довольно проста, с другой стороны, реализация игры затрагивает основную функциональность, необходимую для создания любой более-менее сложной игры:
|
||||
|
||||
- создание элементов
|
||||
- их расстановка на поле
|
||||
- выбор элементов
|
||||
- сравнение выбранных элементов
|
||||
- скрытие совпадающих элементов
|
||||
|
||||
**Инструмент программирования**
|
||||
|
||||
В качестве инструмента мы использовали среду [Scratch][scratch]. Она рассчитана на обучение детей программированию, поэтому каждое действие, каждый оператор в ней представлен графически.
|
||||
|
||||
Например, следующим скриптом можно повернуть кота на 360 градусов за секунду:
|
||||
|
||||
![Скрипт][cat-script]
|
||||
|
||||
Вот так выглядит результат:
|
||||
|
||||
![Анимация][cat-animation]
|
||||
|
||||
Замечу, что это довольно успешное решение для представления кода графически. Например, платное решение, продвигаемое нынче компанией SAP, предполагает использование так называемых кубиков для программирования:
|
||||
|
||||
![SAP UI][sap-ui]
|
||||
|
||||
Тут можно лишь ввести в нужные поля нужные значения. Если потребуется что-то нестандартное, то поможет лишь скрипт, который представлен опять же кубиком.
|
||||
|
||||
По личному опыту скажу, что решение Scratch не тормозит от слова совсем, чего не скажешь о решении SAP.
|
||||
|
||||
**Первый урок**
|
||||
|
||||
Первый урок являлся вводным, поэтому компьютеры мы не использовали.
|
||||
|
||||
План был следующим:
|
||||
|
||||
1. Познакомиться
|
||||
2. Сыграть в игру на память
|
||||
3. Изучить понятие алгоритма
|
||||
4. Написать алгоритм игры
|
||||
5. Проанализировать урок
|
||||
|
||||
**1)** Знакомство
|
||||
|
||||
Преподаватели с учениками встают в круг. Это уравнивает всех и делает каждого участником команды.
|
||||
|
||||
Первый участник называет своё имя и рассказывает о том, почему он решил посетить этот курс. Второй и последующие участники сначала повторяют имя и рассказ каждого предыдущего участника, после чего называют своё имя и рассказывают.
|
||||
|
||||
Примерно так это выглядит:
|
||||
|
||||
1. Вася: "Меня зовут Вася, я хочу изучить Scratch, потому что меня заставил папа"
|
||||
2. Дима: "Это Вася, заниматься Scratch'ем его заставляет папа. Меня зовут Дима, и это мой четвёртый год Scratch'а"
|
||||
3. Оля: "Это Вася, его заставляют родители. Это Дима, он практически ветеран Scratch'а. Меня зовут Оля, я первый год преподаю, буду учиться вместе со всеми"
|
||||
|
||||
Данный формат знакомства преследует следующие цели:
|
||||
|
||||
- Знакомство
|
||||
- Каждый участник команды должен знать по имени остальных участников команды
|
||||
- Общее пространство
|
||||
- Все участники в круге, а не за рабочими местами, что уменьшает отвлечение на игры в компьютере
|
||||
- Равенство
|
||||
- И преподаватели, и ученики в одном круге, что уравновешивает всех в качестве участников команды без иерархии
|
||||
- Внимание
|
||||
- Каждый участник команды должен внимательно слушать остальных участников, чтобы правильно повторить сказанное ими
|
||||
- Обратная связь
|
||||
- Каждый участник команды должен максимально чётко излагать свою мысль, иначе остальные просто не смогут её повторить
|
||||
- Веселье
|
||||
- Проблемы с запоминанием имён всех веселят
|
||||
|
||||
**2)** Игра на память в карты
|
||||
|
||||
1. Берём две колоды карт и выбираем из них по 8 одинаковых
|
||||
2. Раскладываем карты в сетку 4 x 4 рубашкой вверх на столе
|
||||
3. Ученики встают вокруг стола
|
||||
4. Каждый ученик по очереди переворачивает пару карт
|
||||
* Если карты совпали, то убираем их с поля
|
||||
* Если карты различаются, то переворачиваем их рубашкой вверх
|
||||
|
||||
Ученикам очень нравится играть в настольные игры. В ходе игры преподаватели проговаривают то, что происходит.
|
||||
|
||||
После пары партий переходим к изучению понятия алгоритма.
|
||||
|
||||
**3)** Понятие алгоритма
|
||||
|
||||
1. Спрашиваем сначала учеников, даём возможность высказаться, узнаём уровень каждого ученика
|
||||
2. При необходимости поправляем высказывания, если они близки к ожидаемому ответу
|
||||
3. Предлагаем написать алгоритм перевода человека из состояния "стоит за дверью кабинета" в состояние "работает за компьютером в кабинете"
|
||||
|
||||
Ученикам очень нравится подходить к доске и писать на ней, поэтому по очереди вызываем каждого ученика, чтобы он писал по одному пункту алгоритма. Самого активного ученика используем в качестве исполнителя алгоритма.
|
||||
|
||||
**4)** Алгоритм игры
|
||||
|
||||
Предлагаем написать алгоритм игры, опять вызываем каждого добавлять по одному пункту на доске. После завершения описания алгоритма ещё раз играем с картами, но на этот раз каждый ученик должен проговаривать шаг алгоритма.
|
||||
|
||||
Выглядит это примерно так:
|
||||
|
||||
1. Вася: "Раскладываем 16 карт рубашкой вверх"
|
||||
2. Дима: "Переворачиваем пару карт"
|
||||
3. Паша: "Если две карты различаются, переворачиваем их рубашкой вверх"
|
||||
4. Филипп: "Переворачиваем пару карт"
|
||||
5. Миша: "Если две карты совпадают, убираем их с поля"
|
||||
|
||||
**5)** Анализ урока
|
||||
|
||||
На этом первый урок заканчивается, и у преподавателей появляется возможность обсудить как свои впечатления об уроке, так и об учениках, выработать подходы к тихоням и активистам, договориться о дальнейших планах на следующие уроки.
|
||||
|
||||
У нас были следующие решения:
|
||||
|
||||
1. Рассаживать тихонь и активистов через одного, чтобы соблюсти баланс шума и тишины. Иначе группа активистов создаёт очаг бури, а группа тихонь - очаг пустыни, что замедляет процесс обучения.
|
||||
2. Требовать от учеников точности, т.к. активисты любят кривляться, что плохо влияет на дисциплину.
|
||||
|
||||
**Второй и третий уроки**
|
||||
|
||||
Последующие уроки мы опять же начинали с разминки: вставали в круг, называли имя и рассказывали, кто что сделал. А если не сделал, то почему. Как и прежде, каждый участник сначала повторял сказанное предыдущими и лишь затем говорил о себе.
|
||||
|
||||
На втором уроке мы создавали требования для элемента игрового поля и пытались создать этот элемент в Scratch. Это вполне удалось.
|
||||
|
||||
На третьем уроке мы пытались создать 16 элементов и расположить их в сетке 4x4. Тут мы застопорились, т.к. ученики не смогли понять систему координат, чтобы расположить 16 элементов в сетке. Стало очевидно, что планы уроков являются лишь планами, а действительность вносит свои изменения.
|
||||
|
||||
У нас было два пути решения проблемы с системой координат:
|
||||
|
||||
1. Продолжать обучать системе координат с риском не успеть создать игру до конца курса
|
||||
2. Изменить требования к игре таким образом, чтобы система координат была не нужна
|
||||
|
||||
Мы решили пойти вторым путём, т.к. мы всё-таки не школа и цель у нас была научить создавать игру, т.е. применять знания на практике, а не в теории. Поэтому сетку элементов 4x4 мы решили заменить кругом из 16 элементов.
|
||||
|
||||
Данное решение привело меня к следующим выводам:
|
||||
|
||||
1. Для решения задачи часто можно найти более простой путь
|
||||
2. Этот путь легче для понимания, хоть и менее гибкий
|
||||
3. Перейти на сложный путь для увеличения гибкости можно позже, когда это будет действительно необходимо
|
||||
4. Упрощение приближает к конечной цели, усложнение отдаляет от неё
|
||||
|
||||
**Четвёртый и последующие уроки**
|
||||
|
||||
С четвёртого урока мы отменили стадию написания требований, т.к. она начала занимать бОльшую часть урока: мы снова сделали уклон на практику, а не теорию, чтобы уложиться в сроки. На этот раз все требования были написаны заранее и выданы "сверху". Но всё равно их никто не читал.
|
||||
|
||||
Четвёртый и пятый уроки мы потратили на создание 16 элементов в виде круга, выделение пары элементов и проверку на их совпадение.
|
||||
|
||||
С шестого урока и до девятого включительно мы каждый раз воссоздавали игру с нуля. С каждым разом это происходило всё быстрее и быстрее, поэтому с восьмого урока мы ввели турнирную таблицу, где записывали этапы создания игры и время каждого ученика.
|
||||
|
||||
**Последний урок**
|
||||
|
||||
К последнему уроку все справлялись с созданием игры с нуля более-менее самостоятельно за час-два.
|
||||
|
||||
Такова турнирная таблица последнего урока (имена скрыты):
|
||||
|
||||
![Турнирная таблица][leaderboard]
|
||||
|
||||
А ниже можно посмотреть на создание игры на память в Scratch ученика, который создал игру быстрее всех: за 30 минут.
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/WlA193S3SPY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
<br/>
|
||||
|
||||
**Результаты и планы**
|
||||
|
||||
Результат обучения превзошёл мои ожидания:
|
||||
|
||||
- трое учеников успели примерно за час или быстрее
|
||||
- двое примерно за полтора часа или быстрее
|
||||
|
||||
В этом году я планирую провести обучение не с помощью Scratch, а с использованием инструментария Opensource Game Studio: ученики будут работать с Lua, Git и GitHub Pages.
|
||||
|
||||
На этом мы заканчиваем статью об опыте Михаила по обучению детей программированию.
|
||||
|
||||
[screenshot]: ../../images/2019-02-04_teaching-kids-to-program-team.png
|
||||
|
||||
[all-cards-face-up]: ../../images/2019-02-04_teaching-kids-to-program-all-cards-face-up.png
|
||||
[all-cards-face-down]: ../../images/2019-02-04_teaching-kids-to-program-all-cards-face-down.png
|
||||
[first-pair]: ../../images/2019-02-04_teaching-kids-to-program-first-pair.png
|
||||
[second-pair]: ../../images/2019-02-04_teaching-kids-to-program-second-pair.png
|
||||
[remove-pair]: ../../images/2019-02-04_teaching-kids-to-program-remove-pair.png
|
||||
[scratch]: https://scratch.mit.edu/
|
||||
[cat-script]: ../../images/2019-02-04_teaching-kids-to-program-cat-script-ru.png
|
||||
[cat-animation]: ../../images/2019-02-04_teaching-kids-to-program-cat-animation.gif
|
||||
[sap-ui]: ../../images/2019-02-04_teaching-kids-to-program-sap-ui.png
|
||||
[leaderboard]: ../../images/2019-02-04_teaching-kids-to-program-leaderboard.png
|
||||
55
ru/news/2019-04-16_defense.md
Normal file
55
ru/news/2019-04-16_defense.md
Normal file
@@ -0,0 +1,55 @@
|
||||
Title: Защита доступности
|
||||
Date: 2019-04-16 00:00
|
||||
Category: News
|
||||
Slug: defending-availability
|
||||
Lang: ru
|
||||
|
||||
![Алтайская река Катунь][screenshot]
|
||||
|
||||
В этой статье мы расскажем о начале усилий по защите себя от решений третьих сторон.
|
||||
|
||||
С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл.
|
||||
|
||||
Существуют две основные причины, по которым мы меняли решение третьих сторон:
|
||||
|
||||
* Изменение наших нужд
|
||||
* Закрытие решения
|
||||
|
||||
Закрытие [Google Code][google-code] в 2016 было нашим первым опытом знакомства с мёртвой рукой бизнеса. Мы использовали SVN, Mercurial и систему отслеживания задач Google. Мы были вынуждены отказаться от них.
|
||||
|
||||
Мы переместили наш исходный код и в [BitBucket][bitbucket], и в [GitHub][github], т.к. не было больше желания складывать все яйца в одну корзину. Мы стали мудрее благодаря закрытию Google Code.
|
||||
|
||||
Систему отслеживания задач ждала иная судьба. Сначала мы использовали Bugzilla, но неудобство этой системы привело к тому, что мы заменили её на Google Sheets. На текущий момент мы используем Google Sheets для планирования и журналирования работ по проекту. Также мы используем Google Docs, чтобы писать эти самые новости и проверять их перед публикацией.
|
||||
|
||||
Закрытие [goo.gl][goo-gl] (сокращатель URL) в 2019 было нашей второй встречей с мёртвой рукой бизнеса. Мы использовали goo.gl для сокращений URL от Google Docs внутри команды. Особого урона это закрытие не принесло, однако, оно лишь подтвердило, что решения третьих сторон не наши, а их.
|
||||
|
||||
Microsoft [поглотила GitHub][github-acquisition] в 2018. Пока что (апрель 2019) Microsoft сопутствует успех в усилении роли GitHub благодаря [выпуску GitPod][gitpod], который позволяет разработчикам собирать проекты GitHub в один клик. Тем не менее, Microsoft известна в том числе и закрытием [Codeplex][codeplex] в 2017.
|
||||
|
||||
Это короткая история о закрытиях и поглощениях в течение последних четырёх лет высвечивает основную цель бизнеса: увеличение прибыли. Мы лично ничего не имеем против этой цели. В 21-м веке действительно сложно жить без заработка. Мы не исключение, мы тоже платим свои счета. Однако, более гуманным действием было бы отпустить исходный код закрытых решений на волю, чтобы заинтересованные разработчики продолжили развитие этих решений, если им того хотелось. Очевидно, что такое положение дел привело бы к увеличению конкуренции со сделавшей это компанией, а компании всячески стараются избегать конкуренции.
|
||||
|
||||
Мы не бизнес, мы не получаем никакой прибыли с наших инструментов. Наши цели состоят в том, чтобы создавать инструменты и выпускать их на волю, чтобы вы могли их использовать. Сейчас мы используем GitHub для распространения некоторых [самоучителей][tutorials] и [инструкций][guides]. Представьте, что Microsoft решит закрыть GitHub через пару лет. Почему? Может быть, потому что [люди постепенно мигрируют][migration] с GitHub на GitLab.
|
||||
|
||||
Как мы можем защитить себя от мёртвой руки бизнеса? Мы консолидируем наши инструменты, самоучители и игры на этом самом сайте. Первым шагом, теперь завершённым, было создание генератора статического сайта. Наш сайт теперь сгенерирован именно этим генератором.
|
||||
|
||||
На текущий момент сгенерированный сайт обладает следующей функциональностью:
|
||||
|
||||
* новости, занимающие несколько страницы
|
||||
* отдельные страницы
|
||||
* выбор языка для всего сайта
|
||||
|
||||
В течение года мы сделаем сайт ещё более удобным. Оставайтесь на связи!
|
||||
|
||||
На этом мы заканчиваем рассказ о начале усилий по защите себя от решений третьих сторон.
|
||||
|
||||
|
||||
[screenshot]: ../../images/2019-04-16_defending-availability.jpg
|
||||
[google-code]: https://code.google.com/archive/
|
||||
[bitbucket]: https://bitbucket.org/ogstudio/
|
||||
[github]: https://github.com/ogstudio/
|
||||
[goo-gl]: https://developers.googleblog.com/2018/03/transitioning-google-url-shortener.html
|
||||
[github-acquisition]: https://github.blog/2018-10-26-github-and-microsoft/
|
||||
[gitpod]: https://www.gitpod.io/blog/gitpod-launch/
|
||||
[codeplex]: https://devblogs.microsoft.com/bharry/shutting-down-codeplex/
|
||||
[tutorials]: https://github.com/OGStudio/openscenegraph-cross-platform-examples
|
||||
[guides]: https://github.com/OGStudio/openscenegraph-cross-platform-guide
|
||||
[migration]: https://hackernoon.com/git-wars-why-im-switching-to-gitlab-e471f5e8be2c
|
||||
83
ru/news/2019-08-05_on-the-way-to-durable-applications.md
Normal file
83
ru/news/2019-08-05_on-the-way-to-durable-applications.md
Normal file
@@ -0,0 +1,83 @@
|
||||
Title: На пути к долговечным приложениям
|
||||
Date: 2019-08-05 00:00
|
||||
Category: News
|
||||
Slug: on-the-way-to-durable-applications
|
||||
Lang: ru
|
||||
|
||||
![Псковское вече][screenshot]
|
||||
|
||||
В этой статье мы расскажем о нашем первом долговечном приложении для настольных ПК - генераторе статических сайтов ПСКОВ.
|
||||
|
||||
**Долговечность**
|
||||
|
||||
Под долговечным приложением мы понимаем такое приложение, которое работает без единого изменения на операционных системах, выпущенных в период 2010-2030 годов. Иными словами, долговечное приложение обладает 10-летней обратной совместимостью и 10-летней прочностью. Впрочем, [ПСКОВ][pskov] работает даже на Windows 2000, так что у него 19-летняя обратная совместимость.
|
||||
|
||||
Технически ПСКОВ представляет из себя один файл HTML с упакованными в нём разметкой (HTML), стилями (CSS) и кодом (JavaScript). ПСКОВ исполняется строго в веб-браузере без взаимодействия с сервером.
|
||||
|
||||
Подобная организация даёт ПСКОВУ следующие возможности:
|
||||
|
||||
* его можно копировать без ограничений
|
||||
* его можно размещать на любом хостинге
|
||||
* его можно запускать локально
|
||||
* он может работать без Интернета
|
||||
|
||||
10-летнюю прочность мы гарантировать не можем, т.к. будущим не владеем. Вместе с тем, история развития HTML, CSS, JavaScript говорит о том, что указанные технологии развиваются с максимально возможной обратной совместимостью. Во-первых, новые возможности JavaScript не отменяют старые. Во-вторых, производители веб-браузеров заинтересованы в том, чтобы их веб-браузеры работали с как можно большим числом сайтов. В результате, например, [тэг <center>][center-tag], объявленный устаревшим в 2014-м году, без проблем работает 5 лет спустя в 2019-м.
|
||||
|
||||
В то же время у любого приложения в веб-браузере есть серьёзное ограничение - клетка, обманчиво именуемая песочницей. Эта клетка запрещает доступ как к локальной файловой системе пользователя, так и почти ко всем ресурсам в Интернете без санкции владельца ресурса (CORS). В итоге что-либо отдать приложение может либо определённому серверу, либо пользователю в виде файла для скачивания. Файлы скачивать по одному или архивом неудобно, поэтому в мире нынче преобладает серверный подход, проблем которого мы коснёмся чуть позже.
|
||||
|
||||
Для освобождения ПСКОВА из клетки пришлось создать [ЛФСД][lfsa], крошечный скрипт на Python, который необходимо запускать руками на время работы ПСКОВА. ЛФСД даёт возможность ПСКОВУ работать с локальной файловой системой пользователя. Python выбран ввиду его наличия по умолчанию на Linux и macOS, а также возможности поставить на Windows (даже Windows 2000).
|
||||
|
||||
**Послужной список**
|
||||
|
||||
ПСКОВ успешно опробован для создания следующих небольших сайтов:
|
||||
|
||||
* [сайт проекта по созданию открытых игр][ogs]
|
||||
* [сам ПСКОВ][pskov]
|
||||
* [ЛФСД][lfsa]
|
||||
* [пример простейшего блога][pskov-sample]
|
||||
|
||||
Теперь о причинах создания ПСКОВА именно в виде долговечного приложения для веб-браузера.
|
||||
|
||||
**Причина №1: накопление и сохранение знаний в доступном виде**
|
||||
|
||||
Уже не первый год мы трудимся над созданием удобных средств разработки игр. До недавнего времени накопленные знания представляли из себя [родные приложения][ogs-mahjong-1] для настольных ПК, [обучающие статьи][osgcpg] по смежным технологиям либо [видео результатов][showcase]. Указанные виды накопленных знаний отличает то, что знания эти по сути мертвы:
|
||||
|
||||
* единицы людей скачают себе неизвестное приложение
|
||||
* единицы людей прочтут хотя бы часть статей
|
||||
* единицы людей посмотрят хотя бы часть видео
|
||||
|
||||
Во многом эта смерть обусловлена недоступностью: нужно приложить неизвестное количество усилий для достижения неизвестного результата. Врядли таким можно кого-либо нынче заманить. Совсем иначе дело обстоит с приложением в браузере, которое потенциально работает везде: необходимо приложить известное усилие - открыть ссылку - для достижения неизвестного результата. История проведения [твиттер-революций][twitter-revolutions] говорит о том, что открывать ссылки и ставить лайки за смену "кровавого режима" умеют практически все.
|
||||
|
||||
**Причина №2: народовластие**
|
||||
|
||||
Нынче любой чих в Интернете осуществляется посредством сервисов, которые почти всегда принадлежат какой-то компании: [сообщения][msg], [карты][map], [поиск][search], [музыка][music], [исходный код][src] и т.д.. Следствием подобной узурпации власти становится [закрытие][shutdown-01] тех [сервисов][shutdown-02], которые контролирующая компания считает нерентабельным. Причём без какого-либо обсуждения с теми пользователям, без которых этот сервис никогда бы не взлетел.
|
||||
|
||||
В других случаях компания может просто запретить конкурирующему браузеру использовать свой сервис, как это недавно [случилось с веб-версией Скайпа][skype-block]. Вместе с тем, существуют люди, не согласные с такой политикой. Благодаря им появляются [инструменты отключения][skype-free] блокировок.
|
||||
|
||||
На мой взгляд, подобное положение вещей недопустимо. Однако, вина в этом лежит не только лишь на одичавшем бизнесе, но и простых пользователях, каждом из нас. Вы можете возразить, что у пользователей нет выбора, что кто-то другой (власть, рептилоиды, нужное подчеркнуть) сделал этот мир несправедливым. Кто-то может даже прямо винить власть/рептилоидов и веровать в то, что вот без них-то мы заживём. К сожалению, история человечества [говорит обратное][story]: "**государство** — это не какая-то вражья орда, оккупировавшая общество, а то, что **растет из общества и зеркально его отражает**".
|
||||
|
||||
Будучи частью народа, мы начали с себя и решили употребить свою власть во благо: создавать необходимые нам приложения так, чтобы они работали для всех везде и всегда. ПСКОВ является первой попыткой, которая более чем превзошла наши ожидания. Конечно, у ПСКОВА есть свои ограничения в виде ЛФСД и работы по HTTP без шифрования; предстоит ещё многое сделать для увеличения доступности ПСКОВА, но уже сейчас мы готовы поспорить с любым: ПСКОВ через 10 лет будет работать без единого изменения. Как говорится, запомните этот твит.
|
||||
|
||||
На этом мы заканчиваем рассказ о нашем первом долговечном приложении для настольных ПК - генераторе статических сайтов ПСКОВ.
|
||||
|
||||
[screenshot]: ../../images/2019-08-05_on-the-way-to-durable-applications.jpg
|
||||
|
||||
[pskov]: http://opengamestudio.org/pskov/ru
|
||||
[center-tag]: https://www.w3schools.com/tags/tag_center.asp
|
||||
[lfsa]: http://opengamestudio.org/lfsa/ru
|
||||
[ogs]: http://opengamestudio.org/ru
|
||||
[pskov-sample]: http://opengamestudio.org/pskov/sample/03.Blog/ru/blog/index.html
|
||||
[ogs-mahjong-1]: ../game/ogs-mahjong-1.html
|
||||
[osgcpg]: https://github.com/OGStudio/openscenegraph-cross-platform-guide
|
||||
[showcase]: https://youtu.be/_t8TGhSgJG4
|
||||
[twitter-revolutions]: 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
|
||||
[msg]: http://twitter.com
|
||||
[map]: http://2gis.ru
|
||||
[search]: http://google.com
|
||||
[music]: http://music.yandex.ru
|
||||
[src]: http://github.com
|
||||
[shutdown-01]: https://techcrunch.com/2015/03/13/google-kills-off-google-code/
|
||||
[shutdown-02]: https://www.reddit.com/r/sysadmin/comments/62orq9/codeplex_shutting_down_and_fosshub_is_sad/
|
||||
[skype-block]: https://www.reddit.com/r/firefox/comments/aw1umv/skype_web_is_now_blocked_in_firefox/
|
||||
[skype-free]: https://addons.mozilla.org/ru/firefox/addon/firefox-web-skype/
|
||||
[story]: https://ria.ru/20190723/1556775012.html
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,28 +87,28 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/2019-year-of-rethinking.html">EN</a>
|
||||
<a href="2019-year-of-rethinking.html">RU</a>
|
||||
<a href="../../ru/news/2019-year-of-rethinking.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2019-year-of-rethinking.html">Год переосмысления</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-01-01 0:01
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /><figcaption>Бенгальский огонь</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2019-year-of-rethinking.html">Год переосмысления</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-01-01 0:01
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /></p>
|
||||
<p>Этот год во-многом стал для нас годом переосмысления и определенности. Как некоторые из вас помнят, мы начинали этот проект, для создания среды для разработки игр. В течение многих лет идея развивалась от одной формы к другой, иногда изменения были значительными, в других случаях мы отбрасывали весь код и начинали заново.</p>
|
||||
<p>В результате всех этих изменений мы подошли к концу 2018 года без готового инструмента, но с четким пониманием того, что за инструмент мы создаем.</p>
|
||||
<p>Существует множество прекрасных средств для разработки игр. Некоторые из них даже с открытым исходным кодом. Мы потратили много времени, пробуя разные, и некоторые из них действительно заслуживают внимания.</p>
|
||||
@@ -117,9 +116,13 @@
|
||||
<p>Сейчас, чтобы использовать любой мощный инструмент разработки, вам нужен ПК или ноутбук. Мы хотим сделать набор инструментов, который можно использовать где угодно. Мы уже сделали некоторые шаги в этом направлении, и мы продолжим работать в этом направлении.</p>
|
||||
<p>Итак, мы начинаем новый год без четких планов, но с четким знанием нашей цели. Давайте подождем и посмотрим, будет ли этот подход работать лучше.</p>
|
||||
<p>Счастливого Нового Года всем вам! До скорой встречи!</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,30 +87,36 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/back-to-social-networks.html">EN</a>
|
||||
<a href="back-to-social-networks.html">RU</a>
|
||||
<a href="../../ru/news/back-to-social-networks.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-social-networks.html">Мы вернулись в социальные сети</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-08-18 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Если вы подписаны на нашу группу в <a href="https://www.facebook.com/groups/162611230470183/">Facebook</a>, <a href="https://twitter.com/OpenGameStudio">Twitter</a> или <a href="https://new.vk.com/opengamestudo">VK</a>, вы заметили, что мы начали использовать её снова. Это не случайно: мы наконец созрели для вербального общения после 4 лет молчаливой разработки.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-social-networks.html">Мы вернулись в социальные сети</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-08-18 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Если вы подписаны на нашу группу в <a href="https://www.facebook.com/groups/162611230470183/">Facebook</a>, <a href="https://twitter.com/OpenGameStudio">Twitter</a> или <a href="https://new.vk.com/opengamestudo">VK</a>, вы заметили, что мы начали использовать её снова. Это не случайно: мы наконец созрели для вербального общения после 4 лет молчаливой разработки.</p>
|
||||
<p>Подписывайтесь!</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,34 +87,38 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/back-to-the-static.html">EN</a>
|
||||
<a href="back-to-the-static.html">RU</a>
|
||||
<a href="../../ru/news/back-to-the-static.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-the-static.html">Назад в Статику</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-10-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-10-16-back-to-the-static.png" alt="Объединение статики и динамики" /><figcaption>Объединение статики и динамики</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-the-static.html">Назад в Статику</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-10-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-10-16-back-to-the-static.png" alt="Объединение статики и динамики" /></p>
|
||||
<p>Мы используем Wordpress в качестве движка нашего сайта уже более семи лет. И теперь пришло время двигаться вперед. Или назад. Некоторое время мы следили за разработкой нового поколения движков - генераторов статических сайтов. Похоже, что это технология, способная превратить прошлое в будущее.</p>
|
||||
<p>Статический веб-сайт проще, быстрее и безопаснее. И с помощью генераторов им настолько же легко управлять, как и динамическим веб-сайтом. Так что мы начинаем наш сайт заново с помощью <a href="https://blog.getpelican.com/">Pelican</a>.</p>
|
||||
<p>Сейчас здесь нет всего контента с нашего старого сайта, но мы добавим его в ближайшее время.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,33 +87,39 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/bye-desura-hello-humblebundle.html">EN</a>
|
||||
<a href="bye-desura-hello-humblebundle.html">RU</a>
|
||||
<a href="../../ru/news/bye-desura-hello-humblebundle.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="bye-desura-hello-humblebundle.html">Прощай, Desura. Здравствуй, Humble Bundle Widget</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-23 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>После недавнего банкротства родительской компании сервиса Desura мы пришли к выводу, что нам необходима новая площадка для распространения Deluxe-версии игры. Более современная, удобная, надежная. Наш выбор пал на Humble Widget, благодаря которому вы можете приобрести Deluxe-версию игры прямо у нас на сайте.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="bye-desura-hello-humblebundle.html">Прощай, Desura. Здравствуй, Humble Bundle Widget</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-23 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>После недавнего банкротства родительской компании сервиса Desura мы пришли к выводу, что нам необходима новая площадка для распространения Deluxe-версии игры. Более современная, удобная, надежная.
|
||||
Наш выбор пал на Humble Widget, благодаря которому вы можете приобрести Deluxe-версию игры прямо у нас на сайте.</p>
|
||||
<p>Вот он:</p>
|
||||
<iframe src="https://www.humblebundle.com/widget/v2/product/ogsmahjong/ySGF3h34?theme=transparent-light" width="526" height="325" style="border: none;" scrolling="no" frameborder="0">
|
||||
</iframe>
|
||||
<iframe src="https://www.humblebundle.com/widget/v2/product/ogsmahjong/ySGF3h34?theme=transparent-light" width="526" height="325" style="border: none;" scrolling="no" frameborder="0"></iframe>
|
||||
<p>К сожалению, мы не получили от Desura ни копейки (из-за минимального порога вывода средств, которого мы не достигли), однако, если вы приобретали Deluxe-версию OGS Mahjong на Desura и испытываете проблемы с ее скачиванием (в настоящее время проблем не обнаружено), напишите нам, указав свое имя на Desura, и мы что-нибудь придумаем.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,28 +87,28 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/defending-availability.html">EN</a>
|
||||
<a href="defending-availability.html">RU</a>
|
||||
<a href="../../ru/news/defending-availability.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="defending-availability.html">Защита доступности</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-04-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /><figcaption>Алтайская река Катунь</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="defending-availability.html">Защита доступности</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-04-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /></p>
|
||||
<p>В этой статье мы расскажем о начале усилий по защите себя от решений третьих сторон.</p>
|
||||
<p>С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл.</p>
|
||||
<p>Существуют две основные причины, по которым мы меняли решение третьих сторон:</p>
|
||||
@@ -133,9 +132,13 @@
|
||||
</ul>
|
||||
<p>В течение года мы сделаем сайт ещё более удобным. Оставайтесь на связи!</p>
|
||||
<p>На этом мы заканчиваем рассказ о начале усилий по защите себя от решений третьих сторон.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,38 +87,44 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/editor-0.4.0-and-0.5.0-plans.html">EN</a>
|
||||
<a href="editor-0.4.0-and-0.5.0-plans.html">RU</a>
|
||||
<a href="../../ru/news/editor-0.4.0-and-0.5.0-plans.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-and-0.5.0-plans.html">Редактор 0.4.0 и планы для 0.5.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-03-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.4.0 редактора в январе. Как было запланировано, эта версия содержит лишь базовые возможности открыть и сохранить проект. Основная цель была в том, чтобы подружить MJIN, Python и Qt (в частности, по ряду технических причин мы не смогли использовать PyQt или PySide).</p>
|
||||
<p>Вы можете <a title="Editor 0.4.0" href="http://youtu.be/3cqiTIjWwA8" target="_blank">увидеть 0.4.0 в действии здесь</a>.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-and-0.5.0-plans.html">Редактор 0.4.0 и планы для 0.5.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-03-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.4.0 редактора в январе. Как было запланировано, эта версия содержит лишь базовые возможности открыть и сохранить проект. Основная цель была в том, чтобы подружить MJIN, Python и Qt (в частности, по ряду технических причин мы не смогли использовать PyQt или PySide).</p>
|
||||
<p>Вы можете <a title="Editor 0.4.0" href="http://youtu.be/3cqiTIjWwA8" target="_blank">увидеть 0.4.0 в действии здесь</a>. </p>
|
||||
<p>Мы начали разработку Редактора 0.5.0 в феврале, на текущий момент сделаны 45% работ.</p>
|
||||
<p>Запланированные возможности Редактора 0.5.0:</p>
|
||||
<ol type="1">
|
||||
<ol>
|
||||
<li>Редактирование дерева узлов сцены</li>
|
||||
<li>Браузер свойств с редактированием позиции и модели узла</li>
|
||||
<li>Поддержка Qt5 с целью простоты сборки на различных дистрибутивах Linux</li>
|
||||
</ol>
|
||||
<p>Мы планируем завершить его в апреле.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,31 +87,37 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/editor-0.4.0-plans.html">EN</a>
|
||||
<a href="editor-0.4.0-plans.html">RU</a>
|
||||
<a href="../../ru/news/editor-0.4.0-plans.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-plans.html">План задач для Editor 0.4.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-01-13 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Разработка Editor 0.3.0 показала нам, что использование кастомного GUI не было столь хорошей идеей, как показалось на первый взгляд. Несмотря на более простую реализацию, кастомный GUI лишен множества мелких достоинств, которые оказываются практически необходимы, если задаться целью сделать удобный инструмент.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-plans.html">План задач для Editor 0.4.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-01-13 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Разработка Editor 0.3.0 показала нам, что использование кастомного GUI не было столь хорошей идеей, как показалось на первый взгляд. Несмотря на более простую реализацию, кастомный GUI лишен множества мелких достоинств, которые оказываются практически необходимы, если задаться целью сделать удобный инструмент.</p>
|
||||
<p>В конце концов, мы решили сделать то, что хотели сделать с самого начала - использовать для редактора библиотеку Qt.</p>
|
||||
<p>В ближайшее время мы перепишем редактор, имея в виду Qt-интерфейс и немного обновленную концепцию проекта. Мы планируем выпустить редактор с новым интерфейсом и набором базовых функций, таких как загрузка и сохранение проектов, в мае.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,29 +87,31 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/editor-06-roadmap.html">EN</a>
|
||||
<a href="editor-06-roadmap.html">RU</a>
|
||||
<a href="../../ru/news/editor-06-roadmap.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06-roadmap.html">Редактор 0.5.0 и планы для 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-04-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.5.0 редактора. Как было запланировано, эта версия содержит редактирование узлов сцены, браузер свойств, поддеркжу Qt5. Вы можете <a title="Editor 0.5.0" href="https://youtu.be/Vb2Q6IuQDbo" target="_blank">увидеть 0.5.0 в действии здесь</a>.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06-roadmap.html">Редактор 0.5.0 и планы для 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-04-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.5.0 редактора. Как было запланировано, эта версия содержит редактирование узлов сцены, браузер свойств, поддеркжу Qt5. Вы можете <a title="Editor 0.5.0" href="https://youtu.be/Vb2Q6IuQDbo" target="_blank">увидеть 0.5.0 в действии здесь</a>. </p>
|
||||
<p>Также мы только что начали разработку Редактора 0.6.0.</p>
|
||||
<p>Запланированные возможности Редактора 0.6.0:</p>
|
||||
<ol type="1">
|
||||
<ol>
|
||||
<li>Редактирование узлов с камерой</li>
|
||||
<li>Редактирование узлов со светом</li>
|
||||
<li>Редактирование вращения узлов</li>
|
||||
@@ -120,9 +121,13 @@
|
||||
<li>Выбор узла с помощью клика мышью в сцене</li>
|
||||
</ol>
|
||||
<p>Мы планируем завершить его в августе.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,28 +87,30 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/editor-06.html">EN</a>
|
||||
<a href="editor-06.html">RU</a>
|
||||
<a href="../../ru/news/editor-06.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06.html">Редактор 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-06-28 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.6.0 редактора. Вы можете <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">увидеть 0.6.0 в действии здесь</a>.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06.html">Редактор 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-06-28 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.6.0 редактора. Вы можете <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">увидеть 0.6.0 в действии здесь</a>. </p>
|
||||
<p>Список новых возможностей Редактора 0.6.0:</p>
|
||||
<ol type="1">
|
||||
<ol>
|
||||
<li>Позиционирование узлов с камерой и светом</li>
|
||||
<li>Вращение узлов по оси X</li>
|
||||
<li>Поддержка скриптов у узлов</li>
|
||||
@@ -119,9 +120,13 @@
|
||||
<li>Восстановление позиции и состояния окна после перезапуска</li>
|
||||
</ol>
|
||||
<p>На текущий момент у нас нет даты завершения 0.7.0, потому что мы решили взять паузу и потратить некоторое время на составление дорожной карты для Shuan и Mahjong 2. Как только мы её закончим, мы расскажем и о возможностях 0.7.0, и о дате завершения 0.7.0, и о самой дорожной карте.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,28 +87,28 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/example-driven-development.html">EN</a>
|
||||
<a href="example-driven-development.html">RU</a>
|
||||
<a href="../../ru/news/example-driven-development.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="example-driven-development.html">Разработка через создание примеров</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-06-27 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-06-27-example-driven-development.png" alt="Брокер отладки" /><figcaption>Брокер отладки</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="example-driven-development.html">Разработка через создание примеров</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-06-27 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-06-27-example-driven-development.png" alt="Брокер отладки" /></p>
|
||||
<p>Эта статья описывает то, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров.</p>
|
||||
<p><strong>ИЗМЕНЕНИЯ ОТ 2018-08</strong>: третий пример был переименован в четвёртый в связи с причинами, изложенными в <a href="examples-and-dependencies.html">следующей статье</a>.</p>
|
||||
<p><strong>Третий кросс-платформенный пример OpenSceneGraph</strong></p>
|
||||
@@ -121,7 +120,7 @@
|
||||
<li>на мобилках есть ограничения по работе фоновых процессов</li>
|
||||
<li>веб-браузеры являются клиентами HTTP по дизайну</li>
|
||||
</ul>
|
||||
<p>Эти ограничения подтолкнули нас к созданию посредника между отлаживаемым приложением и пользовательским интерфейсом отладки. <a href="https://github.com/OGStudio/debug-broker">Брокер отладки</a>, небольшое приложение Node.js, стало тем самым посредником. Брокер отладки не имеет внешних зависимостей, поэтому его легко использовать практически везде. Благодаря тому, что брокер отладки - это серверное приложение, его достаточно настроить лишь раз и использовать для любого количества приложений.</p>
|
||||
<p>Эти ограничения подтолкнули нас к созданию посредника между отлаживаемым приложением и пользовательским интерфейсом отладки. <a href="https://github.com/OGStudio/debug-broker">Брокер отладки</a>, небольшое приложение Node.js, стало тем самым посредником. Брокер отладки не имеет внешних зависимостей, поэтому его легко использовать практически везде. Благодаря тому, что брокер отладки - это серверное приложение, его достаточно настроить лишь раз и использовать для любого количества приложений.</p>
|
||||
<p>И <a href="https://github.com/OGStudio/debug-ui">пользовательский интерфейс отладки</a>, и <a href="https://github.com/OGStudio/debug-broker">брокер отладки</a> используют JavaScript, т.к. мы хотели сделать эти инструменты максимально доступными без предварительной установки. Данное решение привело нас к реализации инструментов именно для веб-браузеров. Десктопное приложение потребовало бы дополнительных усилий на установку и поддержку, что лишь усложнило бы работу с инструментами.</p>
|
||||
<p><strong>Разработка через создание примеров</strong></p>
|
||||
<p>После создания третьего примера мы осознали важность и достоинства разработки новых функций вне основного проекта:</p>
|
||||
@@ -136,9 +135,13 @@
|
||||
</ul>
|
||||
<p>С этого момента все новые функции вроде обработки ввода, загрузки раскладок Маджонга, кэширования ресурсов и т.п. мы будем сначала реализовывать в виде примеров. Мы называем этот подход разработкой через создание примеров.</p>
|
||||
<p>На этом мы заканчиваем описание того, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,28 +87,28 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/examples-and-dependencies.html">EN</a>
|
||||
<a href="examples-and-dependencies.html">RU</a>
|
||||
<a href="../../ru/news/examples-and-dependencies.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="examples-and-dependencies.html">Примеры и зависимости</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-08-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-08-21-examples-and-dependencies.png" alt="Облако" /><figcaption>Облако</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="examples-and-dependencies.html">Примеры и зависимости</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-08-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-08-21-examples-and-dependencies.png" alt="Облако" /></p>
|
||||
<p>Эта статья описывает два новых кросс-платформенных примера OpenSceneGraph и изменение в работе с зависимостями.</p>
|
||||
<p><strong>Примеры клиента HTTP и выбора узла сцены</strong></p>
|
||||
<p>После окончания работы над <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">примером удалённой отладки</a> и <a href="example-driven-development.html">сообщения об этом</a> мы с удивлением обнаружили, что безопасное соединение HTTPS между отлаживаемым приложением и брокером отладки работало лишь в веб-версии примера. Десктопная и мобильная версии работали лишь с помощью обычного соединения HTTP.</p>
|
||||
@@ -121,19 +120,15 @@
|
||||
<li>Android предоставляет HttpUrlConnection в языке Java</li>
|
||||
<li>iOS предоставляет NSURLSession в языке Objective-C</li>
|
||||
</ul>
|
||||
<p>Необходимость поддержки разных языков на разных платформах привела к созданию так называемого шаблона “хозяин-гость”:</p>
|
||||
<ul>
|
||||
<li>гость (не привязан к платформе)
|
||||
<p>Необходимость поддержки разных языков на разных платформах привела к созданию так называемого шаблона "хозяин-гость":</p>
|
||||
<ul>
|
||||
<li>гость (не привязан к платформе)<ul>
|
||||
<li>имеет сетевое представление</li>
|
||||
<li>используется кросс-платформенным кодом на C++</li>
|
||||
</ul></li>
|
||||
<li>хозяин (определённая платформа)
|
||||
<ul>
|
||||
<li>используется кросс-платформенным кодом на C++</li></ul></li>
|
||||
<li>хозяин (определённая платформа)<ul>
|
||||
<li>опрашивает гостя на наличие ожидающих выполнение запросов</li>
|
||||
<li>обрабатывает их</li>
|
||||
<li>сообщает результат гостю</li>
|
||||
</ul></li>
|
||||
<li>сообщает результат гостю</li></ul></li>
|
||||
</ul>
|
||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/05.NodeSelection">Пример выбора узла сцены</a> оказался простым и не создал особых проблем.</p>
|
||||
<p><strong>Изменение в работе с зависимостями</strong></p>
|
||||
@@ -144,12 +139,16 @@
|
||||
<li>принадлежность сборок iOS под симулятор и устройство к разным проектам Xcode</li>
|
||||
<li>ожидания в 20-30 минут для сборки OpenSceneGraph</li>
|
||||
</ul>
|
||||
<p>Эти недостатки замедляли нас и усложняли разработку новых примеров. После того, как мы десятый раз столкнулись с указанными проблемами в этом месяце, мы решили исправить их раз и навсегда. Теперь мы собираем OpenSceneGraph как часть каждого примера за 2-3 минуты без какой-либо магии. Также мы использовали этот подход включения зависимости как части каждого примера для остальных библиотек вроде Mongoose и libpng-android.</p>
|
||||
<p>Эти недостатки замедляли нас и усложняли разработку новых примеров. После того, как мы десятый раз столкнулись с указанными проблемами в этом месяце, мы решили исправить их раз и навсегда. Теперь мы собираем OpenSceneGraph как часть каждого примера за 2-3 минуты без какой-либо магии. Также мы использовали этот подход включения зависимости как части каждого примера для остальных библиотек вроде Mongoose и libpng-android. </p>
|
||||
<p>Теперь без этих препятствий мы можем разрабатывать быстрее. Это значительно облегчит создание следующей технической демонстрации Mahjong 2!</p>
|
||||
<p>На этом мы заканчиваем описание двух новых кросс-платформенных примеров OpenSceneGraph и изменения в работе с зависимостями.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,28 +87,28 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/ideal-gamedev.html">EN</a>
|
||||
<a href="ideal-gamedev.html">RU</a>
|
||||
<a href="../../ru/news/ideal-gamedev.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ideal-gamedev.html">Идеальные игры и средства для их разработки</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-11-19-ideal-gamedev.png" alt="Человек без и с инструментами" /><figcaption>Человек без и с инструментами</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ideal-gamedev.html">Идеальные игры и средства для их разработки</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-11-19-ideal-gamedev.png" alt="Человек без и с инструментами" /></p>
|
||||
<p>В этой статье мы обсудим, как выглядят идеальные видеоигра и инструмент для разработки видеоигр, по нашему мнению.</p>
|
||||
<p><strong>Вопросы</strong></p>
|
||||
<p>Как вы знаете, <a href="../../ru/page/about.html">целями Opensource Game Studio</a> являются:</p>
|
||||
@@ -144,9 +143,13 @@
|
||||
<p>Написание кода и отладка, пожалуй, являются конечными формами входа и выхода любого программного обеспечения, поэтому мы их не избежим. Однако, мы можем полностью избавиться от шагов (или хотя бы значительно сократить их) <code>настройки окружения разработки</code> и <code>сборки</code>. Именно на это мы и потратим ближайшие месяцы.</p>
|
||||
<p>Наша цель на ближайшие месяцы состоит в том, чтобы создать такой инструмент разработки видеоигр, чтобы любой программист (или достаточно квалифицированный человек) мог создать <a href="https://en.wikipedia.org/wiki/Concentration_(game)">видеоигру на память</a> с нуля за час.</p>
|
||||
<p>На этом мы заканчиваем обсуждение, как выглядят идеальные видеоигра и инструмент для разработки видеоигр, по нашему мнению.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,20 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,194 +80,182 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/index.html">EN</a>
|
||||
<a href="index.html">RU</a>
|
||||
<a href="../../ru/news/index.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>Новости</h1>
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="defending-availability.html">Защита доступности</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-04-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /><figcaption>Алтайская река Катунь</figcaption>
|
||||
</figure>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="on-the-way-to-durable-applications.html">На пути к долговечным приложениям</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-08-05 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2019-08-05_on-the-way-to-durable-applications.jpg" alt="Псковское вече" /></p>
|
||||
<p>В этой статье мы расскажем о нашем первом долговечном приложении для настольных ПК - генераторе статических сайтов ПСКОВ.</p>
|
||||
<p><strong>Долговечность</strong></p>
|
||||
<p>Под долговечным приложением мы понимаем такое приложение, которое работает без единого изменения на операционных системах, выпущенных в период 2010-2030 годов. Иными словами, долговечное приложение обладает 10-летней обратной совместимостью и 10-летней прочностью. Впрочем, <a href="http://opengamestudio.org/pskov/ru">ПСКОВ</a> работает даже на Windows 2000, так что у него 19-летняя обратная совместимость.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="on-the-way-to-durable-applications.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="defending-availability.html">Защита доступности</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-04-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /></p>
|
||||
<p>В этой статье мы расскажем о начале усилий по защите себя от решений третьих сторон.</p>
|
||||
<p>С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="defending-availability.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="teaching-kids-to-program.html">Обучение детей программированию</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-02-04 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2019-02-04_teaching-kids-to-program-team.png" alt="Ученики и учителя" /><figcaption>Ученики и учителя</figcaption>
|
||||
</figure>
|
||||
<p>С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="defending-availability.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="teaching-kids-to-program.html">Обучение детей программированию</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-02-04 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2019-02-04_teaching-kids-to-program-team.png" alt="Ученики и учителя" /></p>
|
||||
<p>В этой статье Михаил делится своим опытом обучения детей программированию.</p>
|
||||
<p>Он расскажет о следующем:</p>
|
||||
<ul>
|
||||
<li>организация процесса обучения …</li>
|
||||
<li>организация процесса обучения</li>
|
||||
<li>программа обучения</li>
|
||||
<li>игра на память. . .</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="teaching-kids-to-program.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2019-year-of-rethinking.html">Год переосмысления</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-01-01 0:01
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /><figcaption>Бенгальский огонь</figcaption>
|
||||
</figure>
|
||||
<p>Этот год во-многом стал для нас годом переосмысления и определенности. Как некоторые из вас помнят, мы начинали этот проект, для создания среды для разработки игр. В течение многих лет идея развивалась от одной формы к другой, иногда изменения были значительными, в других случаях мы отбрасывали весь код и начинали заново. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2019-year-of-rethinking.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ideal-gamedev.html">Идеальные игры и средства для их разработки</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-11-19-ideal-gamedev.png" alt="Человек без и с инструментами" /><figcaption>Человек без и с инструментами</figcaption>
|
||||
</figure>
|
||||
<p>В этой статье мы обсудим, как выглядят идеальные видеоигра и инструмент для разработки видеоигр, по нашему мнению. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="ideal-gamedev.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong-demo2.html">OGS Mahjong 2: Demo 2</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-10-02 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-10-02-mahjong-demo2.png" alt="Начало партии Маджонг" /><figcaption>Начало партии Маджонг</figcaption>
|
||||
</figure>
|
||||
<p>Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были улучшение техники разработки и создание надёжной основы кроссплатформенной разработки. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-demo2.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="examples-and-dependencies.html">Примеры и зависимости</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-08-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-08-21-examples-and-dependencies.png" alt="Облако" /><figcaption>Облако</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="teaching-kids-to-program.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2019-year-of-rethinking.html">Год переосмысления</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-01-01 0:01
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /></p>
|
||||
<p>Этот год во-многом стал для нас годом переосмысления и определенности. Как некоторые из вас помнят, мы начинали этот проект, для создания среды для разработки игр. В течение многих лет идея развивалась от одной формы к другой, иногда изменения были значительными, в других случаях мы отбрасывали весь код и начинали заново.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2019-year-of-rethinking.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ideal-gamedev.html">Идеальные игры и средства для их разработки</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-11-19-ideal-gamedev.png" alt="Человек без и с инструментами" /></p>
|
||||
<p>В этой статье мы обсудим, как выглядят идеальные видеоигра и инструмент для разработки видеоигр, по нашему мнению.</p>
|
||||
<p><strong>Вопросы</strong></p>
|
||||
<p>Как вы знаете, <a href="../../ru/page/about.html">целями Opensource Game Studio</a> являются:. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="ideal-gamedev.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong-demo2.html">OGS Mahjong 2: Demo 2</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-10-02 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-10-02-mahjong-demo2.png" alt="Начало партии Маджонг" /></p>
|
||||
<p>Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были улучшение техники разработки и создание надёжной основы кроссплатформенной разработки.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-demo2.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="examples-and-dependencies.html">Примеры и зависимости</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-08-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-08-21-examples-and-dependencies.png" alt="Облако" /></p>
|
||||
<p>Эта статья описывает два новых кросс-платформенных примера OpenSceneGraph и изменение в работе с зависимостями.</p>
|
||||
<p><strong>Примеры клиента HTTP и выбора узла сцены</strong> …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="examples-and-dependencies.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="example-driven-development.html">Разработка через создание примеров</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-06-27 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-06-27-example-driven-development.png" alt="Брокер отладки" /><figcaption>Брокер отладки</figcaption>
|
||||
</figure>
|
||||
<p>Эта статья описывает то, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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">
|
||||
<figure>
|
||||
<img src="../../images/2018-04-20-openscenegraph-examples.png" alt="iOS Simulator отображает куб" /><figcaption>iOS Simulator отображает куб</figcaption>
|
||||
</figure>
|
||||
<p><strong>Примеры клиента HTTP и выбора узла сцены</strong></p>
|
||||
<p>После окончания работы над <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">примером удалённой отладки</a> и <a href="example-driven-development.html">сообщения об этом</a> мы с удивлением обнаружили, что безопасное соединение HTTPS между отлаживаемым приложением и брокером отладки работало лишь в веб-версии примера. Десктопная и мобильная версии работали лишь с помощью обычного соединения HTTP.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="examples-and-dependencies.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="example-driven-development.html">Разработка через создание примеров</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-06-27 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-06-27-example-driven-development.png" alt="Брокер отладки" /></p>
|
||||
<p>Эта статья описывает то, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров.</p>
|
||||
<p><strong>ИЗМЕНЕНИЯ ОТ 2018-08</strong>: третий пример был переименован в четвёртый в связи с причинами, изложенными в <a href="examples-and-dependencies.html">следующей статье</a>.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-02-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-02-16-mahjong-techdemo1-gameplay.png" alt="Конец партии Маджонг" /><figcaption>Конец партии Маджонг</figcaption>
|
||||
</figure>
|
||||
<p>Мы ради сообщить о выпуске первой технической демонастрации OGS Mahjong 2. Её цель была в проверке игровой механики на всех поддерживаемых платформах. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-techdemo1-gameplay.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 1 из 6</p>
|
||||
<p class="pagination_title">Страница 1 из 6</p>
|
||||
<p>
|
||||
<a href="index2.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>
|
||||
|
||||
107
ru/news/index.template
Normal file
107
ru/news/index.template
Normal file
@@ -0,0 +1,107 @@
|
||||
<!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/PSKOV_INDEX_URL">EN</a>
|
||||
<a href="../../ru/news/PSKOV_INDEX_URL">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
PSKOV_PREVIEWS
|
||||
PSKOV_PAGINATION
|
||||
|
||||
<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>
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,20 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,194 +80,177 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/index2.html">EN</a>
|
||||
<a href="index2.html">RU</a>
|
||||
<a href="../../ru/news/index2.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>Новости</h1>
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong-recreation-start.html">Начало воссоздания Маджонга</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-01-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Сферические фишки в раскладке Маджонг" /><figcaption>Сферические фишки в раскладке Маджонг</figcaption>
|
||||
</figure>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong-techdemo1-gameplay.html">Первая технодемка OGS Mahjong 2: Игровая механика</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-02-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-02-16-mahjong-techdemo1-gameplay.png" alt="Конец партии Маджонг" /></p>
|
||||
<p>Мы ради сообщить о выпуске первой технической демонастрации OGS Mahjong 2. Её цель была в проверке игровой механики на всех поддерживаемых платформах.</p>
|
||||
<p>Проверьте технодемку на своей платформе:. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-techdemo1-gameplay.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong-recreation-start.html">Начало воссоздания Маджонга</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-01-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Сферические фишки в раскладке Маджонг" /></p>
|
||||
<p>Эта статья описывает начало воссоздания игры Маджонг.</p>
|
||||
<p><strong>План</strong></p>
|
||||
<p>Мы начали воссоздание Маджонга с составления краткого плана реализации игровой механики с минимальной графикой: …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-recreation-start.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="the-year-of-lessons.html">Год новых уроков</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-12-31 22:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /><figcaption>Бенгальский огонь</figcaption>
|
||||
</figure>
|
||||
<p>Итак, 2017й год стремительно приближается к финалу, итоги года уже подведены, так что в свободное от расчехления фейерверков и подготовки систем залпового огня шампанским время мы обозначим свою цель в следующем году. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="the-year-of-lessons.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-summary.html">Итоги 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-11-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-11-22-2017-summary.png" alt="Игра на память в фоне" /><figcaption>Игра на память в фоне</figcaption>
|
||||
</figure>
|
||||
<p>Настало время сделать ревизию наших достижений в 2017 году и проверить, насколько они следуют основной цели проекта Opensource Game Studio. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2017-summary.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-the-static.html">Назад в Статику</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-10-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-10-16-back-to-the-static.png" alt="Объединение статики и динамики" /><figcaption>Объединение статики и динамики</figcaption>
|
||||
</figure>
|
||||
<p>Мы используем Wordpress в качестве движка нашего сайта уже более семи лет. И теперь пришло время двигаться вперед. Или назад. Некоторое время мы следили за разработкой нового поколения движков - генераторов статических сайтов. Похоже, что это технология, способная превратить прошлое в будущее. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="back-to-the-static.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mjin-world-birth.html">Рождение вселенной MJIN</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-09-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-09-mjin-world-birth.png" alt="Взрыв, рождающий что-то новое" /><figcaption>Взрыв, рождающий что-то новое</figcaption>
|
||||
</figure>
|
||||
<p>Мы начали воссоздание Маджонга с составления краткого плана реализации игровой механики с минимальной графикой:. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-recreation-start.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="the-year-of-lessons.html">Год новых уроков</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-12-31 22:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /></p>
|
||||
<p>Итак, 2017й год стремительно приближается к финалу, итоги года уже подведены, так что в свободное от расчехления фейерверков и подготовки систем залпового огня шампанским время мы обозначим свою цель в следующем году.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="the-year-of-lessons.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-summary.html">Итоги 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-11-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-11-22-2017-summary.png" alt="Игра на память в фоне" /></p>
|
||||
<p>Настало время сделать ревизию наших достижений в 2017 году и проверить, насколько они следуют основной цели проекта Opensource Game Studio.</p>
|
||||
<p><strong>Краткая история</strong>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2017-summary.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-the-static.html">Назад в Статику</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-10-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-10-16-back-to-the-static.png" alt="Объединение статики и динамики" /></p>
|
||||
<p>Мы используем Wordpress в качестве движка нашего сайта уже более семи лет. И теперь пришло время двигаться вперед. Или назад. Некоторое время мы следили за разработкой нового поколения движков - генераторов статических сайтов. Похоже, что это технология, способная превратить прошлое в будущее.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="back-to-the-static.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mjin-world-birth.html">Рождение вселенной MJIN</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-09-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-09-mjin-world-birth.png" alt="Взрыв, рождающий что-то новое" /></p>
|
||||
<p>Эта статья описывает рождение вселенной MJIN в августе 2017.</p>
|
||||
<p><strong>mjin-player</strong></p>
|
||||
<p>Как вы знаете, <a href="scripting-research.html">в июле мы изучали скриптование</a>. Мы нашли решение, которое удовлетворяет следующим критериям. Скрипты должны: …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mjin-world-birth.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="scripting-research.html">Изучение скриптования</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-08-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-08-scripting-research.png" alt="Тетрадка с текстом" /><figcaption>Тетрадка с текстом</figcaption>
|
||||
</figure>
|
||||
<p>Как вы знаете, <a href="scripting-research.html">в июле мы изучали скриптование</a>. Мы нашли решение, которое удовлетворяет следующим критериям. Скрипты должны:. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mjin-world-birth.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="scripting-research.html">Изучение скриптования</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-08-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-08-scripting-research.png" alt="Тетрадка с текстом" /></p>
|
||||
<p>Эта статья описывает изучение скриптования в июле 2017.</p>
|
||||
<p><strong>Наша основная цель использования скриптового языка - это наличие платформо-независимого кода, выполняемого без изменений на каждой поддерживаемой платформе.</strong> …</p>
|
||||
<p><strong>Наша основная цель использования скриптового языка - это наличие платформо-независимого кода, выполняемого без изменений на каждой поддерживаемой платформе.</strong>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="scripting-research.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="openscenegraph-cross-platform-guide.html">OpenSceneGraph cross-platform guide</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-07-17 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-07-openscenegraph-guide.png" alt="Приложение OpenSceneGraph на десктопе и мобилке" /></p>
|
||||
<p>Эта статья резюмирует создание кросс-платформенного руководства OpenSceneGraph.</p>
|
||||
<p>Июнь ознаменовал собой окончание работы над <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">кросс-платформенным руководством OpenSceneGraph</a>. Мы опубликовали последний самоучитель (из изначально запланированных). Этот самоучитель описывает <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/tree/master/1.10.SampleWeb">сборку и запуск примера приложения OpenSceneGraph в вебе</a> с помощью Emscripten.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="scripting-research.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="openscenegraph-cross-platform-guide.html">OpenSceneGraph cross-platform guide</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-07-17 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-07-openscenegraph-guide.png" alt="Приложение OpenSceneGraph на десктопе и мобилке" /><figcaption>Приложение OpenSceneGraph на десктопе и мобилке</figcaption>
|
||||
</figure>
|
||||
<p>Эта статья резюмирует создание кросс-платформенного руководства OpenSceneGraph. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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">
|
||||
<figure>
|
||||
<img src="../../images/2017-06-08-ios-refactoring.png" alt="Земля и ракета" /><figcaption>Земля и ракета</figcaption>
|
||||
</figure>
|
||||
<p>Эта статья описывает проблемы, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017. …</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>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-05-12 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-05_osg-sample.png" alt="Ракета в дали" /><figcaption>Ракета в дали</figcaption>
|
||||
</figure>
|
||||
<p>Эта статья описывает создание самоучителей по сборке приложения OpenSceneGraph на Linux, macOS, Windows и Android в апреле 2017.</p>
|
||||
<p>Предыдущие самоучители описывали установку OpenSceneGraph на Linux, macOS, Windows и отображение модели с помощью стандартного инструмента <strong>osgviewer</strong>. На этот раз результатом нашей работы стало <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide-application">приложение OpenSceneGraph</a>, которое работает на Linux, macOS, Windows и Android. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="osg-sample.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 2 из 6</p>
|
||||
<p class="pagination_title">Страница 2 из 6</p>
|
||||
<p>
|
||||
<a href="index.html">« Новее</a>
|
||||
<a href="index3.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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,20 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,191 +80,176 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/index3.html">EN</a>
|
||||
<a href="index3.html">RU</a>
|
||||
<a href="../../ru/news/index3.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>Новости</h1>
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="its-all-fine.html">Всё проходит хорошо</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-04-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /><figcaption>Полёт ракеты</figcaption>
|
||||
</figure>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="osg-sample.html">Приложение OpenSceneGraph</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-05-12 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-05_osg-sample.png" alt="Ракета в дали" /></p>
|
||||
<p>Эта статья описывает создание самоучителей по сборке приложения OpenSceneGraph на Linux, macOS, Windows и Android в апреле 2017.</p>
|
||||
<p>Предыдущие самоучители описывали установку OpenSceneGraph на Linux, macOS, Windows и отображение модели с помощью стандартного инструмента <strong>osgviewer</strong>. На этот раз результатом нашей работы стало <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide-application">приложение OpenSceneGraph</a>, которое работает на Linux, macOS, Windows и Android.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="osg-sample.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="its-all-fine.html">Всё проходит хорошо</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-04-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /></p>
|
||||
<p>Эта статья рассказывает о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.</p>
|
||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">Первые четыре самоучителя OpenSceneGraph</a> объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="its-all-fine.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="lets-go.html">Поехали</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-03-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-03_lets-go.png" alt="Слова Гагарина" /><figcaption>Слова Гагарина</figcaption>
|
||||
</figure>
|
||||
<p>В этой статье мы расскажем о результатах нашей работы в январе и феврале 2017: отображении куба на iOS/Веб и нашем инструменте для создания самоучителей. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="lets-go.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="the-year-of-challenges.html">Год испытаний</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-01-25 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-01_the-year-of-challenges.png" alt="Запуск ракеты на Байконуре" /><figcaption>Запуск ракеты на Байконуре</figcaption>
|
||||
</figure>
|
||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">Первые четыре самоучителя OpenSceneGraph</a> объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="its-all-fine.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="lets-go.html">Поехали</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-03-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-03_lets-go.png" alt="Слова Гагарина" /></p>
|
||||
<p>В этой статье мы расскажем о результатах нашей работы в январе и феврале 2017: отображении куба на iOS/Веб и нашем инструменте для создания самоучителей.</p>
|
||||
<p><strong>Отображение куба на iOS/Web</strong>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="lets-go.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="the-year-of-challenges.html">Год испытаний</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-01-25 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-01_the-year-of-challenges.png" alt="Запуск ракеты на Байконуре" /></p>
|
||||
<p>Эта статья содержит наши планы на 2017 год.</p>
|
||||
<p>Наши предыдущие планы предполагали, что сейчас у нас уже будет поддержка платформы Android. Тем не менее, у нас впереди ещё очень много работы, прежде чем мы сможем объявить о поддержке Android. Судите сами: …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="the-year-of-challenges.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-happy-new-year.html">Счастливого 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-12-31_happy-new-year.png" alt="Новогодняя ёлка" /><figcaption>Новогодняя ёлка</figcaption>
|
||||
</figure>
|
||||
<p>Ну вот. Это был тяжелый год для всех в команде. И он почти закончен. Хвала окончанию старого! Хвала наступлению нового! …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2017-happy-new-year.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-november-recap.html">Ноябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-12-15_2016-november-recap.png" alt="Постройка здания" /><figcaption>Постройка здания</figcaption>
|
||||
</figure>
|
||||
<p>Наши предыдущие планы предполагали, что сейчас у нас уже будет поддержка платформы Android. Тем не менее, у нас впереди ещё очень много работы, прежде чем мы сможем объявить о поддержке Android. Судите сами:. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="the-year-of-challenges.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-happy-new-year.html">Счастливого 2017-го</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-12-31_happy-new-year.png" alt="Новогодняя ёлка" /></p>
|
||||
<p>Ну вот. Это был тяжелый год для всех в команде. И он почти закончен. Хвала окончанию старого! Хвала наступлению нового!</p>
|
||||
<p>Может показаться, что наш прогресс застопорился. Три года назад мы объявили о начале нового проекта (двух, если быть точным), но до сих пор мы работаем над движком и редактором, даже не начали делать ни Shuan, ни Mahjong 2.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2017-happy-new-year.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-november-recap.html">Ноябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-12-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-12-15_2016-november-recap.png" alt="Постройка здания" /></p>
|
||||
<p>Эта статья описывает начало разделения библиотеки MJIN на модули.</p>
|
||||
<p>Как только мы собрали OpenSceneGraph для Android, стало очевидно, что часть функционала MJIN не нужна на Android. Например, UIQt - это основа интерфейса Редактора. Раз Редактор - это приложение для ПК, то UIQt не нужен на Android. …</p>
|
||||
<p>Как только мы собрали OpenSceneGraph для Android, стало очевидно, что часть функционала MJIN не нужна на Android. Например, UIQt - это основа интерфейса Редактора. Раз Редактор - это приложение для ПК, то UIQt не нужен на Android.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-november-recap.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-october-recap.html">Октябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-11-19_2016-october-recap.png" alt="Достижение поддержки Android было сродни покорению горы для нас" /></p>
|
||||
<p>Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-october-recap.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-tech-showcases.html">Демонстрации технологий</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-10-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-10-31_tech-showcases.png" alt="Файл с функциональностью на фоне" /></p>
|
||||
<p>Сегодня мы ещё раз взглянем на формат демонстраций в 2015-2016 годах, а также сообщим о новом формате 2017-го.</p>
|
||||
<p><strong>2015 и 2016: демонстрации в прямом эфире.</strong>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-november-recap.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-october-recap.html">Октябрь 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-11-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-11-19_2016-october-recap.png" alt="Достижение поддержки Android было сродни покорению горы для нас" /><figcaption>Достижение поддержки Android было сродни покорению горы для нас</figcaption>
|
||||
</figure>
|
||||
<p>Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-october-recap.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-tech-showcases.html">Демонстрации технологий</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-10-31 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-10-31_tech-showcases.png" alt="Файл с функциональностью на фоне" /><figcaption>Файл с функциональностью на фоне</figcaption>
|
||||
</figure>
|
||||
<p>Сегодня мы ещё раз взглянем на формат демонстраций в 2015-2016 годах, а также сообщим о новом формате 2017-го. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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">
|
||||
<figure>
|
||||
<img src="../../images/2016-10-11_september-recap.png" alt="Маджонг, созданный в прямом эфире" /><figcaption>Маджонг, созданный в прямом эфире</figcaption>
|
||||
</figure>
|
||||
<p>Эта статья описывает стадии по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация. …</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>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-10-03 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-10-03_ogs-editor-0.10.png" alt="Редактор с игрой Маджонг" /><figcaption>Редактор с игрой Маджонг</figcaption>
|
||||
</figure>
|
||||
<p>Внимание: мы не выпустим версию 0.10 для macOS из-за технических проблем с системой сборки. Поддержку macOS вернём к 0.11. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="ogs-editor-0.10.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 3 из 6</p>
|
||||
<p class="pagination_title">Страница 3 из 6</p>
|
||||
<p>
|
||||
<a href="index2.html">« Новее</a>
|
||||
<a href="index4.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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,20 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,173 +80,169 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/index4.html">EN</a>
|
||||
<a href="index4.html">RU</a>
|
||||
<a href="../../ru/news/index4.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>Новости</h1>
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="yesterdays-live-session-short-overview.html">Пара слов о вчерашнем прямом эфире</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen>
|
||||
</iframe>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ogs-editor-0.10.html">OGS Editor 0.10 и материалы прямого эфира</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-10-03 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-10-03_ogs-editor-0.10.png" alt="Редактор с игрой Маджонг" /></p>
|
||||
<p>Внимание: мы не выпустим версию 0.10 для macOS из-за технических проблем с системой сборки. Поддержку macOS вернём к 0.11.</p>
|
||||
<ul>
|
||||
<li><strong>OGS Editor 0.10</strong> <a href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/51_2016-10-01_06-39-48_0.10.0/">доступен на SourceForge</a>. Просто распакуйте архив и запустите скрипт run.. . .</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="ogs-editor-0.10.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="yesterdays-live-session-short-overview.html">Пара слов о вчерашнем прямом эфире</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Создание пасьянса Маджонг прошло успешно, и заняло менее 4 часов.</p>
|
||||
<p>Мы опубликуем материалы прямого эфира чуть позже на этой неделе. …</p>
|
||||
<p>Мы опубликуем материалы прямого эфира чуть позже на этой неделе.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="yesterdays-live-session-short-overview.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="september-live-session-announcement-tomorrow.html">Прямой эфир через 24 часа</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-24 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Fj4yHG-mV1U" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Приготовьтесь к <a href="https://www.livecoding.tv/kornerr">прямому эфиру</a>, он начнётся через 24 часа!. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="september-live-session-announcement-tomorrow.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="september-live-session-announcement.html">Прямой эфир: 25 сентября 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-17 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Y5hOGKcQ8wA" frameborder="0" allowfullscreen></iframe>
|
||||
<p><a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=%D0%9F%D1%80%D1%8F%D0%BC%D0%BE%D0%B9+%D1%8D%D1%84%D0%B8%D1%80+Open+Game+Studio%3A+%D0%A1%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8C+2016&iso=20160925T13&p1=166&ah=2">25 сентября 2016 в 13:00 MSK</a> мы проведём <a href="https://www.livecoding.tv/kornerr">прямой эфир</a>.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="september-live-session-announcement.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-august-recap.html">Август 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-03 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2016-09-03_august-recap.png" alt="Редактор со сферическим узлом сцены" /></p>
|
||||
<p>Эта статья описывает самые важные технические детали разработки за август: модуль UIQt, его переработку, новый подход к разработке на основе функционала и его преимущества.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-august-recap.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-social-networks.html">Мы вернулись в социальные сети</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-08-18 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Если вы подписаны на нашу группу в <a href="https://www.facebook.com/groups/162611230470183/">Facebook</a>, <a href="https://twitter.com/OpenGameStudio">Twitter</a> или <a href="https://new.vk.com/opengamestudo">VK</a>, вы заметили, что мы начали использовать её снова. Это не случайно: мы наконец созрели для вербального общения после 4 лет молчаливой разработки.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="back-to-social-networks.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="once-mahjong-always-mahjong.html">Раз Маджонг – всегда Маджонг</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-08-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы начали проект Opensource Game Studio очень давно. Мы хотели дать сообществу свободного программного обеспечения средства для создания игр. Правда, тогда не было ясно, что они из себя должны представлять. Поэтому решили начать с малого: создать игру.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="once-mahjong-always-mahjong.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ogs-editor-0.9.html">Материалы прямого эфира за май 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-05-29 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/8gHYOkMRoos?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J" frameborder="0" allowfullscreen></iframe>
|
||||
<p>В этот раз мы показали, как создать простую игру на основе Домино. Ниже приведены все материалы, связанные с созданием игры.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="yesterdays-live-session-short-overview.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="september-live-session-announcement-tomorrow.html">Прямой эфир через 24 часа</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-24 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Fj4yHG-mV1U" frameborder="0" allowfullscreen>
|
||||
</iframe>
|
||||
<p>Приготовьтесь к <a href="https://www.livecoding.tv/kornerr">прямому эфиру</a>, он начнётся через 24 часа! …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="september-live-session-announcement-tomorrow.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="september-live-session-announcement.html">Прямой эфир: 25 сентября 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-17 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Y5hOGKcQ8wA" frameborder="0" allowfullscreen>
|
||||
</iframe>
|
||||
<p><a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=%D0%9F%D1%80%D1%8F%D0%BC%D0%BE%D0%B9+%D1%8D%D1%84%D0%B8%D1%80+Open+Game+Studio%3A+%D0%A1%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8C+2016&iso=20160925T13&p1=166&ah=2">25 сентября 2016 в 13:00 MSK</a> мы проведём <a href="https://www.livecoding.tv/kornerr">прямой эфир</a>. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="september-live-session-announcement.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-august-recap.html">Август 2016 кратко</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-03 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2016-09-03_august-recap.png" alt="Редактор со сферическим узлом сцены" /><figcaption>Редактор со сферическим узлом сцены</figcaption>
|
||||
</figure>
|
||||
<p>Эта статья описывает самые важные технические детали разработки за август: модуль UIQt, его переработку, новый подход к разработке на основе функционала и его преимущества. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-august-recap.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-social-networks.html">Мы вернулись в социальные сети</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-08-18 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Если вы подписаны на нашу группу в <a href="https://www.facebook.com/groups/162611230470183/">Facebook</a>, <a href="https://twitter.com/OpenGameStudio">Twitter</a> или <a href="https://new.vk.com/opengamestudo">VK</a>, вы заметили, что мы начали использовать её снова. Это не случайно: мы наконец созрели для вербального общения после 4 лет молчаливой разработки. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="back-to-social-networks.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="once-mahjong-always-mahjong.html">Раз Маджонг – всегда Маджонг</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-08-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы начали проект Opensource Game Studio очень давно. Мы хотели дать сообществу свободного программного обеспечения средства для создания игр. Правда, тогда не было ясно, что они из себя должны представлять. Поэтому решили начать с малого: создать игру. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="once-mahjong-always-mahjong.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ogs-editor-0.9.html">Материалы прямого эфира за май 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-05-29 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/8gHYOkMRoos?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J" frameborder="0" allowfullscreen>
|
||||
</iframe>
|
||||
<p>В этот раз мы показали, как создать простую игру на основе Домино. Ниже приведены все материалы, связанные с созданием игры. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="may-live-session-decision.html">Майский прямой эфир (Редактор 0.9)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-04-24 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, ранее опубликованная дорожная карта предполагала, что в апреле будет прямой эфир, в котором с помощью Редактора 0.9 мы создадим игру пинг-понг. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="may-live-session-decision.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 4 из 6</p>
|
||||
<p class="pagination_title">Страница 4 из 6</p>
|
||||
<p>
|
||||
<a href="index3.html">« Новее</a>
|
||||
<a href="index5.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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,20 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,164 +80,166 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/index5.html">EN</a>
|
||||
<a href="index5.html">RU</a>
|
||||
<a href="../../ru/news/index5.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>Новости</h1>
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rolling-ball.html">Запись прямого эфира "Катящийся мяч" и материалы</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-02-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Т.к. мы провели 2 прямые трансляции для создания игры “Катящийся мяч”, ниже вы можете увидеть 2 записи этого процесса на YouTube:</p>
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen>
|
||||
</iframe>
|
||||
<p>…</p>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="may-live-session-decision.html">Майский прямой эфир (Редактор 0.9)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-04-24 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, ранее опубликованная дорожная карта предполагала, что в апреле будет прямой эфир, в котором с помощью Редактора 0.9 мы создадим игру пинг-понг.</p>
|
||||
<p>Мы должны признать, что наши способности к планированию всё ещё недостаточно высоки, поэтому следующий прямой эфир состоится в конце мая. Точную дату мы объявим позже.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="may-live-session-decision.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rolling-ball.html">Запись прямого эфира "Катящийся мяч" и материалы</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-02-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Т.к. мы провели 2 прямые трансляции для создания игры "Катящийся мяч", ниже вы можете увидеть 2 записи этого процесса на YouTube:</p>
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="rolling-ball.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rolling-ball-live-session-pt2.html">Создание игры в прямом эфире (часть 2): 7 февраля 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-02-02 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>К сожалению, нам не удалось завершить создание простой игры "Катящийся мяч" за 3 часа. Поэтому вторая часть трансляции <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B%2C+%D1%87%D0%B0%D1%81%D1%82%D1%8C+2&iso=20160207T14&p1=166&ah=3">7 февраля 2016 в 14:00 MSK</a>.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="rolling-ball-live-session-pt2.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-announcement.html">Создание игры в прямом эфире: 31 января 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-25 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=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B&iso=20160131T14&p1=166&ah=3">31 января 2016 в 14:00 MSK</a>. Присоединяйтесь!. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="january-live-session-announcement.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-decision.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.8)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы готовы предоставить вам Редактор 0.8 с Проигрывателем. Прямая трансляция будет проведена на <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> СКОРО. Мы покажем вам, как создать простую игру со звуком с нуля. И на этот раз она не будет требовать Редактора для работы.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="january-live-session-decision.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-roadmap.html">Дорожная карта 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-12-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, согласно <a href="2015-roadmap.html">ранее опубликованной дорожной карте</a>, мы добавили звуковую систему. Тем не менее, мы решили пойти дальше и создать первую версию Проигрывателя. Мы хотели завершить его в декабре, но, к сожалению, изменение планов вылилось в изменение сроков.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-roadmap.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="livesession-materials-editor-07.html">Видеозапись живой сессии и материалы</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-11-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Если вы пропустили живую сессию, вы можете посмотреть ее здесь:
|
||||
<a href="https://www.livecoding.tv/video/kornerr/playlists/whac-a-mole-from-scratch/">https://www.livecoding.tv/video/kornerr/playlists/whac-a-mole-from-scratch/</a>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="livesession-materials-editor-07.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="livesession-editor-07.html">Создание простой игры в прямом эфире: 15 ноября 2015</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-11-09 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a title="Локальное время" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Whac-a-mole+game+from+scratch+live&iso=20151115T14&p1=166&ah=3">15 ноября 2015 в 14:00 MSK</a>. Присоединяйтесь!. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="rolling-ball.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rolling-ball-live-session-pt2.html">Создание игры в прямом эфире (часть 2): 7 февраля 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-02-02 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>К сожалению, нам не удалось завершить создание простой игры “Катящийся мяч” за 3 часа. Поэтому вторая часть трансляции <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B%2C+%D1%87%D0%B0%D1%81%D1%82%D1%8C+2&iso=20160207T14&p1=166&ah=3">7 февраля 2016 в 14:00 MSK</a>. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="rolling-ball-live-session-pt2.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-announcement.html">Создание игры в прямом эфире: 31 января 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-25 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=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B&iso=20160131T14&p1=166&ah=3">31 января 2016 в 14:00 MSK</a>. Присоединяйтесь! …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="january-live-session-announcement.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-decision.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.8)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы готовы предоставить вам Редактор 0.8 с Проигрывателем. Прямая трансляция будет проведена на <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> СКОРО. Мы покажем вам, как создать простую игру со звуком с нуля. И на этот раз она не будет требовать Редактора для работы. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="january-live-session-decision.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-roadmap.html">Дорожная карта 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-12-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, согласно <a href="2015-roadmap.html">ранее опубликованной дорожной карте</a>, мы добавили звуковую систему. Тем не менее, мы решили пойти дальше и создать первую версию Проигрывателя. Мы хотели завершить его в декабре, но, к сожалению, изменение планов вылилось в изменение сроков. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2016-roadmap.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="livesession-materials-editor-07.html">Видеозапись живой сессии и материалы</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-11-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Если вы пропустили живую сессию, вы можете посмотреть ее здесь: <a href="https://www.livecoding.tv/video/kornerr/playlists/whac-a-mole-from-scratch/">https://www.livecoding.tv/video/kornerr/playlists/whac-a-mole-from-scratch/</a> …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="livesession-materials-editor-07.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="livesession-editor-07.html">Создание простой игры в прямом эфире: 15 ноября 2015</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-11-09 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a title="Локальное время" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Whac-a-mole+game+from+scratch+live&iso=20151115T14&p1=166&ah=3">15 ноября 2015 в 14:00 MSK</a>. Присоединяйтесь! …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
|
||||
</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>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-23 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>После недавнего банкротства родительской компании сервиса Desura мы пришли к выводу, что нам необходима новая площадка для распространения Deluxe-версии игры. Более современная, удобная, надежная. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="bye-desura-hello-humblebundle.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 5 из 6</p>
|
||||
<p class="pagination_title">Страница 5 из 6</p>
|
||||
<p>
|
||||
<a href="index4.html">« Новее</a>
|
||||
<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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,20 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,150 +80,164 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/index6.html">EN</a>
|
||||
<a href="index6.html">RU</a>
|
||||
<a href="../../ru/news/index6.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>Новости</h1>
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="test-chamber-for-everyone.html">Тестовый цех каждому (Редактор 0.7.0)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, основная цель Редактора 0.7.0 - это возможность создать <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> с помощью него. Редактору не хватает системы Действий и исправления некоторых ошибок для этого. Помимо выпуска Редактора мы опубликуем подробную статью, описывающую создание тестового цеха, чтобы каждый мог создать себе свой тестовый цех! …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="test-chamber-for-everyone.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2015-roadmap.html">Дорожная карта 2015-2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="bye-desura-hello-humblebundle.html">Прощай, Desura. Здравствуй, Humble Bundle Widget</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-23 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>После недавнего банкротства родительской компании сервиса Desura мы пришли к выводу, что нам необходима новая площадка для распространения Deluxe-версии игры. Более современная, удобная, надежная.
|
||||
Наш выбор пал на Humble Widget, благодаря которому вы можете приобрести Deluxe-версию игры прямо у нас на сайте.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="bye-desura-hello-humblebundle.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="test-chamber-for-everyone.html">Тестовый цех каждому (Редактор 0.7.0)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, основная цель Редактора 0.7.0 - это возможность создать <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> с помощью него. Редактору не хватает системы Действий и исправления некоторых ошибок для этого. Помимо выпуска Редактора мы опубликуем подробную статью, описывающую создание тестового цеха, чтобы каждый мог создать себе свой тестовый цех!. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="test-chamber-for-everyone.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2015-roadmap.html">Дорожная карта 2015-2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-19 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как и было обещано, мы составили список вех и их примерные даты на ближайший год:</p>
|
||||
<ol type="1">
|
||||
<li>Редактор 0.7.0 (Октябрь 2015) - Система действий: мы воссоздаём <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> …</li>
|
||||
<ol>
|
||||
<li>Редактор 0.7.0 (Октябрь 2015) - Система действий: мы воссоздаём <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a>. . .</li>
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2015-roadmap.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06.html">Редактор 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-06-28 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.6.0 редактора. Вы можете <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">увидеть 0.6.0 в действии здесь</a>.</p>
|
||||
<p>Список новых возможностей Редактора 0.6.0: …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-06.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06-roadmap.html">Редактор 0.5.0 и планы для 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-04-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.5.0 редактора. Как было запланировано, эта версия содержит редактирование узлов сцены, браузер свойств, поддеркжу Qt5. Вы можете <a title="Editor 0.5.0" href="https://youtu.be/Vb2Q6IuQDbo" target="_blank">увидеть 0.5.0 в действии здесь</a>. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-06-roadmap.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-and-0.5.0-plans.html">Редактор 0.4.0 и планы для 0.5.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-03-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.4.0 редактора в январе. Как было запланировано, эта версия содержит лишь базовые возможности открыть и сохранить проект. Основная цель была в том, чтобы подружить MJIN, Python и Qt (в частности, по ряду технических причин мы не смогли использовать PyQt или PySide). …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-0.4.0-and-0.5.0-plans.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-plans.html">План задач для Editor 0.4.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-01-13 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Разработка Editor 0.3.0 показала нам, что использование кастомного GUI не было столь хорошей идеей, как показалось на первый взгляд. Несмотря на более простую реализацию, кастомный GUI лишен множества мелких достоинств, которые оказываются практически необходимы, если задаться целью сделать удобный инструмент. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-0.4.0-plans.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">
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2015-roadmap.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06.html">Редактор 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-06-28 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.6.0 редактора. Вы можете <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">увидеть 0.6.0 в действии здесь</a>. </p>
|
||||
<p>Список новых возможностей Редактора 0.6.0:. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-06.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06-roadmap.html">Редактор 0.5.0 и планы для 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-04-15 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.5.0 редактора. Как было запланировано, эта версия содержит редактирование узлов сцены, браузер свойств, поддеркжу Qt5. Вы можете <a title="Editor 0.5.0" href="https://youtu.be/Vb2Q6IuQDbo" target="_blank">увидеть 0.5.0 в действии здесь</a>. . . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-06-roadmap.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-and-0.5.0-plans.html">Редактор 0.4.0 и планы для 0.5.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-03-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы завершили работу над версией 0.4.0 редактора в январе. Как было запланировано, эта версия содержит лишь базовые возможности открыть и сохранить проект. Основная цель была в том, чтобы подружить MJIN, Python и Qt (в частности, по ряду технических причин мы не смогли использовать PyQt или PySide).. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-0.4.0-and-0.5.0-plans.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-0.4.0-plans.html">План задач для Editor 0.4.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-01-13 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Разработка Editor 0.3.0 показала нам, что использование кастомного GUI не было столь хорошей идеей, как показалось на первый взгляд. Несмотря на более простую реализацию, кастомный GUI лишен множества мелких достоинств, которые оказываются практически необходимы, если задаться целью сделать удобный инструмент.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-0.4.0-plans.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="user-servey-finish-promise.html">Окончание опроса</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2014-12-31 11:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Около года назад мы начинали опрос, с помощью которого планировали узнать ваше отношение к Open Source вообще и нашему проекту в частности. Сегодня мы его завершаем. Ответы набирались довольно медленно, но в целом мы собрали довольно приличное ответов, за что вам очень благодарны.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<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>
|
||||
<p>Подходит к концу год, в течение которого мы разместили на сайте рекордно малое количество новостей. Мы не прекратили разработку, однако пока она находится в фазе "показывать нечего", а свободного времени, которое можно уделять проекту, у каждого из его участников сейчас найдется редко больше чем 30-40 часов в месяц.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2014-another-year-passed.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2014-another-year-passed.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="user-servey-finish-promise.html">Окончание опроса</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2014-12-31 11:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Около года назад мы начинали опрос, с помощью которого планировали узнать ваше отношение к Open Source вообще и нашему проекту в частности. Сегодня мы его завершаем. Ответы набирались довольно медленно, но в целом мы собрали довольно приличное ответов, за что вам очень благодарны. …</p>
|
||||
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="user-servey-finish-promise.html">Читать дальше</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 6 из 6</p>
|
||||
<p class="pagination_title">Страница 6 из 6</p>
|
||||
<p>
|
||||
<a href="index5.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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,70 +87,66 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/ios-tutorial.html">EN</a>
|
||||
<a href="ios-tutorial.html">RU</a>
|
||||
<a href="../../ru/news/ios-tutorial.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<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">
|
||||
<figure>
|
||||
<img src="../../images/2017-06-08-ios-refactoring.png" alt="Земля и ракета" /><figcaption>Земля и ракета</figcaption>
|
||||
</figure>
|
||||
<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>
|
||||
<p><strong>Нативная библиотека</strong></p>
|
||||
<p>Прежде всего нам необходимо было ответить на следующий вопрос: “должен ли пример приложения быть частью проекта Xcode или отдельной библиотекой?”</p>
|
||||
<p>Прежде всего нам необходимо было ответить на следующий вопрос: "должен ли пример приложения быть частью проекта Xcode или отдельной библиотекой?"</p>
|
||||
<p>Для принятия решения мы использовали следующие факты:</p>
|
||||
<ol type="1">
|
||||
<li>Проект Xcode может напрямую использовать C++ (благодаря Objective-C++) без прослоек вроде JNI
|
||||
<ul>
|
||||
<ol>
|
||||
<li>Проект Xcode может напрямую использовать C++ (благодаря Objective-C++) без прослоек вроде JNI<ul>
|
||||
<li>Отдельная библиотека не нужна (+ приложение)</li>
|
||||
<li>Создание отдельной библиотеки - это дополнительная работа (- библиотека)</li>
|
||||
</ul></li>
|
||||
<li>OpenSceneGraph собирается в библиотеки
|
||||
<ul>
|
||||
<li>Создание отдельной библиотеки - это дополнительная работа (- библиотека)</li></ul></li>
|
||||
<li>OpenSceneGraph собирается в библиотеки<ul>
|
||||
<li>Легче использовать стандартный процесс сборки (+ библиотека)</li>
|
||||
<li>Создавать свой процесс сборки лишь для одной платформы сложно (- приложение)</li>
|
||||
</ul></li>
|
||||
<li>OpenSceneGraph использует систему сборки CMake, которая не поддерживается Xcode
|
||||
<ul>
|
||||
<li>Создавать свой процесс сборки лишь для одной платформы сложно (- приложение)</li></ul></li>
|
||||
<li>OpenSceneGraph использует систему сборки CMake, которая не поддерживается Xcode<ul>
|
||||
<li>Проект Xcode не может включать файлы CMake (- приложение)</li>
|
||||
<li>Свой файл CMake может с лёгкостью включить файл OpenSceneGraph CMake для сборки единой библиотеки (+ библиотека)</li>
|
||||
</ul></li>
|
||||
<li>CMake может генерировать проект Xcode
|
||||
<ul>
|
||||
<li>Свой файл CMake может с лёгкостью включить файл OpenSceneGraph CMake для сборки единой библиотеки (+ библиотека)</li></ul></li>
|
||||
<li>CMake может генерировать проект Xcode<ul>
|
||||
<li>Можно создать файл CMake, который будет собирать как OpenSceneGraph, так и пример приложения (+ приложение)</li>
|
||||
<li>Xcode - это де-факто инструмент для создания проектов Xcode; легче использовать стандартный процесс сборки (+ библиотека)</li>
|
||||
</ul></li>
|
||||
<li>Xcode - это де-факто инструмент для создания проектов Xcode; легче использовать стандартный процесс сборки (+ библиотека)</li></ul></li>
|
||||
</ol>
|
||||
<p>Оценив плюсы и минусы обоих подходов, мы решили сделать библиотеку, которую можно включать в проект Xcode. Минусом данного подхода является то, что сборки приложения для симулятора и реального устройства используют разные сборки библиотеки.</p>
|
||||
<p><strong>Рефакторинг</strong></p>
|
||||
<p>Также нам пришлось ответить на ещё один вопрос: “использовать ли единую кодовую базу для всех платформ или несколько под каждую платформу?”</p>
|
||||
<p>Также нам пришлось ответить на ещё один вопрос: "использовать ли единую кодовую базу для всех платформ или несколько под каждую платформу?"</p>
|
||||
<p>При создании самоучителя для Android мы использовали единую кодовую базу, т.к. она отлично работала для десктопа и Android. Когда мы начали работу над самоучителем iOS, стало ясно, что часть функционала либо работает, либо не работает на некоторых платформах. Например, один функционал может работать на десктопе и iOS, но не работать на Android. Другой функционал может работать на iOS и Android, но не работать на десктопе. Т.к. мы не хотели загрязнять код кучей #ifdef, мы решили помещать функционал, специфичный для конкретной платформы или нескольких платформ, в разные файлы. Это привело к резкому увеличению количества файлов. Такой подход хорошо подходил для повторного использования, но совершенно не годился для понимания общей картины.</p>
|
||||
<p>В этот момент мы осознали необходимость ответа на второй вопрос. Мы напомнили себе, что главная цель примера приложения состоит в том, чтобы обучить базовым вещам OpenSceneGraph, а не создать повторно используемую библиотеку с API, который будет жить без изменений десятилетиями.</p>
|
||||
<p>Для ответа на этот вопрос нам помог наш внутренний инструмент feature tool. С его помощью мы разделили код на несколько частей, который в итоге собирается ровно в два файла для каждой платформы:</p>
|
||||
<ol type="1">
|
||||
<ol>
|
||||
<li>functions.h - содержит повторно используемые бесклассовые функции</li>
|
||||
<li>main.h - содержит остальной код приложения</li>
|
||||
</ol>
|
||||
<p>Их содержимое несколько отличается для каждой из платформ, но наличие всего двух файлов позволяет увидеть общую картину.</p>
|
||||
<p>На этом мы заканчиваем описание проблем, с которыми мы столкнулись во время создания самоучителя для iOS в мае 2017.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
121
ru/news/item.template
Normal file
121
ru/news/item.template
Normal file
@@ -0,0 +1,121 @@
|
||||
<!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/PSKOV_ITEM_URL">EN</a>
|
||||
<a href="../../ru/news/PSKOV_ITEM_URL">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="PSKOV_ITEM_URL">PSKOV_ITEM_TITLE</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
PSKOV_ITEM_DATE
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
PSKOV_ITEM_CONTENTS
|
||||
</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>
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,32 +87,32 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/its-all-fine.html">EN</a>
|
||||
<a href="its-all-fine.html">RU</a>
|
||||
<a href="../../ru/news/its-all-fine.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="its-all-fine.html">Всё проходит хорошо</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-04-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<figure>
|
||||
<img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /><figcaption>Полёт ракеты</figcaption>
|
||||
</figure>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="its-all-fine.html">Всё проходит хорошо</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-04-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /></p>
|
||||
<p>Эта статья рассказывает о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.</p>
|
||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">Первые четыре самоучителя OpenSceneGraph</a> объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph.</p>
|
||||
<p>Процесс создания одного самоучителя оказался довольно утомительным, т.к. он состоит из следующих задач:</p>
|
||||
<ol type="1">
|
||||
<ol>
|
||||
<li>Записать видео с одним или более шагами</li>
|
||||
<li>Назвать эти шаги как можно яснее</li>
|
||||
<li>Выбрать те части видео, которые непосредственно показывают шаг</li>
|
||||
@@ -128,9 +127,13 @@
|
||||
<p>Некоторые из этих задач приходилось повторять несколько раз до тех пор, пока комбинация видео, текста и статьи не получилась целостной.</p>
|
||||
<p>Всего мы потратили 30 часов на создание самоучителей. В ходе их создания мы почерпнули много нового, что поможет нам улучшить обучающие материалы наших технологий в будущем. Сейчас мы ещё не в курсе, как именно эти материалы будут выглядеть, но они точно будут лучше.</p>
|
||||
<p>На этом мы заканчиваем рассказ о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,29 +87,35 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/january-live-session-announcement.html">EN</a>
|
||||
<a href="january-live-session-announcement.html">RU</a>
|
||||
<a href="../../ru/news/january-live-session-announcement.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-announcement.html">Создание игры в прямом эфире: 31 января 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-25 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=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B&iso=20160131T14&p1=166&ah=3">31 января 2016 в 14:00 MSK</a>. Присоединяйтесь!</p>
|
||||
|
||||
</div>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-announcement.html">Создание игры в прямом эфире: 31 января 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-25 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=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B&iso=20160131T14&p1=166&ah=3">31 января 2016 в 14:00 MSK</a>. Присоединяйтесь!</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>
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
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;
|
||||
@@ -36,6 +41,11 @@
|
||||
margin-bottom: 2em;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
body
|
||||
{
|
||||
background: #FAFAFA;
|
||||
@@ -46,38 +56,27 @@
|
||||
font-size: 1em;
|
||||
color: #7f0a0c;
|
||||
}
|
||||
/*
|
||||
figure
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
*/
|
||||
img
|
||||
{
|
||||
width: 720px;
|
||||
}
|
||||
html
|
||||
{
|
||||
font-family: sans-serif;
|
||||
}
|
||||
a
|
||||
{
|
||||
color: #3A91CB;
|
||||
text-decoration: none;
|
||||
}
|
||||
#lang
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
figcaption
|
||||
{
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td
|
||||
{
|
||||
border: 1px solid #aaa;
|
||||
@@ -88,30 +87,36 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div id="header">
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/page/games.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/january-live-session-decision.html">EN</a>
|
||||
<a href="january-live-session-decision.html">RU</a>
|
||||
<a href="../../ru/news/january-live-session-decision.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>В новостях</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-decision.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.8)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы готовы предоставить вам Редактор 0.8 с Проигрывателем. Прямая трансляция будет проведена на <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> СКОРО. Мы покажем вам, как создать простую игру со звуком с нуля. И на этот раз она не будет требовать Редактора для работы.</p>
|
||||
<center>
|
||||
<h1>В новостях...</h1>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-decision.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.8)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-21 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Мы готовы предоставить вам Редактор 0.8 с Проигрывателем. Прямая трансляция будет проведена на <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> СКОРО. Мы покажем вам, как создать простую игру со звуком с нуля. И на этот раз она не будет требовать Редактора для работы.</p>
|
||||
<p>Точную дату и время мы объявим в ближайшие дни. Оставайтесь на связи!</p>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user