Thursday, October 26, 2023

Artwork Upgrade

I took a break from trying to write code at pace, and replaced it with a long evening of generative AI renders. From that rather tiring effort, I've got....  an okay..... set of character portraits to be used. It seems that some things generate easier than others, so I might revisit some of this to try to tweak and improve what's there, but it's better than the random pixel art assets I've been using up until this point.

There's fifty images for each race, which really probably is enough to get the ball rolling on this one. 

Oh yeah, and I spent a good bit of time preparing effect/ability animations to start loading them up into the system. Thank goodness for good command line instructions from ImageMagick which saved me countless hours stitching individual animation images into a single long file that will be able to be input into the animation editor I've got.

This evening, the plan is to either work on more skill-tree layouts, or get back into the code again working to grow abilities out more. Either will be good and fun to get done.

Wednesday, October 25, 2023

Abilities, Animations and Area-of-Effect

Got in some good coding last night, wrapping up basically at midnight, but I have some great fruits for my labour. I've got abilities working well enough now using both melee and ranged deliveries. On top of that, I managed to get AOE abilities working as expected and even managed to get the code to show ability animations nicely. There's code to fill out yet, as I want some effects to fall off with their AOE, and I've got some more ability shapes to code up, but that's filling in colour where there are already outlines.

These animations will work perfectly well for spells, I can use them for damage-over-time effects on individual actors and a bunch more useful stuff. I've got the code scaling them automatically to the size needed and they neatly delete themselves once they've done their animations, so performance is not impacted too much.

Loads more to do, but it's really good to see some visual progress in the game!

Monday, October 23, 2023

In-Combat Touch-To-Select Working

I've been trying to work out a lot around combat currently, and one of the things I was just getting to was "How do I nicely display buffs/debuffs on creatures?" Characters showed up easily enough with the HUD on the screen, whether it was in combat or non-combat mode. But as I've been halfway through getting abilities working, I started being able to apply character abilities to creatures - and of course, the player needs to be able to see that somehow - hopefully easily.

So, I went to my brains-trust of friends, who put up with me asking random stuff like this all the time, and they delivered. Nath called out the obvious "What do I see when I click/touch the creature on the screen?" "Nothing, I haven't coded anything for that" I replied. I'd looked, way back in the early days of this code, into capturing screen touch effects and using some android touch-bounds and connecting them to things... and it was HORRID. So, I changed course and modified my code to allow me to simply capture the direction of the touch event compared to the player, which worked MUCH better for movement, and put in the button that pops up when there's something to do. That's working a charm, but... as Nath pointed out nicely, there's a need for different things in different places. When I'm in combat, I'm not needing to capture the movement like I am otherwise, so there's a brilliant UI method going to waste.

So, some hastily written code, that worked surprisingly well for what I wanted, and I've now got nice captures of screen touches in combat that will bring up a simple info panel of the monster touched, along with what it is, health, action and mana bars, and.... wait for it... buffs and debuffs that the creature has.

This will also work really nicely, for the thing I was about to do - and do badly, which is selecting targets, for either ranged attacks or abilities that target a location rather than a creature. Without the "touch to target" concept, it was going to be awful from a UI point of view - so thanks to Nath, I've gone about it the right way, the way it should have been done all day long.




Saturday, October 21, 2023

Ability Quick (Buttons) Keys

Android has once again reminded me, that while I think my coding ability is good, I shouldn't forget that Android can give me a swifty kick in the naughties when and how it pleases.

The good news, however is that as of now, I have a combat tileset of quick action (buttons) keys that can be easily customised for every character based on their abilities, and when set up, these will enact (as much as the code is written currently) the ability for that action to take place and happen. They are nice and easy to set up, and I'll work in some nice way to prompt the player what to do if they're new in case it's not completely obvious. I might even just make it a text prompt if they click an empty tile.

Anyhow, with that good news out of the way, I can wind up for the night, and tomorrow get into a bit of setting up more ability functionality - selecting other targets, working in ability ranges perhaps even. And I think I need to add in some simple code to load up an ability that is going to be delivered with a melee (or ranged) attack and then apply it when the character makes that attack, or wipe it out if they get to the end of the activation and haven't used it yet. Oh, and I need to save these abilities that have been set up to the database, so I can load them back in when the game is loaded back.

tl;dr - good solid progress.

Wednesday, October 18, 2023

Skills, Abilities and Combat

I've been hard at the code, and what started off as a bit of a head-scratcher ended up turning out alright in terms of things (seemingly) working nicely.

I've been implementing the character skill system, and working that into the code, to do all the things I want it to be able to do - and the brains trust has certainly thrown me a good challenge in terms of wanting it to be both interesting and diverse. That means it's a bit harder to get coded up front, but well worth it in the longer term. So, with a good idea of what I wanted to enable with the code, I managed to get the database set up to hold things reasonably easily, and the game code picked things up nicely.

While it might seem funny, that there's only two utterly basic abilities in the game currently (one to wait in combat, and the other to enter a defensive stance instead of attacking) there's a lot of underlying code written up to enable that and it's actually much further along than it would seem - which is a nice change. It's applying the right activation delays, applying an effect to a target - and that's going to work for ANY ability I add to the game.

I've also fixed a gabijillion bugs that have been irking me for ages, and it's lovely to see things coming together. The bug list is still massive hah.

Tomorrow I will start on one of the following: either start setting up the layouts and code to set quick-action abilities for each character so that as each character activates, their preset abilities will be easy to access OR I'll continue with the abilities and start writing the code to handle progressively more complex ones, where the abilities target others, or possibly areas instead of directly applying to the character that used the ability. Either should be cool to get stuck into.

Friday, October 6, 2023

The Rock and the Wall

I'll start by admitting that it's been a long time between updates. Then I'll follow up with it being rather frustrating from my end. Then it grew into me questioning my abilities. And eventually, finally, inevitably, I managed to get done what I wanted to get done.

With the combat rewrite, I thought I was done. But.... but... I had an issue in that the creatures were pathing like they were all the same size footprint, and that meant that sometimes things would seemingly walk THROUGH either other combatants, or through terrain etc. So I thought I'd change a few things, and easily make the pathing algorithms work nicely for creatures that took up larger battlefield footprints. I thought I'd do that quickly and easily, after all, I'd already done the hard part. I was wrong.

But, again, with the but. I did eventually work out all the things I had issues with. and the game now nicely paths creatures, understands their size, how to get to places - where things can reach, even if it's from a corner of their footprint past other things and so on.

So, circling back to the title of this silly little post. I don't know if I'm the rock and the code is the wall, or the other way about, but I know that I finally cracked the problems and the game is sooooo much better for it now. 

Now I get to round out items to cater for the changes I've made, circle back to making sure that all those stats are correctly understood when items are equipped and un-equipped and then, start focusing on some skills/abilities and how the game will handle planning what to use and when, but where to apply each skill to the best effect.

Oh, almost forgot, been using the brains trust again in terms of how spells are going to be acquired and how they'll function. More on that later, but it's delightful to have that nicely planned out in my head at least, so thanks (in alphabetical order)
Brett, Chris, Dylan, Evan and Nathan!

Teleports & Location-Swaps working

A rather productive Friday evening it has been. I've managed to expand the code that deals with special combat events, and successfully ...