Flare 1.08

Flare 1.08 is now available for download. This is a small release to patch up a few bugs in 1.07.

The most critical bug from 1.07 was one that caused players to lose unlocked passive powers upon death. In rare cases, this may have resulted in permanently losing power skill points. If you have experienced this, and 1.08 does not fix it, you can try to fix it with the developer console. In the console, enter exec respec=powers to reset your power skill point allocation.

  Windows

 Linux

Changelog

Engine fixes:

  • Fixed sdl_hardware renderer not clearing top/bottom for tall windows.
  • Re-create render context when “ignore_texture_filter” setting changes.
  • Fixed bug where points spent on passive powers would be de-allocated after dying.
  • Prevent upgrading powers with the ‘+’ button while the player is dead.
  • Fix off-by-one error when calculating loot drop rates.

Translation updates:

  • German (de) update (Wuzzy2)
  • French (fr) update (Simon Georges)
  • Scottish Gaelic (gd) update (GunChleoc)
  • Italian (it) update (Fabio Loli)

Flare 1.07

Flare 1.07 is now available for download. This release contains several bug fixes, some quality-of-life improvements, new translations, and a few new features.

Power level bonuses

New to 1.07 is the addition of items that can grant bonuses to the player’s unlocked powers. In the above screen shot, you can see that Ardwen’s Gloves raise the level of the passive Stone Wall ability. The stat and level requirements for the upgraded power is waived. In other words, a level 2 player with Stone Wall 1 will be able to use Stone Wall 2 despite the latter requiring a player level of 3. A handful of the unique items in the Empyrean Campaign have been updated to make use of these new bonuses, so be sure to keep an eye out for them.

Improvements to item icons

We’ve improved the appearance of item icons. The engine now supports image overlays based on item quality. This makes it much easier for players to find the good loot in their inventory at a glance. The quantity text on item icons has also been improved to be easier to read.

Navigating cutscenes

Players can now move backwards and forwards through cutscenes with either the buttons at the top of the screen or the left/right arrow keys. In addition, the movie-style scrolling cutscenes and now be scrolled up and down with the respective arrow keys. The Hyperspace map in the Empyrean Campaign has also been updated with a book stand that provides access to unlocked cutscenes for re-watching.

Completed quests in the Quest Log

Players no longer need to keep track of which quests they’ve already done. Completed quests are now listed in the Quest Log underneath the list of active quests.

New sound effects

The previously silent Cursed Graves have been given some new sound effects. Also, a new sound effect will now play when the player tries to use a power, but lacks the required MP.

New language translations

Bulgarian, Brazilian Portuguese, and Vietnamese have been added as new language options. Several other languages have received updates as well (see the full changelog below). There are unfortunately still some languages which are severely lacking in translation completeness. Those wishing to help can check out the engine and game on Transifex.

  Windows

 Linux

Changelog

Engine features

  • Added descriptions for some of the player stats to help clarify their purpose.
  • The game now remembers if the player dismissed the quest log notification.
  • Navigating cutscenes has been improved. Players can move back and forth through scenes with left/right arrows.
  • Vertical scrolling cutscenes can be manually scrolled with the Up and Down keys.
  • Scenes in cutscenes can now pause indefinitely by using “pause=-1”.
  • Added a “lifeform” flag to enemy stats. Setting it to false will display “Destroyed” instead of “Dead” when their HP reaches 0.
  • Mod descriptions can now be translated with “description_locale”.
  • Added “enable_overlay”, “start_at_bottom”, and “overlay_at_bottom” to HUD log configuration.
  • Added “requires_status” and “requires_not_status” to book text.
  • Added ability for book text to use special variables like “${AVATAR_NAME}”.
  • Added random selection of portrait and class to New Game menu.
  • Allow setting the class list height in the New Game menu.
  • Display a list of completed quests in the Quests log.
  • Item icons can now have an overlay image based on their quality.
  • Added widget settings for modifying the appearance of the quantity text on item icons.
  • Added support for playing a sound effect and showing a message when player lacks required MP for power usage.
  • Added ability to grant bonuses to power levels via items with the “bonus_power_level” property.

