12.17.2009

I'm going for it

I'm gonna do it. No more screwing around, thinking about new game ideas, writing everything down, getting excited, then letting it sit. I'm going to finally put my ideas in motion.

I've discovered via GameDev.net that there's a way to send in games you write in C# (C-Sharp) and XNA to.. I guess some sort of organization that reviews your games and potentially will post them to the Xbox Live Arcade so people can download it. I've seen the indie section on the Arcade and always wondered how people got their games posted there. Now I know.

But, the problem is that now I have to learn C# to even get started, and get really good at using it and XNA to make something decent.

I've been programming websites (on a remedial level) since I was really young, so the concept of plugging code into a program and letting it work has always come natural to me. I learned PHP, SQL and kind of brushed over Javascript over this past spring and started developing websites, databases and web applications. I'm actually pretty good at it for the small amount of time I've practiced using it, if I don't say so myself.

But holy crap, C# is a whole new level of complex. I just started learning it and figured it was going to be pretty easy to pick up since I learned PHP and it didn't take me much more than a few months. Boy, was I wrong.

As a side note, I was actually offered a job developing in PHP for a company here in Salt Lake City, but I turned it down. I'm actually glad I did. If I took it, it could have been my portal to getting some sort of senior level PHP programming position in a year or two and making some serious money at my first ever career. But, things happened the way they did and here I am, doing PHP development work on the side, planning on opening a web site development/programming/computer repair business in addition to a part time job where I mostly sit on my butt during the time I'm scheduled to work. Anyway...

C# makes PHP look easy. In C# you have to tell your code EVERYTHING that you want it to do. PHP does a lot of assuming when you write code and it works well that way because PHP doesn't do very advanced tasks by comparison. Now I'm getting buried trying to learn C#'s nuances and new concepts and it's all very overwhelming. Now that I think back to it, I had the same experience learning PHP and I overcame it by just jumping in and solving problems as they arose.

XNA, in short, is a collection of C# code that was written to help develop games in C#. C# essentially has code libraries that you can install and/or read from that make coding a lot easier. In fact, you can do that with pretty much any programming language and for most of them it's pretty easy. The problem with XNA is that I seem to have to know everything that is going on, and I can't just call code, let it run and be satisfied with that. I don't know why, either. It's kind of annoying. Stupid inquisitive brain!

But anyway, enough about programming.

The game idea I have is a side-scrolling, sword-fighting, magic-wielding adventure game. I'm not going to lie - it was inspired by Shadowrun for the Xbox 360, my most favorite multiplayer game to date. Some of the magical abilities I'll be using will be similar, but there will be many more nuances to gameplay that add depth and strategy beyond what Shadowrun offered.

For example, in Shadowrun you can be one of four races. The four races are decent attempts at making four totally unique starting points to build a custom class and roll with during the game. The only problem is that they kind of step on each others' toes a bit too much and eventually the classes you can create kind of run together. Plus, the Dwarf race sucks and is easily the worst race in the game, making it all but obsolete.

I'm taking the class idea a full step forward and adding power levels to the abilities you can purchase, as well as 4 distinctly different races, and a 5th race (Zombie) that is circumstantial and moreso a heavy modifier to any one of the 4 already existing races that completely changes strategy once it's thrown into the mix. I chose this route because I needed a consistent foe to fight throughout the campaign, and I wanted to make this game extremely deep and diverse in it's multiplayer.

So, you can say it was legitimately inspired by Shadowrun. It's not a rip-off at all and in fact the two will play completely differently, feature different races (outside of humans) and I've added and removed a bunch of magical abilities from Shadowrun that will, I hope, separate it quite distinctly.

I'm really excited about the project and I felt this was a good starting point for me since most of my other game ideas are more suited for when technology catches up and is capable of doing what I want to do.

So, here I go! We'll see how this changes the course of my life as time passes.

3 comments:

  1. No offence but it seems your getting a bit ahead of yourself here. Going from web scripting languages to a full on Object Oriented language can be quite a jump. Though this game sounds like a cool idea and I applaud you for wanting to do this, just be aware there is a long road ahead of you before you can really even start something like this. I'd say start off with some small applications and games before starting in on this in ernest or you'll find yourself way in over your head. Welcome to development hell :P But ya, using C# and xna is nothing compared to say developing in c++, but I think it's a GREAT place to learn and to start. Also there are many reasons why you have to do so much stuff yourself in most languages, it's because it allows for more efficient code (which is why c++ is the be all and end all for AAA games), it allows for more flexibility, and allows for more predictable code. Basically the higher level the language the more you give up speed and control.

    Anyways, since it's obvious this is your brain child here, I'd say take the time to really learn XNA and C# and game programming in general before you get into something like this. I mean jump in head first sure thing, but just make sure to take the time to ensure the waters deep enough. If ya ever need any help or are looking for programmers, I do know c# and have experience with XNA. I'm also in the game development stream of Comp Sci at my school so i actually know a bit more of the specifics in making a game.

    ReplyDelete
  2. I really appreciate the input.

    For what it's worth, object-oriented techniques are something I already know and use in web programming. Learning C# thus far has not been all that difficult.

    I know I have a long and grueling road ahead of me, but I'm very willing to learn and my ideas are what drive me. Making an application I won't care about later is not something that will drive me to learn the things I want to learn.

    It's a building process and I have to start somewhere. My experience with PHP, SQL, Javascript, etc are at least helpful in understanding programming concepts as a whole.

    Again, thanks for the input.

    ReplyDelete
  3. Also while the Object Oriented in web will help you with some of the learning process, the way in which most OO languages inmplement and use them can be quite different. Same basic idea but the difference in application means difference in the way you use them to some extent. So just try not to make too many assumptions based off of prior knowledge, but still you that knowledge to your advantage. Think of it sorta as the difference between using a normal wrench and a socket wrench.

    ReplyDelete