Categories
Game Development General

XNA Framework API?

The other day I decided to look through some source code of other games, and I downloaded a breakout clone written using the XNA Framework. It provided the source code, and I figured that C# can’t be that different from Java or C++, so it shouldn’t be a problem. At one point I thought that maybe C# allowed you to use two different names for the same function, such as calling Run() vs defining it as BeginRun(), but then I realized that the code I was trying to find was apparently in the XNA Framework.

I almost gave up looking for the XNA Framework API since it seems to be too difficult to find, which means that the game’s source is almost impossible to follow since I can’t find a way to start running the game. Since I do all of my development on GNU/Linux, and Microsoft isn’t porting their software over anytime soon, I am left with the source code that depends on a missing API to understand. I finally found the API in MSDN, but I had to use Google to do so. Why I couldn’t just search for it with MSDN itself I have no idea. I also wish that the documentation was a bit more useful. For instance, here’s the Game method Run():


public void Run ()

That’s it. I don’t even get to see what it is calling or doing. The comment says “Starts the game”, and I have to find a completely different part of the documentation that tells me that it “starts a loop that will call Update and Draw multiple times a second until Exit is called”. So now I know what it calls and what it does, but why couldn’t the function’s page tell me?

Is it secret code or something? I guess I am just used to seeing the code of implementations, such as C++ standard libraries. I mean, I understand that I shouldn’t have to know what the implementation is doing in order to use it, but since it seems so hard to get good documentation on what the API is and how to use it, what else could I do but go to the source?

Maybe it is because I don’t have Game Studio Express or any of the Microsoft XNA-related pieces of software. I believe there are tutorials provided, and I found a few videos that seem to explain how the content-pipeline works, so it is obviously documented somewhere. Maybe search terms like “xna framework api” aren’t the ones to use?

Well, anyway, after a few hours of research, I finally found the info that I needed. Now I can look at the breakout clone’s source code and figure out how it works. At least until I hit another mysterious XNA Framework API call, that is.

By the way, I kept hearing about how great the XNA Content Pipeline is, and I concluded that it simply integrates graphics asset collection into the same program you use to edit code. It’s nice, but I was expecting more from all the noise getting generated about it. Is there something more to it that I didn’t find in my admittedly quick research?

Categories
Games General

Game Tunnel’s 2006 Game of the Year Awards

Did it sneak up on you? It snuck up on me! Game Tunnel’s 2006 Game of the Year awards calendar is up, and two categories have already been published!

The awards have already been distributed for the Best Sports Game and the Best RPG of 2006, and I don’t think who won was a big surprise.

In the coming month, you will see awards for Casual Game, Strategy Game. Sim Game, Action Game, and Quest/Adventure/Platform of the year. There are also dates to recognize outstanding games in Innovation, Multiplayer, and “Special Awards”.

And, of course, the month ends with a listing of the top 10 games of the year, including the winner of 2006’s Game of the Year. There is still time to vote for your favorite game, so do your duty!

Categories
General Personal Development

Shut Down Your Lemonade Stand

I came across an interesting quote a few weeks ago: “If you don’t like the world sending you lemons, shut down your lemonade stand!”

If you don’t like your situation, simply get out of it! You don’t like doing homework at the last minute? Do it earlier. You don’t like your abusive relationship? Remove yourself from it. You don’t like how much you weigh? Lose weight. You don’t like your financial situation? Earn more money and/or cut expenses.

Sometimes it seems like things are more complicated than just deciding to change something about your life, but everything you do begins with a thought. Don’t just accept what you don’t want. If you relegate yourself to a life you don’t like, you can’t expect to get anything but lemons. You can be more creative, and you can create a course of action that will take you away from the lemonade stand.

If you are stuck in a routine or have a habit that takes you to that lemonade stand, it can be tough to change. There is a feeling of safety in sticking with the familiar. Just deciding that you need to change is a good first step, though. The next step is to do what you need to do to shut down the lemonade stand. For example, if you want to become healthier and maybe lose some weight, throw out all of the junk food and get yourself a pedometer. If you know that you don’t want to eat food that is bad for you, then there is no reason to keep it in your home. Get rid of it, and you no longer leave the temptation to revert to old habits.

