Storm over the Pacific is released

June 21st, 2010 by krajek No comments »

Another game from Wastelands Interactive has been relased last week.  For details about it, please consult Storm over the Pacific homepage :  http://stormoverpacific.com/.

I had been working on this game just for about a month, because of the development of Bitter Glory, which now is a main project of Wastelands Interactive team. I am really proud of this title, because it’s my first released commercial game. As for now, it is distributed only digitally.

See here for more details.

Forcing to comment svn commits

May 18th, 2010 by krajek No comments »

Every experience svn user knows that commenting commits is really helpful, even if you’re the only person working with the repository. The larger the team, the more important it is to do good comments about each commit. As far as I know, most popular method of forcing people to make good commit descriptions is to set informal rule. This method may or may not work, depending on repository users. If they’re not experienced , they will often forget or ignore previously set rule.

It came to me, that it is not common knowledge, that you actually can easily force repository users to do commit descriptions with TortoiseSVN. You can set minimal comment length to arbitary number. Even that you cannot force users to write good and descriptive messages, my little practical experience shows that such restrictions does its jor perfectly. If the user is forced to write something, he will most likely write something reasonable.

In order to apply log message length restriction you have to change svn-property ‘tsvn-logminsize’ of the root folder of your repository as shown below, and commit changes.

Setting tsvn-logminsize property

More information can be found in official TortoiseSVN documentation. Hope that helps.

Wielki Mistrz download statistics

February 16th, 2010 by krajek No comments »

Few weeks ago I learned python, so I decided to use my new skill to code something interesting and useful. Idea for a cool script got me, while I was looking in Wielki Mistrz downloads log. Of course it’s simple text file, each line represents one download. Format of this file is completely straightforward, let’s look at few lines.

Sun Nov  1 13:57:52 CET 2009 wm_win32_r932_2009-10-31_09-43-46.zip 79.184.113.176 forum_gamedev_pl
Sun Nov  1 13:59:52 CET 2009 wm_linux_r930_2009-10-30_18-54-31.tar.gz 81.219.158.60 blog_scentrica
Sun Nov  1 14:12:01 CET 2009 wm_linux_r930_2009-10-30_18-54-31.tar.gz 89.74.178.187 forum_gamedev_pl
Sun Nov  1 14:41:51 CET 2009 wm_linux_r930_2009-10-30_18-54-31.tar.gz 89.74.178.187 forum_gamedev_pl
Sun Nov  1 14:50:21 CET 2009 wm_linux_r930_2009-10-30_18-54-31.tar.gz 212.122.223.77 forum_roku_scentrica

Starting from the left hand side we got : download time, file name, user ip and finally the place where user found our game. At first, I wrote script, which analised entire log file and write simple summary in text format.

Logfile : grimmar_release.log
Number of downloads : 1057
Number of unique ip's : 615
Source                    Count
gamedev_projekt           375
forum_gamedev_pl          217
blog_scentrica            152
wikispacja_download       130
unknown                   83
gamedev_forum_ukonczone   32
forum_roku_scentrica      29
txgg                      20
yari-blog                 17
jrgg                      1
gamedev_projek            1

This was cool, we could easily compare the popularity of distribution channels. Nevertheless, we also wanted to be able to easily analise if some of our “marketing” work is worth anything. For example, we wanted to know, if posting a information about new release on forum, has any effect. Ideally, there should be a tool, which would automatically get latest log file, analise it and print appropriate chart. I thougth, that it should’t be very hard, and decided to create such tool. Effects can be found in svn repository of Wielki Mistrz :
http://krajek.vipserv.org/mistrz/tools/statystyki_sciagniec/.
One will find four python scripts there. First one generates a text summary. The others are creating graphical charts of downloads by source, downloads by date and downloads by OS. In my opinion, second one is especially worth checking out. I added most important publication dates for Wielki Mistrz, for example the date of final relase ( called ‘Grimmar release’ ).

To create such graphs, I used python and few libraries : matplotlib, numpy and urllib. All in all, coding such simple tools in python is really convenient. Matplotlib has matlab-like api, so it is really easy to learn, yet it is still really powerful tool.

Now for simple calculations, graphs etc. I will sure use python instead of matlab, as it is so much flexible (not to mention it’s completely free).

By the way, thanks to  Bartłomiej “tarrilkir” Potrawa, there’s a new character model in Wielki Mistrz.

screenshot_02052010_092550135

EDIT: Added third graph which shows percentage of downloads for windows and linux version of the game.

Wielki Mistrz development is over

December 29th, 2009 by krajek No comments »

