Archive for January, 2006

By the prickling of my thumbs…

Tuesday, January 31st, 2006

… something wicked this way comes.

The First Update: 4 hours later…

Monday, January 23rd, 2006

Ok, here’s my first official update!

I’ve come up with the name for the game. I know you’ve all been on pins and needles, so I won’t lord it over you any longer… The name of the game is SLAUGHTERFEST V! The bestselling five time sequel to the SlaughterFest I through IV! What do you mean you’ve never heard of them? Well, that’s ok, since they never existed. I won’t hold it against you. For now…

So, after 4 hours of work, I’ve finished the first milestone and am well underway on the second one, right? Erm… well… no.

I overestimated (by quite a bit) how long I’d take to get some of the stuff set up. I’ve got the framework, entity management, sprites and animation all down. :) Basically I got the little bugger to show up on the screen. All that is left to do is to tie in the input handling to the player’s sprite and I can continue. Right now I’m just using some sprite graphics that I had lying around… PookiePookie sprites (a worthy new 40-hour project I think…), which as some of you know, gum-drop shaped little dudes with bug eyes do not a zombie shooter make.
I’ve been thinking about using DAZ|Studio to create the characters. It’s a free 3d program very much like Poser, and there are lots of free models on their site. The win is that once you got a character, all you got to do is pose-render-pose-render… and I can crank out graphics easily. Not sure where I’m going to get/make the tiles I need for te streets and stuff. Though Paintshop Pro does have an asphalt filter…

Anyway, in spite of my tardiness, I actually feel pretty good about this. Ok, not as good as if I was on time, but still good.

Next update will have the first milestone complete!

… And so it begins

Wednesday, January 18th, 2006

It is possible to fail in many ways…while to succeed is possible only in one way. -Aristotle

As fate would have it, I’ll be coming into some time soon. A distant uncle left me in his will “tons of time” provided I use it to make a game in 40 hours. What a coincidence!

Anyway…

In order to maximize my time, I’ve come up with a road map of things that need to get done, more or less in this order:

  • Milestone 1 – Setting stuff up
    • Initialize the frameword
    • Create an entity management system (a way to manage the player and all the zombies)
    • Create a sprite class with animation (for players and zombies)
    • Deliverable: Move the player on the screen
  • Milestone 2 – Generating the maps
    • Work on the town generation algorithm
    • Make some quick and dirty crappy street graphics
    • Integrate it into the program
    • Smooth scrolling
    • Collision detection (so that the player can walk over walls)
    • Deliverable: Move the player in a smooth scrolling environment while it’s unable to walk through walls, etc. (getting to the helipad wins the game)
  • Milestone 3 – Here there be monsters
    • Create some quick and dirty zombie graphics (or temporarily steal some from the web)
    • Create zombie AI, that is, if you get within range, they flock to you and try to eat your brain
    • Improve the map generator to add zombies based on the location (some location have more zombies than others, like say… a cemetary)
    • Deliverable: True horror. The player can move around but has no way to defend himself from the hoard of Thriller extras
  • Milestone 4 – This is my boomstick!
    • Create a weapons system for managing weapons
    • Create a generic weapon class that can be used to create all the other weapons
    • Create simple particle emitter for ranged weapons
    • Create two projectile weapons: Shotgun and a flamethrower
    • Create one melee weapon: a Bat
    • Do all the collision detection for zombie / weapon interraction
    • Deliverable: The player should be able to dish out some pain and start racking up that high score.
  • Milestone 5 – Power-ups to the people
    • Let there be ammo packs that replentish your… err… ammo
    • Create power-ups, specifically:
      • Super-speed (move faster)
      • Super-strength (do more damage, yes with guns too)
      • Invisibility (AI can’t see you)
    • Deliverable: same as above + powerups
  • Milestone 6 – I don’t think we’re alone anymore
    • Create computer controlled players who try to beat you to the helicopter.
    • Create some quick and dirty graphics for it (palette-swap the player graphics?)
    • Create the AI routines for them to do that which they have to do.

Wow… that’s a lot of stuff… and that doesn’t count the time spending fixing bugs! Tentatively I’d say time breaks up like so:

  • Milestone 1: 3 hours
  • Milestone 2: 7 hours
  • Milestone 3: 6 hours
  • Milestone 4: 7 hours
  • Milestone 5: 5 hours
  • Milestone 6: 7 hours
  • Total: 35 hours

That leaves me with 5 hours to fix bugs and add sound. Eesh cutting it close.

After the 40 hours are up, I’ll release what I have (as proof, I guess) and the second part will take place where I try to polish this into a better game. The idea is that I add no more features, just tweak the existing. For example, enhancing graphics, adding a title screen and menu, better sound and bg music, more weapons, is what I’m aiming at. Stuff like network multiplayer, adding vehicles, and other stuff whose basis wasn’t in the code already is right out.

I can’t wait to get started!

Rome wasn’t built in a day…

Monday, January 16th, 2006

… but these magic kingdoms were built in 40 hours.

So, I’ve been inspired lately by reading about two guys that did something pretty amazing. Indipenently, they each created an RPG from scratch — in just 40 hours. No, I don’t mean Rocket Propelled Granedes, although that would also be as cool as it is illegal. Jay Barnson inspired Viridian who in turn inspired me. Sure, their games are no Final Fantasy or Ultima 7, but they are not meant to be. They’re meant to be complete games, created in just 40 hours.
One of my problems is when working on this stuff for myself is the lack of focus. Such a strict and challenging feat might just be what the doctor ordered, so I decided to take a page out of their book and build a game in 40 hours as well. Much like they did, I’ll catalog my expererience here for all the world to see and laugh. I want to take this a step further. 40 hours is going to be the first milestone. I have to have the entire game working by that time. I want to have a second milestone at the 80 hour mark, and this will be for polishing, bug fixing, and generally making the game eastetically pleasing.

So, what kind of Game am I going to make?

Since they both build RPGs, I’ll do something different. Those of you that know me and my love of RPG will know that this is not an easy thing to give up, but that’s life. I’ll work on a Shoot’em-Up.

“Mass, you sly devil,” some of you are saying, “You’ve been trying to work on one for a while now! That’s cheating!” Not at all I say! As most of the old code I have is crappy test code anyway. I’d be starting over.
Ok, so what’s the game going to be about what’s it going to be like? Basically we’re talking about a digital version of the board game Zombies!!!, arguably one of the best games ever created. The premise is simple: You’re in downtown Anytown USA and wouldn’t you know? The place is teeming with zombie. Slow zombies, ugly zombies, smelly zombies, zombies of all shapes and sizes. And they all want one thing. Your brain.

Now, the way the board game works is simple: Each round, a player takes a special “city” tile from the deck and places it anywhere on the map that it would make sense. For example, you might get a stretch of road, and you can place it anywhere you want so long as either end of the road doesn’t end against another tile. For every “exit” out of the tile, you then place a zombie. So, for the aforementioned tile, you’d place two zombies. Oh yes, the game fills up with many zombies really really fast. The last tile is always the the helipad with a helicopter that’s patiently waiting… too bad it only has one seat left… As I’m sure you can deduce, the first person to get to the helipad wins. Another victory condition is whoever kills 20 zombies first. If you die, you respawn in the town center and you zombie kill count is cut in half (round down). At the end of the round, you roll a die, and that determines the number of zombies you can move 1 square in any direction. You can move them away from you, towards someone else, clear an area, whatever.

To turn this into a videogame, and one that gets created in 40 hours, some things need to be modified. First off, the map will be randomly generated before the game starts. Secondly the combat will be in real time, there are no turns per se. This is due to the fact that well, it’s a shoot’em-up! It’s not fun unless you are dodging hordes of undead! The main goal is the same, kill as many undead as possible as you make your way to the helicopter. You won’t win the game if you kill 20 zombies, but for every 20 zombies you’ll get an extra life. You will have unlimited bullets for your default gun, and there will be at least one more weapon that you can find (that one will have limited bullets).

Let’s list the features that I need to have in order to consider this a successful project:

  • Randomly generated map
  • Controlling the player with the mouse and keyboard (8 directions only)
  • Tons and tons of zombies that converge on your position if you get too close to them.
  • Up to 4 other guys trying like hell to get to the chopper before you do (computer controlled of course)
  • Weapons: A gun, a shotgun, and maybe, just maybe, a flamethrower (though that will likely be the lowest priority item)
  • The board game has a bunch of power-up/screw-you cards. I’ll implement the ones that make sense as power-up you can find
  • Keeping score.
  • Some rudimentry sounds effects (even if it’s me on the mic saying “braaaaains”)
  • Spooky background music ripped from the web

It doesn’t sound too bad, does it? Ok, so what am I going to do in order to make it happen?

  • Don’t start from scratch. I applaud Jay and Viridian for starting from scratch. I’ve started from scratch many times (never mind that I’ve didn’t get too far) and you can do so only so many times before it starts boring you to tears. Instead, I’ll use the PopCap framework. PopCap is the company that using this same framework brought us Bejeweled. I’ve played with the framework before and it’s quality. It’ll allow me to concentrate on the game code.
  • Steal as many resources as possible from the web: graphics, sounds, and music. I already have a scan of most of the graphics from the board game, so I might just adapt those.
  • Writing about my progress, or thinking about this game while I’m driving or in the shower does not count against my time. Browsing the web for sound effects does.

There probably are a few more but I’m tired and I can always refine them later.

Why am I doing this? Cuz it’s my birthday and I’ll code if I want to :)