2012/10/10

Early Estimates vs. Where We Are Now

Time for a brain dump. Get ready for some rambling!

Dig through the archives and you’ll see we had grand plans for this stage in the project. A year and a half ago we thought we’d be releasing Flare-Game around now. But here we are, facing the last few Beta Engine releases and no final game yet.

So what happened between now and then?

First 90%

That early estimate wasn’t crazy. On July 7th, 2011 I released Flare v0.14. It contained the Title screen, Load Game screen, New Game screens. It wrapped up the core Flare game into a tidy package that felt close to feature-complete. Many things were hardcoded, there were no mods or translation support, but it was on its way to becoming a game.

It was that mystical “First 90%” turning point for the project. I figured we’d be freezing features shortly after (around Q4 2011) and churning out art to whip out a very simple game (Q4 2012). A year to make a short game (5 hours content) didn’t seem crazy when we already had about 2 hours of game.

All that juicy engine stuff — modding, configuration, etc — could come later when we made game #2. So I estimated we’d soon be shifting towards making game art and wrapping up a very simple Flare 1.

Go with what you’ve got

Around that time several great programmers joined the volunteer effort to help Flare (and kept joining through 2012). Meanwhile I’m still the primary volunteer artist, and art isn’t easy for me (I’m a coder by trade).

When you have a team of 3-4 eager coders but only half an artist, what do you do? Keep coding of course. v0.15 was all about Translations and Modding support. Not strictly necessary if the goal is to just make one game, but good for the future of the engine. Actually the mods and translation stuff had turned out awesome; if you’ve ever tinkered with the files you see what potential the engine has. Just take a look at Polymorphable to see how far the engine can go.

Just make a game, stupid

Here’s not-really-a-secret: I like writing low level game code. I get genuine pleasure from writing map display code or collision functions. Starting Games is damn near a lifelong hobby of mine. Usually it’s not with the intention of actually making a game. Writing little game loops is a simple way of clearing my head. Tiny tech demos are perhaps the most fun part of “game dev” for programmers.

I still constantly create tiny game-like experiments. I can point to several I’ve done during Flare’s development. Here’s a Vertical Shooter experiment (playing with movement inertia, bullets, and star fields). Here’s a Karma Slot Machine because I wanted to learn HTML5/canvas/js and I’ve always wondered how to match internal randomness to the reel displays. And here’s an Office Chair that you can pilot with arrowkeys for no good reason.

This is the stuff that’s fun to me. Some of you like playing games, I like writing game-like code. It’s a very happy side effect that Flare is shaping up to be a full game. It gives me good justification for spending all this time on engine tinkering. So when the focus of the Flare project shifted from “make a game now” to “make the engine flex and grow” I wasn’t sad.

I actually have completely Finished and “released” two games before. Both were when I was a teenager and had those magical summers with no school and no work. I uploaded them to local BBSes and shared them with friends, but each one was maybe played by a dozen people total. They were primitive but full games. The first was called “Knight’s Quest” (very original); it had a simplified first-person “Eye of the Beholder” style display and turn-based combat. The second game “Hack” (also super original) was an overhead game with playstyle kinda like Gauntlet. Both were written in QBasic around 1996-97. Both are lost to time, I think.

Then college. And working life. Throughout that time I made dozens of tiny demos or experiments but never full games. If my goal was “make games!” I’d be horribly disappointed in myself. But that wasn’t my goal for years. I’m warming up to the fact that Flare will allow me to possibly actually make games.

So why now? What’s the motivation to take Flare all the way to releasing a real game? Damn if I know right now. Let me ponder and get back to that.

Reality checks and renewed timelines

Can’t stop the engine momentum now. I’ll be scope-checking it soon, but I think it’s under control. A lot of Beta cleanup has made its way into Alpha work, but that’s okay — it’s all safely happened in parallel to other engine work. When we finally get to Engine Beta we’ll have a specific set of core tasks: input file validation, error/warning message standardization, any remaining config file standardization, and documentation. We’ll probably be declaring Engine Beta very early in 2013.

I’ve been working on more art. For the rest of 2012 I’ll continue to enrich the current art assets. Around the time we reach Engine Beta the core art assets for Flare should be near ready. I’ve said such things before and been off target, so take it with a grain of salt.

Getting a new artist on board could help. It’s hard to find a volunteer that can match Flare’s middling quality. Most artists can’t afford to work for free, and I completely respect that. Maybe with more donations we could commission some pieces to help the game move forward. Until then there’s just me doing most of the models and tiles. Here’s a short list of what I want to get done to finish up the “fantasycore” set of art.

  • Dungeon tile set additions — rubble, furniture, torture devices, better pits, traps
  • Cave tile set additions — mining lifts, bridges, pits, better water, crystal formations, egg sacs, exits
  • Grassland tile set additions — more set pieces, houses, better water, flora variety
  • Possibly new animations for the male hero
  • At least two new shields, one new endgame armor, a few new weapons
  • New icons to match all the new equipment
  • New icons for the new powers
  • Several new reusable NPCs (should be easy with mix and match and recolored armor)
  • New and updated power art
  • Consider whether to add new base creatures

