Husk: Day III & IV

Last night I finished what should be the last of the framework code and merged it into master, bringing my codebase close to 15k lines before any 7DRL-specific code. Unfortunately, this means that I’ve fallen behind on my timeline and am only just now where I wanted to be at the end of the second day. The next three days are going to require a lot of hard work if I want to get a reasonably good game out there. Unfortunately, I won’t have all of them available as I have to work on part of Friday and have a guest arriving that night. We’ll see what I can manage to turn out…

Husk: Day II

Yesterday was also pretty uneventful because I had to spend the day mostly writing framework-level code. However, the framework’s functionality is now back to about where it was last 7DRL (but much more extensible).

My job today is getting the existing combat implementation back to functional levels. The system already supports some really fancy stuff, like locational damage and multiple attacks. If I have time after getting combat to a working state, I’ll probably get AI working again (it’s been disabled for quite a while).

Husk: Day I

Not a very eventful first day. I’m using my own framework for this, but I’m in the middle of some major architectural work on it that I didn’t have time to finish. You can move around and inspect actors, but a lot of basic functionality is only sort-of-implemented. After some initial setup of the game folder, I delved right into committing to a separate branch off of master for making the framework more operational. Hopefully that will be done with in a day or two…

Hellmouth + MEAT ARENA: Day Six & Seven

Day Six was, like Day Four and Day Two before it, a non-starter.

Day Seven, on the other hand, was a whirlwind of activity. Like I mentioned in my previous post, I knew that my time constraints would prevent me from bringing Hellmouth to the level of detail that I would’ve liked. I tried to focus on features that would be appealing in a minimal game. Color seemed the most obvious one, so I started my day off with that. Unfortunately, setting up colors in curses took way longer than I expected and I then had to scramble to make said minimal game actually playable. With about two hours left on the clock, and still missing several major features, I decided on the new theme: MEAT ARENA. Continue reading “Hellmouth + MEAT ARENA: Day Six & Seven”

Hellmouth: Day Four & Five

Today I focused on getting Hellmouth into a minimally playable state. This means boring features like an action queue, printing stats in the interface (still filler data, but at least it’s coming from the player object), and so on. However, that’s all boring bullshit compared to the coolest feature added in the past 48 hours:

That’s right – locational damage! The current wound interface prints how many points of damage resulted in each wound on that location. This is mostly a debug tool: since 1 damage on a body part won’t necessarily cause 1 damage to you, the only time you’ll care about anything other than broad ‘fine/hurt/crippled’ brackets is when healing. Note that the values won’t go that high in the game… unless you’re incredibly unlucky.

From here it’s just a hop and a skip to gruesome dismemberment and decapitation for all. In fact, I’ll probably scale my 7DRL down to mostly be a body part damage simulator. Working three days out of my challenge (with a five hour commute each day!) won’t make me fail the challenge, but it will eat into my polishing time dramatically.

So, where did those wounds come from? The NPCs, of course!

Just look at those suckers go! 😀 Currently they just move randomly (and attack whatever they try to move into), but I hope to add some basic AI tomorrow night to make investment into the combat mechanics a bit more fruitful.

There’s more work to be done, of course. Even in writing this post I found two bugs – sorting the wound list isn’t working and the player glyph disappears if you stand still. Back to the code mines!

Hellmouth: Day Two & Three

Unfortunately, Day Two was a complete bust. I stopped coding shortly before my Day One post and didn’t end up with any free time until several hours after Day Two was over.

Day Three has been somewhat better. Right after convincing myself that I was going to get nothing done today and whining in IRC about it, I sat down for a bit to try to code something. It worked, and I proceeded to hammer out several new features in a few hours. It felt pretty good! It’s not much compared to my Day One sprint, but it’s at least more than I expected.

Here’s what Hellmouth looks like right now:

Most importantly, everything necessary for hex movement and rendering actually works! The @ is the player (admittedly, it’s currently rendered with a really ugly hack I added just for this post); the Xs are FOV cells beyond the map boundary (and thus inaccessible); the other symbols are just randomly generated glyphs to make testing movement easier.

After getting hexes working, I turned my attention to the interface. I don’t think there’s much special here, but I do like the way in which I’m rendering the stats. I’m also using that approach for the status lights, which will work similarly to those in Dungeon Crawl (except showing up closer to the action due to the hexagonal layout).

The combat log is a little short, but you’ll usually be fighting single opponents. Like the status lights, I intend to maximize my use of space, so the triangle to the left of the log will contain an interface for scrolling through past entries without having to obscure the map.

I’m hoping to turn the reserved area into a paperdoll displaying your health status. The game will feature hit locations, and printing a list of them would take up a lot of space. Unfortunately, drawing a paperdoll with ASCII is quite difficult and getting Unicode to work consistently could be an uphill battle.

Eventually, I’d like to print some other information: currently wielded weapon, a minimap, currently viewed enemy stats (with toggle for a larger version with more info), and so on. However, my next focus is going to be something far more important: combat!