Is there any aspect of your life that you feel stuck in? Identify your lemonade stand, and shut it down.

Categories
Game Development General Personal Development

Thousander Club Update: December 4th

For this week’s Thousander Club update:

Game Hours: 235 / 1000
Game Ideas: 507 / 1000

Target: 945

I started working on my Space Invaders clone. I first created a mind map, trying to come up with as many ideas as I could regarding the project. I didn’t want to make a standard clone when I could make something a bit different. I gave myself permission to let the ideas flow. In the end, I had a really complex game that only vaguely resembled Space Invaders. It featured multiple planets, multiple weapon types, multiple types of aliens, politics, research and development, and various resources. Even time played a role in this grand game.

Then I remembered that the point of doing this game was that it was simple. So I scaled back to the basic Space Invaders game. I could always add a feature later, but I won’t let myself do so until I actually finish the basic game.

So now that I had a good idea of what game I would make, where did I start? Fred Brooks wrote that representation is the essence of programming, referring to the data structures that you would use to code any software. Someone else once wrote that the user interface IS the game. Put those two together, and I realized that the easiest way to start working on this new project was to start with the interface.

My first running program was just a blank 800×600 window. When you press the left or right arrow keys, text would appear in the console indicating which direction you pressed. When you press space, the console states that you are firing your weapon. It was a simple yet fundamental accomplishment. It showed progress.

Then I added a background graphic, which required initializing the Kyra Sprite Engine. I then made a small alien sprite and displayed it at the top of the screen. Then I made it move back and forth along the top of the screen. Then I made a ship graphic display. Then I made the ship move depending on the arrow keys being pressed.

And just like that, taking small steps, I have the beginnings of a Space Invaders clone. Many months ago, I would probably have tried to do everything at once. For instance, the player’s ship would be an entire class with all sorts of features, like thrusters and a weapon, which would be a different class. I would try writing all of this code at the same time, and debugging would be incredibly hard. This time, I put together one thing, and it worked. Then I did another small thing. Then another. And another. Each step was simple and yet brought me closer to finishing the game.

Currently, if you press the fire button, the text still appears in the console. If you press the arrow keys, no text appears, but the ship moves. This week I will work on getting the weapons systems online, and I will work on this problem in a similar way. Previously I would have tried to get a weapon that shoots bullets that cause damage against aliens that get hit, which involves code for the weapon, the bullet, the interaction between the enemies and the bullets, and explosions. It is just too complex to handle all at once. Now, I know that I will do one thing at a time. Maybe I’ll start by creating a bullet that simply moves. It doesn’t have to do anything other than move. No damage assessment, no launching it from a non-existent weapon. Just movement. I can then worry about creating and destroying bullets. Then I can worry about the bullet-alien contact causing the two things to be destroyed.

And eventually I will have waves of aliens moving back and forth, slowly descending. Eventually I will have multiple levels. A menu system. Possibly some new, unique features?

Conquering complexity. Representation. The interface. Did I really not think about these things before? They seem so obviously useful.

Categories
Game Development Games General

December Chicago Indie Game Developer Club Meeting

If you are in the Chicagoland area or don’t mind taking a nice field trip, come hang out with the Chicago Indie Game Developer Club on Sunday, December 10th! Discuss game development and marketing, provide feedback to games in development, and otherwise be cool, awesome, and amazing. The first five people to arrive will also get to be fantastic.

Where: The Starbucks at
Streets of Woodfield
601 North Martingale Road
Schaumburg IL, 60173

When: Sunday, December 10th, at 7:00 PM

Categories
Game Development General Marketing/Business

Indie Game Dev Podcast: Interview with Thomas Warfield

I know you’ve missed him as much as I have, but Action has finally returned, and he brought along an interview with Thomas Warfield, creator of Pretty Good Solitaire.

