Categories
Game Development

We Can’t Talk Yet Since We Have No Words

I’ve talked about the book Difficult Questions About Videogames already, but I have found quite a few more resources regarding the language and vocabulary we use to talk about games.

I’m still reading through the book, but I have to say that I am disappointed in the quality of the writing. The people who put the book together said that they wouldn’t do much more than publish the results, but could they at least have made it less painful to read? Simple spelling errors, grammatical mistakes, and others could have been cleaned up and still “kept it real”. It is still an interesting book to read. It is just not as enjoyable as it could be.

In any case, I’m now fascinated by the development of a common language to use in game development. A number of the articles will point out that video game language has so far been coopted from film, but film language isn’t always appropriat or available. Sure, there are certain terms to use to describe how a game looks. And there are terms to explain the narrative in role-playing (roleplaying? role playing? check google to see that there doesn’t seem to be a consensus here either) games. We can talk about technical aspects easily. But what about words to describe how items increase in power as a player goes through a game? Or how a game can provide you a situation and the player can create a plan based on it and the actions the game provides? These ideas are abstract and can be applied to many games in different ways. They’ve only recently been identified and given formal names.

Design patterns have sped up software development research by providing a standard way to talk about software. When someone talks about Singletons or Proxies, everyone knows exactly what he or she is talking about. Similarly, algorithmic analysis allows us to talk about the difference between algorithms that take constant, linear or quadratic time to complete based upon the input.

When it comes to game development, however, we seem to have very little to say that allows us to talk to each other. For example, what I mean by gameplay is different from what you mean by gameplay, so saying that Game X has better gameplay than Game Y is meaningless. Of course, it doesn’t stop people from having arguments about it.

I will be watching this field of study carefully, and hopefully I will be able to make my own contributions.

Categories
Game Development

The Benefits of Game in a Day

I loved participating in Game in a Day, and I gained a lot from the experience. For one, I have created a game that I can continue to work on until it is a finished product. I added a few more game development blog links to my list. Also, I learned quite a few new things as well as finally understanding things that I already “knew”:

  • I still have a lot of C++ to learn.
  • I still have a lot of Kyra to learn.
  • Nothing helps more than proper planning.
  • Hacking is a lot more fun with a good plan.
  • I need to remember to make clean before packaging a project. There is a big difference between 500KB and 2.2MB.
  • After a successful build, not checking in the code before attempting to add a feature is just asking for trouble.
  • Too much Mountain Dew is bad.
  • Not planning for snacks/eating/showering is even worse.
  • It is a lot easier to see that death marches can result in a lot of uncommented code, even with the best of intentions.
  • Eating your own dog food is great for revising your design since you can find out what doesn’t work quickly.

That last point is in reference to an article by Joel Spolsky. He basically talks about the importance of actually using your software to dig out bugs and usability problems before releasing them to the public. Eating your own dog food. While I was programming, I was testing. One problem I found was the arbitrary restriction of only four directions for movement.

When I created the control scheme, I didn’t want to waste time making four more images for diagonal movement (even though it would have been a few more minutes of copy, paste, edit, and encode to .dat file), so I made the movement restriction match the images in the game. Perfectly fine, right?

After a few iterations, adding a different feature or otherwise working on unrelated code, I found myself getting frustrated. When I built the program and tried to run it, I found that the controls were just plain irritating! At one point I decided to make the simple change so that the player character can move in all 8 directions. It wasn’t huge, but that tiny difference made the game less unbearable.

My ability to create improves every time I use it. All the theory and facts I’ve learned through books and tutorials are nice, but they don’t compare to the experience of actually making use of them. FuseGB may not be a great game, and I’ve definitely made some mistakes developing it, but at the very least it has provided me with a lot of experience to help in future game development. As Gilbert Chesterton says, “If a thing is worth doing, it’s worth doing badly.”

Categories
Game Development

Part 3 of Results of June’s Game in a Day

Click below to track my June 2005 GID development progress:
Part 1
Part 2
Part 3

5:03 PM

Cans of Mountain Dew: 7
Subversion Revision: 35

Let’s take a break.

At this point, I am trying to think about what I can do to improve on the project. Right now, the main player can drop a pulsating bomb which explodes after a few seconds. The explosion will make the enemies disappear. The enemies move about in a random, convulsing sort of way.