That’s a good chunk of art, but not insurmountable. I can handle most of it. What I can’t do well is the painterly equipment icons (see the current style done by Blarumyrran, similar to the Wesnoth icons). I’ll have a learning curve with new power art (how to make better fire? How to make good “swooshes”?) but I can probably pull it off.

Shutting up now

I forgot what I was talking about. I just needed to write down all these thoughts so they’d stop banging around my head.

Oh yeah, timeline estimates vs. where we are now. We’re having fun now! And staying incredibly busy. Instead of having a primitive game by now, we have a nice engine. And we’ll have a nicer game for it. As long as we’re making some progress and not drifting from our original goals (end up with a nice engine; make some games along the way) I think we’re in good shape.

2012/10/05


Mage and Chain

With multiple equipment slots implemented it’s hard not to make new armor styles. I added two essentials: full set for Mage and Chain

male version of the mage robes armor
female version of the mage robes armor
male version of the chain mail armor
female version of the chain mail armor

Each of these, just like the old armors, are now broken into slots: head, chest, hands, legs, feet. Mixing and matching is satisfying; I tried to make the general styles compatible so that any equipment combination looks interesting.

It now takes me about 8 hours to create a new set of armor, start to finish for two genders. That’s in this very low fi style where textures aren’t really needed and the rig is already fully animated.

[–Update–]

HadiDev on Reddit asked about how I create the sprite layers and handle z-order. I posted a brief overview of my workflow. One day I’ll have a tutorial on how to make new armor for Flare. I’m still figuring out the process myself!

2012/10/02

Equipment Slots

Several cumulative code changes are going to allow us to add new equipment slots to Flare.

The current visible equipment slots:

  • Main hand (swords or staffs)
  • Off hand (shields or bows)
  • Body (full body armor)

The new visible slots will be:

  • Main hand
  • Off hand
  • Feet (boots up to the knee)
  • Legs (waist down to the knee and optionally lower)
  • Hands (gloves up to the elbow)
  • Chest (upper arms, torso, optionally lower)
  • Head (neck up)

Also we can add a few non-visible slots where items can be equipped but they aren’t displayed on the hero sprite. Probably we’ll do:

  • 2 Ring slots
  • Artifact slot

Maybe we’ll do more, but that brings us to an even 10 slots.

2012/10/01

Bugfix release v0.17.1

If you upgraded to v0.17 from v0.16 and had trouble continuing your save games, this minor release should help.

Bug Fixes:
  • Instant-sell items now go to the vendor Buyback tab
  • Disable New/Load buttons if there is no story mod loaded
  • Prevent crash when binding higher number mouse buttons
  • Prevent crash when loading a map with missing layers
  • Add helpful tooltips when play buttons are disabled
  • Removed -flto compiler flag from default build script

If you installed v0.17 completely new, you can probably skip this update.

After you update, you may have to enable the alpha_demo mod. I’ve done this by default in the new Windows build. To do this, go to Configuration, Mods tab, and enable “alpha_demo”.

Notes for Builders

If you’ve been building previous versions of Flare for some platform or operating system:

You can create your entire package from the flare-game github repo. The flare-engine repo is mainly for people who want to fork and build a completely new game.

2012/09/30

v0.17.1 patch coming

We’re working on an update that will fix the issues with using old save games and settings in the new version.

If you want to play now, here are two things to try:

  1. When you run the game, go to Configuration -> Mods and enable the mod named “alpha_demo”
  2. Find your save files and edit them. If you see a line that says “spawn=spawn.txt,0,0” just delete that line and save.

If these steps don’t work for you, there may be something else we need to patch! Please email me your save game and I’ll use it as a test case. clintbellanger at Google’s popular email service.

2012/09/28


Flare v0.17 Released!

Flare is charging through the remaining Alpha engine work, taking us to this latest and greatest v0.17 release.

Release Highlights
  • All menus now easy to mod/reskin!
  • New Powers tree with traditional tabs and spendable points
  • Shared Stash! Collect epics, hoard resist gear, or buff your new characters
  • Warp Zone — fast-travel map to get around the alpha demo campaign
Video

Screenshots






