Friday, January 1, 2010

Happy New Year!

Happy new year everyone! I'm a computer science student in college. I, like the majority of aspiring developers, want to create something great. Much of my interest has been in graphics, gaming, and the like. As such, I decided to start with a game I've been thinking about for quite some time. I'm still working out the details, but within the next few days, I'll hopefully have a demo of what I am thinking finished. (It is almost there! My goal was to finish it tonight, but I think I am going to fall a little short.)

I have found it difficult to start this project. The Korean proverb “작심삼일” always came to my mind (Korean proverbs just come to mind, you know—serving as a missionary in Korea does that I guess.) Every time I thought about actually creating something from the ground up led to this classic “resolve lasts three days” mentality: You get an idea, work on it for a short period of time and then give it up because you lose interest. This has been the pattern of most of my personal development. My college and part-time work environment has taught me, however, not to give up so quickly and to work in smaller pieces to accomplish something larger.

(Countless forum posts could be dedicated to the idea of working from the ground up, gradually building your skills, and not creating the next “blockbuster game” overnight. Here is just one example on the XNA forums for Microsoft. I have personally found this to be a true statement. As I have taken the advice to do design and planning beforehand, break everything into small pieces, and take everything one step at a time, I have progressed much quicker.)

I have seen how difficult it was for me to understand how to think about computer games and how to develop them, especially during the early stages of development. As such, I have started this blog with the intent of writing about computer software development, with an emphasis on computer gaming. I hope that a newcomer (or even those who are experienced) can design maybe a little bit better because of this information in this blog, using my own project as an example (granted, it may not be the best example, but it is an example). Eventually, I will likely open source the project so I can get perhaps a few others to help me out with it and it will give me a chance to allow others to see how I implemented the ideas I talk about here.

Thus, my goals for this blog/project are the following:

  1. Give back to the programming community by helping those that may be starting out in game (or other) programming. I plan to do this by writing weekly on a topic relating to software design, or introduce terminology that may not be known to the beginner. I have found that learning through practical experience is necessary in order to fully comprehend what the concept entails. I, for instance, was taught the importance of having good variable names in programming classes during my early college years, but did not really understand why they were important until I had to be a group lead for a project that I have now seen to about 95% completion. I had to be thrown into a situation that required me to learn that working as a team was important and that naming consistency was key. Having a variable named “stuff” did not quite cut it.
  2. I've seen a lot of games out there that are mediocre or have not been done as well as I think they could have been done. On the flip side, I've seen some games that have done very well and that have even inspired me to do what I plan on doing (the recent New Super Mario Bros. Wii is a good example). I've wanted to create a game that is excellent and that many people could enjoy. This is another part of the reason why I have decided to open source the project when I get a solid demo finished: I have seen the abilities of others and want to benefit from what can happen with peer review of code and ideas. Right now, I guarantee you it is not where I want it to be; it is far from it. But, I have hopes for the project to be something that will eventually be enjoyable for many.
  3. Help motivate me to finish the things that I start. (This is a big one personally, as I mentioned earlier)
I hope that you will enjoy reading this blog, enjoy watching this game progress, and that you will have a happy new year!

0 comments:

Post a Comment