Mailing List

Archive for December, 2008


Colour-Blindness Simulator
Tuesday, December 23rd, 2008

I was creating my “How to Play” screens for the front-end this morning and I realised that I needed to load different art if the user had their game set in “colour-blind mode”. This got me thinking about what my game actually looks like to someone who is colour-blind. As I’ve mentioned before, one of my testers has one form of colour-blindness, but I wanted to see for myself what it looks like.

I did a search on the internet and found this cool page:

The site allows you to upload a picture or webpage and view what it looks like in 3 different kinds of colour-blindness. The webpage converter is a little flaky (it doesn’t seem to handle CSS at all), but the image converter is cool. I took some screenshots of my game running in colour-blind mode and fed them into the converter. It immediately showed me a problem with my special items icons. In normal mode the special items have some transparency in them to let the colour behind it show through. However, looking at it in simulated colour-blind mode, I could see that there wasn’t enough space around the icons to identify the shape behind it. I made some changes to the scale of the images in colour-blind mode and I think it works much better.

This Vischeck thing is really cool. I hope that more developers start paying more attention to colour-blind players.

Owen

On App Store Pricing
Monday, December 22nd, 2008

A friend of mine pointed me to this blog post on App Store pricing:

  • On App Store Pricing (blog.instapaper.com) – I recommend reading the article and the two other articles that are linked to from the main page. They’re all extremely worthwhile reads.

The authors of the various articles are arguing that the pricing structure for apps in iTunes needs to change. The argument is that developers pricing everything at $0.99 is unsustainable and that it will lead to the App Store being filled with abandonware and junk.

The post is particularly interesting to me as I’ve recently started seriously thinking about what I’ll end up charging for my game. I’m sure this is something every iPhone developer struggles with. My game will be competing with games written by people in their spare time who hope their game sells well, but whose livelihood isn’t dependent on it, so they sell their game for $0.99. However, this is my job. If I don’t make any money off this game, I don’t get paid for the 6 months of work I’ll have put into it.

I’m not trying to complain; I have absolutely loved working on this game. It’s been a blast working for myself and creating a game from scratch with a tiny team. The experience alone has been worth it. That being said, if I can’t make a living doing this, then at some point I’ll have to find a salaried job again…and I really want to be able to make a living doing this. So I struggle with trying to find a balance between how much work went into the game, how much I think it’s worth, and how much I think people will pay for it. It’s tough…

Some of these answers may become more clear to me once I’ve released a game and I’ve been able to track the sales numbers. I’ll have data that I can start to draw some conclusions from. However, for now, I’m kind of working blind; gleaning whatever information I can from other developers’ sales blog posts.

On a more holiday-related note, after Wednesday I will probably not be posting for at least a few days as we head to my wife’s home town and then mine for Christmas. So if you celebrate something this time of year: Happy Holidays! If not, then have a great rest of December!

Owen

Usability Changes
Friday, December 19th, 2008

I spent today making usability changes to the game. Several of my testers had noted that certain mixing rules for the colours took longer to learn than others. Today I put in a “Mixing Guide” popup. If you look at the screenshot of the game posted on the Dapple site, you’ll see a colour wheel/palette at the bottom of the screen. It was there to provide the user a hint as to what colours mixed to form new colours. However, now if you hold your finger on the colour wheel, a handy popup comes up that actually shows you each of the mixing rules for your current colour. I think it should really help new players learn the rules of the game better. The best part is, the solution didn’t require any new screen-space! Hooray!

The other big change I made today was to the colour-blind mode art. One of the people testing my game is partially colour-blind, so the feedback I get from this person is great. They pointed out a few issues they were having with the art as I had currently done it. Today I completely reworked all of the colour-blind mode artwork and I think it’s much more successful. I know that I find colour-blind mode much easier to play with the new art. Once I get a new build out to the testers I’ll see if they find it to be the case.

Technical part of the post now (nerd alert!):

Earlier this week my artist pointed out to me that semi-transparent whites in the game weren’t blending properly so yesterday I spent the afternoon tracking down yet another alpha blending bug. The problem was this, for anyone else who runs into this issue:

In my OpenGL initialization code I was initializing alpha blending like this:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