Extended Release Notes
  • Code Features
    • Menu for showing buffs/debuffs (Justin Jacobs)
    • Add Texture Quality option (Justin Jacobs)
    • Add item categories for loot tables (Stefan Beller)
    • Refactor HP, MP, XP into generic stat bar class (Justin Jacobs)
    • Convert remaining arrays to vectors where possible (Stefan Beller)
    • Various refactoring, optimization, cleanup (Stefan Beller)
    • Move menu options and layouts to config file (Justin Jacobs, Igor Paliychuk, Stefan Beller)
    • Move various magic numbers to config file (everyone)
    • Refactor Powers Menu to tab/tree/points style (Igor Paliychuk)
    • “I shouldn’t be coding at 3:30 AM” (Clint Bellanger)
    • Refactor menus to use base class for placement/size/etc (Justin Jacobs)
    • Powers that spawn multiple enemies (Matthew Krohn)
    • Add Shared Stash (Justin Jacobs)
    • Add a Buyback tab to vendors (Justin Jacobs)
    • Allow NPCs to heal the hero during dialog (Igor Paliychuk)
    • Configurable font colors (Justin Jacobs)
    • Allow enemies to wander in an area (Justin Jacobs)
    • Enable scroll wheel in some widgets (Justin Jacobs)
    • Add on_load map event type
    • Don’t load sound/music if the volume is 0 (Stefan Beller)
    • Added pixel-precision to clickable tiles (Justin Jacobs)
    • Made equipment slots configurable (Igor Paliychuk)
    • Made bonuses work on any item type/slot
    • Map Rendering optimizations (Stefan Beller)
    • Animation refactoring (Stefan Beller)
    • Sprite sheet packing and utility (Stefan Beller)
    • Add support for item sets (Igor Paliychuk)
    • Add optional Fringe and Foreground tile layers (Matthew Krohn)
    • Add load screen to map transitions (Justin Jacobs)
    • FPS display option (Igor Paliychuk and Justin Jacobs)
    • Configurable buff/debuff animations (Justin Jacobs)
    • Split flare into two repos: flare-engine for core upstream dev, flare-game for the actual game
    • Support multi-line text in our GetText implementation (Gallaecio)
    • Updates to GetText data extractor (Chris Oelmueller, Justin Jacobs, Igor Paliychuk)
    • Remove corpses after a fixed amount of time, for performance (Justin Jacobs)
    • Optimize text display in several places (Justin Jacobs)
  • Art Features
    • Use full alpha transparency for the hero art
    • Updated Tiled files to use v0.9 features
    • Added spike traps
    • Added double doors, stairs, and bones to the Dungeon tile set
    • Added ambient sound near braziers
    • New 320×240 downscale mod
    • Added a default mod (engine translations and barebones UI)
    • Added Teleporter art and a warp zone map
    • Added a lifesteal melee attack, a manasteal magic attack, and a rapid fire bow attack
    • Updated floors on all the old dungeon maps
    • Updated Liberation Sans font to 2.0
  • Translations
    • Greek – Yannis Anthymidis
    • Italian – Giovanni Dalla Torre
    • Dutch – Bas Doodeman
    • German – Chris Oelmueller
    • Galician – Gallaecio
    • Russian – Sergey Basalaev
    • Finnish – Timo Sievänen
    • French – Morgan Strauss
Download (v0.17.1)
In the News
Thanks

Huge thanks to the core programming crew for v0.17 – Igor Paliychuk, Justin Jacobs, Stefan Beller. These guys are all the momentum behind the project right now.

Thanks to Thane Brimhall and Matt Krohn, who have helped Flare’s engine tremendously with their total-conversion Polymorphable which was made for the Liberated Pixel Cup

Special thanks to all the bugfixers, bugfinders, translators, and players for making this possible.

Like where Flare is going? Help us create Flare or donate to commission more open art!

2012/09/26


Desura

Thanks to some solid help (from feillyne and protektor), Flare is now available through Desura! (Release announcement) If you’re just discovering Flare through Desura, welcome!

Desura Digital Distribution

I started F.L.A.R.E (Free/Libre Action Roleplaying Engine) 3 years ago to create a great Action RPG engine that’s completely open source. I’ve long been a fan of games like Diablo and wondered why there wasn’t a free game like that with a great modding community around it. I’m a software developer by trade and I had just learned enough 3D art to get myself in trouble, so I started on this ridiculous quest to make a completely free action RPG.

Instead of trying to make an engine that does it all, I decided early on to just try making games. If I reused as much code as possible for each game I’d end up with a highly moddable engine that does one thing well: Action RPGs. But I set some limits early on so that I could actually manage to finish anything: no multiplayer, no realtime 3D. So far that decision has paid off — three years in and the engine is very close to feature-complete Beta.

Along the way I had a team of amazing volunteers and freelance artist join the team. It’s no longer a solo effort by far; this crew has helped push Flare well beyond what it would be at this stage. The engine has been translated into over a dozen languages. It’s been ported to many operating systems and even some handheld devices. It’s already got a total-conversion game called Polymorphable.

We’re still in Alpha and it shows. But we have a ton of momentum. Flare v0.17 is scheduled to come out this Friday. The engine will be very close to Beta at the end of 2012. During 2013 we’ll move beyond the current alpha tech demo and create a great classic-style RPG. And we have great plans for the future of Flare.

And you can help. If you like Action RPGs, free/libre software, or Creative Commons art, we’d love to have your support. Use this form to contact me directly.

  • Developers: check out flare-engine on GitHub. Create a fork! Drop me an email if you have feature ideas or a task you’d like to work on.
  • Artists: check out flare-game on GitHub. Just as with the code, we have a high standard of quality for Flare. Send me a link to your portfolio if you’re interested in helping out.
  • Translators: we welcome translations of the engine (top priority) or the game data.
  • Patrons: you can support Flare through donations which we use to commission new art. All of the art for Flare is also released on OpenGameArt under copyleft-friendly licenses (CC-0, CC-BY, or CC-BY-SA) for use in other projects.

Most of all, thanks for playing. It means a lot.

Clint Bellanger
Flare lead developer and technical artist