Saturday, July 28, 2007

Busy Times

Whew, July has seemed like an unproductive month for Watcher. In reality, I think lots was done, but it's mostly about learning. I have spent lots of time reading a book on character and story design. I haven't done much of that, and I'm the one to do it for this game, so I decided to learn a little about it.

As for actual development, this week I managed to squeak in a targeting reticle that can tag multiple targets, and a missile launcher module complete with enemy-seeking missiles. It all actually works quite well. The targeting reticle may also be used for ship-ship communication.

A major design decision I am facing right now is how to make the cities structured. I plan to have communication happen between ships, and I would really like to make it so the only written story comes from those communications. I am realizing that I will probably need to have some story communication happen in the cities as well. So when you go to the market to buy commodities the merchant tells you something important, for example. It would be cool from an immersion standpoint to make the player actually walk around the city and talk to people and go to shops and stuff. For one thing, that adds a ton more artwork that I'm not going to have time to make, and for another thing I think it would take away from the game. The fun part of the game is going to be flying the ship and dogfighting with enormous capital ships while bombing bases and protecting allies.

A recent flash game I've been playing (another reason for my lack of major progress) called Caravaneer has an interesting idea for cities. They just drew an arbitrary map of each city in real real simple form, and landmarks are indicated with an icon. So there's a well at each city, and a shop, and a market, and a doctor, etc. Each city has a different layout, but they all have the important landmarks. Another thing Caravaneer did is a good dynamic economy. I once thought of doing this before, but threw it out because I didn't feel it would contribute to gameplay. Now that I've seen what can be done with it, I just might have to put it in. It's not just randomly dynamic... it's market driven. So if a shoe-making town runs out of leather, shoes run out of stock, and the demand for leather grows dramatically. If you keep making shipments of leather to the town, eventually the demand goes back to normal and you won't make much money off of it.

Anyway, I might try that method, and if there's some important person you need to talk to, they will have a landmark on the city map.

Another reason this month may have not been quite so productive for Watcher is ...
Free Image Hosting at

Lauren was born! She's a cute kid, and we're glad to have her. Sleep at night is a little more precious now, though. Luckily Jared doesn't wake up to her wailing very much. Like, I think he's woken up only once in the week that she's been home.

Saturday, June 30, 2007


This week was just more infrastructure. There is now a message window in the HUD to tell you stuff about your mission (like when you complete it, and when you pick up cargo, etc.) and a new dialog that shows you all of your current missions. So if you just sign up for all available missions and forget what they were, you can look them up. The bounty hunting missions isn't quite so hacked together, and both cargo and bounty missions are randomized a little now (instead of entirely scripted).

One of my friends also gave me a good idea for the "first chapter" of the storyline. Instead of telling you what it is, I might do a little demo release of the first chapter when it's done. The first chapter is basically my first milestone. The game won't be feature-complete at that point, but a good chunk will be done.

Saturday, June 23, 2007

So many little things

Wow, there are a lot of little things that go into making a game. You would think that I would remember that, since I have shipped one game (a long time ago). And I do remember it, but it always amazes me how many little things go into making a fully polished game. Today I spent some time on a few of the little things, like showing the name of a city on the navigation screen when you mouse over it. They're little, but very important. I'm not even talking about the microscopic stuff yet...

Anyway, the player's ship now loads properly between levels... before it would leave some stuff behind, like what weapons they had, and their entire cargo... it was like some sort of greedy border customs. But now it's all good. I still don't have game saving/loading, as I re-ordered priorities since I had trouble motivating myself to do the load/save framework.

Instead I worked a little more on missions. Now missions can lead you to other levels, and there's a hacked-together bounty hunting mission. It's not too exciting yet, since the AI just stupidly hunts you all the time, and it's easy to outsmart it. But the enemy ship is spawned correctly, in the correct region. I did a little work on the "little things" for mission creation too, like showing the mission description.

Anyway, here's a concept sketch for the ones who just like to look at pictures.

Free Image Hosting at

Saturday, June 16, 2007

Howl's Moving Castle

This week I managed quite a few small additions/changes. The first thing was the radar/compass widget. Take a look (the arrows around the border):

Free Image Hosting at

The green arrows are landing pads, and the red are enemy ships. It works quite well.

The next thing was changing the movement method from direct velocity to inertial control. This change made the game a LOT more interesting. Now there's actually a point to combat. This change also opens the door to a lot of physics weapons.

The last changes were more under the hood, but they are paving the road to allow game saving/loading, which I feel is important even this early in the game. (heh)

Now that we've got the game dev report out of the way, I saw a great movie last night. All of you have probably already seen it... Howl's Moving Castle. I had not even heard of it until yesterday, and I absolutely loved the movie. In a lot of ways, it's the art style that I would like to have for Watcher. Howl's was a little too old-fashioned for what I have in mind, but the point is that there are airships and airplanes and such that are steam powered. The art style I hope for is some kind of mix between the old fashioned and futuristic. So, not everything will be coal steam powered, but also nuclear/fusion steam powered. There will be laser weapons and computers alongside the mechanical steam stuff. Anyway, if you haven't seen Howl's moving castle, you should. The art is amazing, and the story is amazing, if not a little strange. The plot isn't necessarily amazing, it's the storytelling that is fantastic.

