Any problems with linux-version?

I have to ask any of you, who can’t start the linux version of the game (no matter deluxe or free), to send us a letter to with the following info:
  1. What Linux distribution are you using?
  2. Is it a 32bit or a 64bit distribution?
  3. Are you using the standalone version or starting the game with Desura client?
  4. Attach the ~/.OGStudio/Mahjong/log.html file to the letter.
  5. Attach the ~/.OGStudio/Mahjong/game.cfg file to the letter (if it exists).
We’re going to release the 1.0.2 version soon, and we want to solve the problems you encountered.
Posted in Mahjong | Tagged , | Comments Off on Any problems with linux-version?

Can you tell us about youself?

Hello everybody!
Since the release of OGS Mahjong 1.0, almost 5 months ago, the game was downloaded more than 6,000 times by users from around the world, and every day the number of downloads increases by 20-30.
Unfortunately, we know very little about our users. Do you like our game? Are still you playing it? How do you want us to improve it? Our goal is to please you with the further development of the OGS Mahjong as well as the new interesting projects. So, we’re offering you to help us to fix this lack of knowledge by taking a small survey. It’s anonymous, we will not know about you more than you want to tell us. After taking the survey you will get a code. Save it. When we will complete our research, you will be able to use it to receive a gift from us (we will post the details separately).
Take the survey
Posted in News, Projects | Tagged , | Comments Off on Can you tell us about youself?

We’re moving articles to the blogs section

We decided to change the way we store articles, so from now on, you can find all old and new articles in the blogs section.
Posted in Articles, News, Site | Tagged , , | Comments Off on We’re moving articles to the blogs section

The new golden age of a game development

We’re standing at the beginning of the time, which I would call a new “golden age” for the game developers. Many of you can remember the days when current videogame genres were just forming, when games were developed by those who love them for those who play them, when publishers weren’t afraid to invest in new ideas. It wasn’t very long ago, just about 15-20 years, but the gaming industry has changed very significantly. New technologies were developed, the audience became larger and more mature. Video game market has grown, and with it – risk management and a fair share of caution (which some call the “cowardice”) in the decisions of the major market players. Game development has become more expensive, and the games themselves became more expensive for consumers. The result is a dead end. Expensive games made with proven patterns without new ideas. The only way to compete between them – strengthening the “wow effect” with technology and amount of content. It leads to the further increase of the development price. But also, it frustrates the gamers.
Recently, many respected publications wrote that the game industry has come to a standstill. They note a decline in sales of games and gaming hardware, and conclude that the videogame industry is slowly dying. But they are wrong. Industry feels great. Only the old model of doing business is dying.
And right now we are seeing what can be called a search for a new model. The convergence of several factors made ??this possible:
  • increased competition between platforms (chess game between PC and consoles faced an arrogant invasion of “checkers” in the face of iOS and Android);
  • the emergence of technologies available to developers, allowing to make the modern game without vast investments in the development from scratch (if you would said to any professional game developer 10 years ago that the Unreal Engine can be used for a nominal fee of $100 and a percentage of the profits – you would have been ridiculed);
  • and the growth of digital distribution services (some experts says that more than 50% of videogames on the PC is purchased using a digital distribution).
These three factors are the basis of the indie-games breakthrough, that we’re seeing now. This process is strongly supported by several large companies (eg, Valve and their project Greenlight). The appearance of “fresh blood” in the form of indie games also benefits the the so called “big games”, showing publishers that new ideas can be worthy of some economic risks.
What will it lead to? Hard to say. As the story develops in a spiral, we can assume that this time will not last too long. The gaming industry will find a new “dominant model” (or several), and this model will determine how the game industry will look like in the next decade. And in this search, I see a great opportunity for the Open Source community to show themselves.
The technical level of open source libraries for game development is growing significantly every year. Not long ago, they evolved only thanks to commercial projects, decided to open it’s source code, but now you can see how open technologies are used in successful commercial games (Ogre3D graphics engine used in a Torchlight series, Bullet physics engine used in the famous GTA and Red Dead Redemption).
I think the Open Source community can make it even better. By going together with indie developers, by supporting the “big players” on the market, and perhaps even on it’s own.
If you look closely – there are many unoccupied niches. Would you like to develop the tools? Please – many good game engines are in need of a convenient tools. Are you dreaming of creating some new cool technology? The entire gaming industry’s dreaming about the procedural generation of high quality content. Maybe, you would like to make the simple but addictive game? The history has created a lot of ready-to-play mechanics for you. If interested, try to find a way to play online in the classic mahjong (meaning the game for 4 players, not solitaire) – neither online gaming sites, nor large online casinos can give you this opportunity (this is one of the reasons why we have decided to continue development of OGS Mahjong in this direction, we originally planned to discontinue the development of mahjong after finishing our work on version 1.0).
And these are just several examples. In fact, there are many more. So, what would you like to do?
Posted in Team Blog | Tagged , | Comments Off on The new golden age of a game development

