Flare 1.12 is now available for download. In the two years since version 1.11, there have been many improvements to both the engine and the Empyrean campaign.
Interface improvements
The HP and MP bars have gotten a visual refresh. The goal was to make them easier to read when they are close to being empty. The HP bar is also now a more traditional red color instead of a red-to-green gradient.
The mini map has also gotten some new features. There is now a button placed below the map that allows easy access to the pause/configuration menu. In addition, various objects are now indicated with different colors on the map:
- Red = alerted enemies
- Yellow = player allies
- Green = NPCs
- Blue = map transitions
Inventory and action bar tooltips have had some improvements as well. Comparison tooltips are now displayed for items, which show the currently equipped items for a given slot. Useful for deciding which gear to use. But some players might find it a bit cluttered, so there is an option to disable these tooltips in the Interface configuration page.
While on the topic of item tooltips, a few things have been tweaked. If an item is part of a set, we now highlight which set bonuses are active based on the number of equipped set items. Also, the buy and sell prices now use the currency item’s color to make them stand out more.
Action bar tooltips now display more information about powers, such as the power description and MP cost.
New configuration options
In the Video section of the Configuration page, there are two new options: Maximum Render Size and Frame Limit.
The Maximum Render Size is the vertical resolution of the game’s drawing surface. With the addition of this option, we’ve increased the default maximum render size for the Empyrean Campaign to 768 pixels. If you find this to make things too “small”, consider decreasing this setting to the previous default of 600.
The Frame Limit controls the maximum FPS that the game will run at. Lowering it to 30 from the default of 60 can help get a more consistent experience on very slow systems (or save battery life). Conversely, increasing it can provide a smoother experience for players with high refresh rate monitors.
The Input section of the Configuration page now includes options for touch controls. These options allow enabling touch controls on non-Android devices, as well as changing the scale of the on-screen gamepad.
Expanded alchemy
Version 1.12 of the Empyrean campaign sees the addition of a new alchemy ingredient: Mushrooms. With this ingredient, four new potion recipes have been added. Drop rates for alchemy resources have been slightly decreased, but players should still have no problem finding what they need. Lastly, Florin in Perdition Harbor now gives a quest to introduce the alchemy system to new players.
Map and quest redesigns
There were a handful of maps in the Empyrean campaign that tried to trap the player in a specific area as part of their related quest: the Family Crypt, the Nazia Mines, and the Torture Chambers. Yet there was always the chance the player could use a Perdition Scroll, so we had to resort to resetting the quest when the player re-entered the map. So we decided to ditch the idea of trapping the player and redesigned the affected maps to allow free travel.
It’s also worth noting that it is now possible to store all of the game’s quest items in the player’s private stash.
Player and enemy power changes
The Cleave power has received some new artwork, and has had its effective hit circle reduced to match. This change applies for both the player and enemy versions of the Cleave power.
Rakk’s close-range ice attack was vastly over-powered, so both its strength and hit circle have been reduced.
The Goblin Thief’s potion steal ability has been fixed so that it can’t steal from the player’s Summoned Zombie.
Spike traps have also been rebalanced. Instead of dealing a large amount of instant damage, they now deal less instant damage while inflicting a strong bleeding effect. They have also had their hit circle slightly reduced. This all should result in less surprise deaths by giving the player time to react and heal.
Windows
- Installer (Engine + Game) (129.1 MB)
- Engine + Game (129.1 MB)
- Engine (10 MB)
Linux
- Engine (x86_64) + Game (125.8 MB)
- Engine source (5.9 MB)
- Game (140.2 MB)
Mac OS
- Engine + Game (126.4 MB)
Changelog
Engine features
- NPC interactions are now canceled when the player is attacked. ‘combat_aborts_npc_interact’ has been added to engine/misc.txt to control this setting.
- Added ‘bar_fill_offset’ and ‘bar_fill_size’ to MenuStatBar and MenuEnemy properties.
- Added support for fading out combat text. See the ‘fade_duration’ property in engine/combat.txt.
- Added ‘save_oncutscene’ property to engine/misc.txt. Saving before a cutscene was previously controlled with ‘save_onload’, which caused issues with cutscenes when set to false.
- Added ‘save_anywhere’ property to engine/misc.txt. This allows for saving via the pause menu. (m7600)
- Added display of enemies, allies, NPCs, and intermap teleport events to the minimap.
- Added support for defining the colors of tiles and entities on the minimap.
- Added ‘show_on_minimap’ event component. Currently, this only applies to intermap teleport events.
- Added ‘show_on_minimap’ property to NPCs.
- Properties that take an alignment can now be aligned to the menu frame.
- Support multiple images in animation definitions. (bloodhero)
- Expanded slot widget configuration in engine/widget_settings.txt. Quantity text color can be changed, as well as label settings for displaying hotkeys.
- Re-implemented displaying hotkeys on action bar slots.
- Support for ‘item:quantity’ syntax for Event properties: ‘requires_item’, ‘requires_not_item’, ‘remove_item’, and ‘reward_item’.
- Added ‘show_randomize’ property to new game menu configuration.
- Added ‘disable_equip_slots’ property for passive powers.
- ‘Block’ powers can now use post_power to trigger a power when taking damage.
- Power descriptions are now displayed in action bar tooltips. This can be controlled with the ‘tooltip_length’ property in menus/actionbar.txt.
- A dialog box is now displayed instead of a log message when the player dies, giving the options to exit or respawn (if applicable).
- Added movement input type dialog box. It is displayed for new players to easily select between keyboard, mouse, and joystick movement.
- Added ‘–safe-video’ command line option. For troubleshooting purposes, this feature is displayed as an option when starting after a potential crash.
- The ‘categories’ property has been extended to the player character. The Power property ‘target_categories’ can now be used for the player as a result.
- The ability to stash quest items can now be controlled with the ‘no_stash’ property.
- Added a button for opening the pause/configuration menu as part of the minimap.
- Added ‘script’ property to items. This removes the need to create a power in order to execute a script via activating an item.
- Player ‘melee_range’ is now configurable in engine/stats.txt.
- Added comparison tooltips for items. These can be disabled in the Interface settings. (r-a-cristian-93, Justin Jacobs)
- Added ‘parallax_layers’ property to Events. This functions exactly like the Map property of the same name.
- Added ‘visible’, ‘visible_check_locked’, and ‘visible_check_status’ to powers and upgrades in power trees.
- Added ‘requires_status’ and ‘requires_not_status’ to powers and upgrades in power trees. ‘visible_requires_status’ and ‘visible_requires_not_status’ have been marked as deprecated.
- Added ‘on_interact’ as a possible value for Event types. Essentially the same as ‘on_trigger’, except the event can ONLY be activated through the hotspot.
- Support an arbitrary number of Stash tabs. Each tab has a display name and an ‘is_private’ flag.
- Added ‘save_onstash’ property to engine/misc.txt, so it is now possible to disable the automatic save when modifying stash contents.
- The player’s last used Stash tab is now remembered across sessions.
- Added the ability for NPCs to join the player’s party. (Igor Paliychuk)
- Added support for the ‘delay’ property used by Events contained in script files.
- Added ‘Frame Limit’ option to Video settings.
- Added ‘Maximum Render Size’ option to Video settings.
- Improved visual indication of which item set bonuses are active.
- Support enabling touch screen controls on non-Android systems.
- Added ‘Touch Gamepad Scale’ option to Input settings.
- Support fullscreen mode in the Emscripten port.
- Added scrollbar.bg_color to engine/widget_settings.txt.
- Updates to package_osx.sh, including usage of Homebrew for dependencies (ludoza)
Engine fixes
- Fix memory leak of tab control in stash menu (MiroslavR)
- Fixed stat bars not having any fill when the value they were representing was non-zero. Now they will always show at least 1 pixel of the bar’s fill graphics.
- Fixed a bug where the game window could be resized below the minimum size after exiting fullscreen mode.
- Removed the default resolution scaling when virtual_heights is undefined.
- Improved performance when checking map event hotspots.
- Fix Windows-style paths with backslashes not working on non-Windows systems.
- Prevent allies counting as attack targets when using mouse movement.
- Fix needing to press the ‘Cancel’ key twice to exit the vendor menu.
- Fix unintended key presses being registered when quitting the game via an OS keyboard shortcut.
- Fix divide-by-zero crash when using the dev HUD with a game that uses orthogonal rendering.
- Fixed a memory leak in Loot copy constructor.
- Fixed ‘resist_percent’ property of engine/combat.txt not working when targets had 100% resistance.
- Support attack_speed effects with a magnitude less than 100%.
- Fixed bug where dead entities could steal HP/MP.
- Fix broken parsing of engine/default_keybindings.txt.
- Fix Effect animations not being synced properly in some cases.
- Removed hard-coded restrictions on using items from the inventory. Now any item that has a power and is not equipment can be used.
- Fix crash when fonts are missing. The engine will try to fall back to the next available font for the current language.
- Background color when using sdl_hardware renderer no longer fills entire window, instead only filling the drawing surface as it should.
- Fix crash when loading a cutscene from a book event.
- Fix infinite transformation loop when dying in a transformed state that was activated by a passive power.
- Fix bug where the player wasn’t returned to their normal state after dying in a transformed state.
- Prevent combat text from overlapping.
- Improved performance when handling many status effects.
- Improved performance when an entity is repeatedly unable to find a path to thier target.
- Fix bug where killing an enemy with return damage would not set defeat status or reward XP/loot.
- Fix check of item requirements when a power requires an item but doesn’t consume it.
- Fix ‘respec’ events to no longer remove item-based powers from the action bar.
- Fix log message when gaining more than one level at once.
- Fixed excessive memory usage when using Items, ItemSets, and Powers with high-value IDs.
- Fix bug where power upgrades that didn’t require power points would not automatically upgrade if other requirements were met.
- Fix infinite loop bug when a power’s list of upgrades contains the base power ID.
- Fix infinite loop bug when locking power upgrades.
- The executable directory is now used when trying to find PATH_DATA on Linux. (r-a-cristian-93)
- Fix ‘corpse_timeout’ in engine/misc.txt being parsed incorrectly (r-a-cristian-93)
- Reworked camera speed curve to prevent graphical “wiggle” during slow movement.
- Fix missing effect description text in power tooltips when using built-in types.
- Fix static events not executing on the same frame as on_load events.
- Fix parsing bug in power trees that would save base power properties to an upgrade power.
- Fix on_load events with requires_class not working in maps/spawn.txt
- Fix timing of Effects so that the first “tick” happens immediately.
- Fix “Press button to use” prompt no showing up for some items.
- Fix loud loot drop sound effect when there are a large number of drops at once.
- Fix incorrect HP/MP regen for high regen values and high frame limits.
- Fix camera, parallax layer, and cutscene speeds when using alternative frame limits.
- Fix not restoring fullscreen option when pressing Cancel or Defaults in config menu.
- Smoother scrolling in WidgetScrollBox.
- Fix click-and-drag behavior on WidgetTabControl, WidgetSlider, and WidgetScrollBar.
- Fix dialog topics being auto-selected when they shouldn’t for non-vendor NPCs.
Game updates
- New graphics for HP and MP status bars
- Reworked art for the Cleave power
- Cleave power radius reduced to closer match its artwork
- Reduced the strength and radius of Rakk’s freeze attack
- Fixed the Goblin Thief being able to steal potions from a Summoned Zombie
- Reduced the hitbox for spike traps
- Greatly reduced the damage for spike traps. In exchange, the traps now inflict bleeding.
- New alchemy ingredient: Mushrooms
- Added 4 new potion recipes
- Overall reduced drop rates for alchemy items
- Added Alchemy quest
- Added animations for immunity and ice-based slow status effects
- Redesigned the Family Crypt map and quest
- Redesigned the Nazia Mines maps and quest
- Redesigned the Torture Chambers map and quest (again)
- Mortar & Pestle can now be placed on the action bar
- All quest items can be stored in the player’s private stash.
Translation updates
- Belarusian (be) update (Źmicier Turok)
- Catalan (ca) update (Maria Cano)
- German (de) update (Wuzzy2)
- Spanish (es) update (Agustin Ferrario)
- Basque (eu) by aitzkora
- French (fr) update (leø, Christophe Nemo, Bafy)
- Scottish Gaelic (gd) update (GunChleoc)
- Hungarian (hu) update (litoll)
- Indonesian (id) by Kirim Saja
- Korean (ko) by Kor_OfenTHource (team members: bnk159hair, kangdonghun1230, HunSeongPark and paparad0x)
- Norwegian (nb) update (Elias Nykrem)
- Polish (pl) update (Błażej Pęksyk, Grzegorz Szymaszek)
- Portuguese (pt) update (Rui)
- Portuguese (Brazilian) (pt_BR) update (Vicente Monteiro)
- Russian (ru) update (Igor Polyakov)
- Slovak (sk) update (MiroslavR)
- Ukranian (uk) update (Sergiy Borodych)
- Vietnamese (vi) update (Nguyễn Gia Phong)
- Chinese (zh) update (dumaosen, sakura09123)
- Chinese (Taiwan) (zh_TW) by RedBug312
This update is AWESOME!!!
Hmm… maybe it’s my faulty memory but I thought the music sounded different in the previous version.
Can’t wait to find out what the 4th alchemy ingredient will be. I already have a few ideas for future potions: invincibility (but deal no damage), no aggro, stat/skill reset, stat buff (with penalty), emergency teleport, exp boost.
Inventory and skillbar clutter might be a problem with more alchemy ingredients and potion types.
The drop rates of unique items seems to have been reduced significantly from the previous version, even with drop-boosting rings equipped.
Perhaps drinking an item-drop potion before battling a boss is necessary now.
There’s been no changes to item drop rates aside from the alchemy ingredients.
Unique items have naturally always had low drop rates, so it may have just been that you were very lucky in the past.
Hey there, played 1.12 (Emscripten) and two takeaways.
1) Was the Shield skill nerfed for Brute and Scout? I was shocked to find out that one skill point in Shield yielded only one digit value of Shield protection. One hit from low level critters and the Shield is gone. I don’t remember this in 1.11. Is this intended or a bug? How about Shield protection = Skill level base value + character level bonus + % bonus from Mental stat?
2) The revamped spike trap damage is annoying in low level dungeons. For example, in version 1.11 I could run quickly across the spike traps in Stormrock Ruins without healing. I could do speed runs in the dungeon to try and get the Greed Cowl. 8 secs of bleeding damage seems too much. This ‘revamped’ spike damage should only be for the instant death spike traps in the final dungeon, the earlier dungeons should revert back to what it used to be in 1.11.
3) How about allowing the player to make advanced potions?
Example:
Bottle + Aloe vera = restore 25% max HP
Bottle + 2x Aloe veras = restore 35% max HP
Bottle + 3x Aloe veras = restore 45% max HP
—
Great job, and good luck for the next version.
1) The Shield power gets its strength from the player’s Mental damage stat. So yes, it’s pretty much useless for mixed builds. I think your idea of factoring in the player’s level in addition to the power level/Mental bonuses would be a good solution.
2) The bleed effect from spikes is 5% damage per second for 10 seconds. 50% of the player’s HP might seem like a lot of damage, but there are ways to deal with it. The Immunity Scroll and the Warcry power both give 100% immunity to bleeding. Or the player could chug health potions, since the damage is dealt slowly.
3) I like that idea a lot. We don’t have any 3 ingredient potions, so something like that would be a good place to start.
Would be cool if you would add multiplayer on next update because it would be fun to play Flare with friends
I’m so glad to see an update on this. Flare is a game that I have a strong fondness for and have been tinkering around in the engine and assets since 2019. It really helped me relax in the off time during college. Keep up the great work!
I downloaded android Flare onto my pixel 3a, copied the mod folder as instructed, but the game is stuck repeating the intro story. After the last sentence, “Not for the Exiled” it shows “loading…” in the bottom right, and the red “X” button in the top right, but no matter what I do, it just restarts from the beginning of the story. Help.
Sounds like an issue with writing the save file. If you restart the app, is the character you created available to load, or do you have to create a new character each time?
Where the “mods” folder is on your phone, the game should have created two folders with it; “config” and “saves”. You can try:
1. Looking at “config/flare_log.txt”. Any lines starting with “ERROR:” would be a red flag.
2. Looking at “saves/empyrean/1/avatar.txt” if it exists. The line that starts with “campaign=” should contain “empyrean_backstory”, which is the flag we set when the intro cutscene is first shown.
I do have to make a new character each time. I don’t see any config folder or flare_log.txt file.
After installing the Flare app, only one error regarding the file location path was shown. On my phone that is Android>data>org.flare.app>files
There was not a preexisting mod folder, so I just copied the unzipped mod folder from the windows pack and placed in the files folder.
There should be a “Flare” folder in the same location as the “Android” folder that has the config folder inside of it. But that might not exist because this sounds like a storage permission problem. The app should have prompted you for storage access. If it didn’t, you should be able to enable app permissions via the app info in Android.
Possibly. I’m using a usb cable between phone and PC, and the USB file transfer is turned on. When I access the phone on the PC, under the “Android” folder there is only a “data”, “media”, and “obb” folder. There are no other folders, “Flare” or otherwise.
When I opened the app before I added the mod content folder, the file path was error gave
the following location: sdcard/Flare/mods/storage/emulated/0/Android/data/org.flare.app/files/mods/
Pixel 3a doesn’t have sdcard, nor do I see a root folder match until the “Android” folder in which the rest do follow suit. And once I do add the mod folder there the app does load and not give the file path error, so I’m assuming this is the correct location.
The app has files and media permissions.
SDL_AndroidGetExternalStoragePath() returns /storage/emulated/0/Android/data/org.flare.app/files/, which we use for our default game data path. The first part, /storage/emulated/0/, is hidden most of the time, but that’s where your Android folder is. The problem is that we build the path for user data ourselves. I think I lucked out since /sdcard/ is symlinked to /storage/emulated/0/ on my Samsung J7.
I’ve uploaded a test build that should build the user path relative to the game data path. So the engine should be able to create and use /storage/emulated/0/Flare/
The test APK is listed on the wiki page.
So I uninstalled and reinstalled the app, but unfortunately the result is the same, except this time the app will freeze if I keep repeating the store many times or tap/hold my finger down while going through the story. Still not saving the character, nor do I see the previous folders files that should be generated.
Are you by any chance using Android 10 or higher? I did some further research and testing and found that Flare couldn’t access files outside the app’s own folder after Android 9. Android 10 has a flag to use the legacy method present in Android 9, but additional work is required for Android 11 onward. As a quick work-around, I tried simply using the app directory for everything on Android 11. Seems to work OK in an emulator, so please give it a try (the link is the same as before).