Categories
General Linux Game Development

The Death of John “overcode” Hall

Returning from Grand Rapids, I was shocked to learn that John “overcode” Hall had lost his war with stage IV melanoma on September 17th. I had posted about John Hall’s battle previously. He is the author of Programming Linux Games and used to work at Loki.

From his War blog:

One of my main purposes in blogging this is to alarm people into getting suspicious moles checked out by a doctor immediately. If you are even remotely concerned about anything on your skin, please make an appointment with a doctor today. You definitely won’t regret it.

Definitely good advice that merits repeating.

A number of people close to him have written on the subject, such as Ryan Gordon and Jamie Fristrom.

It was Stéphane Peter‘s post that really threw me for a loop. Up until I saw it, I didn’t realize how young John Hall was when he had died. I had assumed that he was young, but still a bit older than I am. I thought he was maybe 40 years old. It turns out that he was born only a year before I was. A YEAR!

In about the same span of time that I’ve been alive, the man became a pilot, a published author, a game programmer, and a musician among other roles. And on top of it all, he put up a valiant fight against cancer. According to people who knew him, he was enthusiastic, ambitious, and incredibly motivated. He was also a good friend and family member. I wish I would have known him or at least talked to him on IRC.

I didn’t know him, and yet the news of his death really hit home. Family members have died without stirring so much emotion in me. I didn’t know why it affected me so much, but I thought about it for some time. I’ve determined the following possible reasons:

  • For one, I’ve had almost the same amount of time as he did on this planet. Nothing stopped me from accomplishing great things in that time. How did I squander it? What did I do besides graduate from college?
  • For another, while I have been interested in improving my general health, I’ve been procrastinating with seeing a doctor for a physical as well as getting new health insurance to replace my expired plan. The application was frustrating to fill out, to be sure, but it was not so bad as to have delayed me for over a month. My eyes have been bothering me for months (I can read but I’m not sure why it is somewhat more difficult), but I haven’t gone to have them checked out. One of my knees was painful for months at a time, and I never went to see a doctor about it. It cracks loudly when I extend my leg these days.
  • Finally, what about my major goals in life? What are they? What’s taking me so long to define them and start making progress?

I feel terrible thinking about my own mortality because I feel like I am doing his memory a disservice by talking about me. On the other hand, I think the death of a person who has some connection to you, no matter how surprising the connection may be, is cause for introspection. It puts things into perspective. In the end, I know I have no excuses for what I have done or haven’t done, but I also know that I can’t just wallow in my past failures. My life shouldn’t be wasted by waiting for the perfect time. My life shouldn’t be wasted by waiting for the perfect circumstances. I’m living it, whether I’m ready or not. Time will pass, whether I’m happy with the moments or not. In the time I can do so, I would like to actually make a difference.

My thoughts and prayers go out to John Hall’s family and friends. He sounded like someone to look up to, and I know at the very least that he has inspired me.

Categories
General

Report: Grand Rapids Schmooze 2005

I was in Grand Rapids, Michigan on September 15th, 16th, and 17th for the Grand Rapids Schmooze. The GRS is basically an informal get-together of people involved in the shareware industry. I wasn’t sure what to expect, but I figured it would be good to hear from people already in the industry I want to get into. I made my hotel reservations, printed out the directions, and away I went.

First Day

At the last minute my girlfriend decided to accompany me, and we both drove out from Chicago. I thought it would be a four hour drive, but we didn’t have to stop for gas. We got there with half a tank left, and plenty of time to spare. No traffic! We checked into the hotel. I brought my Gamecube, and we both brought plenty of books. Like I said, I didn’t know what to expect.

I was there fairly early, but I got to meet a few people, including our host Sheila Manning. There was plenty of food and drinks throughout the Schmooze, which is good because hotel food is expensive. B-)

The first day was full of talk of the Shareware Industry Conference and other events about which I had no idea, but I figured I would pick up on the inside jokes soon enough.

Second Day

After breakfast (read: donuts), a number of us went to see the ITT Game Design Club (WARNING: heavy use of Flash). We got a tour of the ITT campus as well as free lunch. I got a chance to talk to a few of the students and faculty there. I thought I wouldn’t have much to say compared to some of the other Schmoozers, but I was surprised to find that my throat was getting dry by the end. I was asked about what classes I would have found useful, and the discussion eventually turned to a number of topics including games in politics and female gamers. I even managed to procure a small toy cow provided by the Schmoozers from Tucows.

After returning to the hotel, we spent the rest of the time schmoozing. Some of the people from the ITT GDC came by and played Magic: The Gathering while a number of people went out for dinner. I missed out on going to Big Boy, but Applebee’s was good.