He talks about how he accidentally got into making shareware games, that there always seems to be people saying that it is tougher to make money today versus yesterday, no matter when today is, and about trends in the industry. He also mentions that while marketing is great for getting eyeballs, a good game is needed to actually convert players into customers.

Categories
Game Development General Personal Development

Thousander Club Update: November 27th

For this week’s Thousander Club update:

Game Hours: 227.75 / 1000
Game Ideas: 501 / 1000

Target: 924

I went out of town on Wednesday, and so I have only spent a few minutes here or there writing down some notes for the Space Invaders clone I will be working on. Well, that’s pretty much it.

Oh, and I signed up for the Supreme Commander Beta. B-)

I also found that when I am away from my computer for a few days, I can get almost 1,000 spam emails and hundreds of comment spam. Lovely.

Categories
General Marketing/Business

Happy Curmudgeon Day!

Many people call today Black Friday because it is the day that most companies make all of their revenues from Christmas shopping, putting them back in the black. Stores open with lines long enough to rival a next-gen console launch due to just 6 hours in which almost all products are incredibly discounted. I didn’t know about this holiday many years ago, and I accidentally walked into a store during the middle of the sale. I figured it was just busy due to the fact that it was the first day of Christmas shopping. I picked up a copy of the Starcraft battle chest because it was only $15. When I finally made it to the register, I found out that it was $7. Good deal!

Since then, however, I have avoided Black Friday. Not because I don’t like sales, but because I don’t like the hassle of standing in a line that is snaking around the store just to buy one or two small products at a discount. Express lanes don’t count on Black Friday. My time is worth more than some discount.

And for the past few years, I have participated in the ritual of Baking. My girlfriend’s family spends the week after Thanksgiving baking cookies, brownies, and other sweets. My favorite have been buckeyes, which are peanut-butter balls dipped in chocolate. Multiple ovens are being used at once, egg timers ring almost every few minutes, and the smell of baked goods permeates the air. While there are still lots of people around, it is definitely better to be baking than it is to be standing in line to spend money.

And, of course, someone has to have a game console or two. I have played games such as Halo 2, Super Mario Strikers, and others due to my girlfriend’s cousin being a big gamer.

Have a good weekend, everyone!

Categories
Game Development Games General

Indie Game Developers Thankful for…

While Thanksgiving is an American holiday, I figure that this post might appeal to a few of you international readers as well. What are you thankful for as an independent game developer?

I can name a few things:

  • Quick and easy access to information on the world wide web covering a range of topics from game design to programming to marketing to personal development.
  • Inexpensive or freely available game development tools, such as compilers, game engines, 2D/3D art creation applications, and even operating systems.
  • Ease of distribution of digital data.
  • Personal contacts made through various forums, including the Indie Gamer forums and ASP newsgroups
  • Love…of roller coasters.
  • The people in #gamedevelopers on irc.starchat.net
  • Compound interest.
  • Qatfish.
  • The knowledge that I am capable of much more and that I haven’t done anything compared to what I have the potential to do.
  • My blog readers, who sometimes act as my conscience and keep me accountable to my goals.

Happy thanksgiving!

Categories
Geek / Technical General Politics/Government

How Well Do You Know GNU?

Recently the Free Software Foundation put forth a call for volunteers to help answer licensing questions about the GPL, LGPL, and Free Software licenses in general.

The Compliance Lab does do one job which is very public: we answer licensing questions from the free software community. When people want to learn how they can mix code under different terms, or what license would be best for their program, we try to help them so they can spend less time worrying about legal nitty-gritty and more time hacking. It’s not the most glamorous job, but it’s a unique way to help out.

If you are interested in volunteering, or even if you just want to see how well you understand the GPL, take the Free Software licensing quiz.

The questions can be tricky, especially if you are not at all familiar with the GPL or LGPL. Some things might surprise you. I answered four or five answers correctly, which shows that I have a few things to learn. Even if you don’t want to volunteer, the quiz is informative, so go ahead and see how well you do.