Bump mapping effect in Wielki Mistrz

Few days ago we decided to finish Wielki Mistrz development. We are happy about the quality of final product.  For me personally, it was both biggest and most enjoyable complete project I have took part in so far.

Our last release is mostly bugfix and maintanence but there are some gameplay improvments also. Now, monsters have health bars over their heads, it’s easier to use items and cast spells.  Also we tried to implement bump mapping, but we could’t make it stable on some computers, so we decided not to include this in public release.

I wish to thank everyone who worked or supported this project, during last year. I hope you were enjoying this experience as much as I did.

Monsters health bars

I updated all download links and added few screenshots to the gallery.

Our idea was to be always open to the community so we public all our sources by svn repository : http://krajek.vipserv.org/mistrz

Source code is located in :
http://krajek.vipserv.org/mistrz/main/build/

If you want to play Wielki Mistrz please go to Wielki Mistrz page :
http://casualcoder.pl/productions/wielki-mistrz/

That’s all folks, thank’s a lot once more.

Wielki Mistrz released

November 4th, 2009 by krajek No comments »

Few days ago Wielki Mistrz was released. For detailed description and download links please go to Wielki Mistrz page. I have been working on this game for about a year now, and finally, the final product is almost finished. We plan for one more maintanence release before completely abandoning this project. Please feel free to download and enjoy!

Here are few screenshots from game :

Direct link to Wielki Mistrz page :

Wielki Mistrz – description and download

Efficiency of manipulating strings in C and in C++ way.

September 30th, 2009 by krajek 2 comments »

Often we are said that using std::string is really bad idea  in game programming. People assume, that std::string and generally c++ streams are good but slow, so one should avoid them in real-time application like games. Hovever one of the optimization rules say that you should’t assume anything and always check if optimization really helped. So I wrote a liitle and simple test to see, if C style string manipulation methods are really that faster.

By C style I mean using char * as string type and functions from  printf and scanf family. By C++ style i mean using std::string and using streams.

I prepared three simple tests, each one examining one common task :

  1. Concatention of three strings into one.
  2. Parsing three integers from string.
  3. Serializing three integers into string.

These tests are really trivial, but are good enough to give some infomarmations about efficiency of each method. Here are functions for test 3.

void CStyleSerializingTest()
{
	const size_t bufferSize = 64 * 1024;
	char buffer[ 64 * 1024 ];
 
	for( size_t i = 0 ; i < iterationsNumber ; ++i )
	{
		sprintf_s( buffer, bufferSize, "%d %d %d", number1, number2, number3 );
	}
}
 
void CppStyleSerializingTest()
{	
	std::stringstream sstream;
	std::string result;
 
	for( size_t i = 0 ; i < iterationsNumber ; ++i )
	{
		sstream << number1 << number2 << number3;
		sstream >> result;		
	}
}
 
void CppStyleSerializingTestWithClear()
{	
	std::stringstream sstream;
	std::string result;
 
	for( size_t i = 0 ; i < iterationsNumber ; ++i )
	{
		sstream << number1 << number2 << number3;
		sstream >> result;	
		sstream.clear();
	}
}

I made two types of functions for c++-style because the clear() method has huge impact on the results.

Here is the file containing test results :

Number of iteration : 2000000
CONCATENCTION TEST test results : 
Cstyle : 1.093750 
Cppstyle : 2.562500 
 
PARSING TEST test results : 
Cstyle : 0.796875 
Cppstyle : 0.875000 
 
PARSING TEST WITH CLEAR test results : 
Cstyle : 0.812500 
Cppstyle : 8.078125 
 
SERIALIZING TEST test results : 
Cstyle : 1.250000 
Cppstyle : 0.937500 
 
SERIALIZING TEST WITH CLEAR test results : 
Cstyle : 1.250000 
Cppstyle : 7.593750

As we can see in every test but one c-style is more or less faster then c++-style. Of course test measured only execution time. Using std::string may cause dramatical memory defragmentation, which can be a silent performance killer. On the other side, if you’re not manipulating strings in every frame, but only in loading stages, performance issues may not be that important, especially on PC’s with lots of memory.

Source Code : String Test Vs2008 Project 8.52 KB

Hello world

September 22nd, 2009 by krajek No comments »

Of course at the beginning I have to write traditional hello world. If you don’t know who I am, please consult About Me . At this page I will show my productions to the world and share some thoughts and informations mainly on gamedev (of course if there will be anything interensting enough to write about ).

If you are here  for the first time, please take a look at my Productions, maybe you will find something worth checking out.