Great lightweight XML library

October 24, 2007
I am currently trying to help develop a draft version of the game for a startup studio a friend I met in Japan. Even though I am sorely tempted, I won’t write any details and provide screenshots for now – because the main strength of the game is the idea and game-mechanics, and therefore I am afraid someone might steal it.

I wanted to make the draft version for testing game mechanics according to Agile Software Development practices. Yes, Agile applies to game creation as well – read these guys’ blog to see where I got the inspiration from. I wanted to make the game mechanics tweakable, so that lead game designer doesn’t have to touch the code at all. For that I wanted to use XML documents with game’s parameters.

Now the problem was that the draft is supposed to be small, with simple easy-to-read code – so that any programmer taking over me for the serious development knows what I did and how is the logic. Also, I do not like learning to use overly complex tools – if I need to do something, I want to do it in the most effortless way possible. Yes, I am lazy. Also, I am writing code in C++ for speed – so the XML parser would need to be C++ library.

There is a lot of XML processing libraries out there, but they are usually not small (Xerces!), not simple (different SAX parsers), not very well written, not free… It took me a while, but finally I have found what I wanted to have – Kranf C++ XML Parser.

It is light-weight, small, simple, uses wchar, is configurable and I was able to use it after half an hour, with only minor problem being that the included .lib file was made for Microsoft Visual C++ and I use Dev-C++ (mingw compiler), and therefore it wouldn’t link. That was solved by importing the DLL library project into Dev-C++ (namely xmlParserDLL.dsp), compiling my own .dll and .lib files and linking against them. After that it’s very easy to use the library and the .dll file has a footprint of about 100kb – thus making it exactly what I have been searching for.

Since the author, Dr Frank Vanden Berghen, asks to make a link to parser’s page, should the users like his library, I thought I’d bring it to your attention. Thanks, Doctor!

BTW, my new little hobby means that I will be writing more about game development and programming in near future. And sorry for lack of pictures, but honestly I didn’t know what to put here that would go well with the topic.


Project Seraph

July 29, 2007
What you can see below is a presentation of my final project at my first specialisation at International Faculty of Engineering – 3D visualisation / reconstruction / image processing program for medical applications called Seraph. Although it was by far the least clean code and the worst design I have ever created, it still remains my favourite child as far as computer programs are concerned, which is why I am showing it here. I guess I am getting sentimental.

The presentation is in French, because I have been studying my first specialisation in that language. I thought I would have some free time to translate it and make presentation more interesting, but since it has been sitting on my hard drive for last five months waiting for that, I decided I would just put it on the web in the very same form it was in 2004.

My only disappointment is that noone continued the development and the program was finally not used much apart from my project, even though I wanted it to became open source. Unfortunately, it is my university that holds the intellectual rights to it and the program has simply remained somewhere there, unused. Oh well, now that I work as fully fledged software developer I am almost ashamed of that code. I guess I will have to rewrite it one day on my own and put it on SourceForge. Then Seraph’s soul will be able to take a rest…


Project Seraph

July 29, 2007
What you can see below is a presentation of my final project at my first specialisation at International Faculty of Engineering – 3D visualisation / reconstruction / image processing program for medical applications called Seraph. Although it was by far the least clean code and the worst design I have ever created, it still remains my favourite child as far as computer programs are concerned, which is why I am showing it here. I guess I am getting sentimental.

The presentation is in French, because I have been studying my first specialisation in that language. I thought I would have some free time to translate it and make presentation more interesting, but since it has been sitting on my hard drive for last five months waiting for that, I decided I would just put it on the web in the very same form it was in 2004.

My only disappointment is that noone continued the development and the program was finally not used much apart from my project, even though I wanted it to became open source. Unfortunately, it is my university that holds the intellectual rights to it and the program has simply remained somewhere there, unused. Oh well, now that I work as fully fledged software developer I am almost ashamed of that code. I guess I will have to rewrite it one day on my own and put it on SourceForge. Then Seraph’s soul will be able to take a rest…


