Flare 1.14

Just in time for the holidays, Flare 1.14 is now available for download!

For players

The Fireball and Ice Bolt scrolls will now grant players with a buff that replaces their standard attacks (Swing / Shoot / Channel) with the magic projectiles for a brief period. This will hopefully make these scrolls worth their price, especially for Brute characters that lack options for ranged attacks.

Also, Lezaith is no longer completely immune to slow and stun effects. This should help players whose builds rely heavily on those effects.

For modders

This is the meat of the update. The engine’s handling of gameplay-related numbers has been overhauled. Values that were integer-only in the past are now stored as floating point numbers, allowing for fractional values. This gives modders a lot more granular control over how they balance their game’s progression. This change also enabled us to implement support for multiplier stat bonuses (e.g. “1.5x Max HP”), allowing for more potential variation in loot.

Also new in this version is support for defining arbitrary “MP-like” resources. This allows modders to have more than one resource pool. It also allows modders to create resources that are a better thematic fit, as opposed to the “fantasy-style” MP/Mana.


 Windows

 Linux

 Mac OS

Android

Sources


Changelog

Engine features

  • Added ‘loot.requires_status’ and ‘status_loot’ properties to loot table definitions.
  • Support ‘/’ as shorthand for ‘exec’ in the dev console. A space is not required after the slash.
  • Added ‘spawn_level’ property to map enemies. This follows the same syntax as the Power property of the same name.
  • Add XP scaling tables for scaling enemy reward XP based on enemy level.
  • Replace ‘immunity’ effects with percentage-based resistances.
  • Added ‘mouse_move_deadzone’ property to engine/misc.txt to help alleviate erratic mouse-move behavior when the cursor is near the player.
  • Alternative tab UI for when tabs exceed the available space.
  • Added keybind for cycling equipment sets in reverse.
  • Refactored stats and stat bonuses to use floats for fractional values.
  • Support fractional values in the following:
    • Combat text: ‘speed’
    • Engine (combat): ‘absorb_percent’, ‘resist_percent’, ‘block_percent’, ‘avoidance_percent’, ‘miss_damage_percent’, ‘crit_damage_percent’, ‘overhit_damage_percent’
    • Engine (misc): ‘party_exp_percentage’
    • Events: ‘power_damage’, ‘chance_exec’
    • Death penalty: ‘currency’, ‘xp_total’, ‘xp_current_level’
    • Item: ‘dmg’, ‘abs’, ‘bonus’
    • Map: ‘enemygroup.chance’
    • Power: ‘requires_mp’, ‘requires_hp’, ‘requires_hpmp_state’, ‘attack_speed’, ‘hp_steal’, ‘mp_steal’, ‘missile_angle’, ‘angle_variance’, ‘post_effect’, ‘post_effect_src’, ‘pre_power’, ‘modifier_accuracy’, ‘modifier_damage’, ‘modifier_critical’
    • StatBlock: ‘stat’, ‘stat_per_level’, ‘stat_per_primary’, ‘vulnerable’, ‘chance_pursue’, ‘chance_flee’
  • Added engine/number_format.txt. This file defines the number of digits to print after the decimal point for fractional values under different contexts.
  • Add support for multiplicative stat bonuses. For example, an item bonus of 1.5x Max HP, which would be defined as ‘bonus=hp,150%’.
    • As such, the ‘hp_percent’ and ‘mp_percent’ stat bonuses are considered deprecated.
  • Players are directed to the Mods configuration menu via a dialog box when no core mod is enabled. (kr4ft3r)
    • Core mods are now labeled as such in their tooltips on the Mods configuration menu.
  • Added ‘resource_round_method’ property to engine/combat.txt.
  • Support arbitrary “MP-like” resources:
    • Configuration file: engine/resource_stats.txt
    • Added ‘requires_resource_stat’ and ‘resource_steal’ properties to Powers.
    • Added ‘requires_resource_stat_state’ and ‘requires_resource_stat_state_mode’ properties to Powers.
  • Added ‘enabled’ property to MenuStatBar definitions.

Engine fixes

  • Fixed set item tooltips showing incorrect number of equipped items if a set item was on an inactive loadout.
  • Fixed dev console commands not working if they were preceded by whitespace.
  • Fixed spawning entities not counting towards summoned entity count.
  • Fix broken gamepad navigation after closing Powers menu while on a non-default tab.
  • Removed hard-coded minimum values for HP/MP steal and damage return.
  • Fixed “activate” message incorrectly showing in MenuPowers tooltips.
  • Fix some cases where ‘min’ damage/absorb could be greater than the cooresponding ‘max’ value.
  • Fixed text input issues with deleting text on Android.

