2007-02-18

 

There's more than one me out there!

I had an interesting story recently, but was waiting for gamedev.net to be back up&running again. So...

One day I got an email like "Hey Aras, where are you we need to finish up our project soon". Ok, I don't know who is the sender, know nothing about any project I should be "in", and the sender's email address does not match the signature, so I just marked it as spam and forgot about it.

A couple of days later Paulius forwards me a message from the same sender, saying that he can't reach me, the project has a deadline soon, so he started looking through nesnausk.org and write to other people out there.

I still thought this is some advanced new form of phishing!

I check the website from the signature of the sender. It's a real website; a bunch of people developing (or trying to develop) a MMO game. In the "technology" section of the website was a link to in.out.side demo: "this is a techdemo of the engine we developed". WTF!?

Contacting the original email sender revealed all the story, which is quite simple in fact. They were looking for a programmer and found someone posting on gamedev.net forums, saying he has done in.out.side demo that won Imagine Cup 2005. He presented himself as me (with a slightly altered name) and agreed to work with them. How is this thing called by the way? Identity theft? Some time passed, in my understanding they haven't ever seen any code from that guy, and then he just disappeared.

What makes it funny though that the guy never received any money from the job he was supposed to do either. I could understand reasoning behind presenting oneself as some other guy, taking the money and then running fast - but presenting oneself as someone else, doing nothing and getting nothing in return? Does not strike me as a viable "business plan"...

The moral? Never trust anyone online, especially if they are from Lithuania :)

 

Getting political (Iraq)...

Watch this now. 'nuff said.

2007-02-01

 

What's wrong with this code?

Here's a short function:
inline int SecondsToEnergy( float time )
{
return FastFloorfToInt( time * (float)(1 << kEnergyFixedPoint) );
}
It's used in the particle system, and converts particle lifetime to an internal fixed point representation (10 bits for fractional part, i.e. kEnergyFixedPoint=10).

Some of the emitted particles are okay on a Mac, but completely not visible on Windows. This function is to blame.

Of course, what's wrong is the possible overflow in float-to-int conversion. Whenever someone tries to use lifetime longer than about 2097151, the conversion to signed 32 bit integer is undefined. It seems to clamp result in gcc and produce something like -1 in msvc.

Using multiple compilers can be hard, but it can also help in finding obscure bugs. Ha!