Behind the scenes – OpenOko

June 15, 2007
I had the pleasure to bid a visit to OpenOko, small Polish game development company, and spend some time with Marcin Rogucki, the Lead Programmer and my friend from high school.

Hidden in one of the numerous XIX century tenement houses of my hometown of Łódź, the studio occupies surprisingly nice apartment – in contrast to very steampunk’ish (to put it diplomatically) interiors through which a visitor has to find his way first.

The corridors and staircases leading to OpenOko could
one day be used as a level in one of their games

So far the team has produced a couple of very low-budget games that they are still ashamed of (judging by the fact they are not listed on their official site) and one more complete product – Dragonblade : Treasure of the Cursed Lands. The game has been distributed in Russia by Akella and entered the top five of best selling games by the end of 2006. Curiously enough, you won’t find a mention about it on their English website, only in Russian – click here to see it. In Poland you can buy the game in 3Kropki internet shop – check that it has different cover artwork.


Dragonblade trailer on YouTube

Dragonblade is definitely not Half Life 2, that’s true, the influences of Witcher and Painkiller are obvious and the game has its share of issues, right, but nevertheless it features some interesting models, good lighting, and generally allows the player to get some shooting/fighting action in dark fantasy world. On a side note, I dare say that the main protagonist bears slight resemblance to Dante from Devil May Cry as well – but maybe it’s just me. If you want to learn more, here you can download the offical English game presentation.

Dragnoblade : Treasure of the Cursed Lands
Unfortunately, in Polish reality the choice is simple – either the game costs 20PLN (about 7 USD) and sells in large number of copies, or it costs 50PLN (18USD) and sells in too few copies for the company to make a living.

The reason for it is the fact that target demographic are essentially male gamers 12 to 16 years old – they are the majority of game market audience. For them lack of originality (yet another 3D shooter) is not a problem, because they want another game similar to what they already know. They don’t have too high expectations of cheap games either, because being realistic in their judgements they can tell the difference between Valve and OpenOko. And they definitely don’t have big budget to spend on the game.

Therefore, it boils down to sad, but unfortunately very real-life choice : either you make a very polished game, which impacts development time and the cost of final product to the point where it becomes not commercially profitable, or you consciously make a game of lesser quality, but the development cost is lower and therefore the gain margin allows you to keep on going.

Inquisitor – one of the titles in development by OpenOko

If you are a gamer for longer time (like me), you surely remember one or two studios that gave us truly great titles and then ceased to exist due to financial reasons? Well, the economic reality in Poland is even more harsh than in States, therefore managing a game development studio requires making this kinds of difficult decisions.

But don’t worry, with every accomplished project the arsenal of tricks and special effects that OpenOko team has up their sleeve increases. Each new game contains some elements which may then be used in the next games, such as nice bloom effect, very realistic water, lens effects, smarter AI and so on.

Please note the water reflections, the haze effect and the amount of detail in weapon

Already their new project is shaping up nicely, judging by what I have been shown during my visit. Contrary to what you may read on OpenOko website, the next project is going to be a tactical shooter, codenamed GBR (from Russian Grupa Bystrego Reagirowania – Quick Response Group, as in “armed response”). Probably you will be the first ones to discover the screenshots from the game – it is in fact an exclusive.

GBR feels right at home – is it a Russian truck under the crane?

This is of course work in progress, as you can observe (no commands on the menu yet, lots of debugging info, minor glitches), but I have to say I was positively impressed by the overall quality of what I was shown, especially taking into account the number of people working on it. It was also very interesting to see how the features developed for current project are already being considered for application in future titles.

I really hope that OpenOko will survive on the market and continue to deliver new titles, each next one better than the previous ones. Good luck, guys!


Behind the scenes – OpenOko

June 15, 2007
I had the pleasure to bid a visit to OpenOko, small Polish game development company, and spend some time with Marcin Rogucki, the Lead Programmer and my friend from high school.