Game updates

  • Fireball and Ice Bolt scrolls now give the player a 10 second period in which their basic attacks (Swing, Shoot, Channel) are replaced with the scroll power.
  • Fixed the naming of scroll damage as it appears in power description tooltips.
  • Lowered Lezaith’s slow resistance to 50%, down from 100%
  • Lowered Lezaith’s stun resistance to 90%, down from 100%

Translation updates

  • German (de) update (Wuzzy2)
  • Scottish Gaelic (gd) update (GunChleoc)
  • Indonesian (id) update (Kirim Saja)
  • Italian (it) update (Riccardi Unix)
  • Japanese (ja) update (Sato Hayato)
  • Korean (ko) update (ks k, YooJin919)
  • Polish (pl) update (Pawonashi)
  • Russian (ru) update (berry)
  • Chinese (zh) update (Issac Zhang)

Flare 1.14 Release Candidate 1

The release candidate for Flare 1.14 is now available. For a list of changes, see the release notes.

Translating 1.14

If you’re interested in helping with translations, be sure to read over the Translations page on the wiki. The string freeze begins today, Nov 17, and ends on Dec 3.

Downloads

Malicious link on Android wiki page

I apologize for being so late on noticing this, but it appears that someone (a bot?) changed the download link on the Android wiki page on March 27. It has now been fixed.

The user who made the change no longer exists. To prevent such things in the future, I have locked wiki editing on both flare-engine and flare-game to only those with push access. If you are not in this group and have a change or addition you’d like to make on the wiki, I encourage you to post it on the discussion forum for review.

I Love Free Software Day 2022 Presentation

Last week, I gave a brief presentation about Flare for the FSFE‘s I Love Free Software Day event. The talk was written with the expectation that a sizable chunk of the audience would be people with little-to-no knowledge of games. So there’s nothing too ground-breaking here. Nonetheless, I think it is a nice summary of what we’ve accomplished over the years.

And be sure to check out the other talks on Godot Wild Jams, Vassal, and Veloren.

Flare 1.13.04

Flare version 1.13.04, a small bugfix release for 1.13, is now available for download. Most importantly, this fixes a bug where passive powers wouldn’t activate again after the player had died.


 Windows

 Linux

 Mac OS

Android

Sources


Changelog

Engine features

  • Added ‘bar_gfx’ property to menus/enemy.txt for setting the “fill” image

Engine fixes

  • Fix crash when trying to read a non-existent file with INCLUDE
  • Fix passive powers not being correctly re-applied after death
  • Improve performance of WidgetListBox by caching all items instead of just the visible ones

Flare 1.13

Update: Bug-fix release 1.13.04 is available, so grab that instead.

Flare 1.13 is now available for download. There’s lots of new stuff in this release, so let’s dive in.

Better gamepad behavior

Gamepad functionality has been given an overhaul. We’ve moved from using the SDL_Joystick API to using the SDL_GameController API. Instead of trying to map actions to arbitrary buttons and axes, we can now map them to the common XBox 360 controller layout. And thanks to SDL_GameController, these mappings will match up logically for non-360 controllers (e.g. XBox “B” matches Playstation “Circle”). We also fixed some bugs with the analog deadzone setting, including setting a minimum value of 8000. This should prevent players from accidentally setting their deadzone at too low of a value.

The new default mappings are as follows:

  • Left stick & D-Pad: Move player/Navigate menus
  • Right stick: Aim (change direction without moving)
  • A: Accept/Confirm
  • B: Cancel
  • X: Menu activate (use selected item/power)
  • Y: Open the Inventory menu
  • Start: Pause the game
  • Back: Toggle focus on the action bar
  • L1/R1: Navigate menu tab pages
  • Right trigger: Use primary (Main1) attack/power
  • Left trigger: Use secondary (Main2) attack/power
  • L3: Use the first action bar slot (Bar1) attack/power
  • R3: Use the second action bar slot (Bar2) attack/power

Navigating menus with a gamepad is also much improved. One of the most notable changes is the addition of an “action picker” dialog box. When a player presses the Accept action on a selected item or power, the dialog will pop up with a list of all the available actions. Previous to this change, performing some of these actions with a gamepad was either difficult or outright impossible (i.e. dropping items on the ground). And it’s not just better for gamepads. Mobile/touchscreen users will also be able to take advantage of the action picker when interacting with items and powers.