I could try to clean up the code, but what’s the fun in that? Cleaning up the code is what you do after GID. During GID, you just try to make the best game you can in 24 hours.

I could try to improve the AI, but that would involve research since I am not too familiar with setting up scripts and the like. Everything is hardcoded unfortunately. Still, it doesn’t close off my options too much. I think I will make the enemies birth new enemies every so often. Also, if they touch the main player, the player dies.

I should probably add a new state to allow you to return to the game rather than call in the main menu state as a placeholder. I believe it also ruins the game by deleting the Kyra engine and creating it again. A new state would be much better.

6:01 PM

Cans of Mountain Dew: 7
Subversion Revision: 39

Cool. The game now pauses, although it doesn’t display anything to let you know. Bad UI, but hey, it’s a feature that wasn’t there before. It is difficult to exit the game since there is no feedback to let you know what state is active. If you hit Esc, you will pause the game. Hit Esc again, and you resume. Hit Q while paused and you go to the GameOver state. Hit Q to go to the main menu. Hit Q to exit the game. Whew.

7:04 PM

Cans of Mountain Dew: 8
Subversion Revision: 46

The enemies can now kill the player. The player can kill the enemies. It goes to Game Over, and if you want to start over again, it now restores the game properly.

The enemies are still stupid, but now the player has a DEAD state. I think it is amusing looking, although it is a bit too subtle:

PWNED!

PWNED!

8:13 PM

Cans of Mountain Dew: 8
Subversion Revision: 49

Took a break to change, wash up, and talk to people in #gameinaday before continuing. My sister took some pictures of development:




10:51 PM

Cans of Mountain Dew: 8
Subversion Revision: 52

COMPLETED!

After a little scare where I had an actual working game and then messed it up WITHOUT having checked the working copy into Subversion first, I finally got it to work again. I changed the vectors to lists so I can actually remove blasts and enemies when they are no longer alive. The enemies multiply at a quick rate, but they don’t currently pose much of a threat as they still just randomly convulse. Still, the gameplay is there. I’m proud of what I accomplished for my first GID. I learned that I need to improve on my understanding of C++ and Kyra if I want to work more effectively with them in the future. And I had fun! I mean, I made an actual game in 24 hours! It has no sound, the graphics leave a lot to be desired, and the actual gameplay isn’t much better, but it is a game. It is something I can claim that I created. It’s a great feeling.

Click on the image below to get the source and graphic files. The packages are available in .zip and .tar.gz formats. Make sure you get the latest revision unless you want to see how the project looked at an early stage. You’ll need to make sure you have the Kyra Sprite Engine on your system, which requires SDL.

Categories
Game Development

Part 2 of Results of June’s Game in a Day

Click below to track my June 2005 GID development progress:
Part 1
Part 2
Part 3

10:11 AM

Cans of Mountain Dew: 4
Subversion Revision: 20

AH! I slept for FOUR hours! Whoops! Well, it turns out that people tend to assume that breaks that last less than an hour count in the 24 hours, but breaks longer than an hour don’t. So if I continue to work through 7PM until 11PM, my project is still considered a GID.

12:24 PM

Cans of Mountain Dew: 5
Subversion Revision: 23

Just finished wrestling with a problem due to my lack of understanding of Kyra. It turns out that Kyra’s Vault, which holds all of the resources in the engine, only handles one data file at a time. I was seeing two player sprites when I should have seen one player sprite and one enemy sprite. Once I combined the two sprites into the same data file, similar to how the Kyra demos handle it, it was able to create both sprites.

12:55 PM

Cans of Mountain Dew: 5
Subversion Revision: 24

Added diagonal movement for player. I was already seeing that it would be frustrating to be restricted to moving in only four directions. I don’t think I want to spend time updating the graphics for four directions though as I only have hours left.

1:50 PM

Cans of Mountain Dew: 6
Subversion Revision: 28

Blast! B-)

It’s getting there!

3:07 PM

Cans of Mountain Dew: 6
Subversion Revision: 29

Now I have blasts freezing upon impact with other blasts and enemies. I had some complications because I wanted to kill off enemies by removing them from the C++ std::vector, but vectors aren’t great for it, and I wasn’t sure how to replace it with something else without causing headaches. I’ve decided to work around it by making use of the alive variable in Enemy.

I’ve also noticed that Player, Enemy, and Blast are so similar they probably could have been derived from a common base class, making it easier for me to add new objects. I suppose I could go ahead and refactor, but it is GID, and I’d rather try to get gameplay working.