Saturday, June 09, 2007

Navigation screen

Not much happened this week, although I did make a functional navigation screen. Check it out.

Free Image Hosting at

That screen shows where your ship is and where all jump gates and cities are. I tried several dumb things first to get it working, and then I remembered TGB's ability to draw the same thing in a different window. I still kept some of the dumb stuff, like creating a new object for each thing to be displayed, since actual size on that map is really really small. So I scaled each object up about 10x.

Monday, June 04, 2007

Warp 0.5

So my jump gates work! The solution was simple... at first I was trying to end the current level or empty out all the scenegraphs, but the end result is that you just have to load the next level, and all the rest is taken care of. The result is...

Free Image Hosting at

... another world!

There are still some funny bugs (or lacks of features) with jumping, like loading all the defaults for your ship (weapons, upgrades, cargo, etc.) I'll get around to fixing that kinda stuff eventually. Like probably a week before release date (ha!)

Another accomplishment for this last week was jumping from Idaho Falls, ID, back to Provo, UT. I worked in an internship at Idaho National Laboratory for 5 months, and now it's back to PhD fishing in school. Although only a 4 hour drive, the move is still happening, as I type amidst towers of unpacked boxes.

Back to the game, another accomplishment is getting the first draft of a design doc done. It's not so much a design doc as a "core vision" document, but that's my method of game design. I like to work out the details when they are ready to be implemented. This game is already going to be hard to balance, so I don't want to try to balance it on paper and do a poor job of it on paper.

So the next step is making a map/navigation gui to show you where all the cities and jump gates are in your current region. The same gui will be used to see how jump gates connect different regions on a planet. These features will make it possible to give some life to missions... I can describe what city to go to, and then the player can look up where it is on the nav gui.

Don't get lost!

Friday, May 25, 2007

Gate jumping

Not much happened in development this week. Some time was spent on the design document. I really don't want to work on the design document, though, so I spent some time also developing. The result is a solid TGB crash. Basically I'm trying to load a new level when the player hits a jump gate (shown below).

Free Image Hosting at

I'm starting to figure out what needs to happen to keep TGB happy, but it's not quite there yet. The good news is that once I figure it out, I will have accomplished another of my major milestones for prototyping.

Saturday, May 19, 2007

Mission Accomplished

This week I made good progress on Watcher. Bombs are now part of the standard weapon framework, which means you have to buy a bomb launcher, then equip the launcher on your ship to drop bombs. Bomb explosions now have a radius that diminishes in power as it gets farther from the center of the explosion. Buildings and decorations on the ground now have hitpoints, so one standard bomb isn't enough to destroy them... the guard tower currently takes 6 direct hits to destroy (a fairly difficult task!) although those kinds of statistics will change lots through the course of development.