This is the way most websites (and the OpenGL Red Book) tell you to normally initialize alpha blending. This produces the effect that you normally want from a blend. However, what I hadn’t realised is that when you load a PNG textures through UIKit or Quartz (i.e. you load it into a CGImage or a UIImage) the iPhone pre-multiplies the alpha! This means that if you have a texture that’s got a semi-transparent white in it, when you layer it in your scene, it will actually darken the texture behind it. This is not usually the desired behaviour.

The solution is then to ignore the source alpha on the source, but still use it for the destination, then do your own alpha modulation at the time you draw the texture. So the blending function you want is actually this:

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

Then when you go to draw the texture, modulate the colour of the vertices by the alpha value for the verts:

glColor4f(red * alpha, green * alpha, blue * alpha, alpha);

Now you’ll have stuff blending the way you want. HOWEVER, if you started with the CrashLanding demo, it has some really handy code for drawing dynamic text. Because these textures are created on the fly, their alpha is not pre-multiplied. This means that when you’re drawing the dynamic text textures, you have to change the blending function back to the original one above. So you need two different blending functions, depending on whether or not the texture was loaded, or created dynamically. Isn’t that fun?!

If you want a much longer discussion on this, read this forum thread (most of the relevant stuff is near the end of the thread):

Thanks to a friend of mine for helping me find this info. I’m not sure if he’d want me to mention his name or not, so I’ll leave it out for now.

Have a good weekend everyone!

Owen

Keep On Keepin’ On
Thursday, December 18th, 2008

My goodness, two days since my last post! I’ve been busy.

As I somewhat expected, I didn’t get any responses from the press release-type emails I sent out. I think I need a different campaign. I think I need to contact editors directly with personal emails, instead of generic ones. I’m going to hold off until I have a version of the game that I can send them as a preview though. I don’t want the press playing the game I’ve got just yet. It needs more polish before I let reviewers have a peak at it.

Yesterday I got two big things done: I implemented the save system for the game and I implemented the High Scores screen. The save game system was surprisingly easy to set up. I had already set up a user data save system for the game options, so it was mostly a matter of determining how to store the game state and when/where to read and write it. The cool result of it is that the game now saves your state if you leave the game and you can resume it the next time you boot it up. That was pretty cool the first time it worked.

The High Scores screen seems less exciting, but it was probably the most complicated screen in my front-end, so it feels good to have that done now. I had been putting it off, but now it’s done and it looks great. However, I did have to make one design decision which may annoy some people: I had to limit the user’s high score name to 8 characters. That’s all that will fit on the high score screen. It was either that or truncate the name in the score screen at run-time, but I figured it was better to let the user see that their name is being truncated while they’re still able to change it.

Oh, and some bad news about my audio memory leak from last week: it hasn’t gone away. Apparently it went away in the one test case I had used. When I put the full music tracks back into the game, the memory leak appeared again. As far as I can tell, the leak is occurring in an OS level call, so I’m not really sure what to do about it next. I’m going to put it on the back-burner for now while I continue with feature implementation. It’ll have to get fixed during bug fixing time.

Another big step forward for the game this week: my artist delivered the last of the artwork to me. Now it’s all up to me to get it into the game. Very exciting stuff!

Owen

Marketing vs Coding
Tuesday, December 16th, 2008

I’ve spent the last couple of days focusing on getting some marketing stuff off the ground. It’s a hard decision to make when the game’s not done. It’s really hard to stop coding for a couple of days and just work on trying to get people to talk about your game instead.

As I posted yesterday, I launched a page for Dapple, so check that out if you haven’t already. I also sent out some press release emails to a bunch of gaming news sites, especially ones with a focus on iPhone games. I’m not sure if I’ll get any posts out of it, but it’s worth a shot. A lot of the iPhone games sites really concentrate on games that are released and don’t talk much about upcoming games.

Once I get into January I’ll start releasing more details about the game. Once I get the game to a beta state I can hopefully send out some preview copies to review sites and try to generate some interest in the game.

This marketing stuff is all new to me, so I’m finding it challenging…but I’ve never been one to back down from a challenge.

Owen

Home | News | Games | Store | Press | Blog | About | Contact
©2008 Streaming Colour Studios

Powered by WordPress with Streaming Colour Studios theme designed by Chris Picheca.
Entries and comments feeds.