Engine fixes

  • Fixed GetText bug where fuzzy state from header wasn’t being unset properly.
  • Fixed rendering bug in WidgetTabControl.
  • Fixed crashes when using an empty WidgetListBox.
  • Fixed GetText bug where strings weren’t being sanitized.
  • Fix locked left/right keys when loading a cutscene from the dev console.
  • Using the –mods command line flag doesn’t overwrite the user’s mod configuration.
  • Fix infinte loop bug when trying to render multi-line text in a small area.
  • Fix interaction with loot hitboxes interfering with loot tooltips.
  • Improved handling of mouse movement for melee characters. The player will no longer execute their primary melee attack if they are out of melee range of their target. Also, the player will begin to attack if they enter melee range while moving.
  • The user keybindings are now reset if the keybindings file is not forwards compatible. Anyone using remapped keys will need to set them again with this update.
  • Improved performance when dealing with campaign statuses.
  • Fix NPCs/enemies not begin affected by statuses set in on_load events until the player re-entered the map.
  • Various fixes to MenuPowers, including better handling of when powers no longer meet their requirements.
  • Fixed crashes that occurred when NPC did not have animations.
  • Lots of code cleanup.

New translations

  • Bulgarian (bg) by Emil
  • Brazilian Portuguese (pt_BR) by Gabriel Iasi, Vicente Monteiro
  • Vietnamese (vi) by Nguyễn Gia Phong

Translation updates

  • Belarusian (be) update (Mikalai Valer’evich Sakalouski, Zmicer Turok)
  • Czech (cs) update (hark34)
  • German (de) update (Wuzzy2)
  • Spanish (es) update (Diego J. Romero López)
  • Scottish Gaelic (gd) update (GunChleoc)
  • Russian (ru) update (Sam Vo)
  • Chinese (zh) update (dumaosen)

Game changes

  • The player’s name can now been seen if they write it in the Book of the Dead.
  • Fixed not being able to do the Merchant’s Journal quest if Abasi was in his final location.
  • Added color-coded overlays for item icons and improved quantity readability.
  • Added new sound effects for cursed graves.
  • Added new sound effect for when the player does not have enough MP to use a power.
  • Tweaked the bonuses for some unique items to include bonuses to Power levels.
  • Some small additions have been made to the Hyperspace map. Most notably is a book which can be used to re-watch cutscenes.

Flare 1.06

Flare 1.06 is now available for download. This update contains some fixes for the Torture Chambers and brings a few improvements to the Android port.

Torture Chambers

There were two issues that had been reported with this map. The first being that it was possible to attack the imprisoned enemies without consequence while the barriers were still active. I wanted to fix this without changing the existing hero attacks, so I ended up adding the ability to make groups of enemies invincible based on campaign status. Modders that are interested in this new feature should refer to enemygroup.invincible_requires_status and enemygroup.invincible_requires_not_status in the Attribute Reference.

The second issue was a bug with the “Warden’s Notes” quest in this map. The end of the quest contains a switch to unlock the chambers and a teleporter to return to the main area. Previously, it was possible for players to skip the switch and teleport back to the main area. This left players with no way to unlock the barriers. This has been fixed by requiring the player to use the switch before the teleporter becomes active. For players that had already encountered the bug, the quest should reset the next time you visit the Torture Chambers.

Android port improvements

The existing controls for the Android port had behaved like a desktop user with “Move hero using mouse” enabled. When using such a control scheme, the mouse cursor is generally near the hero in the center of the screen. This is acceptable for desktop users because the cursor is just a small arrow. On mobile, however, this cursor is replaced by the player’s finger. This results in the action being completely blocked, and thus a poor play experience. To remedy this, I’ve added a virtual joypad to the Android port. On the left is a virtual d-pad for movement. On the right are two buttons which correspond to the two primary attacks.

Another “flaw” on mobile is vastly higher DPI screens than most desktop systems. For reference, my desktop is around 92 DPI, whereas my phone is 300 DPI! So running Flare on my phone’s 1280×720 display resulted in the game running at the higher virtual resolution of 600p. This led to me adding a virtual_dpi setting, which lets modders define a target DPI for their game. I’ve set the fantasycore mod’s target DPI to my desktop’s setting, so the game will now use the lower 480p resolution on mobile. This results in everything being bigger and much easier to interact with. While disabled on desktop by default, I’ve also made it possible to enable DPI scaling in the Video options.

  Windows

 Linux

