Categories
Game Design Game Development Games Personal Development

Video Games as High Art

If you’ve been paying attention in the past few weeks, Roger Ebert is back in the video game news again. I have talked about his position on games as art, but apparently he has amended his statement. Now instead of saying that games can’t be art, he says that games can’t be high art.

N’Gai Croal dissected Ebert’s arguments way better than I could.

If Ebert had done a bit more research–well, any research–he could have bolstered his argument by citing some notable game designers–e.g. Hideo Kojima, Shigeru Miyamoto and Keiji Inafune, each of whom has gone on record as saying that they don’t believe that videogames are art–and engaged what game creators themselves have said. Or he could have elaborated on the distinction that he’s drawn between high art and low art. No such luck. Instead, he’d rather dismiss videogames with the sarcastic magnanimousness of “Anything can be art. Even a can of Campbell’s soup,” as long as we vidigoths don’t attempt to desecrate the Temple of High Art, where presumably the gods of Cinema stand comfortably next to those of Theater, Dance, Painting, Sculpture, Opera and Literature.

As you read, you’ll find that Ebert’s writing is meant to persuade without letting the reader think too much about the topic. Ebert isn’t trying to engage anyone in a discussion about video games as art. When headlines are run as “EBERT VS THE GAMERS” for articles featuring everyone’s favorite film critic arguing against the sometimes incoherent arguments of 12-year-old Halo fans, how can a reader who isn’t familiar with video games not believe that “the things that make it a game” are “scoring, pointing and shooting, winning and losing, shallow characterizations, and action that is valued above motivation and ethical considerations.” Never mind that there are many counterexamples of games that are not about scoring, shooting, or winning.

My favorite part about the article was Croal’s well-researched point that I had guessed was the case in a previous post: when film was only thirty years old, there were plenty of critics who considered it a base form of entertainment for the lowest common denominator. There was no way that film could possibly aspire to anything greater.

And yet, here we are.

Ignoring Ebert’s opinion on video games (again), what are developers doing to create art out of games?

Last month, Warren Spector wrote about his frustration-driven creativity. After finishing Paper Mario for the Wii, he felt that it was fun but left him with nothing afterwards. What frustrates me is that Paper Mario is typical of so many platform games–nearly all games, when you get right down to it.

As developers, we almost never think about what games can do to enrich our players and, as players, we almost never encounter anything that informs us about the human condition. The audience certainly doesn’t seem to be clamoring for anything more than diversion. … There’s no other medium that routinely and without much self-reflection offers consumers so little.


For the most part, games are all surface, no subtext. They’re about doing–they have to be about doing–but rarely about the WHY that drives the doing and even more rarely about the consequences of doing whatever it is you’re doing in the game.

You know, he has a lot of the same arguments as Ebert…except when Spector talks about it, he’s analyzing. He’s thinking. He’s not dismissing the entire medium. He’s talking about the problem of games not being more than they currently are as something that can be solved.

It took about 60 years for “Citizen Kane” to arrive. I can see Spector wondering what the video game equivalent would be. When he talks about what games can be, I’m thinking about it, too. Ebert’s arguments only serve to shut down the thinking process. Thanks, but I get enough of that kind of talk in politics. Give us more thoughts like Spector’s, and we can figure things out for ourselves. We can’t help but actually think about the issue when the option is presented.

Categories
General

What is Artificial Intelligence?

When I was in college, I asked a coworker of mine what his major was. He replied that he was studying artificial intelligence. The conversation kind of went like the following:

Me: Oh, cool!
Him: Well, actually, it’s probably not what you think…
Me: So are you studying neural nets and expert systems?
Him, visibly surprised: …Uh, yeah, actually.
Me: Cool!

I think he expected me to believe that artificial intelligence was just as it is in science fiction movies and books. He probably thought I was excited that he was learning about making sentient robots or something. The fact that I knew the term “expert systems” and that it was related to AI research seemed surprising. No one writes books about exciting expert systems in science fiction, right?

I suppose the reason why I knew about what courses in AI would be like is because I originally expected them to be about making computers reason and think. Then I looked into it, and I found that it wasn’t always that sexy. Some research is about computer reasoning, but a large chunk of the research is really just a series of if-statements, when you get down to it: IF this object is a mammal THEN XYZ. IF this object is a reptile THEN ABC. When you look at knowledge bases, such as Microsoft’s, it’s the result of AI research. If you are expecting to encounter romanticized science fiction in college AI studies, you’ll likely be disappointed. A lot of the AI you’ll study is about developing better ways to answer questions for an automated tech support call center.

I was hoping to take a course in AI and learn how to write autonomous agents in a video game. Expert systems aren’t quite what I had in mind. Instead of taking such a course, I read articles online and bought books. Kids today are lucky as GameDev.net has way more articles on AI than I had access to when I was in school. I do own O’Reilly’s “AI For Game Developers”, which has the sub-heading “Creating Intelligent Behavior in Games”.

