Example-driven development
This article explains how the third OpenSceneGraph cross-platform example
opened our eyes to example-driven development.
The third OpenSceneGraph cross-platform example
The third OpenSceneGraph cross-platform example explains how to implement
remote debugging across platforms. This example is less about
OpenSceneGraph and more about different platforms.
Remote anything nowadays assumes the use of HTTP(s) over TCP/IP. Thus, the
first idea was to embed HTTP server into an application and let HTTP clients
interact with the server. However, serving HTTP across all platforms is
complicated:
- desktops have firewalls
- mobiles have restrictions on background processes
- web browsers are HTTP clients by design
That's why we decided to create a mediator between debugged application and UI.
Debug broker, a small Node.js application, became that mediator.
Debug broker uses no external dependencies, so it's easy to run virtually
anywhere. Also, since debug broker is a server application, you can configure
it once and use it for any number of applications.
Both debug UI and debug broker use JavaScript
because we wanted these tools to be accessible from anywhere with no prior
installation. This decision limited us to web browser solution. Providing
any sort of desktop application would incur additional installation and
maintenance effort, which would only complicate the tools.
Example-driven development establishment
Once the third example was implemented, we realized how important and
beneficial it is to develop new features outside the main project:
- the main project is freed from excessive commit noise
- a new feature is publicly shared for everyone to learn, criticize, and improve
When we publicly share our knowledge:
- we must create documentation for everyone (including ourselves later) to understand what's going on
- we must not use hacks because that would break your trust in us
From now on, all new features like input handling, Mahjong layout loading,
resource caching, etc. are going to be first implemented as examples.
We call this example-driven development.
That's it for explaining how the third OpenSceneGraph cross-platform example
opened our eyes to example-driven development.
OpenSceneGraph cross-platform examples
This article summarizes the work we did to produce the first two
cross-platform OpenSceneGraph examples.
By the time the first technology demonstration of OGS Mahjong 2
has been released, we've already had issue request
(to explain how to load images with OpenSceneGraph on Android) hanging for some
time. We ...
Read More
First techdemo of OGS Mahjong 2: Gameplay
We are glad to announce the release of the first technical demonstration of
OGS Mahjong 2. The purpose of this release was to verify gameplay across
supported platforms.
Get techdemo for your platform:
Read More
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 ...
Read More
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 ...
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 ...
Read More
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 ...
Read More
The birth of MJIN world
This article describes the birth of MJIN world in August 2017.
mjin-player
As you know, we spent July to research scripting. We found a solution that satisfies the following criteria. Scripts should:
- run unchanged on all supported platforms
- allow extending C++ code
We have verified the second criterion by writing ...
Read More
Scripting research
This article describes scripting research in July 2017.
Our first goal of using a scripting language was to have a platform-independent code that runs unchanged on every supported platform.
OGS Editor 0.10 supports Python for such a code thanks to SWIG. SWIG provides a way to wrap almost any ...
Read More
OpenSceneGraph cross-platform guide
This article summarizes the work we did to produce OpenSceneGraph cross-platform guide.
June marked the finish of OpenSceneGraph cross-platform guide with the publishing of the last (initially planned) tutorial. The tutorial describes how to build and run sample OpenSceneGraph application in Web using Emscripten.
In case you missed it, here ...
Read More