Saturday, October 30, 2010

Things are getting done

This week was mostly a wash. I spent some time modeling, but I was busy with a bunch of stuff and then got sick, so virtually no coding happened until this morning. Luckily, with that much time away, I had time to think through some problems I was facing, so this morning's coding work went much more quickly than normal. The end result is that I have a first-draft minimap added to the game! The way it's currently being done, it'll always display the whole map the bottom left corner.


See, it's a minimap! I've also added an extra room to the default map to be sure the minimap was working the way I wanted it to. Pretty cheesy stuff, but as I've said before, it's all about the little bits of effort accumulating over time.


And just for fun, here's Desmond, round 2. As you can see, he's grown legs and a tail, but no wings yet. I'm still very unhappy with his face, and I'll probably tweak that some more (especially the nostrils) before I get too much further, but I still think he's starting to look a whole lot better than he was before.

Next up... More work on Desmond, probably. And then I'm going to make the minimap live inside some sort of container in the lower-right corner of the screen, so it won't take up so much of the screen. Then I think it might be time to start really working on the actual game part of this game.

Oh, and sometime soon Tom Fowler is going to start on the artwork. I'm honestly not ready for it yet, so chances are the art will just sit around for a few weeks looking awesome with me feeling guilty about not touching it. But I'm still looking forward to seeing it, because hey, this is Tom Fowler we're talking about here.

Friday, October 22, 2010

Finally some more pictures


Here you can see the beginnings of a dragon model I've chosen to name Desmond. I'm not sure if Desmond will actually appear in the game at all, but I'm trying to set him up so I can use him as the border for the minimap the game will eventually have to have. We'll see how he turns out. Here's what he looks like for now.


And here's just a gratuitous shot of the game with walls, floors, the cursor, and a tile being pointed to by the cursor. It's not the most exciting, but hey, it's better than just another wall of text in here, right?

Sunday, October 17, 2010

Back to visible progress

The massive code cleanup effort of the past week has already paid dividends. It doesn't sound like much to non-coders, but in the space of two hours tonight I managed to get the right map square highlighted as the mouse moves around. Well, almost the right square. It's perfect for floors, not so hot for wall tiles. Still working out the kinks, dontcha know. ;-)

Giving myself some easier goals for this week. I'm going to get the highlighting working correctly, expand the screen size (the default project gives you a pretty tiny window), and make it fullscreen. If I'm feeling particularly ambitious and have time left, I might start in on selecting tiles and transforming them from wall to floor and back again.

I'm oddly excited by that prospect... It might not seem all that impressive, but it'll be the first real element of actual game that I'll be putting in.

Thursday, October 14, 2010

Invisible progress

One of the fun parts with any software project is that a lot of the work is invisible to the end user. A lot of that invisible work is behind-the-scenes coding, like some work I have coming up soon to make my monsters move intelligently around the dungeon, but a big chunk of it is stuff that doesn't actually directly impact the game. Things like setting up source control, for example. Which is, not so coincidentally, what I accomplished on Tuesday night. Before that, I got the code reorganised to be easier to maintain, and solved a weird graphics glitch.

All of this to say that the end result of three days work since the last time I posted is that the game looks and behaves exactly the same as it did before I started any of this work. But trust me, it's better on the inside!

Tonight I get to start on picking the tile the mouse cursor is over and highlighting it in some way, which means we're back to visible progress. Within the next day or two, I should have a screenshot worth posting!

Saturday, October 9, 2010

On to the hard stuff

Not much visible progress to report today... Between having a real job, not sleeping well, playing with the kid, visiting family, and a bunch of other things, I haven't had much time to spend working on the game in the past few days. I did get walls drawn in game, and I got the camera moving around, so that was pretty fun.

Now, though, I'm into the hard stuff. Until now, all the work I've been doing has been prototype work -- just playing around, experimenting with how things work until I get it sorted out. But I've gotten to a point where I'm done all the prototyping and it's time to refine the code and start worrying about things like readability and maintainability. It's an important step, but it does mean that things temporarily slow down, especially on the visual side. In the long term, it'll help me get the game done a whole lot faster though, especially when I start adding whatever new functionality I haven't thought of yet. Good design matters in code!

On tap for this coming week: Generating a map at runtime instead of hard-coding floors, walls, etc. I'm also going to try to get wall tiles to highlight in some way when the mouse is over them, and hopefully clean up the cursor a little and give it a click animation. Even if clicking doesn't do anything, it's disconcerting when there's no visual confirmation for a click!

Next week, I'm planning to start building the real UI side of things; adding a command bar where you enter commands for your minions and having wall tiles highlighted a different colour to indicate pending work.

Tuesday, October 5, 2010

First screenshot!


Just felt like showing off a little progress. I've got the little man standing on a dirt floor, I've got my hand cursor (need to clean that up a little, but it'll do just fine for now) floating around, and although you can't see it from a still image, I've got the camera rotating around and moving up and down. I need to play with the control scheme somewhat, but that's something I can refine later.

Next up: Walls! And a slightly broader view... The camera's in just a little too tight right now. But yeah, with a better camera angle and some walls, hopefully it'll start to look like a person standing in a dungeon, which is when I get to start adding actual gameplay in. Hooray!

Sunday, October 3, 2010

Fire!

Nothing too exciting to report today, but I have been having fun experimenting with Blender to create fire. Fire, fire, fire!

I need to tone this down a bit, but this is a pretty good start for a torch. I guess. Honestly, I'm not sure how that's going to work. I guess I'll need to do some more research to see if I can actually use this. But it's been entertaining figuring out how to make reasonably realistic-looking fire.

Now back to relearning a bunch of math I haven't thought about in 10 years!

Edit after the fact:


Just for fun, I experimented with changing the colours. I think this looks suitably eldritch! I'm definitely on the hunt for ways to use that in the game... It'll probably end up being one of the last things to be done before release (most of the polish is going to be last-minute stuff) but seriously, doesn't that flame just look evil and fun?

Saturday, October 2, 2010

A journey of a thousand miles

Working on software always makes me think of the old adage that a journey of a thousand miles begins with a single step.

Keep that in mind as you're reading this blog; progress is measured in an hour here, an hour there, one tiny detail at a time, until eventually it all comes together as something really interesting and powerful.

Today brought three tiny steps. First off, I have a cursor! It's a little hand, and you point the finger at whatever it is you want to click. Second, not only did I get the cursor into the game, I even got it to track around the edge of the game window if you move the mouse out past the window's boundaries. And third, I got my generic green dude to move around when you hit the arrow keys.

So, tiny steps, but all of them are vital in their own way. Tomorrow I'm going to continue working on floor tiles, but that one's more complicated because I'm working off of some nicely generic sample code that incorporates a ton of math, so doing anything involves a whole lot of (re)learning.