3:48 PM

Cans of Mountain Dew: 6
Subversion Revision: 32

Now blasts and enemies disappear upon impact, and blasts will actually explode after a few seconds and the explosions disappear after a few more. They act more like bombs than gun shots, but I can see it being kind of like Bomberman in that sense. Sometimes games evolve that way. I just wish it was a conscious decision. It was more of an accident.

4:31 PM

Cans of Mountain Dew: 6
Subversion Revision: 34

Levels end when no more enemies are detected. I now need to make an elegant way to transition back to playing again. Right now, it just brings up the main menu, which is itself not very usable as it still only brings up three menu entries that are all the same, and you can’t choose between them. Priorities. B-)

Check it out so far:

Categories
Game Development

Part 1 of Results of June’s Game in a Day

Click below to track my June 2005 GID development progress:
Part 1
Part 2
Part 3

This blog post and the next one will act as my .plan and document the implementation of my game design for June’s Game in a Day.

While it is supposed to be between Saturday and Sunday, Sunday is my sister’s gradution party. Instead, GID for me was from June 10th through June 11th. After I bought a 24-pack of Mountain Dew, got home from work, and had dinner, I set to work.
I already put six cans of Mountain Dew in the fridge to prepare for the night. It should be a good boost, especially since I don’t drink caffeine often. I also cleared my desk and made sure I had the right books, notebooks, and other tools available.

June 10th

7:00 PM

Cans of Mountain Dew: 0
Subversion Revision: 0

Logged into #gameinaday and ready for coding action!

I set WorkRave to give me 20 second breaks every 10 minutes. It isn’t very disruptive and lets me rest my eyes. At the end of 4 hours, it will force me to take a 10 minute exercise break.

I already setup my Subversion repository for the project and created the normal directories: source, documentation, and resources. The first two are self-explanatory. Resources are things like music, sound effects, images, and other data.

I started by trying to create a basic finite state machine as described by Tony’s Game Programming Tutorial. I didn’t want to just copy the files and use them as my own, since I didn’t like the naming scheme and the C code strewn throughout. I wanted to use Kyra instead of straight SDL. Besides, I will learn a lot more about how the FSM works by writing it out than by copying and pasting.

7:45 PM

Cans of Mountain Dew: 0
Subversion Revision: 6

I’ve written a few source files but it is mostly for infrastructure rather than game code. TomB warned me that I can get stuck trying to build the framework, especially since I am basically doing this from scratch.

Even though I asked people to leave me undisturbed, I still must do some laundry.

7:58 PM

Cans of Mountain Dew: 1
Subversion Revision: 6

First can of Mountain Dew opened.

Still writing the FSM…

8:45 PM

Cans of Mountain Dew: 1
Subversion Revision: 8

The basic FSM game engine is written. Now onto making individual states.

8:54 PM

Cans of Mountain Dew: 1
Subversion Revision: 9

It compiles and builds cleanly for the first time! A window appears and then promptly seg faults since I don’t have any states yet.

9:18 PM

Cans of Mountain Dew: 2
Subversion Revision: 9

Hit my first snag. Everything compiles, but it won’t link. Spent almost an hour before finding that I didn’t declare a static member in the implementation file before using it. Doh!

11:22 PM

Cans of Mountain Dew: 3
Subversion Revision: 10

Oh boy. I’m hitting a wall. I’m not sure how to proceed. A KrEngine is declared within GameEngine, but none of the states know about GameEngine. I ended up making GameEngine a Singleton and having everything accessed through it, which took quite a bit of refactoring.

The result:

Blank Triangle on Black Window

I’ve been working on this project for about five hours now and I don’t have much to show for it. But I can’t get discouraged. After all, I have more done than I did five hours ago.

June 11th

12:48 AM

Cans of Mountain Dew: 3
Subversion Revision: 14

Now I have a splash screen. Yes, it is programmer “art”.

Sprayed on brush metal???

3:18 AM

Cans of Mountain Dew: 4
Subversion Revision: 15

Ok, I’m learning. Virtual destructors and static members are parts of C++ that I am not terribly familiar with, so I am glad I get the chance to fight with them now. Still, I would love to be further along than I am. From splash screen to menu screen. No gameplay yet.

Play the game already!

I’m also getting sleepy. Should I rest or push forward? Push forward!!!

