Archive for the ‘Personal’ Category

Calling all Dungeoneers

Friday, September 11th, 2009

As I mentioned yesterday today I’m going to put up a schedule of what I need to do and how much time I have to do it. Since I’ve only 40 hours to do this, I need to lay out the work in the most efficient manner, but in order to keep my concentration and keep my excitement for this project up, I’m also trying to maximize my “instant gratification.” Nothing more monotonous that doing 16 hours of back end work not knowing if it’ll work.

Ok, let’s break down what I need to do and the order in which I need to do it in.

  • Set up the XNA environment and create a basic “Hello World” application. As I mentioned before, this will not count against my 40 hours.
  • Load tiles from a .png file. This should not take very long as I’ve got code that does this already. Remember, it’s ok to reuse code in this build :)
  • Load the entities. These are the PC and the monsters. It’s not just the graphics, but also stat information on the lot. For the monster it’s just basic information like “name”, “hit points”, “attack power” and “defense”. For the player it’s going to be all those plus his level, xp, and inventory. This will take a little bit longer, but through the magic of XML serialization it should be a snap.
  • Create an entity manager that will update all the entities every tick. This includes running the monster AI (such as it is) and updating the player’s position based on input. Note: Monster AI is not created yet.
  • Draw the PC. On a nice black background, draw the PC.
  • Create input scheme. Create the input scheme for player. At very minimum we need to track the player’s movement with the left-stick and orientation with the right-stick. The Start button will be a way to pause the game. Though we’re making a tile-based map, the player is not confined to tile-based movement.
  • Create the Enemy AI. This should be simple enough. Wander around aimlessly unless the player is within range, then move to attack.
  • Engage in Combat! Allow monsters to hurt the player if they touch him. This includes ending the game if the player reaches zero hit points.
  • Draw the monsters. At this point we should have a bunch of monsters moving around in the blackness of the monitor trying to move toward the player.
  • Create a Monster Catalog. The monster catalog will list all the bad guys by level. It will be used my the map generator to populate the level, and possibly to track the player kills and kill by player.
  • Create a Treasure Catalog. Similar to the monster catalog, this will catalog all the treasure types so that level appropriate gear can be dropped either in the dungeon or by monsters. The items come in the following flavors:
    • Instant use items: Touching them uses them instantly like a health bonus or damage bonus
    • Inventory items: Touching them put stores the item in your inventory like a health potion that can be used later
    • Spell upgrades: Each level will have a spell upgrade that increases the attack power of your spell.
    • Armor upgrades: They’ll make the player more resilient to damage.
  • Create treasure entities and display them in our black void. The player should be able to pick them up.
  • Create a randomly generated tile-map of the dungeon. I have such an algorithm, but it needs to be modified or completely rewritten to allow for far larger rooms and far more monsters.
  • Draw the map on the screen. Self evident!
  • Implement collision detection against the walls of the dungeon. We don’t want the player or the monsters to walk through walls, do we?
  • Implement a viewport. This will keep the player in the center of the map and scroll it smoothly as he walks around.
  • Limit visibility! Only show the parts of the map that have been discovered by the player.
  • Implement a way down to the next level and up to the previous one. We’ll keep the previous levels in memory so that the player can move back up to them. The entity manager will only update entities on the same level as the player.
  • Implement 20 levels and the victory condition!

There it is. It looks like a lot of work, but I think it’s manageable in 40 hours. Of course, the end result is not going to be a super-polished game, but hopefully something that will be fun to play. I may dedicate a second 40 hours to add polish and other interesting elements. Multiplayer over Xbox LIVE would be nice… but let’s not get ahead of ourselves.

I’m going to post an update every time I complete one of these points, with screenshots where applicable. Of course these post do not count as toward my 40 hours.

Looking at my schedule, I think I’ll be able to start on this tomorrow. Let’s see how much I get done.

Mobile Blogging

Friday, January 23rd, 2009

Back in July, I got myself an iPhone, and though I have not been an Apple fanboy since those days of yore when all I used were an Apple IIe and IIgs, I must say I am in love with this thing.

Unlike my previous Internet capable smartphones, getting on the web with this 3G phone is almost a pleasure… And that has changed /everything!/

I thought that owning a laptop with wifi was as good as it got, but with this phone satisfies a hunger for instant knowledge gratification I didn’t know I had.

“when you get a chance, check out that video ok Youtube!” says a friend. Click, click, I’m watching the video seconds later. Photos, email, web browsing, facebook – all these things that I once did a periodically a few times a day have almost become an extension of my own being.

And why should blogging be any different? So here I am waiting at a pharmacy for my prescription to be filled, at this *analog* institution which is in sharp contrast to the this new digital tentacle of mine. “I might as well give a brain dump on my blog” I say to myself.

So hopefully I’ll end up blogging more often, though I have to wonder if the quality will decrease…

2008: An Ultrabrief Retrospective

Wednesday, December 24th, 2008

Akin to Jim Carrey’s new movie “Yes Man”, on January 1st of this year I made a promise that whenever a situation presented itself and my knee-jerk reaction would be to say “No”, I would instead say “Yes.”

Now, unlike the movie, I don’t say yes to everything, but I said yes to a good amount of things and I can say that 2008 has probably been one of the best years of my life. Rich with new and amusing experiences.

“No” is such a powerful blanket that we hide behind. It keeps us safe at the cost of being able to enjoy life. Since the experiment was a resounding success, I see no reason not to continue it into 2009.

Happy Holidays!

A Fascinating Read

Thursday, May 29th, 2008

With this sentence, I intrigue you.  “What is going to write about?” you begin to wonder. With this one, I captivate your imagination. By now, you’ll think I’m working towards a clever joke… but by the time you read this, you’ll realize that that was it and nothing else is forthcoming.

God, I need sleep.

Life has been crazy these last few weeks.  Work has been pretty crazy, it’s always fun to be under a tight deadline and watch your work slip because other teams you need to collaborate with have prioritized things differently (No Z, I don’t mean you guys).  I had fifteen work days to get something done, 3 of those days I was sent to a training exercise so mind-numbing  that I hear will be used to coerce detainees at Guantanamo Bay.  Two of those days, however, were spent at Las Vegas.  All I will say is that she was that way when we got there and that I regret nothing.  But where am I going to get five days back?  Why work Memorial Day weekend and the one before! Voila! Magical extra days!  Too bad I was going to use that time to work on my own projects, but hey! It’s all good.

Sometimes I’ll get into these moods where I become very hermit-like and just want to be left alone to do that which hermits do and be at peace with the world.  Of course, this is exactly when my social calendar gets booked the tightest.  Housewarming pajama party on Friday.  Paintball (at unholy o’clock), a birthday, bowling, AND a soccer game on Saturday, followed by my gaming group on Sunday night.  Of course, when I do feel social, nobody’s doing anything.  *Sigh*

Also, I think I want to kill my cat but the dumb bastard is stupid enough to accidentally foil and revert all my plans against him.

Random!

“How do I know you’re not CONTROL?”

“If I was CONTROL, you’d already be dead.”

“If you were CONTROL, you’d already be dead.”

“Neither of us is dead, so I’m obviously not from CONTROL.”

[Long pause]

“That actually makes sense!”

I love Steve Carell, I’m really looking forward to his new movie.