In case you missed it, the Linux/Windows/Mac versions of Flare are available on itch.io.
The Mac OS release of Flare is now on the Downloads page. Thanks to Thomas Leavitt for helping get this done.
It’s been over 4 years since Flare 0.19 was released. Finally, Flare 1.0 and the new Empyrean Campaign are finished and ready for download!
- Add dependency checking and metadata to mods; remove –game command line flag (Justin Jacobs)
- Engine and mod version checking. Mods can require specific engine & dependency versions. (Justin Jacobs)
- Add –mods command line option. (Justin Jacobs)
- Allow mod files to “append” their contents instead of replacing the target file (Justin Jacobs)
- Print filename & line number when file parsing errors occur (Justin Jacobs)
- Switch to using SDL 2 (Justin Jacobs)
- Refactored rendering system to support alternate backends (Henrik Andersson, Igor Paliychuk, Justin Jacobs)
- Implement automatic frame skipping for slow systems (Justin Jacobs)
- Refactor animation system to support higher framerates (Justin Jacobs)
- Change default maximum framerate to 60 FPS (Justin Jacobs)
- Resizable game window (Justin Jacobs)
- Scaled rendering that always fills the window (Justin Jacobs)
- Add –renderer command line flag (Justin Jacobs)
- Fix engine failing to read fast inputs (Andrew Engelbrect)
- Joystick buttons can be re-mapped (Justin Jacobs)
- Allow mapping of joystick axes (Justin Jacobs)
- Support binding all mouse buttons (Justin Jacobs)
- Log console message to file (Justin Jacobs)
- Warn when trying to run multiple instances of Flare (Justin Jacobs)
- Add –help and –version command line flags (Justin Jacobs)
- Add developer console and HUD (Justin Jacobs)
- Add book GUI (Igor Paliychuk)
- Add GUI for selecting quantity when shift-clicking on items (Justin Jacobs)
- Refactor configuration menu code to support alternative platforms (Justin Jacobs)
- Improved pause menu with volume sliders. (Justin Jacobs)
- Support adding a background image to the minimap. (Justin Jacobs)
- Don’t autopickup items dropped by the player (Justin Jacobs)
- Allow multiple items to drop at the same time (Justin Jacobs)
- Missing items due to mod configuration are now marked as “Unknown Item” (Justin Jacobs)
- Smoother movement around 1×1 tile objects (Justin Jacobs)
- Map rendering performance improvements (Stefan Beller)
- Enemies can wander randomly when not in combat (Justin Jacobs)
- Better support for using targeted powers when right-clicking on action bar icons (Justin Jacobs)
- Implement action queue, allowing potions to be used while attacking (Justin Jacobs)
- Added configuration option to always show HP/MP/XP bar text. (Justin Jacobs)
- Add option to hide loot labels; show them by pressing ALT (Justin Jacobs)
- Prevent loot labels from overlapping each other. (Justin Jacobs)
- Refactor AI power system to support unlimited powers instead of just four (Justin Jacobs)
- Display bonuses in power tooltips (Justin Jacobs)
- Allow more than 4 save slots (Justin Jacobs)
- Enemy minions can now receive party buffs. (Justin Jacobs)
- Add option to automatically equip items (Justin Jacobs)
- The last HUD log message is now displayed on top of open menus that might have previously obscured them. (Justin Jacobs)
- “Repeater” powers no longer hit the same target multiple times. (Justin Jacobs)
- Status effect icons now have tooltips to show effect name and duration. (Justin Jacobs)
- More varied enemy movement patterns with the addition of random fleeing (Justin Jacobs)
- Add subtitle support. (Justin Jacobs)
- Usability improvements to WidgetInput. (Justin Jacobs)
- Interpolate camera movement during intermap/power teleporting. (Justin Jacobs)
- Added in-game timer, display time played on load game screen and pause menu. (Justin Jacobs)
- Events can now be run from “script” files. (Justin Jacobs)
- Add “static” activation type to map events. (Justin Jacobs)
- Mouse cursor modding support (Justin Jacobs)
- Add ability to save game through Events (Justin Jacobs)
- Add Event property to teleport to a random map from a list of maps (Justin Jacobs)
- Allow equipped items to disable other equipment slots (Justin Jacobs)
- Add support for loot table files (Justin Jacobs)
- Randomized item drops and trader inventories via loot tables (Justin Jacobs)
- Allow powers to spawn loot (Justin Jacobs)
- Added knockback effect (Justin Jacobs)
- New stats: Missile Reflect Chance, Damage Reflection (Justin Jacobs)
- Allow powers to have no effect on targets with different movement types (Justin Jacobs)
- Added ability for hazards to move relative to the caster (Justin Jacobs)
- Add Power option to have caster “charge” forward/backward in a straight line (Justin Jacobs)
- Support miss & “overhit” damage multipliers. (Justin Jacobs)
- The primary stats (Physical, Mental, etc) can now be defined in a mod file. (Justin Jacobs)
- Damage types (Melee, Ranged, Mental) can now be defined in a mod file. (Justin Jacobs)
- Support grouping active effect icons. (DoKel)
- Add “wall_reflect” option for powers. (Clint Bellanger)
- Add support for changing attack animation speed. (Justin Jacobs)
- Add “color_mod”, “alpha_mod”, and “blend_mode” options to animations. (Justin Jacobs)
- Add parallax map backgrounds/foregrounds. (Justin Jacobs)
- Add support for map background color as used in Tiled. (Justin Jacobs)
- Icons can now be loaded from multiple image files. (Justin Jacobs)
- Added “movie credits”-style scrolling to cutscenes. (Justin Jacobs)
- Cutscene improvements: music support and individual scaling of graphics. (Justin Jacobs)
- Support for background artwork in main menus (Justin Jacobs)
- Vendor buyback can now be stored per-NPC across sessions (Justin Jacobs)
- Add MapSaver API (Igor Paliychuk)
- Several new properties for powers, effects, events, etc. I forgot to list here to support new game content. (Justin Jacobs)
- Mod syntax improvements; generated wiki page defining mod files (everyone)
- MANY small bug, crash, and static analysis fixes (everyone)
- Android port (Igor Paliychuk)
- Emscripten port (Justin Jacobs)
- Scottish Gaelic (gd) update (GunChleoc)
- Galician (gl) update (Adrián Chaves Fernández)
- German (de) update (Janet Hunt)
- Italian (it) update (Jeffry84)
- Japanese (jp) update (Paul Wortmann, sujiniku)
- Norwegian (nb) update (Hans Joachim Desserud)
- Polish (pl) update (Pawonashi)
- Portuguese (pt) translation (Phillippe Caetano)
- Russian (ru) update (Sergey Basalaev)
- Swedish (sv) update (Henrik Andersson)
- Entirely new game to replace the alpha demo, the Empyrean Campaign!
Here’s a new trailer for the Empyrean Campaign, which will be shipping with Flare 1.0 on March 12th.
Flare version 0.96 brings a bunch of new changes since 0.95.03. There is now one week left until the 1.0 release. Please remember to get any new or updated translations to us by March 9th.
Flare 0.96 changelog
- Fix allies being able to target dead enemies
- Add support for optional background image to minimap
- Fix bug where enemies could remain alive when their HP was 0
- Changed the default render device to SDLHardwareRenderDevice
- Do not scale rendering when within the range of virtual heights
- Fix enemies from continuing to wander when killed in some instances
- Fix being able to avoid permadeath by exiting
- Death penalty is now ignored when using permadeath
- Display a warning dialog when trying to launch multiple instances of Flare
- Warn of non-existent path when using –data-path command line flag
- Add “requires_hpmp_state” to Power definitions
- Game is now paused and muted when minimized
- German translation updates (Janet Hunt)
- Android: Default to using fullscreen in order to hide status bar
- Android: Improvements to user file directory structure
- Fix typo: Leziath -> Lezaith
- Fix Underworld Greatstaff not being marked as “Unique” (Vasya)
- Use cooldown on antlion larva spawn powers to prevent possible bug
- Add background image to fantasycore minimap
- Fix missing tileset animation frames
- Prevent HP/MP potion usage when HP/MP are full
- Fix map tooltip in Wizard’s Tower: Entrance Hall (Vasya)
- Hide the unused stealth stat in the character menu
- Add boss chest artwork (Clint Bellanger)
- Fix “Treasure Chest” tooltips in Temple of Mez: Entrance
- Lower prices for potions and scrolls
- German translation (Janet Hunt)
- Japanese translation update (sujiniku)
Flare 0.96 downloads
We’ve fixed a few issues that were in the 0.95 release. A more complete list of changes since 0.19 will be posted when 1.0 is released.
- Fixed transform powers not filling the player’s action bar with the transformed creature’s powers.
- Fixed issue where after the player dies, they would die again after respawning.
- Windows: Installer now adds shortcut to user mods in the start menu
Flare 0.95 is ready for translation
We are now declaring a string freeze for both flare-engine 0.95 and flare-game 0.95. New translators should refer to the guide on the wiki. Below is a list of the areas that may need translation work:
Translations are preferably submitted as pull requests on Github, but you can also email them to me using the address on my Github page.
Help wanted: Mac OS X version maintainer
Our previous maintainer of the Mac OS X version can no longer provide up to date builds of the engine. So we are looking for someone who can provide .dmg files for the engine and the full game (i.e. engine + fantasycore/empyrean_campaign). If you are able to assist, please let us know in this Github thread.
Flare 1.0 release date
Please have your translations sent to us by March 9th. We will test and package over the weekend and release on Monday, March 12th.
Flare 0.95 downloads
If you are interested in translating or testing before the 1.0 release, use these downloads:
(Post written by Justin. This blog isn’t really built for multiple contributors, and I don’t know where else to indicate who’s posting.)
A web browser version of Flare had long been a distant wish. Thanks to Emscripten, such a wish has become a reality. This port is an excellent example as to why we keep Flare’s dependencies to a minimum. Just about anywhere SDL goes, we can go, too.
As for the porting process itself, I got my feet wet by first porting my own games. I then got the opportunity to help port C-Dogs SDL. One of the biggest hurdles was figuring out how to do persistent storage for save files and user configuration. There simply isn’t much documentation out there. Thankfully, I found this article, which helped immensely.
Only after porting those games did I feel confident and knowledgable enough to tackle getting Flare running in a browser. There are a few loose ends, but it works just about perfectly. I’ve hosted a copy of it here for you to try out. It’s a good way to take a look at the latest from our team without having to compile the development version from Github.
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:
HD art, one slice at a time
We have parallel projects going for Flare, based on the strengths that various contributors are bringing to the project. The engine is 1.0 release candidate stage, and ready for a variety of content for testing and feedback. The 1.0 content Empyrean Campaign is being built to showcase the full set of engine features. If you’re interested in creating game content like maps, creature stats, item drops, quests, now is definitely the time to get involved!
I created the bulk of Flare’s isometric art module fantasycore around 2010-2011. That’s three tileset, a half dozen enemies, and a variety of weapons and armor. I barely knew my way around Blender, and used a rough style that worked well enough for the original tiny sprite sizes. We get requests often for higher res art, but this old art doesn’t scale up well at all. I’ve been practicing my 3D modeling skills to prepare for an upgrade.
Producing high def art assets takes a lot of time and expertise and learning. It’s going to be years before we have enough HD assets to showcase every engine feature. So instead of replacing all the old art at once, we’re going to build new art once slice at a time. And each of these slices will be released as standalone, playable game mods.
Justin Nichol (freeforall.cc) and I are collaborating on that first slice. The first mod will be a warrior’s tale. It will focus around content for basic melee combat. Take a peek at some of the art we’re working on! A magic sword, and a work-in-progress ogre.