The tribulations of a young indie game developer.

Feature creep

I’m making a confession today, I’m suffering from incurable feature creep. Feature creep is defined by Wikipedia as “the ongoing expansion or addition of new features in a product, such as in computer software. Extra features go beyond the basic function of the product and so can result in over-complication, or “featuritis”, rather than simple design.

That basically means that whenever I develop a game, I have to fight against the uncontrollable urge to make it bigger, better and more complex to the point it is difficult to even finish it. This is very problematic because it makes developing the simplest games a long and tiring process and prevents them from actually being simple, which is often a big downside. I recently experienced a very concrete example.

As regular readers already know, I am currently developing my first Android game in my (very sparse) free time. What you might not know is that I’m also currently developing my second Android game. Seeing as my first game was  taking an unusual long time to complete and being very eager to finally release a game to the Android market, I decided to invest an hour or so in porting an old game of mine for this new platform. I figured it would be a good way to go through the whole process in a time-inexpensive manner.

As you might have guessed, I couldn’t manage to just port the 2 year old game as it was. I started fixing a few things, then added a few features here and there and it quickly turned into something unmanageable. As of now, I have two unfinished games laying around on my desktop and don’t have quite enough time to finish either.

Fortunately, summer is right at our doors and it should give me sufficient free time to finish both in the following weeks. Either way, I have learned a lesson the hard way.

Apologies

In my last blog post, I complained about motion controls on mobile platforms. To quote myself, “I have yet to play a game that makes good use of accelerometer controls [...]“. Well, that is not true. Of course, there are most definitely a lot of games that actually work well with the accelerometer but one that comes to mind right now is called Speedx 3D. I’ve been playing it in the last few days and it’s definitely putting the accelerometer to good use. You are going through a tunnel (in 3D) and tilt the phone left or right to dodge the obstacles. It’s actually very simple gameplay but it does run like a charm. You should give it a try if you haven’t already.

(on a side note, I just added Paper Pilots to the Games section)

Back to square one

My first Android game is nearing completion and it brought me to an interesting realization. My main concern with the game since I started development has been performance, duh! This is pretty normal for a mobile game but combined with the other limitations such as absence of keyboard and screen resolution, it feels a lot like developing for earlier platforms.

Graphics

As I have previously mentioned, I am developing my game through Adobe AIR because ActionScript is by far the language I’m most comfortable with and I really don’t have time to learn a new one right now. This is of course an important overhead and poses some considerable performance issues compared to native C++ or Java. I therefore had to do some obvious optimization but even that wasn’t enough, the first versions of the game were extremely choppy even though not much was happening on-screen. I ended up pulling some very dirty tricks I thought I would never have to use again and it really brought back memories of when I started developing for Flash a few years ago. Back then, you couldn’t even consider using vectors or actual collision detection, only puzzle games were fluid, these were the good times. As we speak, the game has up to 60 sprites on screen and it runs reasonably smooth on my HTC Desire HD. I still don’t feel quite satisfied with the framerate but I doubt it will go any higher with that much content going on at once.

Keyboard

There isn’t one. While developing this game, I’m having countless new ideas for other games but you really have to be creative to pull out the best gameplay when the only available user input is a touch screen. You can of course use the accelerometer but I am not personally fond of it. I have yet to play a game that makes good use of accelerometer controls and we all know that sketchy controls is the first killjoy. Still, I have a few games in various stages of development (mostly not started yet) which I think have a lot of depth in the gameplay even with just the touch screen.

Screen

Developing for Flash, you get used to being able to pick the screen resolution that best fits your game. You can literally come up with your own dimensions and aspect ratio, as long as it will fit in a browser. This presents a lot of obvious advantages when trying to be creative but on the Android platform, the screen resolution is basically 800×480 or 480×800. It doesn’t leave much to the imagination.

All in all, these limitations are not as bad as I make them look, take a look at the Android Market and you will find thousands of visually impressive games with very rich gameplay. I myself am quite proud of the game I managed to develop and am about to release.
Also, I actually love the feeling of coming up with fun solutions in very limitative contexts just as I used to make RPGs on my TI-83 :)

Twitter account

This is late news now but I created a twitter account a few weeks ago and forgot to blog about it. I’m hoping since tweets are significantly less time-consuming than blog posts, it will result in much more frequent updates from me. I make no promise on that though.
Anyway here’s the link, follow me!

Procrastination is a very common issue amongst independant developers. It is often referred to as the act of replacing high priority tasks with lower priority, more pleasant actions. This process can directly lead to guilt, stress and of course severe lack of productivity.

It is unfortunately too easy to find good excuses not to work when the only person you have to justify to is yourself and I often see developers asking for advice on forums for ways to overcome this phenomenon. If you don’t do anything to fix the issue, it can quickly become a major obstacle in the development cycle of your game.

