Categories
Game Development Personal Development

Thousander Club Update: August 6th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 146 (current year) = 409.25 / 1000
Game Ideas: 616 (previous year) + 92 (current year) = 699 / 1000

I’m moving within the next month. Between traveling to different states for weddings and visiting friends, crunch time at the day job, and an annoying need to sleep and eat, finding a new apartment has been incredibly time-consuming. I need to move out of the apartment by August 31st, but I can’t wait that long since I’ll be in Ohio again that weekend. I’ve seen a number of places, and some seem nice, but none have jumped out at me as a new home. My current apartment has become too expensive to live in, and so I am looking for something that can let me save money.

And when have I found time to work on Killer Kittens? Frankly, I haven’t. Occasionally I squeeze in some work, but it is usually during the downtime when I am out of town. Then I get back and it is right into day job crunch again. I haven’t even had much time to write entries for this blog, and there were plenty of interesting things going on in July. I’m also behind in my POTM entries. Heck, I missed last week’s Thousander entry, which is the first time I missed a week since I joined the club.

I suppose I can’t be too harsh on myself. Moving into a new apartment is important and urgent. Other things in my life have to take a backseat. Perhaps when crunch is over (when IS crunch over?) I’ll have some more breathing room, too.

Categories
Game Development Geek / Technical

Learning Random Things

I sometimes find potentially useful video game knowledge in the strangest places. After reading Joel Spolsky’s post on the difference between Microsoft’s implementation of font rendering and Apple’s implementation, I followed the link to Texts Rasterization Exposures which goes into great detail on the topic.

The article is about font rendering. What does it have to do with games?

Maybe nothing too much, but I already learned one thing I didn’t already know.

The visual response is approximately proportional to the square root of the physical luminosity. In other words, if there are two white pixels on black, and one of them emits exactly two times more photons per second, it won’t look two times brighter. It will be about 1.4 times brighter.

The accompanying picture shows two white dots on a black background. In order to make something look two times brighter, you would need to add more than two times as many pixels. 4 pixels == 2x as bright as 1 pixel.

The article discusses anti-aliasing techniques, gamma correction, and the problems of font rendering on a Linux-based system. Still, I now know how to make lights appear brighter as well as why it works. If I need a lighthouse to rotate, or a car to turn a corner towards the camera, I have a better idea about what I need to accomplish the effect.

Sometimes I wonder about people who don’t expose themselves to multiple ideas. I occasionally like to read about the history of a place or an idea. I enjoy researching many different topics. Once again, I am glad that my university didn’t have a game development degree available when I started. I would have cut myself off from a lot of information if I had focused so much of my efforts on a degree in a specific field.

Will Wright came up with Spore while thinking about astronomy and education. Shigeru Miyamoto created the universe of Zelda after exploring the fields of Kyoto. What can you create if you only know about existing video games? I think that exposing yourself to multiple thoughts and a wide variety of topics can only help to spur creativity. People invent life-changing things and ideas by finding connections between one field and another. Velcro is a famous example.

Have you ever come across a random piece of information in a seemingly irrelevant piece of text? Has a talk on economics inspired your FPS?

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
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
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
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.

Categories
Game Development Personal Development

Thousander Club Update: June 25th

For this week’s Thousander Club update:

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

I have managed to implement a slider control. I wasn’t too happy that I was reinventing the wheel, but the idea of incorporating any of the third-party GUI libraries I found into my existing project just to allow the player to use a slider for the audio seemed like too much effort at this point. In fact, at one point I was thinking about doing a major overhaul on my event system in order to accommodate this one feature more easily. I may still end up doing so since it will greatly improve the way my game handles any event. If I am going to go that far, though, I might as well try to incorporate something like Guichan. And then I’m back to thinking that it is too much work for a small feature, and Killer Kittens is already way past the original date I thought I would finish it.

On the other hand, maybe spending more time on this project means that I will go through the pain up front so that later games don’t suffer as much. I already have a one-button build that will work well with later projects, so getting my UI elements working better might be a good use of my time.

In any case, I have a working volume control so that a player won’t have to worry about the sound effects overpowering the music he/she may want to play, and this feature is what I wanted to finish this past week.

Categories
Game Design Game Development Games

Speaking of Richard Garriott

Since people are blogging about games, specifically the entire series of Ultima games, it seems only appropriate to hear from Richard Garriott, Lord British himself. Richard Garriott: The Escapist Interview reveals all!

Or maybe just a bit. Consider it a complement to your Lord British interview collection.

He refers to the games before Ultima 4 as essentially projects to learn the mechanics of making games. If you find that your first projects are frustratingly simple yet difficult to make, perhaps you’ll feel better to know that it was about par with one of the big names in game development. He spends a good deal of time talking about his philosophy behind his latest MMO, Tabula Rasa. If you missed his preview at GDC, check it out at GameAlmighty.com.

In the Escapist interview, he goes on to talk about his new project in a way that makes me think that he is a believer that games can be art:

The goal is not to evangelize about one side or the other of any of these issues; the goal is to make people sit back and notice the ramifications of these decisions and to provoke thought. I’m a big believer in challenging people’s assumptions.