2011/05/04

No Rest for the Wicked

v0.14 is ambitious. Let’s take a look.

Title Menu

The first attempt at a title menu will be completely simple.

  • New class MenuTitle, child of GameSwitcher
  • Centered image/logo on black background
  • Bottom-center: buttons for Play, Options, Exit
  • Other buttons can be added later
  • Button clicks change GameSwitcher state
    • Play goes to the Load Game screen
    • Options will be disabled for now
    • Exit quits the game without prompt
Load Game

This screen should display a list of the current save games. It should read each save file to see the hero’s name, level, location. If we get fancy it could show the hero’s stance animation (load the hero’s head and base body depending on equipped items).

For now this menu can support a fixed number of save game slots. Let’s say 4.

  • New class MenuLoadGame, child of GameSwitcher
  • List of the 4 save slots, click to highlight
  • Buttons at the bottom: New, Delete, Load (active an inactive art for each)
  • If the player clicks on an existing game slot, the Delete and Load buttons are enabled.
  • If the player clicks on an empty game slot, the New button is enabled.
New Game

The new game menu could be the most complex, especially if I want to make room for interesting choices in the future.

  • New class MenuNewGame, child of GameSwitcher
  • Text box to enter character name
  • List of portraits, choose one
  • Config file that matches portraits with heads and base bodies
  • Accept button (clicking causes switch to GameEngine state)

Each portrait could be tied to a base body type and have an associated head layer. If I have the time, v0.14 will have two base body types (human male, human female). So this menu will start with 6 portraits (3 male, 3 female). In the future I could add more base body types (maybe a bulky body type, or even an elf or dwarf race type).

2011/05/02


Flare v0.13 released – “Quests”

Flare now supports quests! This release marks a major leap forward for the story-telling capability of the engine. NPC questgivers can send players on quests and give rewards on completion. Quests can also involve finding items, killing bosses, or exploring a map area.

Detailed list of changes in v0.13:

  • New “Lost Mines” area by Thane Brimhall (pennomi)
  • MenuTalker code beginnings by Juan PabloTamayo (morris989)
  • Added GameSwitcher class in preparation for Main Menus
  • Block power buffed
  • Framerate fixed. Animations adjusted and should be smoother on low-power systems.
  • Added healing-over-time support for powers.
  • New stat awards on level up.
  • Added new potion levels
  • “Magical” renamed “Mental” for genre neutrality
  • Rearranged power tree. All power slots now implemented
  • New “Channel” spell: short-range spell that costs 0 mana but requires a Mental weapon
  • New “Immobilize” power: use a ranged weapon to pin a creature to the ground
  • New config files to edit resolution, fullscreen, keybindings
  • Updated health bar by Scrittl
  • Stackable items and inventory refactoring by Bonbadil
  • Basic conversations added
  • NPC portrait by Justin Nichol
  • Campaign Manager added to handle quest states
  • Enemies no longer use ranged powers when losing line of sight
  • Added consumable spell scrolls by Thane Brimhall (pennomi)
  • Added elemental spell scroll icons
  • Separated icons into 32px and 64px pages
  • Added NPC ability to advance quest and give rewards
  • Added monster kill to advance quests
  • Added quest loot for monsters
  • Added a tutorial NPC
  • Added on-pickup quest advancement on items
  • Added Averguard Keep quest chain featuring 4 bosses and 3 quest items
  • Added a quest-giver NPC
  • Added key and book icon for quests
  • Added tabbed interface to Log Menu
  • Log Menu has room for Quests, Messages, Statistics, and Achievements
  • Weapon requirements displayed on Power tooltips
  • (bugfix) Enemies no longer run before changing directions when entering combat
  • (bugfix) Enemies leave combat when the player is dead
  • (bugfix) Missing menu deconstruction calls added
  • (bugfix) Correct memory reallocation when chaning equipment
  • (bugfix) Correct resist stats on bows

Downloads

Video

Screenshots



Community Announcements

2011/04/29


Testing for v0.13

I plan to release v0.13 soon. Over the last couple days I improved the Log menu to display help/reminder text for active quests. The new tabbed interface for the Log menu is also ready for achievements and statistics (will be added later).

If everything looks okay, I plan to release v0.13 this weekend. Let me know if you test the new features in the latest check-in.


Quest Log screenshot

2011/04/22

Quest Chain

The first quest chain is added to Flare in r353. It walks players through Averguard Keep. Heroes must defeat the bosses of four areas of the Keep; meanwhile they learn a bit about the history of the keep (and hints at the larger story).

