<<Previous Archive | Next Archive>>

Impressed by the EU

Generally I don't like the European Union. But I'm totally impressed by their administrative offices. Try it out yourself: Simply write an email to one of them. You will receive an answer within just a few hours. And the best: You will get the answer clearly written in your native language - no matter in what country the office is, may it be Spain or for example Belgium.
Really impressive. Especially if you compare this to the incredible slow reaction times of Austrian officials, who would need months for this. But I don't want to start thinking about how much overhead it is to have translators for all 23 official EU languages sitting in every office..

New Game: Bankenkrise

There is a new board game named Bankenkrise (youtube video, german). Great work.

My first AIR application

Just out of curiosity, I just created my first Adobe AIR application. I took the Darkness Springs beta game and made it work with air:

It was a very painless process, but there are some things which are not that ideal in my opinion:
Just some first impressions. But it's a nice framework anyway.

skAI lib

skAI is an library Artificial Intelligence library for C++. It includes support for pathfinding, crowd simulations, basic behaviors like wandering, going to and similar. There is an Irrlicht Engine integration Demo available on the website.

ActionScript 3 Obfuscator

I just released an Actionscript 3 Obfuscator named irrFuscator. It's free and can be downloaded from ambiera.com.

Background story:

The problem with high level languages like C#, Java and ActionScript is that the binaries of the compiled programs are very easy the reverse engineer and to steal or to modify them. This problem is pretty huge especially with SWF files: It's pretty common in the flash developer community to steal the code or even whole games of other developers in this way. Latest example:
The official web site of the Beijing O'ymp'cs featured a copy of the game Snow Day.
So to circumvent this problem, you usually use code obfuscators to make it harder for people to steal your code. And when I started developing the game Darkness Springs, I didn't find a good code obfuscator for Actionscript 3 which fitted my needs, so I simply wrote my own one. And I am providing it now for all other people with the same problem, for free.

And the name 'irrFuscator': Yes, it's ugly, but I really was to tired to invent a better new name :)
(Visit website of irrFuscator).

And you thought programming games is fun

Programming games is fun, right? Especially if you are doing this for a living, and get money for this. Right? Think again.
I just calculated that I started and played that *censored* game about 400 times this week already. I just cannot see it anymore. And it's only Thursday. [nope, not talking about Darkness Springs.] ;)

Trick for solving extremely nasty programming problems

Once in a while, I get to the point where I have to fix a bug or program a solution for a tricky problem and I am simply unable to do this. Simply because the limits of the system or architecture do not allow a clean solution or the bug is that complicated, no matter what I try to do, it won't vanish. Usually, I would sit there for hours, nearly banging my head against the desk trying to solve the problem anyway, and every minute I am spending in front of it I get the feeling the lines of code get blurrier and the solution of problem won't come closer but goes farer away.
I think almost every programmer already came into this situation. One simple trick to solve these situations which always worked for me is the following: Simply stand up, go out of the office and go for a walk. Don't think about the problem anymore and try not even to think about anything programming or work related. After you've reset your mind in this way, get back to the computer and - tada! - in most cases the solution now appears somehow magically. This 'trick' even has proved to be more efficient than postponing the problem to the end of my task list or even 'ignoring it for now'. :)

European Adsense Wanted

Woha, one Euro is now worth 1.56 Dollar, or one Dollar 0.64 Euros. The Euro was never that strong and the Dollar that weak before. Looks like soon my customers overseas will vanish, I guess. And additionally: Isn't there an European Adsense alternative anywhere? I only found adsense comparable U.S. internet advertising companies so far. Maybe a gap in the market?

Darkness Springs Beta Video

Last weekend, I uploaded a youtube video of Darkness Springs, because the game is currently in closed beta and some people wanted to see it in action already. So here it is:

The video was made in about 30 minutes, and looks quite crappy. I really don't have a talent for cutting videos :) The background music is a remixed version of one of the tracks of the actual game background music, but it sounds really bad after the youtube conversion.

How to treat your employees in software development

It is fascinating that the management of a lot of software companies are wondering why their employees are demotivated, quitting all the time and why the quality of their software products is so low although they need ages to develop. In most cases the reason for this is that they are simply treating their developers in a wrong way. I've now worked for a lot of IT companies on a lot of projects of different types, and especially since I am freelancing, I have seen the internals of many companies from different branches. There are very good managers, but there are a lot of bad ones. And most of them don't even have a clue what they are doing wrong. Here is a short list of things I think managers should know about us:
I bet there are some more items I could add on this list, but I think these are the basics.

Darkness Springs Closed Beta launched

Today the Closed Beta of the Darkness Springs rpg (the game I've been working on recently) has been launched, and the first impressions are ok, IMO. So finally time to start blogging about the game. :) As you can read on the now updated website of the game, it is a 'single player online role playing game'. It is written using Flex, that thing I've shortly blogged about a few days ago. The game is actually quite huge for a flash game and it was fun creating it. And, although done using Flex and in 2D, it has a relation to Irrlicht. Take a look at the screenshots of the game. Don't they look familiar somehow? :)
Darkness Springs actually is the final realization of the game which was originally planned by me in the year 1999 and which should have been named 'Irrlicht'. It is even using some of the graphics created in 1999! In November, I blogged shortly about the old abandoned game, with a screenshot of its old website. So finally the 'Irrlicht game' is coming to reality, even if it comes with a nearly 10 year delay :)
The closed beta phase will run for a little time now, but depending on the amount of bugs and problems found, will turn soon into an open beta test. I hope it will be soon :)

Debugging typos

I really want to bang my head against something when I spent an hour debugging a problem again and found it to be a simple typo. For example, I found the problem in the following code (not originally C++ but translated to C it would look like this). It simply should count the numbers of bits set in a value:

value = some value where we want to count the number of bits set in it.
testBit = 0x1;
bitsSet = 0;
for (int i=0; i<16; ++i)
  if (value & testBit)
    bitsSet += 1;
  testBit << 1;

See the problem? Yep, it's the last line. Instead of 'testBit << 1;', it should read 'testBit = testBit << 1;'. Argh. Too bad the compiler didn't write a warning, because that line doesn't actually make sense at all, in any case.

WTFs per minute

I like the idea of WTFs per minute. 'WTFs/m' really IS a very good measurement of code quality. Today, for example. I wrote some piece of code to read some external xml based file format, which contains ingeniousnesses like these:

<object data="px=3:py=34:kx=df:dy=236:kpGk=2:§jjb=:jjt=px=29|py=24|dx=0|ky=0| fpr=0|bjp=0|btk=0|vrp=0|pjq=-2|kjr=0|pbq=0|qk=0:jwt=px=65|py=24|kx=0|ky=0|fr=0|bjp=0|btk=0|pbq=0|qkt=0:jwb=:jqt=px=29| py=24|kx=0|ky=0|fpr=0|bjp=0|btk=0|vrp=0|pjq=-2|kjr=0|pbq=0| qkt=0:jqb=:bqfp=:bjfp=:ukTf=:" />

Great, especially if you have no idea what 'kpGk' and 'jwt' and similar is. I think the other people in the room were able to feel the fun I had by just counting the WTFs. :) But after all, this is what takes the boredom out of our job, right? And, at the end of the day, you are at least happy that you figured it out and overmastererd that beast. :)