Saturday, March 6, 2010

Long year, new Resolutions

It's been almost ten crazy months since I've posted this. I've graduated, visited my ancestral homeland, moved back home, and landed a job as a computer science teacher at a local community college. I've read Ayn Rand's masterstroke Atlas Shrugged and come to see objectivism as a philosophy which tells you it is not a shame to be good at what you do or proud of it, as long as you don't exploit yourself or others to do it. I've toyed with intermediate XNA tutorials, but I'm still not quite proficient enough to make game programming a career instead of a hobby. I had let my projects sit empty for months, not wanting to make games just to impress someone else. I was feeling burned out before I had even really started.

It was about a week ago that I discovered this game called Cave Story. It's a modern throwback to 8-bit 2D side scrollers from the 80's and 90's. It may seem strange by western standards, since it was developed in Japan, but it maintains it's own style and identity in a field where imitation is more common than innovation. The remarkable thing is that it was created by just one guy and it shows more polish than games with one-hundred developers. yes, I know it was developed over the course of 5 years, which some considered an epoch by technological standards. I know it is much easier to make a 2d game than a 3d game. Somehow the game still casts a large shadow over the industry as a whole. It says that the creative power of an individual is more important the the collective ability of a group. As a rugged individualist and someone intrigued by Objectivism, the game means a great deal to me. It inspires me to get out of my lethargy and develop my own games.

Monday, May 25, 2009

Well, School's out, my headache's going away, and I can pick up this blog from where I left off. I'm sure you have heard of Monty Python before. One day, some guys decided to create a new scripting language based in c with a powerful command prompt. I don't think it was their intention to turn traditional coding on its head either, but they did succeed in that regard. check out this block of code.

>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print n, 'equals', x, '*', n/x
... break
... else:
... # loop fell through without finding a factor
... print n, 'is a prime number'
...

2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

the above is code which creates a list of prime numbers. The logic should be easy enough to follow. the interesting trick is how the two for loops, break, and else all work in lock step. if the embedded loop finds a prime, the break statement returns the the next step of the first for loop. If the embedded loop doesn't, and it has gone through all its iterations, then the else code block is called in response and prints 'n is a prime number'. It's a good example for why you want to think about your programming logic in order to get more effective results.

(python code referenced from www.python.org. Go check out this language. It does a lot of fun things with syntax and logic)

Thursday, April 30, 2009

I should have known starting a blog during my last semester would mean I wouldn't have time to post things on it regularly. I've got three major coding projects for my classes that I need to finish in two weeks. Once school's out, I'll get back to my hobby programming. It's like this: some things are really important while some things only seem important. No matter how ambiguous or hard things get, you can't let things that seem important get in the way. It's tough sometimes, but when you are making the right choices, you'll know it.

I wish I had time to say more, but those programs aren't going to write themselves, at least not until someone invents the successor to the Turing machine. In the meantime, check out this article from computer world for a fun trip down programming's memory lane.

Saturday, April 11, 2009

XNA, tools for basement game makers

I've come to tell you about Microsoft's own integrated development environment called XNA (which stands for XNA's Not Acronymed if you cared). A few years ago, Microsoft decided to create an application toolset for writing 3D games which extends Visual Studio, Microsoft's main developer suite. The great thing about XNA is you can focus on writing code or creating content for your game and let the framework work out most of the hard details.

For example, if you want to create a 3d game from scratch, you'll need to find a 3d library like OpenGL then write a dozen data structures to manage 3d geometric objects, camera position, camera movement, render order, updates to objects, and so on from scratch. With XNA, all you have to do is write your high-level game logic and import your game's content - images, sounds, and levels - into an XNA project. You can write one version of your game, then you let the XNA framework do 95% of the work porting it to Xbox or PC (you'll still need to hard code the controller or keyboard buttons. They can't let you be too lazy!). You can also use Visual Studio Express to write tools for making games, such as level editors.

XNA is a nice compromise between completely open source toolkits like OpenGL, with learning curves our like sheer granite walls, and content creation programs like FPS creator, which only let you customize within the context of the editor. There are a couple downsides. First, XNA is free for you to download and use, but publishing your game requires you to join the XNA creators club, which costs $99 a year. If you think that's pricey, keep in mind that an Unreal 3 license costs $350,000.

With all that said, XNA is still a good resource for potential developers to practice with. Getting into the industry requires knowing the tools your dream company uses, but any development experience still counts. Bedroom programmers, this will get you started on making your dream games one step closer to reality.

Saturday, April 4, 2009

The Mission Statement, or Why am I Here?

I suppose the best way to start this is to begin at the beginning and continue to the end. Hello, my name is Michael Brennock. I am a programmer who went to the Game Developer's Conference this year. It was an amazing experience. If you are a programmer who is remotely interested in game development, I recommend you go. There is nothing like going into a large room full of people who have done amazing things and realizing they are your colleages, not your idols.

I realized that I need to learn more about the many technologies that are used in the industry. To that end, I am starting this blog to commemorate my time spent learning to program specifically for video games. I'm in my final semester of college, so I'll be pretty busy with classes. I still plan to work for at least 5 hours a week on something related to game programming, then post my progress on Saturday. I'll also keep track of languages, tools, and other things that are useful or cool. Speaking of cool technologies, check this out.

That's all for now. Next time, I'll talk about my Microsoft's XNA Game Studios.