GPG Key for our APT repository

From now on, all the deb-files in our APT-repository will be signed with the gpg-key, so you can always be sure that you downloaded deb-files that were actually created by us. To verify the signature of our deb-files, you will need to add our key by using this command:
apt-key add opengamestudio.key
If you use Synaptic instead of the command line, you can add the key in the “Authentication” tab of the “Software Sources” window.
You can download our key here:
Posted in Articles, News, Projects, Site | Comments Off on GPG Key for our APT repository

We wish you a happy new year!

Let’s make it better than the previous one.
Posted in News | Comments Off on We wish you a happy new year!

Gentoo ebuilds for OGS Mahjong 1.0.1

Gentoo ebuilds in opengamestudio-overlay were updated. You can find more information about this overlay in this post
Posted in Mahjong, News, Projects | Tagged , , | Comments Off on Gentoo ebuilds for OGS Mahjong 1.0.1

OGS Mahjong 1.0.1 XMas edition

Okay! We hope, the world will not end in few days. Because if it will not end, then there will be Christmas holidays soon. And we like holidays a lot.
So, we made a new tileset for you, called “XMas”, and also a new version of OGS Mahjong.
[singlepic id=67 w=320 h=240 float=center]

So, here are the changes:

  • Game
    • camera initial zoom, pitch, yaw and position are now stored in a config file
    • new tileset – Xmas
    • new music track – East River (included in full vesrions only)
  • Tileset builder
    • fixed tileset generation when relative file paths are used in a tep-file.
  • Windows version
    • fixed some crashes related to Windows Vista’s UAC system.
  • Deluxe version
    • higher resolution textures for the Room scene.
    • higher resolution textures for Eastern, Sports and Xmas tilesets.

Download links

If you are using Desura, you can install or update the game with your desura-client.

Desura Digital Distribution

The users of Ubuntu, Debian and Mint linux distributions can use our repository:

deb stable ogs
apt-get install ogs-mahjong / apt-get install ogs-mahjong-full

Everyone else can download the game using the folowing links.
Posted in Mahjong, News, Projects | Tagged , , | Comments Off on OGS Mahjong 1.0.1 XMas edition

Gentoo overlay

We are pleased to inform you that we have made an overlay for Gentoo Linux, and now the users of the system can install OGS Mahjong the usual way.
If you’re using a Layman to manage your overlays, open the Layman configuration file(/etc/layman/layman.conf) find the line
and add this line after it:
Then run following commands:
layman -f
layman -a opengamestudio-overlay
After that, you’ll be able to install the OGS Mahjong with this command:
emerge ogs-mahjong
To install the layout editor or additional music, you can set musicaddon and editor USE-flags (they are off by default).
And one more thing, with unstable cegui-0.7.7 the game doesn’t start. Use stable cegui-0.7.6.
Posted in Mahjong, News, Projects | Tagged , | Comments Off on Gentoo overlay

Imperfect technologies

Hello. I’m Michael Kapelko, Opensource Game Studio team programmer.
I want to tell you what we learnt while heading towards OGS Mahjong 1.0, our final release of Mahjong solitaire (but not final in Mahjong series). This article continues the previous one: A long way to Mahjong 0.7
One year ago, May 2011, we released OGS Mahjong 0.7, it was a difficult confinement. This year, September 2012, we released OGS Mahjong 1.0. While heading to 1.0 release we wanted the game be available on all Linux distributions, and also support Mac OS X.
Unfortunately, we failed to do that, because OGS Mahjong uses OGRE and OIS.


OGS Mahjong started to use unstable (at the time) OGRE 1.8 in the summer of 2010 when I was implementing game window recreation without reloading resources. My patch to achieve it has been incorporated the same summer into OGRE 1.8 tree.
I thought it’s not going to take more than one year for OGRE to reach 1.8, by the time we release OGS Mahjong 1.0 we should have been dependent on stable OGRE instead. OGRE 1.8 has been released on May 28, 2012. Although, by that time:
1) we tried OIS 1.3 (latest at the time) which didn’t work for us (details below);
2) I’ve patched another file (for the record: Overlay::setMaterialName) of OGRE which I did not commit, since I knew it’s gonna take another year for the tiny change to be released.