Secondary equipment set

A contributor who goes by r-a-cristian-93 on Github added support for multiple equipment loadouts. We now provide players with two sets of equipment slots in their inventory. By pressing the arrow buttons in the inventory (or the default key, Tab), players can quickly swap between different loadouts of equipped items. For example, players may want a loadout for farming that focuses on XP gain and item drop rate and a loadout for fighting bosses that focuses on physical and magic defenses.

Fog-of-war

Another contribution by r-a-cristian-93. The fog-of-war feature can be used to draw dark fog over unexplored tiles, and light fog over tiles outside the player’s range of vision. It’s been a requested feature for a while now, but it wasn’t something I particularly wanted to use for the Empyrean Campaign game. What made the feature more attractive to me was the secondary feature: fog-of-war for the minimap. Now, only the areas where the player has explored will be revealed on the minimap.

Improved font rendering

Text was sometimes hard to read, especially when it involved small font sizes or complex glyphs. By blending text with a copy of itself, I was able to get a much clearer looking result. The effect is subtle, but these comparisons should illustrate the difference:

Gameplay improvements

Health and Mana potions now have Super and Ultra variants that can be crafted through the alchemy system. The Goblin Thief and Alchemist’s Skirt have also been updated to work with all of the available kinds of potions.

The Adept class’ Shield power has been modified to be more useful to players of all classes. Instead of just Mental Damage, the shield’s power is determined by a combination of player level, the Mental stat, and the Defense stat. Of course, Adepts will still be the best when it comes to effectively using the power.

Platform-specific changes

Several problems have been fixed for players on Android. Most importantly, Flare should now work properly on Android 10 or greater.

We also updated some of the packages that we distribute. The Windows version now includes a 64-bit executable by default. The 32-bit executable is still included as a optional extra. We’ve also replaced the x86_64 tarball for Linux users with an AppImage.


 Windows

 Linux

 Mac OS

Android

Sources


Changelog

Engine features

  • Added additional requirement properties (requires_status, requires_item, etc) to enemy and NPC map objects. The properties now match what is available for map events.
  • When ‘mouse aim’ is disabled, the Shift key can now be used with the direction keys to change the player’s orientation without moving.
  • Added optional ‘fog-of-war’ feature (r-a-cristian-93)
  • Added support for multiple sets/loadouts of equipped items (r-a-cristian-93)
  • Added random_status attribute to Events for setting/unsetting a random status from a list.
  • Reworked gamepad handling using the SDL_GameController API.
  • Several new key bindings, many of which will benefit gamepad users.
  • Added an “action picker” for interacting with items/powers when using a gamepad or a touchscreen.
  • Added misc.selection_rect_corner_size to engine/widget_settings.txt. This allows for a nicer “targeting reticle” appearance when selecting widgets without a mouse.
  • Added ‘background’ property for all menus. Menus will fall back to the existing hard-coded filenames if this property is omitted.
  • Added ‘close’, ‘label_title’, and ‘action_list’ properties to MenuConfirm configuration.
  • Added ‘render_layers’ section to StatBlock definitions. It has the same syntax and functionality as engine/hero_layers.txt, so that file is now considered deprecated.
  • Added ‘animation_slots’ section to StatBlock definitions. This allows for multiple animation layers on non-player entities that don’t have an inventory like the player.
  • Added a ‘direction’ property to map NPCs, indentical to the property of the same name for map enemies.
  • Added ‘vendor_ratio_buy’, ‘vendor_ratio_sell’, and ‘vendor_ratio_sell_old’ properties to engine/loot.txt. These deprecate ‘vendor_ratio’ and ‘vendor_ratio_buyback’.
  • Added ‘vendor_ratio_buy’, ‘vendor_ratio_sell’, and ‘vendor_ratio_sell_old’ properties to NPCs. These can be used to override the global settings in engine/loot.txt.
  • Added ‘tooltip_visible_max’ to engine/tootlips.txt to control the maximum number of visible floating tooltips.