..after a quick bathroom break.

5:27 AM

Cans of Mountain Dew: 4 (-1 bathroom relief modifier)
Subversion Revision: 17

I’ve finally gotten to the point where I can write the PlayState, where the actual game takes place!

I’m used the Gimp to draw up a few images of the main Player. I decided to make a crude alien. The Player class was easy to make since it just has to encapsulate KrSprite and some data about the Player. I can probably get it playable fairly quickly. Even if you can’t do anything else, you should be able to move around and possibly shoot something.

A green alien

For now, I can detect the arrow keys and change the action of the Player. The screenshot doesn’t show it, but his eyes move depending on the direction you press.

5:55 AM

Cans of Mountain Dew: 4
Subversion Revision: 20

About 10 hours later, I finally have the main character moving about the screen according to the arrow keys. He only moves in four directions, but I’m not going to draw up more images for diagonal movement this late in the GID. I’d rather spend my time getting the fusion part of the game going.

I will try to take a nap now, but check out the 1.6MB project (mostly due to the raw images in FuseGB/resources/) so far:

Categories
Game Development

June’s Game in a Day Theme: Fusion

For June’s Game in a Day, the theme is fusion:

fu·sion (fyzhn) n.

1. The act or procedure of liquefying or melting by the application of heat.
2. The liquid or melted state induced by heat.
3.
1. The merging of different elements into a union: the fusion of copper and zinc to form brass; the difficult fusion of conflicting political factions.
2. A union resulting from fusing: A fusion of religion and politics emerged.
4. Physics. A nuclear reaction in which nuclei combine to form more massive nuclei with the simultaneous release of energy.
5. Music that blends jazz elements and the heavy repetitive rhythms of rock. Also called jazz-fusion, jazz-rock.
6. A style of cooking that combines ingredients and techniques from very different cultures or countries.

A lot of potential. I keep thinking of the episode of Invader Zim where the aliens try to fuse things together with duct tape. “Let’s feee-yuuuze him with this juicebox!”

I’ve been trying to come up with some ideas for this GID. I thought of one where blob-like organizms would combine together to form larger ones. Another one featured a Fuse Ray/Gun that would lock two items together: two enemies, an enemy and another object, etc. A third involves the main player riding around in a tank that would fuse to nearby objects that act as weapons or armor. Another ideas was a game where you have to mend pipes that are about to burst by fusing the cracks shut.

That tank idea apparently has already been done. TUMIKI Fighters is kind of like combining Katamari Damacy and a sidescrolling shooter.

I’ve decided to go with the Fuse Gun idea. I imagine it would be funny to see characters getting fused with objects and trying to move about. Two really quick characters might struggle to move together, resulting in a slow moving composite. Some objects might actually make them stronger, though. Fusing a metal bucket to a small creature would result in a living tank.

I’ve decided to use C++, Kyra, and SDL for this project. I think most GIDs seem to use Garage Game‘s Torque engine, but there is no rule about what you can use.

I’ve been warned by TomB in #gameinaday on irc.maxgaming.net that I really should pick something simple for my first GID. The fact that I feel I need a design means that it is too complicated. Perhaps he’s right, but we’ll see how I do.

The Design

Fuse Gun Blast, or FuseGB, is a game where the player can use a gun to fuse enemies and the environment together. I am thinking of making it an overhead game like The Legend of Zelda, and the player can move in 8 directions.

Fusing
When the player shoots the fuse gun, a charged bullet will continue until it hits a wall and disappears or hits an enemy/object. If it hits an enemy, the enemy is frozen and charged for a few seconds, and the player can shoot a second enemy or an object. The two will then fuse together, and their abilities and movements will be changed.

Enemies can be fused to existing fused groups. For example, if there are three enemies, you can fuse two of them together, then fuse the remaining enemy with the group. Objects, such as buckets, can be fused to these “enemy farms”.

For simplicity, two objects cannot be fused together, and nothing can get fused to the walls. If a fuse blast hits an already charged enemy, the enemy is simply stunned for a time, but takes no damage.

Levels
Each level is made up of a room filled with objects, walls, and enemies. Destroy all enemies to complete the level. The less ammo you use to destroy enemies, the more points you get. Fused enemies share the same life force, so fusing them together allows you to use less bullets to kill all of them at once. Objects such as dynamite and bombs obviously allow you to destroy larger enemies easily.

I’ll likely only have one level at the end of this GID.