OGRE uses FreeImage as its main image codec. The big problem with it is that it’s unsupported by Gentoo, because FreeImage developers refuse to use system libraries like zlib, png, etc. They instead static link all the dependencies into FreeImage.
EDIT: FreeImage is in media-libs of Gentoo. The rest of the problems still apply.
They only fixed the clashing by hiding used libraries which is still wrong.
Just as the author proposed the 3rd option of kicking FreeImage, we do it. Along with other libraries.


OIS is yet another slow release cycle library. Recently 1.3 release came out which totally ruined Linux input handling for us. The repeat key handling has been rewritten and OGS Mahjong has been simply stopping to accept input after running for 30 seconds.
I’ve contacted the developer with the key handling bug, but he couldn’t reproduce it. We had to stick with 1.2 for Linux.
OIS 1.3 can’t be compiled under MinGW, only the latest (at that moment) SVN revision can.
As for Mac OS X, OIS screwed us here as well, because the guy who tried to help us compile Mahjong on Mac OS X just couldn’t build OIS due to compilation errors.
Since 1.3 has been released, it is shipped in all Linux distributions now which prevents OGS Mahjong to be built from sources for Linux distributions. Unacceptable, too.


On the contrary to OGRE and OIS, CEGUI is a much better library, with excellent support from its team members, especially CrazyEddie who have helped us a lot with OGS Mahjong development. But CEGUI has one major drawback: it’s complicated for designers. All GUI has been done solely by me, programmer. And GUI does change a lot during development. So GUI took more of my time than it should.

As you see, the above libraries have put some heavy weight on us. More than I, the only programmer, can handle. I understood that if we want to make the game instead of constantly solving other developers’ mistakes, we have to drop those libraries. Of course, we can spend our entire lifetimes to fix mistakes made by others, but hopefully there are simply better alternatives (from the dependency and feature perspectives).


I discovered OpenSceneGraph thanks to 2 OSG books recently released:
1) OpenSceneGraph Beginners Guide, 2010.
2) OpenSceneGraph Cookbook, 2012.
I first looked at OSG back when I chose OGRE over Lightfeather in 2010. OSG, being complicated, didn’t attract me at the time, because I simply failed to understand its tutorials. The books helped me see OSG well defined structure, out-of-the box common technique support, no dependency on FreeImage. OSG is also present in Linux distributions.
Out-of-the box support for common techniques is another serious issue I’ve had with OGRE. OGRE claims to support shadow mapping, and it does so, but only with Cg. Yet another dependency! There was simply no tutorial to implement it in GLSL. I’m not a shader guy and I failed to implement it myself in a month, so we had to resort to stencil shadows in OGS Mahjong 1.0.
One of the OSG books featured an example of soft shadow mapping. OSG has built-in support for various shadow mapping techniques. You don’t even have to write down a shader. It’s already written there for you! To get soft shadow mapping instead of stencil shadows, you need to change only 1 line of code.
Also, I’ve asked about GLSL shadow mapping at OGRE community forums without success. So next time you see large post counting at OGRE forums, don’t think 100% of the posts get answers. For difficult topics it’s quite the opposite.
Another major OSG advantage is that its main developer Robert is still actively participating in OSG development and is frequently responding to questions in the mailing list (OSG is 12 years old!). OGRE misses Sinbad badly.
OSG presense in distribution is also caused by not using FreeImage-like crap. OSG uses plain libpng for PNG handling, e.g.. In the end, you’re not going to have 100500 image formats. It’s gonna be only one or two.


The only alternative to CEGUI is libRocket. I’ve tried several tutorials so far, they weren’t as great and shiny as libRocket first looks, but it does use subset of HTML/CSS to define layouts (yes, it lies about being HTML/CSS GUI library). This should help us relieve me from GUI programming. If that happens, we stay with libRocket. Otherwise, we’re back to CEGUI which will hopefully have CEED ready for designers by that time (Kulik, go on!).


One of the first requirements for MJIN2 (our new game engine) was support for Python GUI and logic scripting. But later on I’ve had a thought, why not have MJIN2 library in C++ and game in Python completely, not only scripts and GUI? SWIG helps to achieve that by allowing to generate Python wrapper library around C++ one.

With Python we hope to increase the speed of game development. I have analyzed both game and engine commit logs, and it turned out that game has twice as much commits as engine has. Having game part in Python, thus, should increase development speed due to less code, less development time.

Since we’re going to have Android and iOS supported, Python will not be used on the platforms due to performance restrictions, but we can write final versions of the games in C++ or Java since MJIN2 + SWIG allows us to write a game in pretty much any language (C++ natively, and 20+ other languages with the help of SWIG).

We’re having big changes in how we develop games. We’ll see how it all turns out.
Posted in Team Blog | Tagged , | Comments Off on Imperfect technologies