BLACKISH DEV BLOG Support
 

 

AppStore Dangers

Approval
Let’s say you’re not one of the me-too developers and you spend months developing a controversial game and even though you’re certain you’re not violating any part of the iPhone SDK Agreement, some anonymous Apple-employee deems your work inappropriate for the AppStore. ( – Before you even started development you contacted support and explained your idea to them asking if they saw any problem there, but of course you never heard back…) So you can reply to appreview@apple.com (of course no one ever mentions a name, a phone-number or a proper reason in those rejection mails) and argue, but unless you’re able to make a big fuzz, you won’t ever hear back from them. Unless you now want to cripple your game by changing random things and hopeing that this will make it more appropriate for the AppStore, the only thing left to do is to try and submit it again as it is and hope for a more open-minded Mr. X to review your game this time around…

Payment
Apple splits the world in 7 regions and you’re only paid for each region where you sold more than $250. If you sold less your money won’t go away, but Apple keeps it until you reach $250 in that region.
At the end of each month you have to wait for the Monthly Reports. You’ll get one from each of the 7 regions about 2-4 weeks after the end of the month, detailing how much you’ve sold in each region. Then you have to wait about another month until you’re actually paid.
So if you’re spending your last money on developing the next big hit, remember to save enough so you can pay the rent for at least two more months.

Refunds
Even though you only get about 70% of the price, if someone asks for a refund you pay the full 100%, leaving you at a 30% loss. So if are an indie and huge crowd decides they’re unhappy with your App, they can effectively ruin you.

These are just a few things to be aware of when developing for the iPhone…

Leave a comment

Raw Data, XML and PHP

Tim Berners-Lee did a talk at TED about open, linked data, and even though the talk was a little weird, it was also sort of inspiring…
In short his point is this: Don’t just put your documents on the web, put your raw data on the web.

So for the next game I will release highscores-data as XML-files! (Of course I’ll also make a pretty website for all the people who don’t appreciate raw data as much as Tim Berners-Lee…) The cool thing about the highscores in XML is that everyone who’s willing can easily create his/her own highscores-site!

Now for the boring part:

The XML files are created with PHP5’s XMLWriter class. Since I couldn’t find a good enough example on how to use it, here’s one for you:


$writer = new XMLWriter();
$writer->openURI('myXmlFile.xml');
$writer->startDocument("1.0", "ISO-8859-1");
$writer->setIndent(true);

$writer->startElement("highscores");
$writer->startElement("record");
$writer->startElement("rank");
$writer->text("1");
$writer->endElement();
$writer->startElement("player");
$writer->text("Racer1");
$writer->endElement();
$writer->startElement("countrycode");
$writer->text("US");
$writer->endElement();
$writer->startElement("laptime");
$writer->text("26.42");
$writer->endElement();
$writer->endElement();
$writer->endElement();

$writer->endDocument();
$writer->flush();

This will result in XML-file like this.

I’ll post more info about where to access those files and how to use them once the game has launched…

Leave a comment

Возраст Керлинг

Wow. Yesterday saw 1426 unique new players entering Age of Curling!
Too bad only 50 of those actually paid for it…

The 50%-off-sale together with the World Men’s Championship caused a bit of a spike in sales, but nothing compared to yesterday’s overall-users-spike when version 1.2.8 got cracked and put up on every single russian iphone site in the universe…

Phew – good thing I live in fairytale-land where you don’t have to pay for food and rent…
Well, at least it’s out there and people seem to like it… on that note (google translation):

Надеюсь, вам понравится игра, пожалуйста, сообщите своим друзьям!

PS: boring bonus-fact: Overall piracy rate isn’t too bad. Currently it’s at about 66%, so for each paying customer out there, there’s 2 pirates… Rumor has it that for PC-games it’s about 90%…

Leave a comment

The Next Game

MAY 2009

well, sorry, it’s still a little too early to tell you any more than this… BUT: if you’ve got an iPhone or iPod Touch and want to be a beta-tester – let me know now :]

Leave a comment

Not the next game

This was supposed to by the first BLACKISH game. I basically only started work on Age of Curling because there was a bug in the first release of unity iPhone that prevented me from finishing this game. But it’s still alive and kicking, the bug has been fixed a long time ago, and it will see the light of day sometime this year…

Leave a comment

Modo script: Export As FBX

Unity doesn’t support Modo‘s LXO file format directly, so we have to use FBX. I can’t save all my files directly as FBX though since FBX doesn’t store much of the Modo-specific information that LXO saves (try saving an LXO as FBX, close it and open up the FBX, you’ll see…)

That’s why I work with LXO files and only export to FBX every time I want to see the updated model in Unity. This results in going through the boring Export As dialog quite often. well… not anymore!

