I remember a time about as eight years ago when I was first researching the game industry. The general consensus at that time was that the days of the small "garage" team game developer was over. Games now cost millions of dollars to produce and thousands of man hours. Furthermore, specialization was the norm. Not only were their designers, programmers and artists, but also specialists inside of each of those fields. The conclusion: making a game on your own or with a few talented friends was no longer an option.
Fortunately, the indie game developers weren't listening.
Now, more than ever, the environment and technology are open and supportive to small, independent games. An abundance of tools have cropped up that target the small indie studio. Torque, Unity, XNA, and PlayFirst are just a few examples of low cost or free game engines. Just as important are the avenues of distribution that have opened up. Services such as Steam, XBox Live Arcade, Kongregate, and many other services have come up that directly focus on smaller games. Finally, there are new platforms that make sense for the indie game including the PC, web, Facebook, iPhone, and Windows Mobile. The point is that the barriers of entry are now lower than ever.
I'm not saying that it's easy. In fact, the competition is overwhelming on all of the promising platforms I named above. But there is one thing to keep in mind: Three years ago, few people took game development on the iPhone seriously. Now it is one of the most prolific platforms for games. The same is true of Facebook. If these examples are indicative--and they seem to be--there is a huge market for the more "casual" games that indie studios are best at.
No, I'm not talking about getting a bunch of kids in a room to play your next game. I'm talking about the need to focus or you'll never get anything done! There are so many variables to consider when first starting an independent game that it can be overwhelming.
Once I had decided that I was going to get serious about making my own game, I was immediately lost in the details. What kind of game did I want to create? Which platform and language should I use? Should I use a game engine or should I just start from scratch?
Decisions, decisions, decisions.
Ultimately I used two criteria to make these choices: experience and resources.
I asked myself, "What programming platform do you have the most experience with?" Although I am fluent in C++, I also did a great deal of development in Visual Basic and C# in my previous business. I had a lot of experience in .NET web development as well. Knowing that anything done in C++ doubled or tripled development time, I decided to use on C#. I also decided to use the web because I could leverage my existing knowledge of ASP.Net development. This would allow me to target the web as well as Facebook with my game.
I realize the C# and .NET aren't the most common tools to use for game programming, but this leads to the second criteria: resources. In the beginning, I knew the only resource that I had was me, so I chose the platform that would allow me to produce meaningful results in a reasonable amount of time.
I also knew that my greatest limitation was art. I am no artist! So, when it came to picking a game design, I chose a type of game that was not art intensive. I needed a game where even I could supply the art if needed, and hopefully I could get a real artist involved at some point in the future.
So, there's my focus: a web based game--written in C# and ASP.Net--that doesn't need a lot of art. Having this focus is what allowed me to move forward. My advice: moving forward is always better than not moving!