Changelog

Engine features

  • Allow modders to define a target screen DPI for resolution scaling.
  • Added video option to toggle using DPI scaling.
  • Add virtual joystick buttons for touchscreen devices.
  • Add ability to make groups of map enemies invincible based on campaign status.

Engine fixes

  • Fixed performance flaw when “always show statbar labels” was enabled.
  • Fix bug where incorrect Power menu tooltip was fetched when not using a mouse.

Game changes

  • Fix Torture Chambers quest breaking if the player skips the switch at the end.
  • Fix being able to attack imprisoned enemies in Torture Chambers by making them invincible while the barriers are up.
  • Reset Torture Chambers quest if it was finished without opening the barriers.

Translation updates

  • Spanish (es) update (Diego J. Romero López)
  • Scottish Gaelic (gd) update (GunChleoc)

Flare 1.05

Flare 1.05 is now available for download. It includes many new features, a few of which I will now highlight:

Developer mode improvements

The developer console has been made more compact and the old developer HUD has been removed. The new HUD displays the radius of hazards as well as the origin points of entities. The text output of position information is gone, as it would often be covered by the developer console. Replacing it is a tile cursor. Right clicking on a tile will display information about the mouse cursor position, the tile itself, and any entities that inhabit the tile. Holding right click will also calculate the distance from the player’s position.

Isometric draw order fix

We’ve had a long standing issue with the way some tiles were being drawn in relation to other objects on the map. Tiles that are part of larger objects are split in a way that would make them improperly overlap entities. This has been fixed for the majority of cases, but at the expense of some less optimized rendering code. So if you experience performance issues after updating to 1.05, please report them.

Multiple images in tileset definitions

Previously, Flare tileset definitions could only contain a single image file. This made it difficult for modders to expand on existing tilesets. It also made it impossible for old graphics cards to use the hardware renderer in combination with very large tilesets. Now, modders can freely add new images to tileset definitions, eliminating those two issues.

New game data attributes

  • (Powers) Powers can now be prevented from being placed on the actionbar with no_actionbar. Also, multiple instances of requires_item and requires_equipped_item are now supported.
  • (Events) Loot tables can now be used for rewards with reward_loot and reward_loot_count.
  • (engine/misc.txt) Modders can now control if the buyback persists across maps with keep_buyback_on_map_change.
  • (engine/default_keybindings.txt) A default set of keybindings can now be provided by mods.

  Windows

 Linux

Changelog

Engine features

  • Tileset definitions now support multiple images.
  • Display a message when unable to use a consumable item from the inventory.
  • Add a hint to consumable/book tooltips to expose their interactable nature.
  • Add ability to prevent certain powers from being placed on the actionbar.
  • Multiple entries of “requires_item” and “requires_equipped_item” are now supported for Powers.
  • Add “keep_buyback_on_map_change” to engine/misc.txt to disable saving the buyback between maps.
  • Add “reward_loot” and “reward_loot_count” to Events for rewarding via loot tables.
  • Support hidding the developer console title label.
  • Mod-level default keybinding support added.
  • Improved developer mode with inspection cursor.
  • Passive powers can now continuously cast their post_power.

Engine fixes

  • Fixed incorrect render order for some objects; aka “character partly hidden by front of tent”.
  • Fix stats/powers not updating when changing equipment in some cases.
  • Prevent auto-equipping items if they would cause existing items to be unequipped.
  • Fix revive effect not being applied when the player has zero HP.
  • Removed unused color key attribute parsing from tileset definitions.
  • Fixed building on FreeBSD.

Translation updates

  • Spanish (es) update (Eric R)
  • Scottish Gaelic (gd) update (GunChleoc)
  • Italian (it) update (MOB2)
  • Polish (pl) update (Pawonashi)
  • Portuguese (pt) update (Rui)
  • Russian (ru) update (Ademaro)
  • Ukrainian (uk) update (Sergiy Borodych)

Flare 1.04

Flare 1.04 is now available for download. It contains a few bug fixes that were overlooked in 1.03.

  Windows

 Linux

Changelog

