Streaming Colour Dev Blog

The trials and joys of indie games development


How Much Hair Pulled Out is too Much?
January 6th, 2009

My audio issues are becoming increasing frustrating. This morning I decided I would try to simplify things. I had seen other apps handle the music thing like this: if the user is playing their own music when the game starts, let their music keep playing; if the user isn’t playing music when the game starts, play the game’s music. I figured this would be easier to implement (and it should be).

I got curious about how other games handle things like this: start the game with no music playing, then attempt to start music via the quick music pop-up (double-tap the home button to bring it up anywhere on your iPhone/iPod touch) once the game is running (this causes my game to hang right now). I started going through other games on my iPod touch and tried combinations of starting with and without music. I ended up with all sorts of problems: games freezing, music refusing to play, the iPod’s music player jumping around between albums even though it’s not set on random, games playing music the first time I boot them, but then refusing to play music and refusing to accept touch events the next time I boot them.

For example, I booted Rolando while my own music was playing. The game kept playing my music and allowed me to play fine. I quit the game and stopped my music. When I reentered Rolando, no music played (including game music) and touch events had a 5-10 second delay on them rendering the game unplayable. It seems unlikely that this is a problem with the game as I experienced similar behaviour with other games. This is what I like to call “Good Times”.

In short: I’m not sure my iPod touch is stable anymore. I’m wondering if some of the bugs I was seeing are problems with the iPod? Or perhaps my bugs caused problems with the iPod? I’m tempted to do a hardware restore and see if things become more stable. Rebooting the device doesn’t seem to be helping much.

In non-audio related news, Gamasutra has a feature article up today about iPhone game development in 2009:

Now if you’ll excuse me, I’ve got an iPod touch to wipe out.

Owen



Audio Problems
January 5th, 2009

If there is a God of programming, I think it is a vengeful God. I think I’m being punished for saying that I was a pretty good programmer the other day…

I’ve spent the last few days trying to getting Audio Sessions working with the game. Audio Sessions are the iPhone’s way of handling audio priorities. Basically, your iPhone app has little control over audio priorities on the device; you set up an session inside your app and tell the iPhone how you want it to treat your audio: should your audio stop the user’s music from playing when it launches, or should it mix with whatever other audio is playing, for example.

I followed through some example code and I thought I had things working, but it’s not working at all. I’m trying to do something a little more complicated than is standard: I’m trying to let the user decide whether the game’s music plays, or whether they want to hear their own music. They’ll be able to flip a “switch” in the game to change modes. From reading the docs, it looked like this should be straightforward. However, I’ve run into several problems:

  • I don’t get the audio interrupt calls I’ve registered for - this makes it hard to know when audio states have changed.
  • Changing the session category isn’t working - if I switch from a category where my music takes priority to one where the user’s music is supposed to have priority, their music doesn’t play.
  • Changing categories is causing serious crashes - I don’t know why this is happening, but if I change categories and play/stop/play user music in a certain order, I can lock up the iPod touch I’m using. It won’t even let me shut it down unless I hold the “off” button down for 60-120 seconds, eventually it kind of shuts down in stages and reboots, but then the audio system is all screwed up until I do a second manual shutdown of the iPod. Not good. The real kicker here is that the debugger disconnects from the device as soon as it locks up, so I haven’t been able to tell what’s going on. Awesome.

So today has been a rather frustrating day so far.

I’m starting to wonder if it’s worth re-writing my whole audio engine to use the new audio system that was introduced in OS 2.2. The downside of that is that my game would require users to be upgraded to OS 2.2 and I can’t find any data on what percentage of users that is. For now I’ll go back and re-read the audio session documentation, I think.

Owen



I’m Baaaack
January 2nd, 2009

Happy New Year, everyone! I hope that 2009 holds good things in store for you.

I’m back at work today after being off for over a week. The break has been great. I had expected to work quite a bit over the holidays, but I didn’t end up doing any work. I think it was good for me to get away from the game for a while and hopefully I’ll be able to come back to it fresh. The next month is going to be extremely busy and tiring, so I’m glad I took the time to relax a bit before the big crunch.

