This article explains the most important technical details about development in August: UIQt module, its refactoring, a new feature based development approach, and its benefits.
Here is a list of UIQt module components with their description and current code size:
diff --git a/2016-november-recap-ru.html b/2016-november-recap-ru.html
index d6a06b5..b70c4b8 100644
--- a/2016-november-recap-ru.html
+++ b/2016-november-recap-ru.html
@@ -50,10 +50,10 @@
title="Permalink to Ноябрь 2016 кратко">Ноябрь 2016 кратко
-
+
Эта статья описывает начало разделения библиотеки MJIN на модули.
Как только мы собрали OpenSceneGraph для Android, стало очевидно, что часть функционала MJIN не нужна на Android. Например, UIQt - это основа интерфейса Редактора. Раз Редактор - это приложение для ПК, то UIQt не нужен на Android.
Мы решили рассмотреть два подхода к разделению MJIN на модули: во время сборки (build-time) и исполнения (run-time).
diff --git a/2016-november-recap.html b/2016-november-recap.html
index 7a56996..df0dfa0 100644
--- a/2016-november-recap.html
+++ b/2016-november-recap.html
@@ -50,10 +50,10 @@
title="Permalink to November 2016 recap">November 2016 recap
-
+
This article describes the start of MJIN library separation into modules.
Once we built OpenSceneGraph for Android, it became obvious that some MJIN functionality is not suitable for Android. For example, UIQt provides a basis for OGS Editor UI. Since OGS Editor is a desktop application, we don't need UIQt for Android.
We decided to have a look at two approaches to separate MJIN into modules: build-time separation and run-time one.
diff --git a/2016-october-recap-ru.html b/2016-october-recap-ru.html
index fef4e8e..7c4ed14 100644
--- a/2016-october-recap-ru.html
+++ b/2016-october-recap-ru.html
@@ -50,10 +50,10 @@
title="Permalink to Октябрь 2016 кратко">Октябрь 2016 кратко
-
+
Эта статья описывает, как мы потратили месяц на сборку OpenSceneGraph (OSG) под Android: первая попытка собрать OSG, поиск альтернатив OSG и успех в сборке OSG.
Первая попытка собрать OSG.
Не имея опыта разработки под Android, мы взяли последнюю версию Android Studio и начали проходить самоучители для начинающих.
diff --git a/2016-october-recap.html b/2016-october-recap.html
index f10b9d1..7018851 100644
--- a/2016-october-recap.html
+++ b/2016-october-recap.html
@@ -50,10 +50,10 @@
title="Permalink to October 2016 recap">October 2016 recap
-
+
This article describes how we spent a month building OpenSceneGraph (OSG) for Android: the first attempt to build OSG, the search for OSG alternatives, and the success in building OSG.
First attempt to build OSG.
Having no prior knowledge of Android development, we grabbed the latest Android Studio and started doing beginner tutorials.
diff --git a/2016-september-recap-ru.html b/2016-september-recap-ru.html
index d5a1016..20f6a86 100644
--- a/2016-september-recap-ru.html
+++ b/2016-september-recap-ru.html
@@ -50,10 +50,10 @@
title="Permalink to Сентябрь 2016 кратко">Сентябрь 2016 кратко
-
+
Эта статья описывает стадии по подготовке и проведению прямого эфира сентября 2016: черновик, репетиция, прямой эфир и публикация.
Несмотря на то, что сам прямой эфир длится лишь несколько часов, мы готовимся к нему целый месяц. Рассмотрим каждую стадию прямого эфира подробнее.
diff --git a/2016-september-recap.html b/2016-september-recap.html
index 23bde43..9231938 100644
--- a/2016-september-recap.html
+++ b/2016-september-recap.html
@@ -50,10 +50,10 @@
title="Permalink to September 2016 recap">September 2016 recap
-
+
This article explains September 2016 live session stages: draft, rehearsal, live session itself, and publishing.
Even though live session takes only a few hours, we devote a whole month to prepare for it. Let's have a look at live session stages in detail.
diff --git a/2016-tech-showcases-ru.html b/2016-tech-showcases-ru.html
index f23140a..bbcda31 100644
--- a/2016-tech-showcases-ru.html
+++ b/2016-tech-showcases-ru.html
@@ -50,10 +50,10 @@
title="Permalink to Демонстрации технологий">Демонстрации технологий
-
+
Сегодня мы ещё раз взглянем на формат демонстраций в 2015-2016 годах, а также сообщим о новом формате 2017-го.
2015 и 2016: демонстрации в прямом эфире.
Как вы знаете, в ходе демонстраций мы в прямом эфире показываем состояние наших технологий и собираем небольшую работающую игру с нуля.
diff --git a/2016-tech-showcases.html b/2016-tech-showcases.html
index b6c635e..48d13f2 100644
--- a/2016-tech-showcases.html
+++ b/2016-tech-showcases.html
@@ -50,10 +50,10 @@
title="Permalink to Technology showcases">Technology showcases
-
+
In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.
2015 and 2016: live sessions.
As you know, we use live sessions to show the state of our technology and create a small functional game from scratch.
diff --git a/2017-happy-new-year-ru.html b/2017-happy-new-year-ru.html
index 937905c..ee664c9 100644
--- a/2017-happy-new-year-ru.html
+++ b/2017-happy-new-year-ru.html
@@ -50,10 +50,10 @@
title="Permalink to Счастливого 2017-го">Счастливого 2017-го
-
+
Ну вот. Это был тяжелый год для всех в команде. И он почти закончен. Хвала окончанию старого! Хвала наступлению нового!
Может показаться, что наш прогресс застопорился. Три года назад мы объявили о начале нового проекта (двух, если быть точным), но до сих пор мы работаем над движком и редактором, даже не начали делать ни Shuan, ни Mahjong 2.
Если вы следили за новостями в течение года, вы знаете что мы провели несколько "живых сессий", демонстрируя в реальном времени как можно использовать наш инструментарий для создания простой игры. Каждая сессия была шагом в долгом пути к нашей цели. В процессе подготовки к ним, мы добавляли важные элементы, которые будут необходимы для создания любой игры.
diff --git a/2017-happy-new-year.html b/2017-happy-new-year.html
index fc6d293..2f0e80f 100644
--- a/2017-happy-new-year.html
+++ b/2017-happy-new-year.html
@@ -50,10 +50,10 @@
title="Permalink to Happy 2017">Happy 2017
-
+
Okay. It's been a hard year for everyone in the team. And it's almost over. Praise it ends! Praise the new one!
It may seem, that our progress stalled. Three years ago we announced the beginning of a new project (two to be precise), and now we still working on the engine and editor, haven't even started creating the actual game.
If you were monitoring our news during the year, you know that we held several live sessions, showing in the real time how to use our tools to create some simple games. Each session was a step in a long road to our goal. While preparing for these live sessions, we added necessary building blocks, that will be needed to create almost any game.
diff --git a/2017-summary-ru.html b/2017-summary-ru.html
index c55dfe8..76f6aaa 100644
--- a/2017-summary-ru.html
+++ b/2017-summary-ru.html
@@ -50,10 +50,10 @@
title="Permalink to Итоги 2017-го">Итоги 2017-го
-
+
Настало время сделать ревизию наших достижений в 2017 году и проверить, насколько они следуют основной цели проекта Opensource Game Studio.
Краткая история
Проекту Opensource Game Studio уже 12 лет.
diff --git a/2017-summary.html b/2017-summary.html
index 6ebc665..c32dbd9 100644
--- a/2017-summary.html
+++ b/2017-summary.html
@@ -50,10 +50,10 @@
title="Permalink to 2017 summary">2017 summary
-
+
It's time to step back to see our accomplishments in 2017 and how they connect to the overall goal of Opensource Game Studio project.
Brief history
Opensource Game Studio project is 12 years old now.
diff --git a/2018-01-26-mahjong-recreation-start.png b/2018-01-26-mahjong-recreation-start.png
new file mode 100644
index 0000000..6dc58c0
Binary files /dev/null and b/2018-01-26-mahjong-recreation-start.png differ
diff --git a/README.md b/README.md
index 7bd1bd0..9cf26e9 100644
--- a/README.md
+++ b/README.md
@@ -42,5 +42,5 @@ The preview should now be available at
`git push`
The publich site should now be available at
-[http://ogstudio.github.io](http://ogstudio.github.io).
+[http://kaisd.github.io/ogs-site](http://kaisd.github.io/ogs-site).
diff --git a/archives.html b/archives.html
index ed57f34..bbf72b3 100644
--- a/archives.html
+++ b/archives.html
@@ -50,95 +50,99 @@
- Sun 31 December 2017 |
+ Пт 26 Январь 2018 |
+ Mahjong recreation start |
+
+
+ Вс 31 Декабрь 2017 |
The year of lessons |
- Wed 22 November 2017 |
+ Ср 22 Ноябрь 2017 |
2017 summary |
- Mon 16 October 2017 |
+ Пн 16 Октябрь 2017 |
Back to the Static |
- Sun 10 September 2017 |
+ Вс 10 Сентябрь 2017 |
The birth of MJIN world |
- Wed 16 August 2017 |
+ Ср 16 Август 2017 |
Scripting research |
- Mon 17 July 2017 |
+ Пн 17 Июль 2017 |
OpenSceneGraph cross-platform guide |
- Thu 08 June 2017 |
+ Чт 08 Июнь 2017 |
iOS tutorial |
- Fri 12 May 2017 |
+ Пт 12 Май 2017 |
OpenSceneGraph sample |
- Fri 07 April 2017 |
+ Пт 07 Апрель 2017 |
It's all fine |
- Thu 16 March 2017 |
+ Чт 16 Март 2017 |
Let's go |
- Wed 25 January 2017 |
+ Ср 25 Январь 2017 |
The year of challenges |
- Sat 31 December 2016 |
+ Сб 31 Декабрь 2016 |
Happy 2017 |
- Thu 15 December 2016 |
+ Чт 15 Декабрь 2016 |
November 2016 recap |
- Sat 19 November 2016 |
+ Сб 19 Ноябрь 2016 |
October 2016 recap |
- Mon 31 October 2016 |
+ Пн 31 Октябрь 2016 |
Technology showcases |
- Tue 11 October 2016 |
+ Вт 11 Октябрь 2016 |
September 2016 recap |
- Mon 03 October 2016 |
+ Пн 03 Октябрь 2016 |
OGS Editor 0.10 and live session materials |
- Mon 26 September 2016 |
+ Пн 26 Сентябрь 2016 |
A few words about live session yesterday |
- Sat 24 September 2016 |
+ Сб 24 Сентябрь 2016 |
Live session is in 24 hours |
- Sat 17 September 2016 |
+ Сб 17 Сентябрь 2016 |
Live session: 25 September 2016 |
- Sat 03 September 2016 |
+ Сб 03 Сентябрь 2016 |
August 2016 recap |
- Thu 18 August 2016 |
+ Чт 18 Август 2016 |
We’re back to social networks |
- Wed 10 August 2016 |
+ Ср 10 Август 2016 |
Once Mahjong – always Mahjong |
diff --git a/author/opensource-game-studio.html b/author/opensource-game-studio.html
index 0764865..1ab4bea 100644
--- a/author/opensource-game-studio.html
+++ b/author/opensource-game-studio.html
@@ -47,55 +47,97 @@
+
+ Mahjong recreation start
+
+This article describes the start of Mahjong game recreation.
+Plan
+We started Mahjong recreation endeavour by composing a brief plan to get gameplay with minimal graphics:
+
+- Load single layout
+- Place tiles in layout positions
+- Distinguish tiles
+- Implement selection
+- Implement matching
+
+Just like any other plan, this one looked fine at first sight. However, once you get down to work, new details start to come out. This plan was no exception. Below are a few problems that came out during development.
+Problem №1: provide binary resources across supported platforms
+Mahjong is going to be available on desktop, mobile, and web. Each of these platforms has its constraints on accessing external files:
+
+- Desktop can access almost any file
+- Android/iOS have limited access to file system
+- Web does not have any file system at all
+
+To provide a unified way for accessing resources, we decided to include them into final executable. This decision led to the birth of mjin-resource and mahjong-data projects.
+mjin-resource:
+
+- converts binary files to C header files with the help of xxd utility
+- generates MJIN project that contains generated headers to be compiled into static library
+- provides C++ interface for accessing generated resources
+
+mahjong-data is an example of such generated MJIN project that is referenced by mahjong project.
+Problem №2: load PNG images across supported platforms
+To load PNG, we use corresponding OpenSceneGraph plugin. We built it for desktop with no issues. Building for web (Emscripten) turned out to be more difficult: Emscripten provides its own version of libpng, which OpenSceneGraph build script can't detect. We had to work around several OpenSceneGraph checks to successfully build the plugin for Emscripten.
+Building the plugin for Android and iOS is still waiting for us. Once we get PNG plugin working across supported platforms, we are going to publish a new tutorial for OpenSceneGraph cross-platform guide to cover PNG image loading. We already got a request to describe image loading.
+Development
+As you know, we published OpenSceneGraph cross-platform guide to make OpenSceneGraph community stronger. We value education, and we love to share our knowledge. That's why we decided to develop Mahjong in small reproducible chunks uniquely identified by internal versions. These versions are available in mahjong repository.
+We also provide version history and web releases of each internal version for the following reasons:
+
+- education: show how development looks like internally
+- accessibility: provide older versions for comparison
+
+Current Mahjong game status
+As of the time of this writing, we have implemented tile selection. Try it in your browser!
+Once we finish tile matching implementation, we are going to publish the intermediate result for all supported platforms.
+That's it for describing the start of Mahjong game recreation.
+
+
+
+
+
+
+
+
+
+
+
The year of lessons
-
+
So, the year 2017 is approaching its finale, the year's results have already
been summed up. We're going to take a break from igniting the fireworks or
preparation of the champagne so that we can designate our goal for the
following year.
-As it may be clear from other articles on the site, half of our plans in 2017
-were destined to be completed at least approximately as we assumed. The other
-half was changed significantly.
-During the year, people joined the team and left it. As a result, we meet the
-end of the year with exactly the same team as 365 days ago. It made us think.
-A lot. But We'll save the story for another time.
-There will be exactly one goal for 2018. We will take all the results, and then
-we will make a new mahjong game. We're already know how to make a mahjong
-solitaire so we will begin with it. This time, it will be cross-platform.
-We will definitely try to cover Windows, Linux, macOs, Web, and Android.
-We can't promis anything about the iOS right now (although we'll see what
-we can do).
-There is no point in writing more than We want to say. We learned a lot for
-this year, and we will try to apply all this knowledge to achieve more in the
-next one. We wish everyone a Happy New Year. Stay tuned.
-The Opensource Game Studio Team.
As it may be clear from ...
-
-
-
+ Read More
-
+
2017 summary
-
+
It's time to step back to see our accomplishments in 2017 and how they connect to the overall goal of Opensource Game Studio project.
Brief history
Opensource Game Studio project is 12 years old now.
-2005. We started the project with a fanatic call to create the best game ever …
2005. We started the project with a fanatic call to create the best game ...
@@ -109,13 +151,13 @@ next one. We wish everyone a Happy New Year. Stay tuned.
Back to the Static
-
+
We have been using Wordpress as our website engine for more than seven years. And now it's time to move forward. Or backward.
For some time we've been tracking the development of the new breed of website engines - static site generators.
-It seems that this is the technology capable of …
@@ -129,10 +171,10 @@ It seems that this is the technology capable of …- run unchanged on all supported platforms
- allow extending C++ code
-We have verified the second criterion by writing …
We have verified the second criterion by writing ...
@@ -154,13 +196,13 @@ It seems that this is the technology capable of …
+
This article describes problems we faced during the creation of iOS tutorial in May 2017.
-This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come up …
This February we managed to get simple model rendered under iOS in just a few days. We expected to finish iOS tutorial in no time. However, the reality reminded us: it's easy to come ...
@@ -213,12 +255,12 @@ In case you missed it, here's …
+
This article describes creation of the tutorials for building sample OpenSceneGraph application under Linux, macOS, Windows, and Android in April 2017.
-Previous tutorials described how to install OpenSceneGraph under Linux, macOS, Windows and render a model using the standard osgviewer tool. This time we worked on a sample OpenSceneGraph application …
Previous tutorials described how to install OpenSceneGraph under Linux, macOS, Windows and render a model using the standard osgviewer tool. This time we worked on a sample OpenSceneGraph application ...
@@ -232,13 +274,13 @@ In case you missed it, here's …
+
This article describes creation of the first four OpenSceneGraph tutorials in March 2017.
The first four OpenSceneGraph tutorials explain how to create a cube model with Blender and display the model under Linux, macOS, or Windows using OpenSceneGraph tool called osgviewer.
-The whole process of creating a single tutorial turned …
The whole process of creating a single tutorial turned ...
@@ -247,26 +289,6 @@ In case you missed it, here's …
-
-
-
-
- Let's go
-
-In this article we describe our progress in January and February of 2017: rendering under iOS/Web and a new tutorial tool.
-Rendering under iOS/Web
-To our surprise, we got a simple red cube rendered under iOS and Web pretty fast: in early February. However, this is only the …
-
-
- Read More
-
-
-