Orion's Belt Tactical MMO

It’s is interesting to see how the community use the tools and apis we provide. I’d say that sites today without APIs are loosing a lot. Making the users contribute with content and tools makes them more loyal to our product, because they feel that they are contributing to something. Also, they’ll want to show the work to their friends, and that will also increase exposure.

On our browser game, we provide an API for players. It is still very simple, we’re planning on providing many more funcionalities. Even so, we already have a lot of community applications out there:

The other level of participation is on translations. Launching the Orion’s Belt Translation Project is proving to be a great idea. Players already translated the institutional website to Croatian, Italian and French, and we have the game UI also in Croatian.

For all the tools and translations, we try to reward the players kindly.

MySQL on full UTF8

May 11th, 2009

On the Orion’s Belt Translation Project we had no problems with encoding, until a player from Croatia told us that Croatian’s characters weren’t being properly persisted. I tried a direct update:

update Lang set Text = 'č,ć,ž,đ,š'

And MySQL complained with an invalid characters error. To fix this I had to change the column encoding to UTF8 (was latin1). But the application still wasn’t  behaving properly. The application was sending to MySQL the following query:

update Lang set Text = 'c,c,z,d,s'

I don’t know who was transforming this (maybe the MySQL connector). To fix this I had to edit the connection string, and add the utf8 charset:

Server=s;User ID=u;Password=p;Database=d;CharSet=utf8

After these steps, everything worked fine.

Filipa Brazona and the Insert Coin’s crew came to our facilities to make a story about Orion’s Belt. The show aired yesterday and you can see our part in here.

Unfortunately they forgot to include Tiago:( And a link to the game. :( Even so, we think that this was a great promotion and we’re already getting new players that saw the show.

We’re going to try to get the show on video and upload it to youtube, maybe with english subtitles. 

Crossposted from the Orion’s Belt official blog!

Contra @ Little Big Planet

March 8th, 2009

Boy, how this bring back memories…

Seen at Gameover Blog.

For the record, I’ve written the following guests posts on buildingbrowsergames.com:

ASAE’s against inviting friends

February 20th, 2009

My boss told me the other day that ASAE had fined the company because we have a web site with an Invite a Friend functionality. They stated that this kind of functionality is considered to be a pyramid scheme and therefore illegal by law.

How unbelievable is that?

My head hurts. I'm porting a .NET application to Linux/Mono, and everything was working out fine, except the connectivity to the MySql database.  I don't have experience as an administrator, so I had a machine set up, I installed mono (after so many time I still have to compile stuff on Linux? Come on!), the application worked, but I had the following issues:

  • I could connect to mysql on the production server using
    mysql -u user -p
  • The application couldn't connect to mysql on the production server (using localhost)
  • The application could connect to mysql on another machines
  • The same application on another machines could connect to mysql on the production server

At this time I didn't know if the problem was with mono/application or with mysql configuration. So I run a Python script that connected to localhost and it worked fine... Then I downloaded the MySQL .NET provider sources and started to break some rocks (Portuguese expression).

The provider only said something like:

Unable to connect to any of the specified MySQL hosts.
---> System.Exception:
Exception of type 'System.Exception' was thrown.

Very usefull information as you can see. After digging up, this exception was being thrown like this:

C#:
  1. StreamCreator sc = new StreamCreator(Settings.Server, Settings.Port, pipeName);
  2. baseStream = sc.GetStream(Settings.ConnectionTimeout);
  3. if (baseStream == null)
  4.     throw new Exception();

Really classy material. The actual exception was being thrown by:

C#:
  1. Socket socket = ...
  2. try {
  3.      socket.EndConnect(ias);
  4. } catch (Exception) {
  5.      socket.Close();
  6.      return null;
  7. }

Oh yeah! What more can I say?

After patching the mysql .net provider with some logging, I had the real exception:

System.Net.Sockets.SocketException: Connection refused

The I did something that I should have done a long time ago:

# telnet localhost 3306
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Well, it's proved that it wasn't an application / mono problem. Why did it work with direct mysql on the console and Python? Maybe because they connect using a pipe, instead of the TCP stream that the provider uses, I really don't know.

And wouldn't know how to fix this, but my colleague Paulo Pires came and saved the day. It seams that mysql was configured to use a binding to local named address, and because of that refused connections to localhost.

Starting a new game business

February 18th, 2009

Nice presentation: Starting a new game business.

However, I always feel quite wierd about business/marketing content. I'm a developer, if I have to do something, I just code it. But disciplines like business, sales, marketing, feel so abstract to me... It's like: «to promote you site you should use social networks». Ok, nice. But _how exactly can I do that, what steps should I take, etc, etc_...

Under Siege Dev Journal

January 31st, 2009

As I said before, Under Siege is a game under development for PS3 made in Portugal. They have just lauched a dev journal. Nice pictures:

Under Siege Pre-Alpha screenshot

Under Siege Pre-Alpha screenshot

 

Big Party!

January 22nd, 2009

A picture is worth a thousand words. :)

(Click to enlarge)