The most exciting new feature to me this week is the missions (quests) system. Only one mission is available so far, but I think the system is flexible enough to add new mission types with fairly small effort. The one mission is to take 10 units of wheat cargo from the southwest city to the northwest city. When you accept the mission, you first have to fly to the first city to pick up the cargo (it's automatically loaded onto your ship, if you have space). Then you fly to the destination where the cargo is automatically dropped off and you are automatically paid. The system will allow multiple-stage cargo missions too... you could have to deliver cargo to multiple cities or pick up cargo from multiple cities. Right now I don't know if such a cargo mission would be fun or a good idea, but the point is that I can have such a mission if I want.

This morning I made some in-game menus. Now when you land at a landing pad, a city menu pops up so you can choose what you want to do at that city. When you choose the "missions" option, the missions dialog pops up where you can look at available missions and choose from them. Take a look at the new menus:

Free Image Hosting at

Yeah yeah, I know the game looks like more of a business application right now, but I'm forcing myself not to do any real artwork until more of the basis is put together. The game is getting to be fun... I need to add a few more cities and then the missions will be more exciting. Fun First! Pretty Later!

In other news, I decided earlier this week to learn a new keyboard layout. It's called Colemak, and it was invented just over a year ago. Check the website: and here's an image:

Free Image Hosting at

Several years ago, I learned the Dvorak layout, and I liked it for typing emails and general text, but it was an absolute nightmare for programming and any sort of non-text development. The important shortcut keys just moved around too much, and the symbol locations just didn't make sense for programming. Colemak, in my opinion, fixes quite a few of those problems. It leaves many keys in the same place as Qwerty, but moves the most common English letters to saner places on the keyboard. So far the learning is a little slow, but faster than learning Dvorak. I'm up to probably 20-25 wpm. Unfortunately, I'm a sinner because I didn't type this whole blog post using the layout... I'm just in too much of a hurry. Speaking of... I'm taking off.

Friday, May 11, 2007


A month or so ago I found a nifty eclipse plugin called TorquEDIT. It was fairly basic, but it had some nice things going for it. I noticed that the code was open source, so I took a look. The code looked fairly well-written, and it looked like it would be relatively easy to add some functionality. So I did. Last night along with kruxgames I released another version that has a ton more functionality than before. This is now the editor I use for making scripts. The code completion really helps, and it serves as a form of documentation, since you can see what methods a particular class has, as well as what parameters the functions take. Right now it's mostly tuned for TGB, although it should work with TGE and TGEA quite nicely too. There's only a few little things that are geared to TGB. Check it out at

Free Image Hosting at

This week I decided to install Ubuntu linux. The only purpose for this was to be able to use the music editor RoseGarden. After a few hours of following tutorials and general mucking around, I finally got it up and running. It's not the easiest thing to setup, but it's not too bad by linux standards. RoseGarden is what I will use for the music in Watcher. I probably won't start on the music for several weeks or months, but I had time to get it all setup now, so I did.

Just a few minutes ago I finished splitting all objects into proper collision groups. So now bombs affect everything they should, bullets affect everything they should, etc. The bombs also behave more like bombs... before if the bomb hit anything in its path (before it landed) it would still blow it up. Now the bomb lands, and blows up anything it's touching. Nothing eye-popping this week in Watcher, but TorquEDIT is pretty sweet.

Saturday, May 05, 2007

Weapons Energized

Today I made it possible to purchase weapons at a store, and equip them in the ship equipment screen. There was a lot of under the hood work to be done to make all that possible. Now it will be rather easy to make new weapons, as long as they are the straight-flying projectile type.

Free Image Hosting at
Screenshot showing different weapons

Image Hosted by
Image Hosted by
Plasma gun art (temporary, obviously)

Image Hosted by
Guard tower (not yet functional)

The next major step is getting the guard towers to shoot at you, and being able to bomb them. That really won't take all that long, but I don't very often get big blocks of time to work on this.

Friday, May 04, 2007

A few concept sketches

Here are some very rough, very raw concept drawings for some
airplanes/airships. Just scanned 'em in, adjusted levels slightly,
and uploaded.

"The Seagull"


"Big Ship"

"Big Prop"

My favorite so far is "Big Prop." Hopefully by the end of this I'll
have a couple dozen ships that I like as much as "Big Prop."

Wednesday, May 02, 2007

Watcher announcement

Watcher is the working title of my latest project. It's a 2D top-down action RPG in a steampunk-ish setting. The action part of the RPG is like a top-down free flight shooter (like a scroller, but it scrolls in both directions). If you've ever played Privateer or Elite, part of the game will be modeled after those, except it's 2D, and there's a bunch of stuff I'm adding in besides content. Without further ado, here are some current screenshots:

In flight.

One of the shops.

The ship equip screen.

As you can see, everything is rather rough around the edges and programmer-like. Almost all of the art is TGB-included stuff, so it will be replaced when I get there. The game has had about month's work, where work means about 3 times a week for an hour per time. Some of those times have been maybe 3 hour blocks. Since I currently work full time, I have to get up before my son in the morning (at about 5:30) and work on it until it's time to go to work.

The following is a list of tasks to do, and tasks that have been completed. The todo list is obviously not complete... it's the stuff that I need to work on in the near future. When the list gets down to just a few items, I will add more to it.

weapon system
different weapons
enemy buildings that shoot at you
experience points, level system
overhead map
radar (replace compass, or combine with compass)
Make enemies a little smarter
Missions (bounty hunt, cargo deliver)
make the Elite game fun!
cargo buy/sell gui update
shadows for all flying objects
overhead cloud/mist layer

create ship that flies around and shoots
create scrolling ground
create enemy ships that fly around and shoot

get money for shooting ships

store to buy upgrades (faster shots, faster ship)

bomb radius

create enemy buildings (bombable, explode)

create explosions

City built on grid

home base build factory (buy in store, build, then produces points every few seconds) (tile layer, setGridActive)

two different cities/bases with different prices (static for now)

dynamic enemy spawning (guided random encounters)

hitpoints, repair (costs money at shop)

compass to point to nearest city

enemy ship hitpoints
cargo/inventory system (data-driven would be great!)
keep shop information in a separate file, use product names as key in "dictionary" for items sold and bought (no XML, just classes)
ship equipment window (install modules, keep it simple... 3 bays, plus to install, minus to uninstall)
compass track nearest base

ship upgrade modules: firepower (eventually different guns), shields, turning radius

Now that you understand the game plan just as well as a slug understands quantum physics, I will keep you posted.

Bulwark on hold, new project

Bulwark is now on a mostly permanent hold.  As I progressed in the implementation and design, I realized that all of the art assets would just take too long.  I did make a little more progress from the last time I posted, but not much.  Someday I may go back and work on it, perhaps if I make art assets for another game that I can drop in.

Anyway, in the meantime, I got the Torque 2D engine (TGB) when it was first released and have been dabbling with it.  I've made a few dumb little things, like a laser chess variant, part of a weird mouse cursor game (that seemed cool at first, but I got bored with it), and various little test things.

My latest project is getting a lot more love... it's about a month old now, and it's coming along quite well.  The first working title was Constructor, but now I've decided to re-title it as Watcher.  That's also a working title.  So... you probably want to know what it's about, huh?  Well, the post after this will have all that info.  If it's not there yet, check back in a little bit.