Enemies
They can move about in 8 directions as well. Some are quicker than others. Some are bigger than others. If they touch the player, the player takes damage and/or dies. When fused with another enemy, their stats are kind of averaged out. Enemies with 1HP and 3HP in a fused enemy farm will have 2HP combined, for example. They will try to move independently, but obviously can’t. On the other hand, if they try to move in the same direction, the farm will move faster than either normally would.

Items
Some items will be explosives. Other items will be speed reducers, but they can also act as armor and add protection. I am thinking that some items can be fused to enemies, turning them into friends instead. But that might add too much complexity to an already complex design.

I’ll leave it at this for now. I’ll document the development process as I go and post a blog entry at the end. Hopefully, I’ll have a working game to show for my effort, but even if I don’t, it should be fun and I should learn a great deal.

Click below to track my June 2005 GID development progress:
Part 1
Part 2
Part 3

Categories
Game Development Games Geek / Technical

Difficult Questions About Video Games

I recently bought Difficult Questions About Videogames from PublicBeta. They are giving it away “free”, saying that it is £100 off and I only had to pay shipping…yet the book arrived with a price on the back cover of a little over £14. Not sure what that’s about…

Anyway, I actually like it. It asks questions like “What is a videogame?” and “What is gameplay?” These are terms that get thrown about in game reviews and general conversation, and yet no one has a definitive idea about what they actually mean. Also, they use videgame as a valid word, but some of the responses they received questioned its validity since it should be “video game” much like rap music instead of rapmusic.

And it is amazing how different everyone’s opinions are! Some people make a distinction between video games and computer games, claiming that the former involve dedicated proprietary machines whereas the latter makes use of general purpose computers and software. Others make some incredibly arbitrary definitions in my opinion (usually played with thumbs? Seriously?). My favorite was: “Pass.”

It is clear that the language of video games isn’t very clear. Everyone knows what a video game is, and yet everyone disagrees about the exact definition. We apparently can feel good gameplay, yet can’t say what be improved for something that has “bad” gameplay.

It’s hard to believe that with video games being as popular, profitable, and important as they are, we still don’t know how to talk about them so that everyone understands what we mean. At first “what is a videogame” sounds like a simple question, but if you try to define it exactly, you can quickly see that it is a difficult undertaking. Difficult Questions About Videogames is definitely a good read for game developers and players alike.

Categories
Game Development Games Geek / Technical

Will Wright’s Spore

I finally had a chance to sit and watch Will Wright’s Spore presentation at the GDC. Yes, I’m probably the last to do so, but I found out through from Game Girl Advance that even though I missed GDC, I still could see the presentation.

When I first read the articles about it, I remember getting very excited. Now that I’ve seen it, my only request is that it be available for Gnu/Linux. B-) If anyone knows anyone at Maxis/EA, can you please pass that request along? Thanks.

Anyway, there is almost always talk about how stagnant the video game industry is. Most of the highly anticipated games are sequels, and usually just better looking ones at that. Nothing truly innovative about them. People say that we don’t want more of the same, but if you look at the big sellers, we do. Games like SimCity and Katamari Damacy occasionally come along and are new, fun, and easy to get into, but most innovative titles tend to get great reviews but poor sales. I have yet to play Prince of Persia: Sands of Time, but I heard that it was an amazing step forward for games of its kind. Sales figures, however, say that most gamers didn’t care. Then the sequel, Warrior Within, was released. Apparently the developers of this title decided to play it safe and go with what worked in the past. Sales were great.

Was Warrior Within a good game? I haven’t played it, but I heard it was. Just not as great as Sands of Time. Half-Life 2, Doom 3, Unreal Tournament 2004…all of them sequels, all of them basically first-person shooters. Vehicles, shadows, and gravity guns are their claim to fame. The next Unreal Tournament looks awesome, but then, you could compare it to Half-Life 2.

That’s not to say that I think these games are bad. Far from it. I’ve always felt that people tend to put too much importance on innovation. Sometimes a good game is just a game that is fun to play. Imagine if there was only one copy of every game type. Would it be better if Wolfenstein 3D was the last FPS? No way! The ability to actually aim in three dimensions is a nice feature to have these days. Better user interfaces make for better games, even if you are playing what is basically the same game. At the same time, if you are only going to play games that invent new genres, you will miss out on a lot of quality games while you wait.