Why would I care about expert systems? Would an expert system help me with making the computer opponent in platformer look intelligent? Finite state machines, fuzzy logic, pathfinding, obstacle avoidance, chasing and evading…these are things I wanted to learn. They seemed to be the most practical for a game developer.

According to the Wikipedia entry on AI, you can identify two types of AI applications: classifiers and controllers. Classifiers identify entities as fitting a pattern or set of objects. Controllers basically use classifiers before deciding on an action. The latter seems closer to “IF player is nearby, then send wave of enemies in delta formation”.

Still, there isn’t really a need to study too deeply into these details if you want to make games. Don’t think that the AI in Quake was very intelligent. The model had a number of assumptions about the nature of the level layouts and information about player locations. Someone made a 2D volleyball mod using a Quake engine and found that the movement was strange because the AI assumed it would have room to turn around. The computer-controlled players weren’t moving in a very smart way at all. I remember reading one player’s comment as he talked about how moronic they acted.

And I suppose that reaction is all we have to worry about. You can try to make your AI as smart as you can, but if it does things that aren’t very smart, people will notice, and your AI will be considered weak. Perception of intelligence is more important than actual intelligence. Just like in real life. B-)

When people played my Space Invaders clone Killer Kittens, one of the common reactions I heard was someone cursing the last alien. Just like in the original Space Invaders, the last alien moves much faster than it did when there were still other aliens around it. People were getting mad at it, but in a good way. To these players, it wasn’t an algorithm I wrote that sped up the alien’s movement. It was the alien getting tricky, or becoming afraid, or doing something intelligent. It sometimes seemed to drop a bomb right on top of the player’s shot, which seemed to be an intelligent way of shielding itself. In reality, the bomb being dropped was random, just like any of the other drops. But hey, if the players think it seems intelligent, then I don’t need to spend time trying to get it to drop the bomb more intelligently.

I remember when Goldeneye 64 was released. The enemy seemed intelligent…until you came across two guards with their backs to you. You could run past them with your guns a-blazin’, but you could also take them out quietly. Unfortunately, you’ve run out of bullets for your silent pistol, so you pull out the rifle you took from one of the other enemies. You have to be quick. You aim at one guard, shoot him, aim at the other guard, but then realize that he isn’t moving. His colleague just dropped dead in front of him, but he didn’t even blink. Wha-? It was very weird the first time I realized that the AI isn’t that intelligent at all.

Game AI is getting more intelligent these days, but in the end, the only thing that seems to matter is how players perceive it. In this way, it is similar to the importance of story in games.

Categories
Game Development Personal Development

Thousander Club Update: July 23rd

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 143.75 (current year) = 406 / 1000
Game Ideas: 616 (previous year) + 83 (current year) = 691 / 1000

I tore through “Harry Potter and the Deathly Hollows” in order to get it completely out of the way. I read it in three sessions (darn a need to clean and sleep getting in the way!). Now I don’t have to worry about deciding between working on my game and reading a book. B-)

I managed to fix my build. I can now check it out into an arbitrary directory and build it. Previous it assumed I had a certain directory structure in my home directory. It was similar to having hard-coded constants in my code, only I couldn’t figure out why turning them into variables still resulted in the same constants being used some of the time.

With the build fixed, I spent the rest of my time figuring out how to incorporate Guichan into my code. I already have a separate MenuManager class, so the rest of my game might be untouched as I add and change code.

Categories
Game Development

Immediate Mode GUI

Anthony Salter has created another update to Planitia, his sorta-Populous non-clone. I can’t wait to try it out.

In the comments following the article, I found this exchange:

sol_hsa: I wonder if you used the IMGUI paradigm =)
Viridian: Why…yes! Yes, I did!

IMGUI paradigm, eh? I think I had heard about it (it’s not very new), but since I wasn’t dealing with GUIs at the time, I didn’t feel compelled to learn about it. Now that I’m focused on the GUI for Killer Kittens, it sounds like something to research!

One thing I found was a tutorial on the same site that explained how to do framerate independent movement to me. Sol on Immediate Mode GUIs (IMGUI) on Sol Tutorials offers a somewhat detailed tutorial. Casey Muratori or Molly Rocket created a video presentation on IMGUI back in 2005. And of course, I can command Google to bring me more information as I desire.

So rather than using the standard decoupled, event-driven GUI development model, IMGUI seems to promise ease of development without many disadvantages. Anyone else get good mileage out of IMGUI practices? I’m not so sure if I want to abandon Guichan just yet, but if IMGUI is as nice as people say, perhaps I might have to change my mind.

Categories
Geek / Technical General