This little perl script exports your active scene as an FBX with the same filename and into the same directory! Install, set to a shortcut, 6 clicks and 10 seconds saved every time you export!

Installation:
Copy into /Users/LoginName/Library/Application Support/Luxology/Scripts/
Execute by typing this into the command field at the bottom right in Modo: @ExportAsFBX.pl
• Set a shortcut key by dragging the command area big enough to see further options, go to the Undos tab, right-click on the entry of @ExportAsFBX.pl that was just created when you ran the script, select Map Command to Key… and choose the shortcut you want!

5 Comments

GDC from home

Since the cost of going to GDC equals funding of about 2 months of development, I’m watching the events from home. Here’s some articles that caught my attention and some random comments to go with it though:

2D Boy talk about the development of World of Goo. They calculated that development cost about USD 96.000,- (that is for a team of two and two years of development time). Of those 96k they spent 4k on hardware, 1k on software, 5k on QA, 5k on localization and 5k for legal fees. That leaves 76k for living, thus around USD 1.500,- per person per month. (at the moment that converts to about EUR 1.100,-)

That’s pretty close to what I’m currently aiming for… It doesn’t take big investments to become an indie game developer – you need a home, a computer+software and enough money for food. – With a normal place, normal insurance, no car and no special treats it should be possible to get by with around EUR 13.000,- per year. The problem is this though: If you don’t manage to make a great game in that time, you could just as well take that money and throw it out the window… or go on a half-year vacation… or give it to charity… It’s all about the quality and originality of the game!

Monkey Ball iPhone Lessons: mostly blah blah, but 2 interesting points: They think waiting a long while before dropping the price caused it to have a bigger impact then. Who knows… could be true…
And number 2: For iPhone games, user reviews are much more important than any review score anywhere on the web. My experience is the same and I have data to support it… :]

Skip this boring list of game development tools, Unity is the way to go.

Neill Young hypes his own business field, announces endless sequels to best-selling game and wow – ngmoco managed to secure $10 million in funding? impressive…

Leave a comment

Unity 2.5 is out and iPhone OS 3.0 was announced

Unity 2.5 is out – New Interface, lots of improvements and Windows support. Looking good! Almost too good… oh please don’t get bought by Autodesk or the likes…

iPhone OS 3.0 was announced… lots of interesting stuff, but not all too much that will change my life drastically. The one novelty that caught my special attention was ingame-purchases.

On one hand it’s a good idea: it allows you to set a very low price-point for your game (which lets you stay competitive with all the low-price-crap – 25000 Apps are out there now), yet gives you the opportunity to make more money from people who like the game. BUT on the other hand it’s very very very bad because I can already see everyone trying to charge for everything possible…

Leave a comment

Alpha Issues

Unity being able to read PSD files is great! But not so much if you’re using transparency, since then all files end up as Premultiplied with White, yet they are treated as Straight RGB by Unity…

Look at the first row here:


Broken… Here’s 2 ways to fix this:

  • Create your own straight RGB + alpha channel. The simplest (slightly hackish) way to do this is the following:
    1. Flatten everything (make sure you have no background layer), Select Pixels (Cmd+LMB on the layer thumb), switch to Channels, create New Channel, fill with black, deselect, invert.
    2. switch back to the layers palette, duplicate your layer about 50 times until pretty much every pixel that’s not black in the alpha is opaque here. fill the background in any color you like, it won’t matter… (unless this is for a texture that will be mipmapped… in that case choose the color wisely or use something like the (free) Flaming Pear Solidify A Filter in Photoshop to fill the gaps…)
  • Save for Web and Devices as PNG – this will save it Straight, will look right in Unity
2 Comments

Premultiplied vs. Straight RGB


A simple example of what’s the difference between premultiplied and straight footage: Here’s how a black pixel at 50% opacity is treated in two different cases:

  • Premultiplied with white: in RGB the pixel is saved as grey (half-transparent black on white) and the Alpha-Channel is the same grey (fully opaque is white, fully transparent is black, so 50% opaque is 50% grey)
  • Straight: RGB: any transparency is being ignored, the black pixel is saved as straight black. Alpha: 50% grey

Note: Premultiplied with black would coincidentally yield the same result as Straight in this case – but not if your image contains anything else than black and transparent blacks!

No matter what the RGB is, the Alpha is always the same.
So why would anyone ever want to use Premultiplied?
Well, 2 reasons:

  1. Some programs can divide the background-color out of the image and display a proper result (check the Footage Interpretation dialogue in After Effects for example), it’s only a problem when a program interprets Premutliplied footage as Straight…
  2. because premultiplied footage is easier to look at and doesn’t look broken to anyone who isn’t “in the know”…
Leave a comment