Quake 4

I just played the Quake 4 single player demo.

If this were an SAT test, you could sum up Quake 4 as

Quake 4 : Quake 2 :: Doom 3 : Doom 2

Basically, Quake 4 is Quake 2 prettified and given a new situation. You’ll even fight some of the same enemies from Quake 2 early on in 4.

This makes me sad, because the original Quake remains my favorite in the Quake series. I enjoyed the fact that the game jumped back and forth between military installations and gothic castles – it felt like you were jumping between two realities, ours and another that was attempting to take over. I am aware that this was because the Id guys never really finalized a design for the game, but I still liked it. I’d like to see a more direct sequel to the original Quake, perhaps with a feature where levels morph from realistic to fantastic and back while the player is running through them.

40-Hour RPG Update 6: 15 Hours

Unfortunately, this is an update that doesn’t involve prettier screenshots. I’ve finalized my combat and character advancement systems and begun creating the data files for all the NPCs (monsters and townspeople) in the game.

One thing that is bothering me is that I don’t feel I’m giving the player very many choices when it comes to combat. While I understand that I’m a programmer, and therefore this is ultimately a programming exercise, I also do dabble in design and the design that is coming out is simple, functional, and probably not very fun.

What it boils down to is that I probably need more weapon, armor, spell and item types in order for the game to be really fun. My system is flexible enough that in order to add them, all I’d have to do is create new data files for them and expand my tile bitmap to include the new tiles for them…I’m hoping I have time to do it.

I’m very close to being able to look at, talk to and fight any person in the game. The code for all that is written from the NPC side; now I need to work on the input system so that the player can communicate his desire to look, talk or fight to the game.

Here’s how I’m planning to do my mouse-based player input. When the mouse pointer is not inside the map part of the screen, it’s a mouse pointer. You can use it to click on the save/load/quit buttons, click inventory items to arm them, click spell buttons to cast spells, or click on the interface buttons at the bottom of the screen to set a certain interface mode (look, talk or fight).

When the mouse pointer is inside the map part of the screen, by default it’s a “move” pointer. Clicking the left mouse button while the pointer is in this mode will cause the player to move one step towards the pointer. Right-clicking changes to “get” mode. Left clicking on an object will then get that object into the player’s inventory. Right-clicking again changes to “fight” mode. Left-clicking an NPC will attack that NPC. If you have the Smite spell, right-clicking changes to “cast” mode, allowing the player to cast Smite on any NPC on the screen. Right-clicking again changes the mouse to “look” mode. Left-clicking causes the player to look at whatever item the player clicks on. Right-clicking again changes to “talk” mode.

There will be interface buttons on the bottom of the screen so the player can play the game with just the left mouse button if desired (left click get, fight, cast, talk or look and then left click in the map area on what you want to do that on).

I’m going to try to support keyboard-only as well, but selecting stuff on a map with just a keyboard is kind of wonky (as anyone who played Ultima VI without a mouse will tell you).

Viridian’s Thanksgiving in 24

At around 11 AM Wednesday morning, I found out that I was cooking Thanksgiving dinner.

Now, in order to tell you this story, I have to tell you another one.

One year ago, my wife was eight and a half months pregnant with our third child. Her pregnancy had been very difficult, with lots of pain in her back, and she had become more and more miserable as the time passed. Needless to say, she was not in any mood to cook a Thanksgiving dinner. She wasn’t even in a mood to go anywhere, so going to her mother’s for Thanksgiving also wasn’t an option.

Now, just a few months previous I had started watching this show on the Food Network called Good Eats. I’d discovered it while channel surfing when I came across the host, Alton Brown, lying on top of a huge foam piece of lemon merangue pie. I soon became a dedicated watcher, because cooking had always interested me and the show is very funny and presents straightforward, common-sense recipes – none of this “stuffed quail with mango chutney” stuff.

And Good Eats had a special on making Thanksgiving dinner. I’d seen it several times, and thought…well, the recipes I’d tried hadn’t been that hard and had tasted great…yeah, the dinner would be very involved and have lots of steps, but it didn’t look hard – I wouldn’t be trying to make caramel or a soufflé or anything silly like that. It looked doable.