All this stuff takes a lot of playtesting — e.g. what happens if a player defeats a boss but fails to pick up the quest item he drops? What happens if a player tries to do quests out of planned order? There are many combinations at play. If you try the Averguard Keep quest chain and get stuck let me know. Note I’m not concerned with players who edit their save files incorrectly.

The quest items are using temp icons.

Next up: adding a Quest tab to the log menu.

2011/04/17

CampaignManager

v0.13 has a new class called CampaignManager that I’m using to store the progress of the current story. Essentially it is a collection of strings. Various parts of the game engine can read/write these strings to create some persistence and progress in the game world.

Related To Do:

  • Move the processDialog and chooseDialogNode into NPC
  • Give each NPC a pointer to the current Map (which also contains the CampaignManager). This structure choice will allow future NPCs to move around the map.
  • Create handling for Quest Items. Perhaps this should be a new base item type.
  • Prevent quest items from being dropped or sold
  • Add an on_pickup command to quest items that sets a campaign state
  • Allow CampaignManager to check for or remove items from the player inventory (pointer to the carried MenuItemStorage)

v0.13 Quests

With this simple quest implementation in place, I need to create a few archetype quests for v0.13. My plan is to create a simple quest chain that ends in slaying the skeletal warrior Sir Evan Maddox.

  • Report for duty: talk to this person, they have work for you.
  • Exploration quest: I need intel from an area but it’s too dangerous for me to go
  • Fetch quest: get this item for me
  • Key quest: take this item, now you can get into a new area
  • Kill quest: kill this creature

Other common types not yet represented:

  • Escort quest: universally hated so I probably won’t even implement this.
  • Gather quest: I don’t have support for e.g. gather 10 boar lungs. That kind of tedium is more for time sink MMOs anyway. Simpler quests (e.g. gather 1 of each of these ingredients) can instead be done in a quest chain or in parallel quests.
  • Genocide quest: Kill X of this creature. Again, more of an MMO time sink type quest, I might not implement this.

By covering these basic quest archetypes, I’ll have the first Flare quest chain and have examples of how to create each basic type.

2011/04/16

NPC Me

Open Game Art has a new weekly challenge coordinator. User kurtisevan has taken over for me, after I started and ran the contest for one year. The first new challenge: Get in the Game!, where you create a version of yourself for use in a game.

Well I’m working on NPCs and dialog anyway, and there’s already a tutorial NPC with my name, so I created NPC art of myself. Looks fun in game, see the latest check-in at the Google Code page for Flare.

2011/04/12

Contributions On Hold

I’ve been overwhelmed lately by the amount of interest in Flare. For now I’m asking that code/art contributions be put on hold. My personal/professional life is absolutely full for the next few weeks.

If stand-alone art or programming tasks come up, I will put out specific calls for help.

2011/04/10

Flare Timeline

This is the approximate timeline from where we are now to Flare’s first full game.

April 2011: Flare v0.13 “Quests”

In late April, Flare v0.13 will be released. It will contain talking NPCs and support for simple quests.

May 2011: Flare v0.14 “New Game”

In late May, Flare v0.14 will be released. It will contain a Title Menu, New Game Menu, and Load Game Menu.

June 1st, 2011: Feature Freeze

The engine will receive a freeze on major new features after v0.14. Any programming done after v0.14 will focus on making options in the existing engine configurable.

  • Translation support
  • Menu themes/design options
  • Minor AI config options
  • New base powers, items, etc. as needed
Focus changes from Engine to Game

At this point the focus of this project will switch from making an engine to making a game. Basically, if I can’t build a game with this engine then it’s useless.

June 2011 through May 2012: Art Assets

I expect to focus an entire year on creating art assets for Flare. More tile sets, creatures, equipment, NPCs, powers, etc. During this time I will be plugging the art into the engine with new test maps, side quests, etc.

June 2012 through Nov 2012: Tell A Story

At the end of 2012 it will be time to pull the assets together into the first Flare game. There should be enough variety to tell a decent story — even a 20 hour single player campaign would be great for a project like this.

Dec 2012: Post Mortem

Assess the engine as a stand-alone project. Possible outcomes:

  • If the engine is worthwhile, build a second game. Aim to reuse as much of the old code as possible. Refactor as necessary. Make sure both the first and second games run on the same engine.
  • If the engine is mediocre, consider a rewrite. Design it from the ground up to support scripting engine, multiplayer, etc.
  • If the engine is worthless, it ceases to be supported as a stand-alone engine. Instead it’s basically the beta code-name for the finished game.