Engine fixes

  • Fix enemies not being able to target NPC followers
  • Fix loot and sound effects being cleared in StatBlock files with multiple sections
  • Fix potential crash when removing summons that would be out-of-bounds on the next map.
  • Fix bug where a damage type with no name could be removed if another damage type was defined after it.
  • Don’t show hidden stats under ‘Related Stats’ section of tooltips of Character menu.
  • Fix bug where negative regen wouldn’t work if the resource was 100% full.
  • Fix bug where negative regen would overflow after reaching zero.
  • Fix bug that caused built-in effect types to be ignored by Power post_effect.
  • Fix disappearing sprites due to render priority overflow.
  • Fading of corpses is now correctly disabled when corpse_timeout=0 is used in engine/misc.txt.
  • Fix cast animation not playing when using an inventory item that is not instant.
  • Fixed a bug on Android where loading the default settings would exit fullscreen mode.
  • Fixed crash in NPC dialog when using gamepad.
  • Fixed several small bugs with navigating UI elements with a gamepad.
  • Fixed incorrect handling of gamepad stick/trigger deadzone.
  • Fixed fullscreen setting being turned off when loading configuration defaults on Android.
  • Fixed input hint for item tooltips when using a touchscreen.
  • Improved file access handling on Android versions 10 and up. This fixes the infinite cutscene loop when starting a new game.
  • Fixed memory leak when loading NPCs.
  • Entity animations will now fall back to the ‘die’ animation when ‘critdie’ isn’t defined.
  • Improved text rendering by blending text with a copy of itself.
  • Fix infinite loop that could occur when setting unlocked powers.
  • Elemental resistances can now be used with ‘stat’, ‘stat_per_level’, and ‘stat_per_primary’ in StatBlock definitions.

Game updates

  • New formula for the ‘Shield’ power. Instead of Mental Damage, it is now based off a combination of player level, Mental stat, and Defense stat. This should increase its usefulness on mixed builds.
  • Added ‘Super’ and ‘Ultra’ variants of Health and Mana potions. They can be obtained through the Alchemy system.
  • New icons for Health and Mana potions variants.
  • Fixed Alchemist’s Skirt so that it works with all potions.
  • Prevent the player from damaging Mez before being trapped.
  • Made Lezaith immune to slow/stun effects.
  • Goblin Thief can now steal all available kinds of potions. Its drop table has also been expanded to make it easier to replenish lost potions.
  • Improved contrast for “highlight” state of red square buttons (“close” and “plus”).
  • The minimap is now gradually revealed as the player explores.
  • Added icon artwork to the equipment slots on the Inventory menu.

Translation updates

  • Basque (eu) update (aitzkora)
  • Scottish Gaelic (gd) update (GunChleoc)
  • Norwegian Bokmal (nb) update (Elias Nykrem)
  • Polish (pl) update (Pawonashi)
  • Russian (ru) update (Igor Polyakov)

Flare 1.13 Release Candidate 2

The second release candidate for Flare 1.13 is now available. For a list of changes since the previous release candidate, see the release notes.

Submissions for translation updates are still open until Jan 30. See the Translations page on the wiki if you’re interested.

Downloads

Flare 1.13 Release Candidate 1

The first (and possibly only) release candidate for Flare 1.13 is now available. For a list of changes, see the release notes.

Translating 1.13

If you’re interested in helping with translations, be sure to read over the Translations page on the wiki. The string freeze begins today, Jan 9, and ends on Jan 23 Jan 30.

Downloads

Road to 1.13

I’d like to start by saying thank you to everyone for the response to 1.12. I’ve seen nothing but positive comments, which made the long gap between 1.11 and 1.12 feel worthwhile.

Of course, it wouldn’t be a major release without a crash slipping through the cracks. Should you encounter this, the guaranteed workaround is to defeat all the enemies on the map before trying to move to the next map. If I were to guess, I’d say most players do that anyway. Either way, the core issue has been fixed for 1.13.

My goal is to release 1.13 before the end of the year. If you’re interested in keeping track of development, have a look at the milestone issues for the engine and game data.


I’ve also given some pages on the website a bit of attention. The Other platforms & distributions section of the Download page was full of errors. Many of the links were either broken or pointed to an older version of the game. I was shocked to see that the Amiga OS4 port has a “recent” (version 1.09) build! Last time I checked it was still somewhere around version 0.18 or 0.19. I had thought our switch from SDL 1.2 to SDL 2 had killed that port, but I guess there’s no stopping Amiga fans.

Finally, the Other Mods page has been updated with links to the forum threads for the Heresy and Open Valley mods. Heresy is in more of a playable state than Open Valley, which is still very much in development. I do recommend checking out both if you’re curious as to what the community’s been creating with Flare.