I found another fan of Total Annihilation, and everyone always gets a kick out of hearing about my fairy ninja in Wizardry 8. I also heard that Homeworld 2 had some serious flaws, but I’m still interested in getting a copy of the game. It’s a blast to hear some of Gregg’s stories from the trenches of Spectrum Holobyte and Thomas Hruska‘s TI-82 games.

Third Day

Besides Schmoozing during the day, Gregg Seelhoff hosted a campfire. A number of us attended, including my girlfriend, Thomas Warfield, Tim and Sharon Thousand, and Loren and Kim Brewer. We successfully started a campfire, successfully grilled some hamburgers and hotdogs, and I successfully got the beanbags through the hole of the game that Loren and Kim brought. And I just lost The Game.

While most of the people brought tents to stay the night, I drove back to the hotel with my girlfriend and Thomas Warfield. Before going to bed my girlfriend and I stayed up a bit to play more Wind Waker. We finally got the first piece of the Triforce!

The Return

I meant to go to the Schmooze Room to help Sheila clean a bit before leaving, but when I got there the room was locked. I assume she left earlier. Traffic was great on the way back…until we hit Chicago. It honestly felt like the trip time doubled once we got in the city.

I realize that the above is not very exciting, but since most of the Schmooze is basically Schmoozing, it is kind of hard to describe in detail. You had to be there. B-) I’m definitely attending the next one, which is apparently going to be in Indiana. No Big Boy there, unfortunately. If it is anything like this one, it should be a lot of fun.

After being gone for so many days without access to the World Wide Web, it is natural that I would miss out one some news. These items don’t all have the same relative importance, but I am simply listing them here:

I’ll have something to say about the last two items in separate posts. The last one especially shook me up pretty bad, and I didn’t even know the guy personally.

Categories
General

My Blog Software Has Been Upgraded

While I figure that people reading in this post in the future will find it confusing, my webhost finally moved my site to the new server, and I found that I could finally upgrade WordPress to version 1.5!

Of course, it means it will be awhile before I decide on a new template and customize it a bit to make it more like home. Later, I will post an update on what’s been going on for the past week, including information about the Grand Rapids Schmooze and the news I missed out on while I was there.

Categories
General

Grand Rapids Schmooze

I’ll be gone for the rest of the week. Also, my webhost will likely move my website to a new machine on Saturday or Sunday, so I will be making this blog static until I return home. By static, I mean that I won’t be able to accept comments or trackbacks, nor will I be making new posts during this time.

I will be attending the Grand Rapids Schmooze, which should be a great opportunity to meet shareware developers. The ITT Game Design Club will be hosting a luncheon and SophSoft, Incorporated / Digital Gamecraft will be hosting a campfire.

It should be great fun, and I’ll be sure to post about it.

Categories
Game Development

Oracle’s Eye Development: Another Small Update

As I noted in my last post on Oracle’s Eye development, I wanted to transfer functionality from PlayState to the GameWorld class.

Short story: I did it. Next step is to try to make the Player object obey the WallTile boundaries.

Long story: There were multiple times when I felt like I was spinning my wheels. Maybe it was just that I haven’t been exercising my brain by designing as much as I should, but I was starting to despair that I wouldn’t be able to figure out what to do. After all, I already had a huge chunk of temporary code to see how the program would work, and here I was trying to completely change the design of it. Where do I begin? Will I ruin what I have and waste time before I figure it out?

After some persistence, I created a number of new classes, modified a few existing ones, and I molded the GameWorld class into exactly what I needed. It just all came together. For hours I was struggling with thinking about how to handle the changes I needed. At one point I even considered reducing the scope of the project so that the stick figure just had to reach an exit in a maze since it seemed simpler.

When I started this last development session, I found it difficult to imagine that I would be able to implement the complete game. Even after a few hours of “work” (in which I might have spent a big portion of it not actually concentrating on the task at hand since it was easier), I still had doubts.

Then everything just worked out, and now I can see that my original plans should be possible. Next time, even if I feel overwhelmed with my project, I’ll just have to remember that going the extra mile and being persistent will do more for me than worrying or massive redesigns would do.

Categories
Game Development

Oracle’s Eye Development Small Update

I don’t have anything really newsworthy to share since last time, but I thought I should update the blog on my Oracle’s Eye progress.

I had a stick figure that would glide around, and three others that would move at different speeds and in different directions relative to the one you control. The Player objects were hardcoded into the PlayState as global variables, and I named the variables gTemp_player to remind myself that these are meant to be temporary.

I decided that I needed to create a GameWorld class to handle all of the entities and their interactions. I set out to design the class, and I found that it would have to own the Room and the Player. It makes it very easy to have a GameWorld class that determines how they interact because otherwise the PlayState would know too much and it would add way too much complexity. The cool thing is that keypresses can be handled by delegating to the GameWorld object. For instance, if I press the left arrow key, PlayState will simply tell the GameWorld to moveLeft(). The GameWorld can decide what it means for it to move to the left, but it will likely just move the Player object in that direction.