Will Wright’s Spore, on the other hand, shows that huge leaps in innovation are possible, and it also demonstrates that you can mix genres with great results. Granted, the game isn’t out yet. All I’ve seen is the presentation he gave. But the capability to make the kind of game he is talking about is definitely there. And you don’t have to be Will Wright to do it, either. He said that his biggest bottleneck was convincing himself that it could be done.

Most new game developers learn that they should never undertake a huge project when they don’t know how to do anything but come up with an idea. Start smaller. It’s good advice, but at some point, when the developer has more experience, that good idea has to be brought back out into the light. Everyone had that RPG they wanted to make. Everyone had that cool game mechanic they thought would make Super Mario Bros 3 so much better. After all, there had to be something that made you want to make games in the first place. You didn’t want to just make puzzle and Pac-man clones all your life, right?

…Right.

Looking at the project ideas I’ve come up with, I can see that they are impotent in comparison to Spore. I could console myself with knowing that Will Wright and Spore put a lot of game developers to shame; however, I’d rather push myself to do better. I can come up with much better ideas than what I have now. Yes, ideas are a dime a dozen, but that just means I can afford to come up with a few hundred or a few thousand. One of them is bound to be the beginnings of a great game.

So I’m optimistic about the games of tomorrow. Spore shows people that they can do much better. I’m sure others will make fun games that are innovative. And I’m also confident that I can be one of those developers.

For now, I still need to finish my first project, even if it is based on a clone.

Categories
Game Development Geek / Technical Politics/Government

Software Patents? No Thanks!

I just read an article on Gamasutra titled It’s Just a Game, Right? Top Mythconceptions on Patent Protection of Video Games. I am interested in news and articles on software patents, and I’ve always been against them. While I believe patents can cover a physical invention, like a better mousetrap or printing press, I don’t believe patents should cover things like mathematics or intangible ideas.

You want to protect your software? Copyright covers your needs. It’s cheaper, and it’s faster. Trademark will protect anything from logos to specific characters. But patents? Way too expensive. They also bring the software industry to a standstill rather than push its progress along as claimed. Patents are supposed to be granted for non-obvious inventions. Most software patents are for obvious ideas. Anatomy of a Trivial Patent shows how easy it is to make something obvious sound incredibly complex and inventive.

When I read this article, I was hoping to receive information that either supports my view or gives convincing arguments for the opposing view. What I read, however, was lame B.S. about the “merits” of software patents. I will now go through each of these myths getting “busted” throughout the article.

Myth 1:
The first Myth being “busted” here is that you can’t patent computer programs. The truth is, you can patent specific ideas that are used in video games, but the author decides to argue this myth by first pointing out that you can patent the computer/console hardware. Huh? He then gets to the software portion:

  1. “Scoring based on goals achieved and subjective elements” sounds awfully familiar. Oh yeah, it is because most games with scores give you points for doing certain tasks, and the idea that you can get points for doing things in a cool way isn’t all that innovative, is it?
  2. A patent on the use of a machine? Again, not the same argument here.
  3. Sega’s patent on making characters run out of the way of an oncoming vehicle. Something that happens in CARTOONS and real life all the time!
  4. Battlefield strength and morale in a strategy game. Aren’t board games using this mechanic? Couldn’t I just as easily call these elements something else, like “popularity” or “happiness points”?

He also talks about how you can patent the distinct way a logo appears on the screen. These are actually the also-controversial “design patents”. I think trademark would do just fine here. In fact, that’s what trademarks are perfectly suited for because that’s what they were made to protect! Let’s look at the entry in the US Patent database: D487,574 has a list of other design patents that say essentially the same exact thing:
“The ornamental design for an icon for a display screen, as shown and described.”
“The ornamental design for an interface for a display screen for an electronic device, as shown and described.”
“Surface ornamentation for a handheld computer or a computer-generated icon for a handheld computer.”
“Icon for a display screen.”

Aren’t patents supposed to be granted for inventions? What’s so inventive about each of these that the others don’t already have prior art on?

And in any case, at no point is the “myth” that you can’t patent computer programs actually busted. You can patent techniques and algorithms, not whole programs. Nice try, author.

Myth 2:
The argument being made here is that even if you make a clone of a game, you have to have something unique about it, right? Patent that unique thing!

I create a power-up that makes the entire screen turn upside-down. Is that really going to be considered patentable?

