The Beginning: Dream.Build.Play 2011
As long as the XNA framework has been available to the development community, I've been interested in giving it a whirl. I never really got serious about it, only reading the occasional blurb, running the occasional demo and thinking of it as a nice distraction or hobby as opposed to my career as a business software developer. I've worked with a wide variety of languages and development environments including 6+ years of .NET experience. I've been involved in designing and developing desktop, web and mobile software, most recently in Java (web), Objective-C (iPad) and Ruby (web). Since the last year of my development career took me away from .NET I decided to re-engage using XNA as the vehicle to do so.
My best friend, Jason, is a gaming junkie (like myself, but on steroids); PS3, XBOX 360, DSi, table top, you name it has, can and will play it. One day, he shared a dream with me of starting a game development company and that he'd like for me to be the lead developer. He's an idea guy and I have the means to make those ideas a reality. Perfect. So I started planning long term. "Let's build a game engine then start building games on that platform", I said. He had a different idea: let's forego traditional software design theory and just go with it. Let's create a game in rapid fashion and see where we land. Oh, and why not submit that game to Dream.Build.Play 2011!
I was a little bit taken aback I'll admit. I would have to forget everything, or so I thought. Out of the gate, I coded furiously, with a goal of roughing in single player mode first, then branching out. Our game concept has flavors of games like Puzzle Fighter HD, Tetris, etc. (but has it's own special aspects that we hope will make it interesting) and I figured single player would be a great start. I knocked out the basic gameplay in about a week, complete with basic combos and chaining (one of the features of our game is that you don't match colors or shapes, as is tradition - more on that later). This was done with very little design and only one project (not including Content) instead of multiple libraries per subsystem (as my long term plan would've included). I was doing rookie things like reading input right from the various built in controller/keyboard classes, hardcoding strings, game logic and about anything else that would fit into the main game class. If I needed an outside class for clarity, I just coded it up below the Game class and it was getting messy, but it got me there.
It is from this point on that I will make future posts, presenting my dilemmas and design decisions that took me to the next phase of the game development process. I'm still actively developing the title and I'll continue to contribute as I go. We eventually hope to open-source the game after it's had a little time to live on XBLIG. I hope you will follow along, comment, contribute, etc to help this become a resource for other aspiring indie developers beginning their journey.