Introduction:

Idea:


Recreate Fire Emblem using C++ and OpenGL


Fire emblem is a SRPG created by Intelligent Systems, and published by Nintendo.It's an ongoing series since the NES days. The core gameplay is relatively simple, as you can think of it like chess, but more involved.


At its core, it is a singleplayer game (Later games incorporate light multiplayer features, and some versus modes). Currently, there are 16 named Fire Emblem games, and while all of them vary in mechanics, they generally follow a similar gameplay loop. It is a turn based game revolving around positioning units tactically to defeat the enemy on a top-down grid.

The most often known feature of Fire Emblem, other than its gameplay loop, is the concept of permadeath. Much like X-COM, or other games in its vein, every character is unique in some way, and if they die on the battlefield, they are no longer usable.


Following its RPG elements, each character has their own name, are part of a unit class type, wield specific weapons pertaining to their class and contain their own base stats and growth.

The base stats of any character are found in the picture to the right, while each Fire emblem game may include or exclude specific stats, they all generally include most of them.

Combat stats are stats that are derived from the base stats, and determine a unit's ability in combat at a quick glance.

  • ATK: The amount of damage a unit will inflict, if the unit is using a physical weapon, they will target the defense stat. If the unit is using a magical weapon, they will target the resistance stat.
  • HIT: Hit rate, what is the unit's accuracy before enemy avoid rate. Determines the chance an attack will connect.
  • CRIT: The critical rate. If a unit will connect an attack, this stat determines how often they can inflict a critical hit, which deals 3x damage.
  • AVO: Avoid, how much the unit can avoid. Low avoid means that the unit will have a higher chance of being hit when combat occurs, higher avoid means that they will have less of a chance being hit.
  • DODGE: The equivalent of AVO, but for critical hits. Lowers critical rate of enemy attacks.

The Base stats are as follows:

  • HP: The amount of damage a unit may recieve before being defeated
  • STR: Strength, and adds to the damage they deal with physical weapons. It has various effects, depending on the current game.
  • MAG: Magic is the equivalent of Str, but with magical weapons.
  • SKILL/DEX: Skill determines their hit rate, and the critical hit rate. How often either of those can occur.
  • SPD:  Speed determines if a unit can perform a followup attack based on the difference between the unit's speed and the opponents speed. Generally, if a unit has 4 more speed than the opponent, they will perform two attacks
  • LCK: Luck affects Hit rate, Dodge, and avoid rate
  • DEF: Defense affects how much physical damage will be reduced from an enemy's attack stat.
  • RES: Resistance is the same as defense, but for magical attacks
  • MOV: Move, which will affect how far a unit can move on the global map


When a unit defeats an enemy, they can gain EXP. Once they reach 100 EXP, they level up, having a chance to grow their stats.

Each unit also has their own inventory, which can carry weapons or useful healing items.

Weapons also have stats, which affect the unit's stats when they are the currently equipped item, which add to a specific stat.

  • Might: Factors into the ATK stat additively.
  • Acc: Factors into the HIT rate additively
  • Crit: Factors into the CRIT stat additively

Another feature Fire emblem is known for is the weapon triangle, where the three common weapons engage in a rock-paper-scissors format, and gain hit rate and might when at advantage and lose the same at disadvantage.

  • Swords beat Axes
  • Lances beat Swords
  • Axes beat Lances

The core of the gameplay involves a few mission objectives to attain victory, or defeat by the enemy:

  • Rout: Defeat all enemies on the map
  • Defeat Boss: Self-explanatory
  • Defend: Generally prevent enemies from taking a tile(s) for a certain number of turns
  • Sieze: Capture a tile with a specific unit.
  • Loss conditions:
  • The Lord dies, the main character usually cannot die else its game over
  • Defend condition is broken.
  • Specific unit dies, usually map important characters
  • A certain number of turns pass

The game loop is as follows: 

  1. The player selects an available unit
  2. The player selects a location within the units move range
  3. The palyer then selects a weapon to attack with if an enemy is in range, and if they wish to attack
  4. A combat forecast screen is shown, giving probabilities of what might occur. An example is shown to the right.

The combat loop then occurs if a battle is initiated: 

  1. Who ever initiated combat, attacks first.
  2. Attacks can miss, dealing no damage. Attacks can also crit if there's a chance, dealing 3x damage. Rutger to the right is seen performing an attack for 8 damage.
  3. The recipient then retailiates, if possible. If either one can attack twice, they will do so following the recipient's first attack, whether it happened or not. Notice the bandit misses, and Rutger strikes again, this time for a crit.

That's the game, so, what am I aiming for?

Given that these systems when combined, are complex and intertwined in ways that would be too much to handle within a semester of work. I plan to incorporate an extremely rudimentary clone of the game with the following objectives:

  • Top down 2D gameplay
  • A one map demonstration of gameplay, no need for multiple chapter spanning games
  • Sprite and tile texturing
  • The general combat and gameplay loop described, toned down some
  • If time permits, sound, and AI attack priority and pathing based on the current conditions, a inventory system, leveling system, and a trading option between units