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.

Friday, July 15, 2005

Game in a Day

I've decided that in order to get back in the groove for Bulwark, I need to do something game related that is not Bulwark. So I'm joining in on the GID fun (www.gameinaday.com). The theme is ghosts, and I have an idea that could be fun. Here's the link to the design doc: (link removed)

I'll probably post updates or at least a post mortem here when it's done.

Tuesday, June 07, 2005

Bulwark update

Bulwark is still moving slowly. It has been almost standing still for the past couple of months, but it is getting to be playable. You can build walls, place cannons (only in secured areas), then fire cannons one at a time. This is all done in timed rounds (building round, place cannons round, attack round). The attack round has static enemies that spawn during the building round and attack your walls in the attack round. John Seguin has made one sweet music track for the building round... done in surf rock style. I'll eventually put some links to his site, since I'm impressed with his ability to compose music in such a variety of styles.

The next step is probably to work on the enemies to make them move and give them different abilities. Networking is also in a bad state... I have not got that working fully just yet. It has worked on my local machine by starting up a dedicated server, but it doesn't show up on the GarageGames master server. It may have something to do with the campus firewall and such.

My summer hasn't officially started yet, since I'm working full time and taking a class, but class is finished next week and I'll have a few more hours per day to do other things. I graduated with my BS in Computer Science and have already started the MS program at the same place... Brigham Young University. I'm working in an AI-centric lab with robots and stuff. It's a fun place to do research. That's all just to let you know that I'm not twiddling my thumbs all day, but have other things going on. Gamedev is just a hobby for me!

Wednesday, February 02, 2005

Time Machine

The contained area scanning is now in 100% c++, and it's fast. Fast enough to not notice it happen, anyway. The display of the contained areas is still slow, since it must create a new object for each gridspace that's contained, but that will be eventually solved by using openGL to draw such things directly on the client. I might even use tri-strips or something.

Anyway, I also got started on moving things to the client. All of the script code to handle multiple clients is there, on the server scripts at least. I still need to create the proper stuff in the clientside scripts for two people to actually play. Before I started on this, I realized I need to send some stuff across the wire. This will make two people on the same keyboard rather simple to implement, but even more importantly it will allow network play. The reason this needs to be so is each client needs to keep track of the walls, contained areas, and other things to reduce network traffic. Just sending updates will be more efficient than storing everything on the server and having the clients access it each time they need it.

So I've been struggling to think of the best way to approach this, since my network coding experience is slim. Just today I spent about 2 hours trying to wrap my head around the whole concept. I think I've finally got it, and that means that fairly soon network play will be possible. So I can sit at work and play... er... I mean... test... yeah, test my game with my wife at home and see how it works. It's exciting just thinking about it.

When I published my one and only game Booym, I was 18, and the whole development cycle was only 3 months. It was a fairly simple game, but I look back and wonder how on earth I got so much done in such time. Yes, it was summer, but we traveled around part of the time, and other things were always distracting (I still like to play other games, too). So it was really more like 2 months. Anyway, my point is that I've tried to reach back 6 years and figure out what was so cool back then. The answer? A clipboard. Yeah, I had a clipboard for my game. I've never done well with full design documents. My design documents consist of a couple short paragraphs describing the essence of the game. Sometimes I explained a particular feature in a little more detail, but there was very little design on that clipboard. Mostly I just dove into the game, got a prototype working, then starting adding stuff I thought would be cool. The main thing on that clipboard was a checklist. While working on the game I would think of other things I need to do. When such things came, I wrote them down. My prioritization method invovled putting a box next to things that need doing soon. I doubled that box if it was urgent, and tripled the box if it needed done today. That's it. In subsequent game attempts, I've tried to be more formal, and I end up spending too much time designing until I get bored and think the game is going to be dumb. So I'm reaching back in time to get that same adrenaline from making a game impromptu. I'm hoping it will work better.

The next steps are to get the necessary data on the client and synchronize with the server. After that, it's getting the build command and fire command to work from the client (simple). Then I've got to code in all the piece templates to make the game more interesting, and randomize the selection of the next piece.