Myth 3:
This argument says that while a patent might take a long time, you can get provisional rights, giving your application power even if your patent isn’t approved yet. Also, there is this quote:

Additionally, this may be another example of selling yourself short. Many inventions are broader in scope than the particular embodiment first produced by the inventor, and a good patent attorney can help an inventor identify the true, full scope of the idea that has been invented.

No, a good patent attorney can help an inventor identify the wording to make an otherwise specific “invention” cover a broad range of other “inventions”. You can patent “a mechanism for keeping point totals in order” and now you control the Top 10 List, but if you patent “a mechanism for displaying data in an arbitrary order” you have now patented not only the Top 10 List, but also end-game statistics for all kinds of games. Essentially, the author here is trying to convince you that there is a lot of money to be made by making your “invention” as broad as possible to cover as many possibilities as possible.

Myth 4:
Suing is expensive. The author ignores that point by arguing that patents are used for more than simply suing. Fine. But this line:

A patent portfolio is also a good defensive tool. Competitors, who will no doubt take advantage of the patent process for themselves, will think twice about suing you if there’s a threat of you suing them back (i.e., a countersuit).

Yeah, I’m sorry. No. If IBM, Microsoft, or probably even EA decides to sue you, your single, measly patent isn’t going to do anything. These companies will likely claim that your patent is actually making use of one of their patents. Imagine coming into a water-balloon fight with a pack of balloons, and the opponent holds the only water hose to fill them. That’s what it is like. IBM has argued that its huge patent portfolio is a great set of assets not because they receive licensing revenue, but because IBM can write whatever software it wants. NO ONE can go to IBM and say, “Hey, you’ve infringed on my patent, so give me money!” because IBM will return with, “YOUR patent makes use of any number of the thousands of patents we have. You can go away now. Oh, and you’ll also let us license your patent at no real cost to us. Have a nice day.”

Myth 5:

The “spirit of innovation” works best when there is a free market of ideas, and consumers are better off if video games are not patented.A classic argument among those who feel that the entire patent system should be abolished. You might want to make that argument to your representative in Congress, because unless the Constitution is amended to do away with patents, they’re here to stay.

The quote above is one of the examples that really showed that this article wasn’t meant to be informative so much as to persuade through deceit. One, people aren’t arguing to abolish the entire patent system. People are arguing that certain types of patents, specifically software patents, shouldn’t exist. The second statement implies that the Constitution already mentions patents, when it doesn’t. The Constitution grants the power to create ways to reward people for progress, but doesn’t create any specific power, like copyright or patents.

The patent system changes. So does copyright. It isn’t a far stretch to think that some changes are better than others, and some changes are just plain bad. The ability to patent software is one such change.

In the last paragraph for this “myth buster”, he talks about Ralph Baer, who supposedly gets credit as the father of video games. Don’t most people believe that Nolan Bushnell did it first? In fact, the author mentions Pong, which is technically Bushnell’s game. Bushnell opted out of a patent infringement suit by Magnavox because Pong was based on Baer’s more complex Ping-Pong game. Other companies lost lawsuits, and Magnavox made a lot of money. The author then mentions that Spacewar was created by Steve Russell.

Unfortunately for him, Russell did not seek patent protection on his concept, and did not document his development efforts as well as Baer. We will never know how history may have been rewritten had Russell sought patent protection on Spacewar. The moral of the story is simple: you should act to protect your inventions.

It sure sounds like it. Baer makes millions, and Russell failed. No, wait. Let’s remember who Russell was. A programmer at MIT. He made the first game that would be distributed with the computers being used at the time, which were mainframes. Trading programs wasn’t called piracy back then. It was called sharing. And you did so with tape, not disks. No one downloaded anything over p2p networks.

Russell was a student, and he hacked just for fun on the new DEC PDP-1. No one at the time thought to make money by selling software, let alone games. So Russell wasn’t trying to make money off of his game. Once again, the author is trying to convince you that software patents are great by offering up hints of ideas that you will hopefully turn into facts in your mind. I know the story, and so I knew that this comparison was horribly contrived and the language implied something that isn’t true. How many people know about Steve Russell and Spacewar? How many people reading this article would think that Russell “failed” with his game while Baer succeeded with “his” Pong?

If that specific paragraph in the author’s article doesn’t convince you that this author is trying to sell you something, I don’t know what will.