Engine fixes

  • Fix a regression that caused book text that was not left-aligned to be cut off. (Justin Jacobs)
  • Fix a crash when teleporting to the default position of map with a summoned creature. (Justin Jacobs)

Game changes

  • Fall back to Liberation Sans when fancy fonts lack the appropriate glyphs for the current language. (Justin Jacobs)
  • Fixed translation script not grabbing subtitles from soundfx/subtitles.txt. (Justin Jacobs)

Translation updates

  • Scottish Gaelic (gd) update (GunChleoc)
  • Portuguese (pt) update (Rui)
  • Ukrainian (uk) update (Sergiy Borodych)

Flare 1.03

Flare 1.03 is now available for download. Newly implemented is the ability to trigger events from books (demo below). Flare 1.03 also includes a handful of bug fixes, as well as several translation updates. Many of the translation updates are from new volunteers that joined the Transifex team.

  Windows

 Linux

Changelog

Engine features

  • Buttons that trigger Events can now be added to books. (Justin Jacobs)
  • Add ability to control image display in books via campaign status. (Justin Jacobs)
  • Add ability to execute Events upon opening/closing a book. (Justin Jacobs)

Engine fixes

  • Fix crash when using invalid primary stat in stat_per_primary. (Justin Jacobs)
  • Fix crash when a book contains an invalid image filename. (Justin Jacobs)
  • Fix incorrect handling of newlines in tooltips. (Justin Jacobs)
  • Don’t spam “Entity stuck” message while pushing an entity out of a bad tile. (Justin Jacobs)
  • Keyboard key names such as “Backspace” and “Left Ctrl” can now be translated. (Justin Jacobs)
  • Prevent HP/MP/XP bar meter from exceeding the size of the bar. (Justin Jacobs)

Translation updates

  • Scottish Gaelic (gd) update (GunChleoc)
  • Greek (el) update (Nea Retrogamer)
  • Spanish (es) update (Diego J. Romero López)
  • French (fr) update (sang-froid)
  • Italian (it) update (MOB2)
  • Portuguese (pt) update (Rui)
  • Ukrainian (uk) update (Denis Lysenko, Микола Франчук)

On Transifex

If you’ve been following closely, you saw that I closed the Flare projects on Transifex yesterday. I cited Transifex as being unsuitable for our workflow. I’ve since been convinced to re-open the project pages and decided shift our workflow slightly to better adhere to the Transifex way of doing things.

For those completely unaware of our presence on Transifex to begin with, you can find both the engine and game projects on there. Translators interested in helping make Flare better in your language can join the flare-engine team. 14 of our 20 translated languages are without an assigned translator, so there are many places you can help.

And we will still be supporting our existing methods of submitting translations. So if you would rather submit your work as a Github pull request or send it via e-mail, feel free to do so.

Flare 1.02

Flare 1.02 is now available for download and fixes a few crashes along with some language updates.

  Windows

 Linux

Changelog

Engine features

  • Support multiple campaign statuses for requirements in engine/titles.txt. (Justin Jacobs)

Engine fixes

  • Fix crash on exit caused by not clearing the Hazard queue. (Justin Jacobs)
  • Fix regression that caused a crash when configuring mods in the wrong order. (Justin Jacobs)
  • Fix bug where player title wouldn’t update after “unset_status”. (Justin Jacobs)
  • Fix potential NULL dereference in vendor window. (Justin Jacobs)

Translation updates

  • Scottish Gaelic (gd) update (GunChleoc)
  • Polish (pl) update (Pawonashi)
  • Russian (ru) fix (Igor Paliychuk)
  • Ukranian (uk) update (Микола Франчук)

Flare 1.01

Flare 1.01 is now available for download! It includes many bug & crash fixes, as well as a few game play changes based on player feedback.

Downloads

  Windows

 Linux

 Mac OS

  • The Mac OS version is still having issues, so a new version is not available at the moment.

Changelog