Seeing as how we’ve entered into 2009 (that sounds like we’re living in the future, doesn’t it?) I thought now would be a good time to go over some of the lessons I’ve learned so far about indie development:

  • If at all possible, separate your “work space” from your “life space”. I’ve been working from home for 6 months now and I love it. However, my wife and I live in a tiny (under 600 sq feet) apartment so my office is in the same room as the living room and dining area (the whole room is only 12 x 12 feet). While this didn’t bother me at first, the longer I work here the more I find it difficult to separate work from not-work. When I’m on the couch watching TV, my computer is almost right next to me and I often end up thinking about work when I should be relaxing. When we can afford to move into a bigger place, my main requirement will be that I have a separate room for my office.
  • The idea is easy, the implementation is not. This is not a new lesson for me, this is something you learn very quickly when you start working in the industry. However, when you’re doing everything on your own, it becomes even more apparent. I spent nearly the first two months of the project just prototyping. I had what I knew to be a great idea for a game, but it took me two months of trying different implementations to find something that was really fun to play. I’ll admit it: that surprised me. I was convinced that the original idea I had would be fun, but it wasn’t. The game I have now uses the same core mechanic (mixing paint colours), but the game is totally different from what it started as.
  • Game development is expensive. Don’t let anyone tell you that it’s not. Granted, start-up costs for a business like this are significantly lower than a business that requires retail space, inventory, employees, etc, but it still costs money. However, I did have hardware and software costs, contractors to pay, etc. I also realise that my budget is minuscule compared to a 10-30 million dollar blockbuster title. However, it’s my money that I’m putting up for this. Maybe I should have looked for investors at the start, I don’t know the answer to that. I like that I have complete control over the product I’m developing. For better or for worse, the game is mine. When the game is released I’ll provide some budget numbers (don’t expect a detailed breakdown, it’ll be very high level), but for now it’ll have to wait.
  • Ideas generate ideas. Several months ago I posted an entry stating that every day I was going to try to write down an idea for a gameplay concept, a game mechanic, an environment. The idea was to build up a massive document of ideas that I could draw from. This worked really well for a few weeks. Forcing myself to come up with ideas grew new ideas. It was a great cycle to get into. However, as the game development gathered momentum, I stopped writing in the ideas document. Without forcing myself to come up with new ideas, fewer ideas were being formed. I had an idea this morning that I wrote in the book and noticed that my last entry was Oct 30th. I need to get back into the habit of doing this. It will be very important as I finish Dapple and get ready to move on to my next game.
  • Don’t try to do it all yourself. This is really about knowing your limitations. I’m not trying to be egotistical, but I’m a pretty damn good programmer. I’ve been doing it a long time and I feel like I know what I’m doing. I’m confident in my abilities to solve problems of a programming nature and that I can learn the things that I need to learn. However, I’m not a professional artist. I’m not a musician. I’m not a sound designer. I think a lot of indie developers are tempted to do it all themselves. It’s that attitude of “I know how to use Photoshop; I took an online course,” or “I took an art class in high school that I was pretty good at” that gets people into trouble. When I started I was tempted to do the artwork for my game myself because, yes, I am fairly proficient with Photoshop, and yes, I did take a lot of art courses in high school and university. However, I realised that by doing so, I wasn’t playing to my strengths. I realised that my time would be better spent programming and paying someone whose job it is to create art, to create the artwork for my game. I think this was the correct decision. I’m extremely happy with the artwork, sound design and music I got from the people I worked with. While it cost me money instead of just time, I think I’ve got a much high quality game with a lot more polish out of it.
  • Have fun! It seems like an odd one to have to state, but at the heart of things, I’m doing this because I love doing it. There are times where it feels overwhelming, like it’s not worth it, that it’s just too much work and too much risk. Those are the times where you need to step away from the development and remember why you started doing this in the first place: I’m doing this because I love making games and I want to make the best game I possibly can. What’s better than that?

Happy 2009 everyone!

Owen



Colour-Blindness Simulator
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
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



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

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