Myth 6:
Patents are expensive. The research prior to filing may be cheaper than ever, but the filing of a patent costs serious money. Maybe EA can afford to pay the thousands just to patent games, but indie developer budgets can easily double or triple due to filing costs. Don’t forget that if you have to sue or defend yourself, your lawyers will cost money too. Not everyone will make millions by suing people who make card games.

In the end:

Video game innovations will play a large role in determining who shares in the ever-growing multi-billion-dollar video game industry. As more and more companies enter the market, and spend more and more resources developing those innovations, protecting those innovations will become even more critical.

Whoa, whoa, whoa! Back up a bit here. If the Constitution grants the power to create things like copyright and patent laws to promote innovation, and more companies are entering the market and creating things, do we need MORE protection? Doesn’t this just contradict everything the author himself was saying? Patents allow for progress. There is more progress. Therefore, we need to “protect” progress? From who or what are we protecting our “inventions”? The author doesn’t say. The implication, of course, is that other people will take your “invention” and start making money from it, and you need to protect yourself.

We don’t need software patents to make software. Software patents don’t promote progress. They stifle it. Most software patents are being used defensively. Microsoft, IBM, and others trade licenses, and no real lawsuit gets completed anymore. “You can make use of our XOR patent if we get the right to use your patent on computer animation with color.” Not everyone is Microsoft or IBM, and so not everyone would benefit from software patents. The only real reason given in the article is to do it because everyone else is doing it. Get them before they get you.

Software innovation happens in spite of software patents, not because of it. If everyone who wrote software had to do a lengthy patent search before writing code or releasing projects, how many projects would be dead due to IBM alone? As the author explains, ANYTHING can be patented, so it isn’t like software patents are documenting actual inventions.

Software patents don’t protect anyone but large companies. They are expensive. They cover ideas, algorithms, and mathematics when patents are supposed to cover actual inventions. And even more important, the author was clearly trying to deceive rather than provide actual information. Can someone give REAL arguments for software patents? It doesn’t seem so. Most arguments “for software patents” tend to sidestep the issue and claim that patents are doing what they always do. Such arguments ignore the fact that software development is not like building vehicles, and they ignore the actual question: should software patents exist?

I believe they shouldn’t.

Some links:
League for Programming Freedom
Paper arguing that software patents would actually reduce innovation and progress (PDF format)

Categories
Game Development Games Geek / Technical

Out of Touch with Games

I’ve been meaning to post about how I am out of the loop when it comes to mainstream games these days. Wario Ware? I still haven’t seen it, but apparently it is huge. I didn’t see the Nintendo DS in action until a few weeks ago. In fact, I haven’t seen the PSP. Lumines? Wipeout? I haven’t seen the Game Boy Advance SP except in other people’s hands.

I wanted to check out Prince of Persia: Sands of Time a few months ago, but it was sold out. I ended up getting Metroid Prime, which is definitely a fun game, but my keyboard/mouse hands can’t remember how I used to play Goldeneye 64 with a passion. I bought Civilization III months ago because it was at impulse-buy range (under $15). I still haven’t pulled the cellophane off of it. I’m only now considering purchasing Unreal Tournament 2004, which got to the top of me and my friends’ want lists because it was available for Linux out of the box (thank you, Epic! I’ll thank you with my dollars soon).

In the meantime, there has been new a Metroid game, a new SimCity(how did THAT escape my attention?!) and an expansion pack for Doom 3. Nintendogs was out. Nintendo was announcing a new game console. All of these things were news to me way after they should have been.

I used to be on top of Nintendo-related news since I had a subscription to Nintendo Power. Last year I realized that I wasn’t playing Nintendo games as much so I gave it up, but now I find myself surprised that other people know about things before I do. I used to be the GOTO guy for Nintendo trivia and knowledge!

And regarding PC games: I just don’t have the time to play all the games I currently have, let alone buy new ones. I loved Homeworld Cataclysm, but I wasn’t going to buy Homeworld 2 since the demo didn’t impress me that much. Dungeon Siege? Sounded cool, but I wasn’t really compelled to play it. Black & White’s expansion didn’t end up in my collection even though I loved the original.

Am I really capable of making good games if I don’t even play many of the existing games? You can’t become a good writer without reading a lot of books, and I think you can’t make good games without playing a lot of games. The good games will inspire, and the bad ones will acts as sign posts, warning the intrepid developer about what not to do and where not to go.

Clearly, I have some improving to do.