Having not updated this devlog for so long where do you even start? First of all, the project is still on-going. Progress is slow but it always been I think. So if you're still keeping an eye on this game, thank you. If you follow me on Twitter or Tumblr none of this devlog is really new to you.
For the last few months my main effort has gone into refactoring. Items and inventories have been cleaned up to rely more on dragging and dropping rather than context menus and whatnot. Stripped out most of the item code and replaced it with something more generic and extendable. Items are all now defined in Lua and they consist of basic properties as such:
This makes adding and changing items a breeze. Then I needed a simple way to present inventories in all sorts of different game windows, so I added a widget which takes the inventory and desired grid size and populates it automatically.
Items that are stackable, meaning there's only one copy of the item with variable amount, are clearly visible. Should you come across a treasure chest, a dead body or other objects of interest, this is basically what you'd see:
Apart from item refactoring I've also been ripping out and replacing code that actually controls your party and happenings on the screen. A little while ago I made the decision to switch over to a more traditional 4-member party RPG kind of game, so you no longer control each individual character. This caused quite an issue with.. how do I put it.. everything. The best way to view everything now is to consider the "party" an aggregate of all its members. So if one member has Skill A and another one has Skill B then the party can perform whatever Skill A and Skill B allow for. Same for attributes - if a heavy rock requires 20 STR to move out of the way then the strength attributes of all members combined need to add up to at least 20. Combat is where individual attributes and skills come into play but I'll get to that.
The decision came from the fact that it's really annoying to move 4 characters every turn, even if it offered some pros like being able to cover more ground in different directions. The current system feels better to play in my mind. It also allowed to really clean up some of the UI annoyances and streamline actions. Like, you don't need to have the axe or shovel actually selected to perform certain actions (that was really announg previously). Them simply being present is enough. Of course, the more characters have tools, the quicker the job gets done.
Compared to the previous version the sidebar is now much
cleaner but not final obviously. Clicking on the portrait opens the character details showing items, equipment slots, skills, attributes etc. The portraits pose a challenge. As you can probably tell these guys look pretty ugly with greens and blues. I intend to add female characters as well and they might look worse still... Anyway, that might be fixable going for a more clean art-style but what is not so easily fixable in my mind is showing characters of different skin colors. Blue and green skin? No. Black..? I have doubts in my artistic abilities to pull it off but I'll certainly try.
Now, to arms! Okay not literally, but a quick overview of the combat system. I decided to scrap the more involved text-based thing shown in one of the last posts because I didn't think it would be very fun in the end and it'd make localizing the game too much of a pain. So I went with something far more arcade-y.
You have 3 basic types of attack each of which you can use once. Once they're all used their availability is reset. Each attack has a value which is calculated from character attributes, weapons and skills. This is where individual expertise still matter.Force
This attack incorporates character strength, favors heavy hitting weapons and proficiencies related to that.Speed
This attack incorporates character agility, smaller nimble weapons and proficiencies related to that.Precision
This attack incorporates character perception, more ranged weapons generally and proficiencies related to that.
As you choose an attack, an additional D6 is rolled incorporating luck into the equation. As the final number (attack value + luck) is added up, it is compared against the opponent's. If it's greater or equal then your attack lands, otherwise you miss and get hit. In the beginning of the encounter opponent numbers are hidden from you. With each hit or miss you deduce the target number or its range. So, if 30 is not enough to hit, then the target number must be 31 or greater. If next turn you find that 34 is enough, then the number lies between 31 and 34. Even though opponents (bears, wolves) are the same, their stats are always different. The opponent attribute values and hit points depend on whether you’re against a single foe or a group of them. So, a pack of wolves is still a singular opponent like a lone wolf, but their numbers and hitpoints are greater.
Each character can attack once per round and use whatever attack is still available. So, if your first guy uses Force attack, then the second one can choose from Speed or Precision. Think of it as being a situational thing where either you or the opponent is an position which prevents certain attacks from being used. Like, if one gets close and attacks with a heavy battle-axe, then they remain in the way so there's no way somebody else could deliver a heavy blow without hitting your friend as well. So, they have to use another attack.
There are also bonus actions that either help reduce the luck in play or get additional damage or other actions. These are still WIP. You get a bonus point at the end of each combat round (everyone has attacked) or when you roll a 6 and get a critical hit. There's also a Longshot bonus (+1 damage) which you get if you choose the lowest available attack instead of the large go-to numbers.
That's about it for now I think. The idea is to incorporate all that into the game next. Everything exists individually but is not tied in properly. Before I conclude this post, have a look at a couple of mood images. Might find use for them in a cut-scene somewhere. I was just playing around with the colors for fun.