Engine features

  • Add “Renderer” option to the Video section of the Configuration menu. (Justin Jacobs)
  • Support loading some hard-coded Configuration menu values from menus/config.txt. (Justin Jacobs)
  • Add WidgetSettings class for loading previously hard-coded properties of some Widgets. (Justin Jacobs)
  • Add support for changing the buyback price after the player leaves the map. (Justin Jacobs)
  • Add ability for certain classes to open a specific tab of the Powers menu automatically. (Justin Jacobs)
  • Add ‘respec’ Event component for resetting XP/stats/powers. (Justin Jacobs)
  • Add ‘no_aggro’ Power attribute. (Justin Jacobs)

Engine fixes

  • Fix bug where if minions were blocking the player, they couldn’t be moved out of the way. Minions are now forced to move out of the way if the player is close enough. (Justin Jacobs)
  • Fix bug where removing a primary stat bonus would break passive powers that relied upon said bonus. (Justin Jacobs)
  • Fix crash on exit when using the sdl_hardware renderer on some systems. (Justin Jacobs)
  • Fix disappearing text caused be resizing the window in some cases. (Justin Jacobs)
  • Fix a regression in button and checkbox logic that prevented them from working with keyboard and controller input. (Justin Jacobs)
  • Fix rendering of tabs when individual tabs are too short or too long. (Justin Jacobs)
  • Adjust gamma slider range so that the default value is in the middle. (Justin Jacobs)
  • Clean up error messages that are displayed when the stash hasn’t been created. (Justin Jacobs)
  • Prevent the same key from getting bound to multiple actions. (Justin Jacobs)
  • Prevent editing joystick bindings when joystick is not in use. (Justin Jacobs)
  • Don’t try to send items to buyback when using SELL_WITHOUT_VENDOR. (Justin Jacobs)
  • Fix named Effects not showing up in Power menu tooltips. (Justin Jacobs)
  • Fix passive powers not respecting some power usage requirements. (Justin Jacobs)
  • Fix some events being activated when they shouldn’t if the player was inside of their location rect. (Justin Jacobs)
  • Fix Power attribute pre_power not working for AI creatures. (Justin Jacobs)
  • WidgetScrollBox now scrolls in 5% increments based on the size of its contents, as opposed to a hard-coded pixel amount. (Justin Jacobs)
  • Fix memory leaks in GameSlotPreview, LootManager, PowerManager, and ModManager. (Justin Jacobs)
  • Fix incorrect dimensions of SVG icon. (Alexander Wilms)
  • Fix Windows installer not using the correct working directory for launching Flare after install. (Justin Jacobs)

Documentation

  • Add documentation for creating Mac OS build. (Thomas Leavitt)

Translation Updates

  • Scottish Gaelic (gd) update (GunChleoc)

Game changes

  • Redesign final Fort Nasu puzzle, in response to the frustrations of many players. (Justin Jacobs)
  • Increase elemental ring bonuses by 10%. (Justin Jacobs)
  • Tweak slingshot stone graphics to make it more visible on some maps. (Justin Jacobs)
  • Add appdata.xml for use with various package managers. (Alexander Wilms)

1.01 coming soon, string freeze starting today

First off, I want to say thank you to everyone who’s been playing 1.0. The response has been very positive and I, personally, couldn’t be more happy.

We’ve gotten a lot of feedback on bugs and gameplay annoyances, which we’ve fixed for our next release. A full change log will be available when 1.01 is released some time this weekend.

There were a few new/changed strings in the engine and the game data, so we are starting a short string freeze for translators. Translations should be in by 2:00 PM EST on Friday, March 30. Below is a summary of the strings that need attention:

#######
### mods/default/languages/engine.pot
#######

#: ../../../src/DeviceList.cpp:55
msgid ""
"SDL software renderer\n"
"\n"
"Often slower, but less likely to have issues."

#: ../../../src/DeviceList.cpp:58
msgid ""
"SDL hardware renderer\n"
"\n"
"The default renderer that is often faster than the SDL software renderer."

#: ../../../src/SDLInputState.cpp:703 ../../../src/SDLInputState.cpp:707
#: ../../../src/SDLInputState.cpp:711
#, c-format
msgid "'%s' is no longer bound to:"

#######
### mods/empyrean_campaign/languages/data.pot
#######

#: ../powers/base/magician/thunderstrike.txt:4
msgid "Lightning strikes from the sky with a high chance to critically damage movement-impaired enemies.

Update: Translation is now possible via Transifex for both the engine and game.