Dylan.Blog Writing and musings by Dylan Reed

Falling Cats or How I Learned to Love Feature Creep

I just released v. 1.0 of Falling Cats on the iTunes Market for free. So go download it… I’ll wait…

It isn’t “finished” but then what game ever truly is finished as envisioned by the creator. I worked my ass off making this project and am pretty happy with it. Without Harper forcing me to release it I may never have released it. Falling Cats was a project that I started in 2010 0r 2011… not really sure. I got the basic idea down and then shelved it because I had other things going on in my life.

I got it out again because Will and I wanted to make video games. Here was one that was at like 60% done. We connected with another dude who wanted to do graphics. It was great… but then it happened.

Feature Creep:

Feature creep, creeping featurism or featuritis is the ongoing expansion or addition of new features in a product, such as in computer software.[1] Extra features go beyond the basic function of the product and so can result in over-complication rather than simple design. Viewed over a longer time period, extra or unnecessary features seem to creep into the system, beyond the initial goals.

The problem was that we drifted away from a simple game where you caught cats in a basket to a crazy game that at one point had bosses, bonus stages and what not. The problem is that these things were all hard to implement in Gamesalad. Not impossible just outside the scope of what I could figure out… so development dragged, people lost interest or focus and life got in the way.

About three months ago I made the decision to get rid of boss fights. Which was a positive. I also lightend up the menu system trying to keep as much as possible in one scene. The scene would load at the beginning and after the initial load there was nothing else to load. So it was a lot faster. This was the positive step. Unfortunately I lost sight of gameplay and focused instead on making sure that it had a credits screen and in-app purchases and all that crap. This slowed development down further.

By dragging my focus from making a fun game by trying to add features not necessary to the main gameplay I was making a crappy game with a lot of unfinished features. Some of those features are in the current version of the game but when the next update comes it will be a cleaner version of the game. It will be awesome.

When I re-started building this game I did a lot of reading on game development. I learned that shipping a “finished” product is better then never shipping. The nice thing about development is that you can always fix bugs but you won’t know about them unless people are seeing your game. Plus once you have the game figured out you can add features with future updates. In fact all of the things I wanted to put into the game can still be added.

Lesson learned from this experience: K.I.S.S. It is more important to make your product (game or not) do what it is supposed to do first. Get all that crap figured out and then worry about how cool it looks or what other features you want to add. Also make sure that every feature you add to the product adds actual value to the product, either for your user or for you, and isn’t just cool in your head.

One of the hardest parts of this project was relying on others for parts of the game. Some of the graphics and all of the music were done by other people. It was hard relying on others for things I wanted right away. It was also hard to work on a project for as many hours as I did and find out that someone hadn’t done even a little bit on their part or had worked on something else that wasn’t important to the core of the game. Of course no one was getting paid so I can’t blame them too much.

If I were to do the project again I would start from scratch. Gamesalad was great but the limitations of the program didn’t allow me to do what I wanted. The time I spent figuring out something in Gamesalad could have been used learning python or java or any programing language. This would allow me to move on to other projects immediately afterwards instead of now learning to program.

So what’s next? Updating Falling Cats to get rid of some of the nonsense that is in it. Maybe release a few themes for in-app purchasing… but maybe not. Outside of Falling Cats I have a few other projects that I am excited about and will hopefully be able to get done quickly and without a bunch of feature creep.