Sunday, November 28, 2010

Hints of gameplay

Tonight, I added the first hints of real gameplay to my game. When you click on a monster, you'll now bring up a quick view of that monster's statistics. In this case, we can see that the monster is called Skeldra (hooray for randomly-generated names!), he's at 21 of 40 health, and... well, some other gameplay stuff that may or may not matter, like wealth and attack and defense.

As a side note, being about two months into this project (admittedly only a few hours a week, but still) and only now adding the first bit of anything that looks like an actual game, that's a little sad. But at least it's in there now.

For anyone who knows D&D, the combat system is going to be a fairly basic D20 variant. For the rest of you... Well, there's a whole post waiting to be written on how the fighting's going to work. It'll be coming up soon.

There'll be a lot more detail on these guys, but most of it is likely to be hidden most of the time. This particular pane is intended to be basically a quick view so you don't have to open the full window all the time just to check on some basic stats.

Next up... Random name generation! "But wait," I hear you cry, "didn't you say mere moments ago that 'Skeldra' was a randomly-generated name?" Good catch, imaginary reader! I stole that name from a list of randomly-generated names I use for D&D. It's actually hard-coded right now, so every monster is automatically named Skeldra. Not so useful. I could start by simply having a hard-coded list of names and picking randomly from that -- I've seen some great games that do exactly that -- but being a nerd, I think I'm going to use a neat algorithm I found that produce reasonably realistic random names based on an initial data set; the nice thing there is that by simply providing a different data set, you can get different names. That lets me use the same basic mechanism for each of the monster types, while still giving each its own distinctive flavor.

When I get bored with random name generation (which may or may not be before I finish hooking it into the game) I'll probably move on to adding a dungeon entrance and spawning hero units. That's likely to show up in a week or two. And once I have hero units in the dungeon, with some monsters rolling around, well, the only logical next step is to start up some good old fashioned mayhem.

Monday, November 22, 2010

Another monster, and some green bars

I'll start today with another one of Tom's monsters. This one is one of the candidate sketches Tom did for the monster we're currently calling "that all-purpose monster". We're trying to decide whether to call him a goblin, a kobold, or something else entirely. Personally, I'm leaning towards kobold. Whatever we call him, this particular monster type gave us a little more trouble than the others. We were having a hard time finding the right balance between a bunch of constraints; we want the monsters to be monsters, they need to look capable of fulfilling the roles we were giving them, and they also need to look like they've got lots of character and are perhaps more misunderstood than evil. As the saying goes, everyone's the hero of their own story, and these guys are no exception -- as far as they're concerned, "heroes" are crazy humans who bash their way into your home, kill your family, and then take all your stuff. Who knows why humans do what they do, man? So the monsters have to look like they could possibly be nice creatures after all, if you sat down and had a nice meal with them and got to know them a little.

Basically, I have a hard time playing games where you act like a villain -- I generally give them up because it upsets me. So when I'm building a game where you are, in fact, the classic D&D villain, my first move is to turn the villain into the good guy so I can enjoy playing the game. And the monsters have to follow suit. One of the perks of building your own game is that you get to do stuff like that!

Anyway. The kobold above was just a little too evil, but the real problem was I found myself trying to imagine him doing work in the dungeon and he felt like a good fighting monster but didn't seem suited to being a worker. So he's been rejected. He's not too far off the design we've currently settled on though.

