Hey everyone, it's Justin (dorkster). Clint pointed to my blog as a venue for updates in Flare engine development, yet I've failed to make a post since then. Some of you have been following the forums and Github closely as development has marched on. For everyone else, allow me to showcase a few of my favorite features that have been developed since my last update.
More powerful Events
In Flare, Events simply refer to things that can happen in the game. It may be a door that moves the player to a new map. Or it could be a chest that opens and drops loot. Just about all of the player's non-combat interactions are controlled by them. Events are nothing new for Flare, but there are some new ways for developers to use them.
The developer console has had most of its old commands replaced by the ability to execute single Event components. For example, you can send your player to the Hyperspace map by running: exec intermap=maps/hyperspace.txt. This is great for single-line Events, but we needed something for more complex Events. This is where "scripts" come in.
Scripts can contain the same content as the Events you would see in map files. The benefit is that scripts are easy to reference. We can have Powers that call scripts and even have scripts call other scripts. Some possibilities include "return" scroll items that warp the player back to the hub map, or having a Power that can make loot spawn. They can be useful for developers as well, allowing us to create scripts to reinitialize quests for testing purposes. For example, you can reset the first side-quest in Empyrean by running this in the developer console: exec script=scripts/reset_krolan.txt.
Re-thinking the Accuracy/Avoidance stats
One of the properties of Flare that didn't feel right was the fact that attacks could entirely miss, even if the player visibly hit their target. The action-oriented gameplay of Flare does not lend itself well to having dice-rolls determine this aspect of combat. At the same time, we still wanted to use the Accuracy and Avoidance stats, as they were core to Offense (i.e. ranged) character builds.
The solution we settled on was to implement a damage multiplier to be applied when misses occur. This way there is still a penalty for neglecting the Accuracy and Avoidance stats, but attacks won't completely miss when there is visible contact.
On the other end of the spectrum, we've also added support for "overhits". An overhit occurs when the attackers effective accuracy exceeds 100%. The result is that the attacker deals a "mini" critical hit, which is defined by a damage multiplier in the same fashion as misses. This gives the player an incentive to further build their Accuracy stat, even if they aren't getting many "missed" attacks.
No more hard-coded primary stats
The primary stats (Physical, Mental, Offense, Defense) have been pillars of Flare's game play for most of its life. They fit well into the types of character builds we want to represent. However, we want Flare to be a platform for other game creators to make their own action RPGs. For many games, those four primary stats wouldn't make sense.
To open up the possibilities for these games, I refactored the engine to allow any number of primary stats to be defined in a mod-able file. This will allow game creators to extend the default set of primary stats (such as adding a luck stat), as well as creating a whole new set of primary stats to fit their game.
There's a lot of smaller things I didn't cover here, including stuff on the art side. Here are a few Tweets showcasing some of them: