2012/08/24

Making Omelets

There’s an English idiom: “you have to crack a few eggs to make an omelet”. It means that to make something, often it requires destroying something else.

We’re doing heavy refactoring of the Flare engine right now. Part of that is breaking things in some places to improve them elsewhere. Just a heads-up for people who play Flare directly from the master source on GitHub:

  • We’re seeing a higher number of bugs than usual (Flare is usually pretty solid). Many of these are known temporary side-effects from major refactoring. But feel free to send any issues to the team in case we don’t know about it yet.
  • Your save game isn’t safe! Example: soon we’re going to change the inventory size from 64 slots to either 48 or 32 slots. You might lose items when this change happens. While we’re still in Alpha anything is subject to change, and preserving save game data isn’t the top priority.
  • All this work and very little new content! I know. Engine changes are happening at a rapid pace right now. The closer the engine gets to Feature Freeze (Beta), the better tools we’ll have to create final campaign data.

What kind of work are we doing? Most of the engine has gotten a “second pass”. Think of Flare v0.14 as the first “rough draft” of the entire game. Since then we’ve been making everything more flexible: replacing arrays with vectors, moving options to config files, and optimizing various routines. A few main components are still due some changes, and a couple new core features remain:

  • New system to handle buffs/debuffs. Their effect, duration, name, icon, and visual display will all be defined in config files. These may end up being new Power types, or separate Effect types (the structure is undecided at this point).
  • New system to handle cutscenes. These will be more for chapter interstitials and game beginning/endings. They’ll start by using static images with captions and background music.
  • The loot system will get significant refactoring. If we decide to combine base items and affixes at runtime, the loot system will get a complete rewrite instead. Undecided yet which route we’ll take.
  • We’re actively working on the equipment slot system. We’ll probably add gloves, boots, helm slots and make them appear on the character when equipped.

2012/08/15

Playing

On my lunch break. I’m sitting down just to play Flare for the first time in a while. And hey: it’s pretty fun.

My favorite thing right now (I can’t help it) is that now so much is configurable. If while I’m playing I don’t like something, I tweak a config file value and relaunch the game. Kudos to the Flare crew, who are doing lots of tedious work to whip the engine into shape.

2012/08/14


Map on_load events

I’ve added a new event type “on_load” that is automatically executed (if campaign requirements are met) when the map is loaded. I specifically needed this to make discovered teleport waypoints remain active. But it’ll have plenty other uses: e.g. we can make the Averguard Temple door stay open, or we can make bosses no longer respawn.

Warp Zone

Soon I’ll be pushing up a prototype of the waypoint system. There will be a new Warp Zone map that takes the player to different areas.

[–Update–]

Here it is, at least for the Frontier maps. There’s a waypoint in Frontier Outpost, Ancient Temple, and Ydrakka Pass.

Waypoint map screenshot

2012/08/12

Busy Life

It happens to all hobbyist game devs — life gets in the way. But I’m bouncing back soon. I’ve finally finished moving in (well, 99%) to my new apartment. Easy walking distance to my office!

I need to get back into art mode. Some new planned engine features are being held back due to lack of assets. This is my list of high-priority to-do assets:

  • Teleporter circles (active and inactive)
  • Dungeon exits (doors and stairs)
  • Cave exits (doors and stairs)
  • Trap art (sawblades, darts, fire jets, caltrops, bear trap)
  • Chainmail armor
  • Full Plate armor
  • Kite shield
  • Tower shield

2012/08/11


Community Spotlight: Polymorphable

[Polymorphable is the first released total-conversion mod/game for Flare. Here’s a plug and some great background info from its creators. -Clint]

Polymorphable screenshot

On the eve of her 16th birthday, Polymorphable’s protagonist, Daphne, unwittingly unleashes an ancient evil on her town. It is therefore her responsibility to make things right, and discover a little about herself, her parents, and her village along the way. The primary game mechanic is centered around the FLARE transform power – as she progresses through the game, Daphne acquires four transformational talismans, to turn her into a bat, snake, ghost, and the powerful Juggernaut. Each has it’s own special abilities, to fly, pass through fire, spit acid, or strike down a screen full of enemies, and is necessary to progress through the dungeons. The dungeons currently include a cavern, a volcano, a haunted castle, and a snowy peak (it’s amazing how much geography there can be around one single village!). In total, there’s probably about an hour worth of gameplay here right now, but the modularity of FLARE make it easy to expand that content, and plans are already being hatched for it. Maybe in a couple of years we’ll have content to last for twenty hours!

Polymorphable (full name Laurelia’s Polymorphable Citizens) is a coming-of-age adventure game designed for the Liberated Pixel Cup contest. The mechanics take from the FLARE engine, the level design is inspired by the first Zelda, and the narrative genre derives from SNES JRPGs like Dragon Quest and Secret of Mana – a young girl, just coming into arbitrarily-defined adulthood, discovers she has a destiny to fulfill.

Along the way, making/modding this game, I’ve had a chance to really get a feel for the FLARE engine – I came in after the 0.15 release on the Ubuntu app store, and then made a small mod with a few npcs, a couple quests, and some modded enemies. After asking some rookie questions, and receiving some great answers, I felt a little more comfortable with the engine. When Thane Brimhall asked me to work on Polymorphable for the LPC with him, I jumped at the chance.

And man, I obsessed over that for a month. Nothing really brings the power of the FLARE engine to light like trying to design a whole new game from the ground up – and whenever I see more features being added in FLARE, I start trying to think of the new possibilities they unlock. It’s also exposed a lot of the ways that FLARE can be improved for modders, which has probably generated a ton of work for Clint and the FLARE dev team. I think that the best advice I can give modders is to try and insert as much as you can into every aspect of your own mods – it’s the best way to learn how to leverage all that the engine can do! I think it also offers me a chance to give (hopefully) constructive feedback to the FLARE team as to what works, doesn’t work, and could be added to enrich the engine. I know several features got fast-tracked or added by two amazing FLARE devs, Justin Jacobs and Igor Paliychuk, so that we would be able to make the game we wanted.

Overall, I cannot thank FLARE enough for making something so flexible and powerful!

written by Matthew Krohn

I’ve been quite interested in the LPC ever since it was announced, and since I’m a long time fan and dev of Flare, it seemed natural to want to figure out a way to use the game engine I was comfortable with. Most of the work I did on Polymorphable actually happened before the coding portion of the event started. Key components I worked on included creation of the new UI widgets and adding orthogonal tile support to Flare’s map renderer (and fixing associated bugs).

Once the coding portion rolled around, we were armed with new art and a shiny new map orientation. I created the first tileset and built out Laurelia, the city Daphne lives in. But after that, real life came into play, and I was pretty much out for the rest of the month. I was really impressed with the amazing efforts surrounding the project! Matthew Krohn, Justin Jacobs and Igor Paliychuk really picked up the ball I dropped and cranked out a great game.

Naturally, with only a month of work put into it, there’s a few places that are rough around the edges, but I’m amazed that a good story-driven game can be produced in such a short amount of time. We plan on enhancing Polymorphable over the coming months and years to make it into a polished (and longer) game.

The real amazing thing behind Polymorphable and the Flare engine that deserves recognition is the flexibility that it grants game-makers. At first glance it’s unlikely that players would ever realize that Flare and Polymorphable run on (99.9%) the same code base. Hopefully, this will open the floodgates for many more Flare-based games in the years to come.

written by Thane Brimhall

2012/08/10

Community Spotlight: Stefan Beller

Stefan’s a major contributor to the Tiled map editor and helped us early on with the Flare exporter. He’s taken that Tiled expertise into Flare, where he’s optimized the main map rendering routines by orders of magnitude. Here’s more about Stefan!

1. Where are you from and what do you do?

I am from North Rhine-Westphalia/Germany and currently I am studying computational engineering master degree. During my studies I learned to like and love free/libre software.

2. What’s your dream game?

I really like games having a good atmosphere such as Gothic 2.
Also I like hack and slay such as Diablo 2. The one thing which kept
me at playing D2 was the fact that you never knew if you had the best
items.
Hint: See current discussion about flare items/loot

The same applies to Gothic 2, you always found out another way to handle some quest, sometimes you could see it was unintended by design 😉

3. What drives you to contribute to Flare?

The graphics and art.
Flare is very promising specially at the art, so I can try to help out
at other requirements to be done to make it a great game.
So as of now I did not contribute new features, but rather fixed bugs and rewrote subsystems for speed.

4. Any advice for people who are interested in making games?

  • Start small.
  • Don’t loose motivation even when you’re stuck at a hard problem, but rather
  • Discuss with others. Better yet:
  • Join existing projects/communities.

5. Are you involved in any other interesting projects?

Originally I started contributing to The Mana World, which is
a MMORPG, but I don’t like playing quests made by myself on maps
made by myself. So I switched to the supportive projects in the background, such as the Tiled map editor, which is also used by flare developers. That’s how I actually got in contact with flare iirc.

2012/08/09

Community Spotlight: Justin Jacobs

Justin has been an incredibly valuable contributor for Flare — he’s been a major driving force keeping the pace up on the project. His code quality is impeccable — I read his pull requests diffs not looking for errors, but to admire his work. Honestly.

1. Where are you from and what do you do?

I’m from central Massachusetts, USA. I’m currently unemployed, but
my last job was in IT.

[Seriously? Someone hire this guy. –Clint]

2. What’s your dream game?

That’s a tough question. There’s so many great games that I’d love
to see more of. If I had to narrow it down, it’d be a tossup between:
a side-scrolling Metroid on the same level as Super Metroid; a
top-down Zelda on the same level as Link to the Past; or revive
Westwood from the dead and make Nox 2.

3. What drives you to contribute to Flare?

I love video games, but I also use Linux. Unfortunately, those two
things have always been a bit like oil and water. In my search for
games to play on my system, Flare stood out to me. Not only was the
gameplay fun, but the presentation as a whole felt of a high quality.
My will to contribute to Flare is driven by my desire to see an
already promising looking game get that final bit of polish. Plus,
just contributing to a free software project is a big self-esteem
boost.

4. Any advice for people who are interested in making games?

I’m probably repeating what many others have said, but start
small. Games are very complex, and can require knowledge in a lot of
different areas. If you can manage to get a simple game together (even
a Pong clone will do), you’ll have a good idea of what it takes to
create a game. Find a small open-source game you like and dig around.
See why other programmers do things the way they do. If you feel very
ambitious, try to fix something that might be wrong with the game. My
initial contributions to Flare were small. But as I got more
comfortable with the code, I was able to contribute bigger and better
things.

5. Are you involved in any other interesting projects?

I spend most of my time on Flare, but occasionally I’ll work on
some stuff of my own, all of which I host on my Github.

2012/08/02

Game Schedule

When will we be able to see a new Flare The Game?

We’re very close to having all engine features in place — just a few more months and it’ll be “feature complete”. Then the engine enters Beta stage where we’ll fix bugs, make more things configurable, add lots more error messages/checks, etc. Some of the remaining engine-level features. We should have these features done before the end of the year:

  • Buff/debuff renderables handling
  • Passive powers
  • Configurable damage types
  • Loot table restructure
  • Cutscene support

We’re in planning stages right now for the final game. I’m working on art for some new game features (traps, teleporters, etc) and we’re going to create test maps that demonstrate how all these features work. Armed with those tools, we’ll start creating final maps and quests probably next month (September 2012).

The new engine features for v0.17 are basically done now. That went way faster than expected (thanks especially to dorkster and igorko!). So I haven’t figured out the new time line yet. I’m pondering September 1st for a v0.17 release. And we should start seeing final content shortly after that.