Husk: Day III & IV

Last night I fin­ished what should be the last of the frame­work code and merged it into mas­ter, bring­ing my code­base close to 15k lines before any 7DRL-​​specific code. Unfortunately, this means that I’ve fallen behind on my time­line and am only just now where I wanted to be at the end of the sec­ond day. The next three days are going to require a lot of hard work if I want to get a rea­son­ably good game out there. Unfor­tu­nately, I won’t have all of them avail­able as I have to work on part of Fri­day and have a guest arriv­ing that night. We’ll see what I can man­age to turn out…

Husk: Day II

Yes­ter­day was also pretty unevent­ful because I had to spend the day mostly writ­ing framework-​​level code. How­ever, the framework’s func­tion­al­ity is now back to about where it was last 7DRL (but much more extensible).

My job today is get­ting the exist­ing com­bat imple­men­ta­tion back to func­tional lev­els. The sys­tem already sup­ports some really fancy stuff, like loca­tional dam­age and mul­ti­ple attacks. If I have time after get­ting com­bat to a work­ing state, I’ll prob­a­bly get AI work­ing again (it’s been dis­abled for quite a while).

Husk: Day I

Not a very event­ful first day. I’m using my own frame­work for this, but I’m in the mid­dle of some major archi­tec­tural work on it that I didn’t have time to fin­ish. You can move around and inspect actors, but a lot of basic func­tion­al­ity is only sort-​​of-​​implemented. After some ini­tial setup of the game folder, I delved right into com­mit­ting to a sep­a­rate branch off of mas­ter for mak­ing the frame­work more oper­a­tional. Hope­fully that will be done with in a day or two…

Hell­mouth + 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 whirl­wind of activ­ity. Like I men­tioned in my pre­vi­ous post, I knew that my time con­straints would pre­vent me from bring­ing Hell­mouth to the level of detail that I would’ve liked. I tried to focus on fea­tures that would be appeal­ing in a min­i­mal game. Color seemed the most obvi­ous one, so I started my day off with that. Unfor­tu­nately, set­ting up col­ors in curses took way longer than I expected and I then had to scram­ble to make said min­i­mal game actu­ally playable. With about two hours left on the clock, and still miss­ing sev­eral major fea­tures, I decided on the new theme: MEAT ARENA. Con­tinue read­ing

Hell­mouth: Day Four & Five

Today I focused on get­ting Hell­mouth into a min­i­mally playable state. This means bor­ing fea­tures like an action queue, print­ing stats in the inter­face (still filler data, but at least it’s com­ing from the player object), and so on. How­ever, that’s all bor­ing bull­shit com­pared to the coolest fea­ture added in the past 48 hours:

That’s right – loca­tional damage! The cur­rent wound inter­face prints how many points of dam­age resulted in each wound on that loca­tion. This is mostly a debug tool: since 1 dam­age on a body part won’t nec­es­sar­ily cause 1 dam­age to you, the only time you’ll care about any­thing other than broad ‘fine/​hurt/​crippled’ brack­ets is when healing. Note that the val­ues won’t go that high in the game… unless you’re incred­i­bly unlucky.

From here it’s just a hop and a skip to grue­some dis­mem­ber­ment and decap­i­ta­tion for all. In fact, I’ll prob­a­bly scale my 7DRL down to mostly be a body part dam­age sim­u­la­tor. Work­ing three days out of my chal­lenge (with a five hour com­mute each day!) won’t make me fail the chal­lenge, but it will eat into my pol­ish­ing time dramatically.

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

Just look at those suck­ers go! :D  Cur­rently they just move ran­domly (and attack what­ever they try to move into), but I hope to add some basic AI tomor­row night to make invest­ment into the com­bat mechan­ics a bit more fruitful.

There’s more work to be done, of course. Even in writ­ing this post I found two bugs – sort­ing the wound list isn’t work­ing and the player glyph dis­ap­pears if you stand still. Back to the code mines!

Hell­mouth: Day Two & Three

Unfor­tu­nately, Day Two was a com­plete bust. I stopped cod­ing shortly before my Day One post and didn’t end up with any free time until sev­eral hours after Day Two was over.

Day Three has been some­what bet­ter. Right after con­vinc­ing myself that I was going to get noth­ing done today and whin­ing in IRC about it, I sat down for a bit to try to code some­thing. It worked, and I pro­ceeded to ham­mer out sev­eral new fea­tures in a few hours. It felt pretty good! It’s not much com­pared to my Day One sprint, but it’s at least more than I expected.

Here’s what Hell­mouth looks like right now:

Most impor­tantly, every­thing nec­es­sary for hex move­ment and ren­der­ing actu­ally works! The @ is the player (admit­tedly, it’s cur­rently ren­dered with a really ugly hack I added just for this post); the Xs are FOV cells beyond the map bound­ary (and thus inac­ces­si­ble); the other sym­bols are just ran­domly gen­er­ated glyphs to make test­ing move­ment easier.

After get­ting hexes work­ing, I turned my atten­tion to the inter­face. I don’t think there’s much spe­cial here, but I do like the way in which I’m ren­der­ing the stats. I’m also using that approach for the sta­tus lights, which will work sim­i­larly to those in Dun­geon Crawl (except show­ing up closer to the action due to the hexag­o­nal layout).

The com­bat log is a lit­tle short, but you’ll usu­ally be fight­ing sin­gle oppo­nents. Like the sta­tus lights, I intend to max­i­mize my use of space, so the tri­an­gle to the left of the log will con­tain an inter­face for scrolling through past entries with­out hav­ing to obscure the map.

I’m hop­ing to turn the reserved area into a paper­doll dis­play­ing your health sta­tus. The game will fea­ture hit loca­tions, and print­ing a list of them would take up a lot of space. Unfor­tu­nately, draw­ing a paper­doll with ASCII is quite dif­fi­cult and get­ting Uni­code to work con­sis­tently could be an uphill battle.

Even­tu­ally, I’d like to print some other infor­ma­tion: cur­rently wielded weapon, a min­imap, cur­rently viewed enemy stats (with tog­gle for a larger ver­sion with more info), and so on. How­ever, my next focus is going to be some­thing far more impor­tant: combat!