Hidden in one of the numerous XIX century tenement houses of my hometown of Łódź, the studio occupies surprisingly nice apartment – in contrast to very steampunk’ish (to put it diplomatically) interiors through which a visitor has to find his way first.

The corridors and staircases leading to OpenOko could
one day be used as a level in one of their games

So far the team has produced a couple of very low-budget games that they are still ashamed of (judging by the fact they are not listed on their official site) and one more complete product – Dragonblade : Treasure of the Cursed Lands. The game has been distributed in Russia by Akella and entered the top five of best selling games by the end of 2006. Curiously enough, you won’t find a mention about it on their English website, only in Russian – click here to see it. In Poland you can buy the game in 3Kropki internet shop – check that it has different cover artwork.


Dragonblade trailer on YouTube

Dragonblade is definitely not Half Life 2, that’s true, the influences of Witcher and Painkiller are obvious and the game has its share of issues, right, but nevertheless it features some interesting models, good lighting, and generally allows the player to get some shooting/fighting action in dark fantasy world. On a side note, I dare say that the main protagonist bears slight resemblance to Dante from Devil May Cry as well – but maybe it’s just me. If you want to learn more, here you can download the offical English game presentation.

Dragnoblade : Treasure of the Cursed Lands
Unfortunately, in Polish reality the choice is simple – either the game costs 20PLN (about 7 USD) and sells in large number of copies, or it costs 50PLN (18USD) and sells in too few copies for the company to make a living.

The reason for it is the fact that target demographic are essentially male gamers 12 to 16 years old – they are the majority of game market audience. For them lack of originality (yet another 3D shooter) is not a problem, because they want another game similar to what they already know. They don’t have too high expectations of cheap games either, because being realistic in their judgements they can tell the difference between Valve and OpenOko. And they definitely don’t have big budget to spend on the game.

Therefore, it boils down to sad, but unfortunately very real-life choice : either you make a very polished game, which impacts development time and the cost of final product to the point where it becomes not commercially profitable, or you consciously make a game of lesser quality, but the development cost is lower and therefore the gain margin allows you to keep on going.

Inquisitor – one of the titles in development by OpenOko

If you are a gamer for longer time (like me), you surely remember one or two studios that gave us truly great titles and then ceased to exist due to financial reasons? Well, the economic reality in Poland is even more harsh than in States, therefore managing a game development studio requires making this kinds of difficult decisions.

But don’t worry, with every accomplished project the arsenal of tricks and special effects that OpenOko team has up their sleeve increases. Each new game contains some elements which may then be used in the next games, such as nice bloom effect, very realistic water, lens effects, smarter AI and so on.

Please note the water reflections, the haze effect and the amount of detail in weapon

Already their new project is shaping up nicely, judging by what I have been shown during my visit. Contrary to what you may read on OpenOko website, the next project is going to be a tactical shooter, codenamed GBR (from Russian Grupa Bystrego Reagirowania – Quick Response Group, as in “armed response”). Probably you will be the first ones to discover the screenshots from the game – it is in fact an exclusive.

GBR feels right at home – is it a Russian truck under the crane?

This is of course work in progress, as you can observe (no commands on the menu yet, lots of debugging info, minor glitches), but I have to say I was positively impressed by the overall quality of what I was shown, especially taking into account the number of people working on it. It was also very interesting to see how the features developed for current project are already being considered for application in future titles.

I really hope that OpenOko will survive on the market and continue to deliver new titles, each next one better than the previous ones. Good luck, guys!


Screen

May 7, 2007
I work a lot on remote Linux servers, deploying and testing my code. One of the most useful tools I use all the time is screen. Basically, it allows user to have multiple sessions in one console window and it supports resuming these sessions when connection is interrupted. Where it not for screen, I would waste hours of my life setting up things after getting disconnected. Also, if you don’t have Midnight Commander, the ability to have more than one session is also very handy. You can read more about screen here and about handy shortcuts here.