Upgrading from Ubuntu Edgy to Ubuntu Feisty

As I mentioned before, I tried to upgrade my laptop from Edgy to Feisty. I had read about upgrades from Dapper to Edgy being a problem, but I also read that upgrading to Feisty shouldn’t be.

I was wrong. After the upgrade, I couldn’t boot into Ubuntu. I would instead see the following:

Check root= bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
ALERT! /dev/disk/by-uuid/38ede6ac-6b2f-44d7-a635-deab88ae9381 does not exist. Dropping to a shell!

I had to switch to the earliest kernel I had out of the four or five available before I could boot, and even then it was without a GUI. At least I could edit config files, and with network access, I could check in the changes I made to my project.

After trying a number of solutions I found online, I decided that I didn’t have time for figuring it out and will simply install Feisty over the existing borked-up install. I know Feisty will work on my Dell Precision M90…it’s the same machine that Michael Dell uses Feisty on!

I downloaded a Feisty install ISO, burned it to a CD, and popped it into the laptop. When I ran the install, it asked me about partitions. I told it to leave my /home partition alone. I had backed up the important things on there just in case. It formatted the other partitions (I only had /, swap, and /home), installed, and before I knew it, I had the familiar Ubuntu desktop in front of me.

Why the upgrade didn’t work for me, I don’t know. I couldn’t figure out exactly what was wrong, and it turned out to be easier to just do a fresh install. The downside to doing so is that I need to redownload any applications and tools I had, such as multimedia codecs, Zim, g++, and autotools. Beryl doesn’t work quite right, but I’m sure I missed something when I set it up. The eye-candy is only useful for showing off at events anyway, so it can wait. B-)

Now that I have it installed, I’m taking it through its paces. Hardware accelerated video is working well, and I haven’t encountered any hardware that isn’t working, so at least there were no regressions there. Wait…Ok, I just checked, and my USB mouse was automatically detected. I had read that people had issues with USB in Feisty, so at least I’m fine. I found that it is mounting my Windows partition, too, which can be useful if I have to access data on that side.

I’m a bit disappointed that the upgrade didn’t work cleanly, and I’m worried about the reports that Feisty is a buggy regression from Edgy. Still, after the install, I’m back to working with my laptop.

Categories
Game Development Linux Game Development Personal Development

Thousander Club Update: July 16th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 141.25 (current year) = 403.5 / 1000
Game Ideas: 616 (previous year) + 60 (current year) = 676 / 1000

Ok, so there wasn’t as much productivity as I would have liked. I was using my laptop when I realized that I needed a newer version of a piece of software and so decided to upgrade. I had heard that upgrading to Ubuntu Edgy was fraught with peril and that Feisty was safe.

Yeah, apparently not. After the upgrade, I rebooted the machine, and at the Ubuntu splash, the progress bar didn’t move. After some time, I get the following:

Check root= bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
ALERT! /dev/disk/by-uuid/38ede6ac-6b2f-44d7-a635-deab88ae9381 does not exist. Dropping to a shell!

I am thrown into Busybox, and then I have to depend on Google and bug reports to figure out why I am not looking at a new Feisty install.

I learned that instead of having nice device names such as /dev/sda5, I now have a unique UUID for each partition. It sounds cool because apparently IDE drives and SCSI drives won’t be handled separately. Unfortunately, my kernel doesn’t seem to know what the heck any of the devices are. I even tried using my older kernel, and I still had the same error.

Also unfortunately, I’ve been so busy that I haven’t had much time to troubleshoot the laptop, and I definitely didn’t have much time to work on Killer Kittens. The work I did do? It’s stuck on the laptop because I was a bone-head and didn’t think that checking in my changes would be needed before doing a major upgrade from one version of Ubuntu to another.