So I decided I was going to make Thanksgiving dinner for my poor pregnant wife. I took tons of notes, and even made up a schedule so that I would know what to do when. The most involved part was the turkey, since I had to buy it on Sunday so it would be thawed on Wednesday so I could brine it overnight and cook it on Thursday.

But the result was worth it – the meal turned out fantastic. We had turkey, cornbread pudding and mashed potatoes. It was so good I couldn’t believe I had cooked it. And my wife mercifully didn’t have much back pain that day, so the day overall was very good…just the kind of break she needed going into the last two weeks of her pregnancy. She raved about the meal to all her friends and relatives, and it became well known that I could make a Thanksgiving dinner. I ended up making the same dinner again a few months later when we had a friend in from out of town.

Fast forward to this year. It had been my understanding all week that we would be packing up the three chilluns and taking them over to their grandmother’s house for Thanksgiving. Now, my mother-in-law is a wonderful woman (seriously!) but she is getting on in years and is becoming less capable. So Wednesday morning she calls my wife and tells her that she doesn’t feel up to the task of cooking Thanksgiving dinner this year. My wife informs me that it’s up to me.

Now, I don’t mind cooking, but this was a bit short notice. Not only would I have to cook the dinner, but we’d also have to get the house clean enough for company. I didn’t know if I was going to have the time necessary to prepare the turkey.

So I went shopping. Needless to say, the grocery store was a madhouse. The sugar/flour/spice aisle was almost completely stripped. Fortunately, I had most of the spices I needed left over from the last time I’d made the dinner. Also, very fortunately, the grocery store still had a good supply of turkeys, and they had turkeys that were fresh rather than frozen, so thawing wouldn’t be necessary. I ended up getting a fresh 15.5-pound bird. I managed to buy everything on my list, sometimes getting the very last one of a certain item, like the stuffing mix I used.

I also went to the hardware store and bought a bunch of cleaning supplies and a five gallon plastic bucket to brine the turkey in.

Now, here’s how brining works: you create a very salty solution with some other seasonings (I use black peppercorns, allspice berries and some crystallized ginger). You soak the turkey in the brine for half an hour per pound, and as the bird soaks, the bird’s cells absorb the salty water. This causes the bird to become more juicy and more flavorful. Thus, a 15.5-pound bird should soak for about seven hours and 45 minutes – in other words, overnight. The problem is that you must turn the bird over halfway through the brine, so I had to set my alarm clock for 3:30 in the morning to flip the turkey. You also must get the turkey out of the brine at the proper time, for if you let it soak too long, the turkey will taste salty. I made that mistake once.

This time instead of slavishly following all of Alton Brown’s recipes, I mixed things up just a bit. While his cornbread pudding is very tasty, it’s also time-consuming to make because it has to be baked for an hour. The turkey was going to be monopolizing the oven, so I needed a different recipe.

Last Thanksgiving, after dinner was done, I was looking through the channel guide and I came across a special called Rachael Ray’s Thanksgiving in 60. I watched it and was intrigued. I thought that she used some very clever tricks to put a Thanksgiving dinner on the table in just one hour, including one where she cooked a stuffing on the stove, then baked it in the oven for a short time to crisp the top, making it taste like it had been baked through. (Longtime fans will know that this is a classic Rachael trick.)

So I did the same thing. I used this recipe. I left out the apples (apples in stuffing? blech), and I didn’t make muffins out of the stuffing…I thought that was kind of silly. But the basic stuffing turned out great, and kept the oven free for the turkey and the apple pie.

I also made mashed potatoes, using six big baking potatoes, two cups of heavy cream, and two sticks of butter, as well as some salt and garlic powder (I forgot to get garlic at the store, can you believe that?) They also turned out great.

But the thing I’m proudest of is the gravy I made. Last year I used a packet. (Give me a break, it was my first time.) Later I tried making sawmill gravy, which didn’t turn out that great. This time I did it right. I made a béchamel sauce in a heavy saucepan, and I deglazed the drippings from the turkey that were left in the roasting pan. I added the drippings to the béchamel and cooked it for a bit to thicken it and it turned out wonderful.

Between making the dinner and cleaning up (which required things like scrubbing crayon off the walls and removing spots from the carpet) I only got about two hours of sleep last night. In fact, when the alarm went off to flip the brining turkey, I hadn’t gone to bed yet.

