Saturday, December 18, 2010

I feel so pretty!

A couple visual enhancements since the last screenshot... Today I've added a drop shadow to the damage floaters, I'm drawing them in order from oldest to newest (which I may change in the future), and I've got them offset from each other if you've got more than one damage floater showing at once (like the poor outnumbered hero in this screenshot).

I've also finally gotten rotation figured out! Which was, admittedly, entirely thanks to Stack Overflow. Still, the dudes are finally rotating exactly the way they should be, and although you can't see it in this screenshot, it even handles rotations that aren't even multiples of 45 degrees, which'll be useful when I get ranged attacks in there.

I've also created a first draft of a random name generator, but it's a little TOO random for my tastes. Here's a sample:
  • mon
  • alton
  • deane
  • olinaben
  • jeffain
  • josey
  • brale
  • flouguiely
  • joely
  • wicherlain

And this is one of the better runs... Oh well, I've got a few ideas on how to make it produce better results by switching from single-letter analysis to whole-syllable analysis and constraining the length to a specified range. If that doesn't work out, I have another idea I can try out.

Before that though, I have something very important I have to do -- quality control! Cookie quality control, to be precise. It's holiday baking day at my house today and I need to go make sure they're doing a good job. I'm sure it's going great since Tommy's helping, but I'd better go check on things just to be sure. Wouldn't want bad cookies sneaking out due to a lack of vigilance on my part, y'know.

Saturday, December 11, 2010

Violence and mayhem

The visuals are still pretty cheap, but I'm starting to make real progress. For example, if you look at the green guy nearest the blue guy in the picture, you'll notice a little floating number over his head. That represents the damage the green guy just took in combat.

That means two things. First, and most obviously: I've decided to make it clear when people have taken damage by making little numbers float over their heads. That's a pretty common thing to do in a lot of games, so it should be pretty familiar to people.

And second, which is probably less clear from a simple screenshot: I have combat working! It's pretty primitive so far -- currently only basic melee attacks are supported -- but the underlying code structure is pretty easily extensible to much more complicated stuff like freezing enemies in place, boosting an ally's defense bonus, blocking enemies' powers, and so on.

This brings the game to a point where about 75% of the functionality is there to support a very early-access alpha release for a few friends to play with. By the end of the Christmas holidays, I should probably have that out.

Next on my list (at least for now) is making the models rotate to face the direction they're walking or attacking, because the fact that they never look the way they're supposed to be going is a little creepy (IMO). After that, I've got some cleanup to do still on saving and loading, and then... well, I guess it'll be whatever the heck I feel like working on at that point.

In the meantime, steady progress is being made on the artwork. We've got the basic design finalised for the kobolds, the brutes, and the angry broccoli, and we've got a pretty decent idea what we're doing for a ranged-attack monster (it's way cooler than what I'd originally had in mind) and the heroic fighter. I'll try to post some of those up sometime this week.

And at some point, I have to introduce some AI to this game...

Monday, December 6, 2010

Wait just one second here...

Some more random things to show off today... As you can see, I moved the monster info bar to the bottom of the screen. I'm eventually going to move it over to pretty much right beside the minimap, then there'll be some controls beside it. Hard to explain, really, especially since I don't have the details worked out. It'll make sense in the end, I promise.

Other little changes include an adjustment to the texture on top of the walls to make it a little less weird, and some invisible tweaks to some of the rendering code.


(I'm easily amused.)

Yes indeed, I now have heroes invading the dungeon. Well, appearing inside the dungeon periodically, which is kinda similar. They don't do much, or anything for that matter, and they and the monsters don't interact with each other in any way either. So it's early days.

The next little while is going to feature some serious design work. Most of the time when I'm coding, I find I'm most productive if I just hack things in and then clean, tidy, and polish the code until it's no longer shameful. In some cases, though, that approach just leads to problems, and this is one of those cases. I need to stop coding and start planning, because that'll save me weeks of wasted effort later.

This, by the way, is one of those things that programmers tend to learn through experience. Bitter, frustrating, experience.

I don't actually expect this design phase to go too long; with any luck, by the end of the weekend I'll have the next chunk of code underway, where the heroes and the monsters are both moving semi-intelligently and attacking each other when they see each other. Fun for the whole family!