Tuesday, December 31, 2013

The End


Well, there are bugs, and there's polish, and all of that can wait for tomorrow. I made 12 games(ish) in 12 months (more or less).

The Rat King deserves his own sprite (I think I have one from June 2012 kicking around). The chain fireball spell doesn't quite work as intended, the secondary and later targets don't take damage the way they should.

And really, the Throne Room is really lazy level design.

Still. Playable and good.

Exploding Fireball, Chain Fireball


Again, screenshots don't really capture it, but I've added two new spells, so the mage character is now totally overpowered.


  • Exploding fireball - as a normal fireball, does one point of damage to the targeted enemy. But then, it splashes additional damage to all adjacent enemies.
  • Chain fireball - inspired by chain lightning in any number of other games, the fireball does 2 points of damage, and then up to three subsidiary fireballs are spawned, forking off towards other enemies, up to 4 hexes away. This repeats for a chain of possibly 3 levels deep.
I added a single new animation class that accomplishes both of these effects, it's just a matter of seeding it with the appropriate data.

However, I'm not entirely certain that the chain fireball does the right thing - it's fiddly, and there are angles and whatnot, and maybe I'm doing something wrong. Still, it's nice when it works.

I've got a little over 10 hours to create a final level, the throne room of the Rat King, and maybe even make the Rat King a custom AI.

And I might give myself some slack and slop over into January 1st.

Sunday, December 29, 2013

Blurry, Dotted Lines


If you're reading this at any time other than 2013, the title refers to some song. Don't worry, it's not relevant.

One feature I put in quite a while back is the ability to click far away from a character, and through pathfinding (not initially A*, but I put that in, and it's much better now), the character will move to the destination.

One somewhat confusing thing about that is that this is a turn-based game, and each character gets one hex of movement per turn, even if they have 10 moves of path queued up. This wasn't well communicated, even when I was standing over the shoulder of a player.

So. Now, there's a dotted line that helps the player understand the path that the character is currently planning to follow. With a little attention, the player can even do complex planning to have paths overlap. Good luck with that.

There's currently a bug in it where the first bit of the path is not correctly drawn while the character is animating from one hex to the next. I can fix that most easily by skipping the first segment if the character's current hex is not adjacent to the next hex.

Another thing I put in yesterday (but doesn't make a good screenshot) is the ability to complete level 0 and progress to level 1. Presumably, once I have a complete set of levels, completing the final level will show a victory screen.

Another bit of work (and another bug) that I put in is some NPC logic that will allow NPCs to attempt to navigate to remembered locations of PCs, even when the NPC can't see the PC. This is working pretty well, but occasionally, an NPC will get stuck after discovering the PCs again. I'm not sure what's going on there, but I imagine it's a thing that I can stick a breakpoint on and get some insight into.

I suspect I won't have time for real character advancement, but I've been toying with the idea of awarding one XP to each PC alive when an NPC is defeated, then use that at the end of a level for some amount of leveling up. Or, somewhat easier, on each level, give the characters stats appropriate to the level. Or, easier than that, do nothing. The second level right now is pretty difficult. So be it.

Friday, December 27, 2013

"Flyup" messages


Another thing on my "TODO" list was messages saying "HIT" or "HEAL" that rise up off characters whose HPs just got modified. You see that here (grabbing screenshots of quick animations is tricky).

The combination of the combat log and the Flyup messages seem to really help remind the player what's going on.

I had thought of having character stats maybe in the upper right hand corner of the screen, which would give you more ability to know if you need to take action to guard a particular character. I don't think that's getting in before the end of the month, though.

Combat Log


Hey, remember when I used to be updating this?

I'm winding down the One Game A Month challenge for 2013, and I think I'm going to make my December game a set of small feature improvements on the November game, in part to justify the relaxing and time spent with friends and family I've already done, and am planning on for the remainder of the year.

The feature I want to brag about here is the combat log you see on the right hand side of the screenshot above. Nothing super technically interesting; just a singleton object that collects strings into an array, which anybody can log messages into. Then, in the display loop, I pull out the last several lines, measure their height, and draw them such that the bottom of the log doesn't scroll off the bottom of the screen. Most of the time, that means that I scroll off the top of the window, which is good, but at the beginning, the text starts at the top of the log, and gets added to, until such time as I need to scroll. Maybe that's the right thing, I don't think players will have a strong opinion in any case.

Shout out to cgtextures.com for the paper texture for the background of the log. It looks sort of uniformly beige if you're not looking carefully, but there's some sort of darker smudge at the bottom, and a few speckles here and there, which you get from photographic real paper imagery.