Screen screenshot

One little disadvantage of screen is that if the server is reset, then the user loses all their session information. Nevertheless, there is a trick to speed up a lot setting up new screen session and it’s not something very well documented, so I describe it here.

Basically user needs to edit (or create, if it is not there) the file .screenrc in their home directory so that it contains the commands to be executed in its respective screens (aka sessions). Below you can see my example :

info xterm ti@:te@
shell bash
chdir /somewhere/src/
screen -t XXX_source 0
shell bash
chdir /somewhere/some_server/
screen -t XXX_server_1 1
shell bash
chdir /somewhere/some_other_server/
screen -t XXX_server_2 2
shell bash
chdir /somewhere/vobs/
screen -t XXX_vob 3

What it does is basically create four screens in one screen session – think of them as four tabbed browsing windows. Each of them will be using bash shell (just because I like it) and start in appropriate directory (source dir, where I make my builds, two server paths and one vob directory for version control related stuff). Each XXX_something part is the name of the respective session window (displayed on top of Putty terminal, for example). Simple, neat, and very helpful. Also, the structure of the file is pretty much self-explanatory.

I know it is not a very complicated thing, but it saves a lot of time and therefore I thought I’d bring it to your attention. As always, I look forward to your comments.


Screen

May 7, 2007
I work a lot on remote Linux servers, deploying and testing my code. One of the most useful tools I use all the time is screen. Basically, it allows user to have multiple sessions in one console window and it supports resuming these sessions when connection is interrupted. Where it not for screen, I would waste hours of my life setting up things after getting disconnected. Also, if you don’t have Midnight Commander, the ability to have more than one session is also very handy. You can read more about screen here and about handy shortcuts here.

Screen screenshot

One little disadvantage of screen is that if the server is reset, then the user loses all their session information. Nevertheless, there is a trick to speed up a lot setting up new screen session and it’s not something very well documented, so I describe it here.

Basically user needs to edit (or create, if it is not there) the file .screenrc in their home directory so that it contains the commands to be executed in its respective screens (aka sessions). Below you can see my example :

info xterm ti@:te@
shell bash
chdir /somewhere/src/
screen -t XXX_source 0
shell bash
chdir /somewhere/some_server/
screen -t XXX_server_1 1
shell bash
chdir /somewhere/some_other_server/
screen -t XXX_server_2 2
shell bash
chdir /somewhere/vobs/
screen -t XXX_vob 3

What it does is basically create four screens in one screen session – think of them as four tabbed browsing windows. Each of them will be using bash shell (just because I like it) and start in appropriate directory (source dir, where I make my builds, two server paths and one vob directory for version control related stuff). Each XXX_something part is the name of the respective session window (displayed on top of Putty terminal, for example). Simple, neat, and very helpful. Also, the structure of the file is pretty much self-explanatory.

I know it is not a very complicated thing, but it saves a lot of time and therefore I thought I’d bring it to your attention. As always, I look forward to your comments.


Le Blender Nouveau est arrive!

February 28, 2007
The new version of Blender (namely 2.43) got released recently and while I missed the exact release date, I still find it new and interesting enough to write about it.

For those who don’t know, Blender is a cross-platform open source software package for 3D modeling, animation, rendering, post-production and even gaming. Open source (under GNU General Public License to be precise) means it is completely free and everything created using it is also free and belongs to you. The particularity of it all is that actually there was a time when Blender was not in fact free and the community struggled to raise 100,000 Euro to buy the rights to it, so that it remains available to everybody free of charge. That’s pretty unusual story and if you are interested, you may read about it here.

Famous Blender interface

While not as powerful as commercially available 3DStudio MAX or Maya, it allows for creating some great images and animations, such as the world’s first open source movie Elephant’s Dream, which you can download for free. Also, Blender is constantly evolving and new features are popping up. Personally, I find it significantly more advanced than 3DStudio MAX at the time I was using it (meaning that current Blender has more stuff in it than 3DS used to be). And the possibilities/price ratio is practically infinite, since the cost of software is zero (or close to, if you take into account rather steep learning curve).