The obvious solution would be to quit kidding yourself right now and start being productive but the mind is capricious and this is often easier said than done. I have myself come up with a very simple solution : commit to some work every day. Trying to gear up for a huge amount of work will often result in more procrastination but you can probably convince yourself to do a very small amount of work daily a lot more easily. Anything will do, fix some sound effects, add a “Try again” button, anything. This should be a first step in regaining  momentum and it essentially has 3 main advantages :

  • Slow progress : this is the obvious one, even if you do end up procrastinating your game will see some progress every day and will eventually be finished. Yay!
  • Work more that expected : often when you are commited to do a few edits to your game, you will notice a lot more in the process and you’ll quickly find yourself doing more work than you first intended. If you don’t, you’re probably not doing the right job.
  • Motivation : the more time you spend away from your game, the harder it will be to come back to it. If you do some work on it every day, you will have the added motivation of seeing it come to life and it’ll be a lot easier to get back to it at any given time.

Now, I’m not claiming that this solution is perfect or that it will work for everyone but it does work for me and it sure won’t hurt you to try it. That is, if you don’t keep telling yourself you will try it later :)

Just a quick heads up to let you all know that Paper Pilots was released this week!
As usual, you can play it on newgrounds.com, let me know how you like it.

I am taking a short break of flash games as I am currently doing a 10 weeks internship as an iPhone/iPad developer. I had heard a lot of good (and bad) things about Objective-C and so far, I’m really loving every minute of it. I will have more to say as I progress but learning a new language is a very refreshing experience!

Mobile development

Last time, I blogged about getting an Android phone. I today have the pleasure to announce you that I have 2 different games currently in development for Android. Both are pretty small games that I intend to also release for flash in the next weeks. This is a new experience to me and I’m very excited to get my first game on the market.

On a side note, Paper Pilots just found a sponsorship and should be released shortly!

New operating systems

That’s right, with an ‘s’. It’s always exciting for me to discover new technologies, especially on the software side of things. Being a Windows XP user for nearly 10 years, saying I haven’t been spoiled with operating systems is an understatement. Installing Windows 7 last year has been some relief but I really had a blast this past month getting my hands on two very different OS.

Fedora 14

I am by no means a Linux guru, I have only had the chance to play around with it a few times over the years but always found it to be very pleasant. There’s just that hacker feeling that makes using it feel like a daily achievement. About two weeks ago I decided to finally make the jump.

I have an HP mini notebook that I carry around with me to school for mundane tasks and it was factory equipped with Windows 7 Starter. I didn’t really have any specific issue with it but always thought it was sub-optimal, especially for a mini laptop. I decided to finally install Linux and at first opted for Ubuntu Netbook Remix which is specifically designed for such use. Everything worked perfectly fine out of the box except for one little detail, a very important one though. It wouldn’t shutdown or suspend. At all. Now I’m aware that Linux always comes with its share of little compatibility issues and whatnot but that seemed like a very serious problem and even though I wouldn’t accept it at first, I was no match :P I ended up downloading Fedora 14 and managed to get it perfectly working in a matter of minutes after install. Drivers could be found pretty easily and it runs just as smooth (if not more) than Windows did with a lot more eye-candy such as Compiz.

I’ve now been using it for while and find it to be surprisingly very efficient and intuitive. I don’t plan on going back to Windows anytime soon, for my laptop at least. My work computer will unfortunately have to suffer the everyday mishaps of Windows 7 for compatibility reasons (Flash, Visual Studio, etc.)

Android

The real surprise of the month has been Android, the smartphone OS by Google. I just bought an HTC Desire HD and litterally can’t take my hands off of it ever since. It’s important to note that I previously had never owned a smartphone, or any kind of cellphone for that matter but even then this one seems like one of the best there are. The clerk at the store was genuinely excited to sell it and made it her affair to make sure I knew how much jealous she was. I am also told I am the first one in the region to buy one (I live in Quebec, Canada), which contributed to my own excitement.

The phone features an 4.3 inches display which looks beautiful in one’s hand :) I am still amazed to find out all the features the people at Google are coming up with such as Goggles and Google Maps with the compass turned on. Being a tech fan, I’m having this ‘how did I manage to live without that for so long’ feeling and have yet to discover most of the phone’s capabilities. The big downside so far is the battery life. As expected, the over-sized display doesn’t really help and you can barely manage to make it through the day on a charge with regular use. This is not really an issue for me as I rarely end up far from an energy source for days at once but it’s worth noting if you are of the more adventurous kind.

Overall, both Android and the Desire are just wonderful and I have a feeling this will be my favorite toy for a while :)

New theme!

I just changed the theme to Spectrum, by Ignacio Ricci. The last one had been standing for nearly two years I think and this one looks so much more vivid and fresh in my opinion, let me know what you think!

Happy new year!

Once again, way too much time has passed since I last posted on this blog. I have been very busy this year doing a lot of freelance work, amongst other things. I took the resolution to try and post a little more often, for better or for worse.

For the first entry of the year I have chosen to tease you all with a screenshot from my next game, which is nearing completion and should be online in the next few weeks/months. It’s a game I have had in mind for a while now and finally decided get around to it.

Keep your eyes peeled because I have a lot of big-ish scale projects going on for 2011!

Follow

Get every new post delivered to your Inbox.