But it was worth it. The dinner turned out fantastic and everybody had a wonderful time.

Dallas lost, though.

Lying Down on the Job

It’s now been almost a week since I worked on my RPG, and if I don’t do something soon, I’m afraid I might just let the project lapse. I refuse to allow that to happen.

I intended to work on it over the weekend, but my son was sick. I will get some work on it done over the Thanksgiving weekend, however.

Visual Studio Express

You probably already know this, but just in case you didn’t: Microsoft is making the Express versions of its Visual Studio development software free for a year. These are full-featured compilers for the Visual Basic, C++, C# and J# programming languages, and yes, you can make commercial software with them.

I don’t know why Microsoft hasn’t been doing this all along. One of the reasons I am where I am today was because I found a book that had a learning edition of Visual C++ 6 on it. The learning edition put a “Not for Commercial Use” popup at the beginning of every program you made for it, but was otherwise full-featured, giving me very valuable experience that later got me my first programming job. I always wondered why they didn’t make that edition available for free download from their web site.

Of course, this is probably Metrowerks’ worst nightmare, and this will probably coax the last few Borland users into the arms of the behemoth. Still, when the behemoth makes it easier to learn software development and reduces the development cost of making commercial software, you can’t help but be a little grateful.

I Must Be Crazy…

I’m actually thinking about what my next 40-hour project will be. Even though I don’t have this one half-finished yet. I’ve got a couple different ideas: a 40-hour space opera RPG, a 40-hour real-time-strategy game, a 40-hour Master of Orion-style game or a 40-hour Civilization-style game. Maybe I should put up a poll 🙂

40-Hour RPG Update 5: 13 Hours

(Note: Sorry this wasn’t up yesterday…I came home from work and went right to bed.)

This is going far slower than I intended…I had only intended for this to be a two-week project. I’m now in my third week and haven’t even used up half my hours yet! Still, the project is progressing, and it’s looking more like a game all the time:

Ooooh...

The game now loads maps created with the editor. The player may move around the map, and is blocked by impassable terrain, NPCs and monsters. The player may walk over items, however. The text system is in, allowing me to have a scrolling text area at the bottom of the screen.

However, the player may not talk to, look at, pick up or fight anything. In order to get those actions into the game I need to create the actual item, NPC and monster classes. That’s going to be a huge wodge of content. I’m expecting it to take about five hours.

Blargh, Part Deux

Was feeling better, until I woke up this morning. Now I’m feeling much worse. Still went to work…Hit & Myth isn’t going to get done with me sitting at home, and I already took a sick day last week. Still, I did manage to get something done on the RPG this weekend, and there will be an update later today, I promise.

40-Hour RPG Update 4: 11 1/2 Hours

I had originally planned to have the character moving across the map, monsters spawning and basic combat done by the ten-hour mark. I have failed at that, but I still think the project is on track. My editor turned out pretty darn good:

Holy Smokes!  An editor!

You’ll want to right-click and choose “View Image” to get the full effect.

The big work area on the left represents an entire 64×64 map on one screen – no scrolling. All the in-game terrain types and objects are icons in the upper-right. The numbers 1, 2, 4 and 8 control the brush size (only when painting terrain, of course). Save and load work perfectly, and the “Undo Item” and “Undo NPC” buttons allow you to undo the dropping of items and NPCs in the world.

I initially was going to have a set of “Clear to Terrain” buttons that would have given you an instant water, stone, grass or lava canvas to work on, but it’s almost as easy to just paint the map with the terrain you want using brush 8. I was also going to have a “New Map” button, but closing and reopening the program works just as well. The save buttons always saves to a map called “default.map”, and the load button loads this map, so once you’ve saved your work you’ll want to find that map and rename it to something else, lest your next save overwrite it. Very clunky, but just writing a simple system to input your save game name would have taken at least another half-hour. This is dirty, yet functional – exactly what I was shooting for.

There is one thing this editor doesn’t do, and that is map links. But coding that would take longer that just adding the links to the map by hand (most maps don’t have very many links) so I’m willing to call it done.

The map you see here was made in under five minutes.