Great. Now I just need a Room class…and a Room class needs a Tile class. I already know that I want different types of tiles, so I created FloorTile and WallTile classes that derive from a base Tile class.

In the end, I created all of these classes, but there wasn’t enough time in the development session to actually get them all to work together. I’m still hardcoding PlayState, which is fine for now. Since I can’t just create a Room with Tiles easily and I want to see the tile sprites, I just used a Player object that won’t move and used the tile sprites as the sprite for the image.

It actually didn’t look too bad:

Technically all of the extra code didn’t actually do much to change what someone would see when you run the program, but I think the foundation is ready for me to make significant progress. Tonight is another scheduled night to work on it, so it will still be fresh in my mind.

My next step will be to transfer functionality from PlayState to the GameWorld class. I will then attempt to force the Player to walk only within the boundaries of a Room, probably by just having GameWorld check if Player’s position would intersect with WallTiles. FloorTiles will be in the background, and Kyra makes it easy to check only the sprites I need.

Categories
Game Development

Game Development Skill Acquisition

In response to my post on Creative Writing Prompts and my search for a similar tool for programmers, scott posted a link to Code Kata at Dave Thomas’ (The Pragmatic Programmer) blog, PragDave.

There are a few posts describing Code Kata, but one of them mentions the Dreyfus model for skills acquisition.

The Dreyfus model suggests that there are five stages in the acquisition of mastery. We start at novice: unsure and with no experience. We don’t particularly want to know the “why,” we just want to be shown what to do. We need to know the rules, because we just want to achieve some goal.

While Code Kata is for learning how to program in general, I think the skills acquisition description was very insightful and can apply to learning game development. I think I had posted previously about how beginners should start by making simple games because doing so will teach them a lot about what it takes to make more complex games later. Of course, I was mainly talking about myself as the beginner game developer.

I already knew that I needed more game development experience, but I need to realize that it is not just OK to make a clone for my first game or four. It might be necessary. As PragDave mentions, it is like learning karate. If you’re a beginner game developer, you should be able to emulate existing game developers before you start trying to work on your own plans. You can’t start by being the Master. You have to start as a beginner by emulating the Master.

People on GameDev.net periodically find that they need to inform idealistic newbies that they won’t be able to make the best MMO game ever. “Try something simpler, like a Tetris clone” or “You need to learn how to program” or “/me slaps you with a trout” might be common responses. The newbie is a student of game development who thinks he/she can skip the beginner and intermediate phases and start making games like a master. The newbie needs to learn how development works first. He/she needs to learn the rules. It’s learning the “How” before the “Why”.

I have a number of ideas that I think are somewhat unique, and I would love to make games out of those ideas. At the same time, I know that if I try to make those games today they won’t turn out nearly as good as I would want. I can, however, make simple clones, and I’ve already made a Pac-man clone in QBasic years before, complete with bouncing cherries and multiple levels, so I know I can do it. Perhaps a Space Invaders or Asteroids clone wouldn’t be such a bad idea after all. For a long time I thought that making clones of existing classics would be wrong in some way. I could do better and make something unique for my first few projects, right? I mean, does the world need another Pong clone?

Well, perhaps it does.

I’ll still try to finish Oracle’s Eye first since I think that finishing a game project is a good habit to gain. My next projects will likely be some simple clones which will be easier to complete in a month.

Categories
Geek / Technical General

Building a Better Game Blog

Video game blogs: the next level is a post on Aeropause on the topic of writing a better blog in general and a game blog in particular.

I actually gave Eats, Shoots, and Leaves to my girlfriend, so I might borrow the book from her one day. I’m also interested in reading 31 Days to Building a Better Blog. I never intended to make money from my blog. I don’t blog professionally (although one might think that I spend enough time doing so at the expense of other things I SHOULD be doing professionally) so I don’t think all of the advice will be relevant, but I should be able to gain some insight into better blogging.

Categories
General

I’m Published in The Escapist

I wrote a letter to The Escapist and it got published. Reading it again, I see it isn’t that great of a letter so it’s not quite something to be incredibly proud of. Hopefully my suggestion of moving the navigation bar from the bottom to the top would be taken into consideration. It’s really annoying reading that magazine online, and I don’t always have access to a printer.

I think I might try to submit an article for a later issue. which would be something more newsworthy. But hey, this is my blog. I get to print whatever I want. B-)

Categories
Game Development

I Want This Musician!

Paul Taylor wrote about working on an indie game called Determinance, and he is exactly the kind of musician I would want to have working on any of my own games:

Each track, even the menu music and closing theme, is based around a core melody or chorus. This is something I believe in passionately – if you can’t whistle the tune of a song then it’s 99.9% likely to be worthless.

Wouldn’t you want a person who is passionate about what he does making your games?