Example-driven development

Ср 27 Июнь 2018 ru

Screenshot

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.

Category: News


Mahjong recreation start

Пт 26 Январь 2018 ru

Screenshot

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

Category: News

Read More

The year of lessons

Вс 31 Декабрь 2017 ru

Screenshot

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

Category: News

Read More

2017 summary

Ср 22 Ноябрь 2017 ru

Screenshot

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

Category: News

Read More

Back to the Static

Пн 16 Октябрь 2017 ru

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

Category: News

Read More

The birth of MJIN world

Вс 10 Сентябрь 2017 ru

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:

  1. run unchanged on all supported platforms
  2. allow extending C++ code

We have verified the second criterion by writing ...

Category: News

Read More

Scripting research

Ср 16 Август 2017 ru

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

Category: News

Read More
Page 1 of 4

Next »