Oh, and it’s crunch at the day job. B-(

Categories
Games Geek / Technical Marketing/Business

Excited about PS3 Price Drop?

I received an email from EBGames.com informing me that the PS3 dropped in price.

Let’s get right to it, lowered in price $100 the Sony 60GB PS3 is now available for $499! Armed with the Blue-ray Disc player, built-in HDD, 1080p high-def output, Wi-Fi connectivity and SIXAXIS wireless controller, what else could you possibly want from a serious gaming system?

I replied to myself with “How about games?”

While I admit that I haven’t been following the games available for any of the latest generation consoles and so don’t know much about games available for the PS3, I find the next line pretty telling:

On top of that, from now until September 30, purchase a PS3 and receive 5 free Blu-ray movies with mail-in redemption.

Uh, this “serious gaming system” should let me play games still, right? When Sony first announced the PS3, I remember thinking that the fanboys have their work cut out for them. No games announced. It was just a very powerful computer system. Oh, and it played movies in a format that no one has.

Today, are there any games for PS3 that merit buying a PS3? Even with the “price drop”? Is anyone really that excited about being able to purchase a PS3 at what I still consider too high a price for a video game console? The Wii has some interesting games, although as I understand it there seems to be a lack of interesting new games coming in the near future. The 360 has XBLA. What does the PS3 have going for it? What games can I get with the $100 savings? Or am I supposed to be happy with buying more Blu-ray movies…which I already own on DVD and can watch on my laptop or using the television-connected DVD player? It’s not even perfectly backwards compatible with the PS2, so why not purchase that system instead? There are hundreds of games available for it.

Last week, I was having a blast playing the SNES game Smash TV with my girlfriend’s nephew…on my old SNES. I don’t feel like I am missing out on the next gen experience. Anyone else?

Categories
Games Geek / Technical Marketing/Business

World of What?

This past weekend, my girlfriend and I went to a barbecue. One of her cousins was on the computer, so I went in to say hello.

“What are you doing?”
“Playing Runescape.”
“Oh, I remember when I played that game. It looks much better than I remember it.”
“Yeah, I’m at max level for wood cutting.”
“Did you know that there are more people playing Runescape than World of Warcraft?”
“What’s World of Warcraft?”

Oh, yeah. There are people who haven’t heard of one of of the biggest names in video games.

Oh, and if you’re wondering, last I checked, Runescape had one million more people playing it than World of Warcraft did. You’ll note that when people talk about WoW‘s size, they can never call it the largest. They always talk about revenue. WoW makes much more money than Runescape, but Runescape has more people playing.

And apparently some of them have never heard of World of Warcraft. This map of online communities is slightly inaccurate in the same way that Alaska always looks smaller than it really is on a world map.

Anyway, I think it is interesting when you can’t depend on people knowing who you are, no matter how big of a gorilla you are. Before Runescape, he was playing on Club Penguin. Maybe one day he’ll discover games such as World of Warcraft and Vendetta Online, but for now, he has no idea that you even exist.

Categories
Game Development Personal Development

Thousander Club Update: July 9th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 140 (current year) = 402.25 / 1000
Game Ideas: 616 (previous year) + 60 (current year) = 676 / 1000

Well, it’s been a quiet couple of weeks. I came back from Ohio on Wednesday, but my girlfriend’s nephew was in town. We went to a museum, saw a couple of movies (is there a reason why they decided that characters in Transformers had to swear?), and generally found ways to make sure that I wasn’t working on Killer Kittens. On the one hand, I didn’t like that I worked even less than I already do, but on the other hand, I had a real vacation from any work. I feel refreshed and thought of a number of things I could do in terms of game development, marketing, and business models.

I did manage to do a little bit of development, but in doing so, I broke my build. I changed my build scripts to take into account the Guichan library, but forgot to actually add the Guichan library. Somehow my build scripts got so confused that they kept repeating the same steps. I set the project to build, only to forget about it until the morning. I saw my CPU meter was constantly at around 100%, and I found my build was still going. When I realized that libSDL was being built a second and then a third time, I realized something was very wrong. I had to watch the build carefully, and then I found the error message that guichan.tar.gz didn’t exist. Once I added it to my project, everything worked fine again. Luckily it only took a few moments to figure out because I cannot afford one of those annoying, time-consuming bugs.

Here’s to a productive week!

Categories
Game Development Personal Development

Thousander Club Update: July 2nd

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 139.75 (current year) = 402 / 1000
Game Ideas: 616 (previous year) + 57 (current year) = 673 / 1000

Last Friday, I left for Ohio and will out of town for most of this week. I have my laptop with me, so hopefully I’m working hard when not visiting with friends and family.

I’ve spent some time looking through the Guichan library. Even if I don’t decide to use it in my projects, and I see enough in it that encourages me to incorporate it, I can still get a good idea how to deal with a GUI.

I’ve also been thinking about getting Joel Spolsky’s User Interface Design for Programmers:

UI is important because it affects the feelings, the emotions, and the mood of your users. If the UI is wrong and the user feels like they can’t control your software, they literally won’t be happy and they’ll blame it on your software. If the UI is smart and things work the way the user expected them to work, they will be cheerful as they manage to accomplish small goals.

Now I know why I have been feeling like the UI is important enough to spend so much time on it. If I don’t get it right, it will be a huge problem. Getting it right would mean that people won’t notice it. At first, it sounds bad, but people shouldn’t notice the UI. It should just be. If they notice it, something is wrong.

I don’t want to keep my implementation of a slider. It works, so I’m happy that I have the functionality, but it’s not very useful outside of this project, and ideally I should be able to take everything I learned from this project and move it to another. Unless I find something better, I am going to incorporate Guichan into Killer Kittens.

Hopefully I’ll have something good to show off when I get back from Ohio.