This great scene has been created in Blender (by lucky)

If you want to read about all the nifty new features, have a look at release notes and if you want to see some of the vision crafted using Blender, visit a gallery (be sure to check the archive, too).


Le Blender Nouveau est arrive!

February 28, 2007
The new version of Blender (namely 2.43) got released recently and while I missed the exact release date, I still find it new and interesting enough to write about it.

For those who don’t know, Blender is a cross-platform open source software package for 3D modeling, animation, rendering, post-production and even gaming. Open source (under GNU General Public License to be precise) means it is completely free and everything created using it is also free and belongs to you. The particularity of it all is that actually there was a time when Blender was not in fact free and the community struggled to raise 100,000 Euro to buy the rights to it, so that it remains available to everybody free of charge. That’s pretty unusual story and if you are interested, you may read about it here.

Famous Blender interface

While not as powerful as commercially available 3DStudio MAX or Maya, it allows for creating some great images and animations, such as the world’s first open source movie Elephant’s Dream, which you can download for free. Also, Blender is constantly evolving and new features are popping up. Personally, I find it significantly more advanced than 3DStudio MAX at the time I was using it (meaning that current Blender has more stuff in it than 3DS used to be). And the possibilities/price ratio is practically infinite, since the cost of software is zero (or close to, if you take into account rather steep learning curve).

This great scene has been created in Blender (by lucky)

If you want to read about all the nifty new features, have a look at release notes and if you want to see some of the vision crafted using Blender, visit a gallery (be sure to check the archive, too).


LTE Game Engine for PSP

December 19, 2006
Recently I brought you the YouTube movie showcasing a 3D game creation environment called Virtools. I wish it was made available to PSP homebrew scene, but as much as I would like to put my hands on it I doubt its creators will release for free. Still, that has given me the idea to present you one of the free alternatives.

Irrlicht is one of the most popular open-source 3D game engines. It offers quite sophisticated solutions that should be more than enough for most of applications. There is quite a lot of serious applications based on it, as well as some amateur projects (you can see some of them here).

Wireless sensor boards.
I myself used Irrlicht for a project that I have been working on in NTT Laboratories in Japan. The project consisted of hardware and software part : we used Freescale Zigbee kit for wireless transmission of data gathered by independent sensors. The data would then be sent (also wirelessly) to a PC running a 3D visualization program, which would display the position (including rotation angles) of sensors in three-dimensional world. You can think of it as something similar to Wii and its Wiimote, only a wireless cluster of them.

At some point, when I already had bought my Playstation Portable and started dabbling in programming it, I thought that it would be cool to have Irrlicht ported to PSP. I pointed it out in Irrlicht forums – you can read it here. It turned out that I was definitely not the first person to have thought about it : a couple of days later the port was announced.

The port is called LTE Game Engine and it is available here :

However, there is one thing that spoils the overall good impression: the team behind it forgot to give any credit whatsoever to Irrlicht devs (or at least I do not know anything about it). That is a bit nasty, especially since Irrlicht is open source and its license allows modifications and porting, so it wouldn’t really hurt to admit that most of the job was in fact done by someone else.

One of Irrlicht devs wrote a post on his blog about how ungrateful the guys behind LTE are, having forgotten to mention Irrlicht anywhere in their documentation, which goes to show that it hurt their feelings a little.

As for the engine itself, I cannot write more about its efficiency and speed, as I didn’t have time to really push it to the limits and see what comes out. Recently I installed a new Linux distribution over the old one, which means I need to set up PSPSDK once again (and it is quite a long process indeed). Still, I thought I would bring it to your attention, even if there is a little controversy surrounding it. A free alternative to commercial libraries is a good thing after all.


Follow

Get every new post delivered to your Inbox.