(Yeah, I know, I keep showing rejected monsters. Trust me, when Tom finishes off the polished art for the real monsters, I'll be posting those!)


Tom's not the only one who's been busy though... I've implemented a bunch of random little things in the last week, including moving the map around when you click on the minimap, starting in on the logic for turn-based action, and as you can see in this picture, I'm now rendering health bars for the monsters! The idea is that these bars will float over monsters' heads to give you a quick visual indication of how healthy they are. These guys are showing as being at about half health (the darker green shows how far a full bar would go, the lighter green shows what percentage of health remains).

Now I've got to go clean up the code that renders the health bars, and at some point before the end of the week I'm hoping to actually add an entrance to the dungeon and get my first hero unit to walk in the door. Unless I get distracted. One of the nice things about building this game is that I get to work on whatever I find interesting at any given moment.

Friday, November 19, 2010

Monster infestation!

Tom Fowler delivered the first batch of development sketches today. Keep in mind, these are very early development sketches -- basically, think of it as Tom brainstorming a bunch of ideas. The next step is for us to go through his ideas together, and figure out what we like and don't like about each of them, then see if any other ideas come to mind. Out of that, Tom will refine the design we've chosen and then eventually we end up with real polished illustrations, which will in turn serve as the basis for 3D models.

I'm actually feeling a little guilty about the fact that I don't have the money to pay someone to build models good enough to do Tom's artwork justice.

This guy is the infamous octojellypus! I love him. He's amazing. He's just bizarre and alien and I can just imagine what I'd think as a player if I had these guys on my side. It would be wicked awesome. Unfortunately, they won't likely be in the game, because I really don't know how I'd make them work visually. Well, that and I don't know exactly what kinds of powers I'd give them. On the plus side, Tom's come up with something even MORE awesome to serve the same sort of role these guys were going to fill, but I'm going to wait and show off those guys later.

Here's another guy who I'd love to include in the game but don't quite know how to incorporate him. Visually, he's just fascinating to me. I've been tossing a few ideas around in my brain that would need some critters, and having something like this might work well. I'll think about it. I'd love to find a way to include them.

This guy's from a totally different set that, not surprisingly, is being called "brutes". The role these monsters will fill is, basically, a big muscular brute who hits things and doesn't waste a lot of effort on thought. I've got a few fun ideas in store for them. Tom produced a lot of really incredible sketches for the brutes, we're going to have a lot of fun mixing and matching bits to come up with the next iteration, but this guy's got roughly the body shape that we'll likely go for.

So there you have it, three out of the 57 sketches. Yes, 57 -- I just counted them. They're all great. Seriously, as much as I love that octojellypus, I'm not including it in the game because Tom produced something that's even better.

This is why you hire pros, folks.

Tuesday, November 16, 2010

Finally some action!

Finally, some action! Of course, this is a still shot so you can't see the action, but trust me, it's there.

What action, you may ask? Simple: The monsters move! (And you can add and remove monsters on the map, but that's mostly just for testing the movement.) The game will eventually be turn-based, so I've rigged the 't' key to make the monsters wander a single square in a random direction. They don't currently rotate to face the direction they want to go, and they don't necessarily walk in any reasonable pattern, but they do at least move.

What's even better is that they're not just teleporting, which is what I was originally planning on counting as "acceptable" this week. They're actually sliding smoothly from one position to the next over the course of a quarter second.

Based on my accomplishments in the last few days, I think I might hold off on my initial release until I get at least some basic gameplay in there... I'm not 100% sure what I'll have in there, but I'm close enough to real gameplay that I might as well wait until there's something worth playing with.

Sunday, November 14, 2010

Map viewer, stage 1!

I've been fighting a particularly annoying cold the last few weeks and haven't gotten a lot done on the game, but the cold appears to be letting up and I managed to be productive today. Here you can see the map viewer/export app that'll go out with the regular game, allowing you to view your map and export it as an image file. The idea here is that if you come up with a really neat dungeon, you can export the map, print it out, and use it as a D&D dungeon. Not necessarily the most amazing feature ever, but hey, I'm excited about it.

It'll have a few handy features, such as being able to choose the scale (the screenshot I posted has it defaulted to ~ 1cm per grid square), the ability to choose whether to draw a grid overlay and whether you want the grid overlay to have a slight glow around it, and even the ability to set colours for the grid overlay. That stuff's already basically done. Before my trial release in a few weeks, I'm going to add the ability to specify floor, wall, and outline colours, as well as specify whether the grid (or even just the grid but not the glow) show show overtop of floor tiles.

The user interface is a little ugly right now, but don't worry, I'll clean that up soon. Like everything else about the game, I'm starting with a quick hack job and then refining it based on how it actually works out.

So that's it for this week... On the agenda for next week, I need to think some more about a save/load game menu, and I need to refine the exporter. And at some point soon, I'm going to have to make the monsters walk around the dungeon, although he won't be animated -- he'll just teleport from one square to the next for now.

Tuesday, November 9, 2010

Well that was easy

A little TOO easy, one might say...

I've got the game updated so it can save and load at will. Right now, the save file name is hardcoded, and it's automatically loaded at startup (if it exists). I'll be working later this week on adding a proper save/load menu, which ought to be interesting. Honestly, writing data out to a file and reading it back in is generally pretty easy -- the hard work is the ten million details around that, like choosing a file, handling errors, displaying a menu, etc.

Still, considering how completely flattened I've been for the past week, it feels pretty damn good to have accomplished anything at all, even if it was just the really easy stuff.

Saturday, November 6, 2010

Downloadable app!

I said I'd have big news about a downloadable version of my game, didn't I? Hmm, guess I'd better get on that.

So, here we go: At some point in the next few weeks, I'll be releasing a free downloadable version of my game! A very, very minimal version. (But free!) It'll be pretty close to what you saw in the last screenshot I posted. There's a fair degree of underlying code that needs to change, but when I'm done I'll be able to save and load games. So you'll be able to draw your map and save it and then reload it later. Pretty exciting stuff!

Oh, plus you'll be able to export a 2D version of the map at varying scales, suitable for D&D adventure handouts, planning, or even battlemaps.

I'm currently targeting Dec 1st for the initial release.

Tuesday, November 2, 2010

More visible progress

Took a spontaneous vacation day today, partially to recover from a rather annoying illness (cold? flu? sinus infection? SARS?) and decided to get some work done on the game. Big strides today, I think. First up, I've finally added the option to draw terrain! (I also added a border to the minimap, as you can see from the attached picture.) Clicking on a floor tile will cause it to change into a wall, and vice versa. You can also click and drag around to have it keep adding whatever type you're working with; so if you click in a wall section and drag around, you'll keep adding floor wherever you drag.

This isn't how the game will actually work, by the way, but it's a good first step. In the next few weeks I'm hoping to switch it to a system where you'll select tiles and then choose what you want to do with them. For now, that'll be restricted to "make floor" or "make wall", but eventually there'll be stuff like "fortify", "decorate", or what have you. I've got other stuff that's higher priority right now.

Also on today's hit list: Moving the mouse cursor to the edge of the window causes the window to scroll in the appropriate direction. For example, moving the mouse to the left edge causes the window to scroll to the left. Not the most exciting thing in the world but it's amazing how much easier it makes it to navigate around.

All in all, that makes this a successful week already. But! I've got more plans. I'm also going to look at a way to navigate by clicking on the minimap. And then I've got some code tweaks to do, which will result in the ability to save and load a map. That one may take until the weekend, or even into next week, since I don't currently have any actual menu, so that'll have to be built too. It's amazing how all these little details add up.

Oh, and make sure to check back later this week! I've got some big news, regarding a downloadable version of the app coming sometime in the next few weeks...