Monthly Archives: August 2006

Version 328

I’m not going to be one of those programmers who puts a new demo of their project online every week or every night. I’d rather wait until there is a substantial difference from the previous version. However, I’m still going to post these updates, even if there isn’t a new demo ready. It helps me keep this project organized.

Updates:

  • Right before making the previous demo, I switched to ogg. I forgot to mention that in here. Also, I put in the new long grass and sign tiles.
  • Archer’s boomerang ability now shows health given to player.
  • Newer NPC tiles are now layered the way they should be.
  • The player’s shadow now stays on the ground when pouncing.
  • Enemy graphics are stored in an array now, making them much easier to work with.
  • Added a second foreground layer. Now I’m ready to really make some forests. This is the most notable update for this version.
  • Changed the method of grabbing r,g,b values from pixels. The new method (thanks, FB help file!) isn’t any quicker, but it’s easier to read than the assembly stuff I was using.
  • Adjusted the way attack damages are calculated. The new way is better, because the damage amounts don’t get ridiculously high when the player is on higher levels.
  • Attacks are now partially based on the strength rating of the player, regardless of what weapon is being used. This will give the warrior a slight advantage, which will be balanced out in other ways…
  • Players can miss during attacks. The warrior misses most often, because his aim stat is worst.
  • Magic weapons do more damage depending on how much MP they use. This way, the wizard isn’t at such a disadvantage. Previously, the wizard class was just like any other character – except his weapons made him run out of MP. Now there’s a good reason to use those MP-draining attacks.
  • The ninja’s weapons are not faster than the other class weapons anymore. It was too much of an advantage.
  • Alphabetized my subs and functions. You won’t notice any difference in gameplay, but boy is it easier to work with now!
  • View world map (preliminary graphics). This is in addition to the local map already in the game.
  • Got rid of the face close-up in the stats menu and other menus. I replaced it with a full body shot for now. We can improve this later.

More about character classes

Okay, I’ve been brainstorming some more about balancing out the different character classes.  It’s challenging to give the classes different stats and abilities, but still have things seem balanced.  On the one hand, I could make each character extremely different – it would be interesting, but probably not balanced.  On the other hand, I could keep things perfectly balanced by having all of the characters essentially the same – but that wouldn’t be interesting.  Here’s my compromise – a pro and a con for each class.

Archer:  misses least (high aim), but enemies rarely miss her (low agility)
Warrior:  does most damage (high strength), but misses most (low aim)
Wizard:  best with spells (high magic), but attacks drain MP fast
Ninja:  enemies miss him most (high agility), but worst with spells (low magic)

Of course, there are other differences too, like the earned abilities and max HP/MP.  Those aspects will also be adjusted to keep each class different but fair.

Let me explain a little more about magic and spells.  The wizard will have the lowest strength stat, so you’d expect his attacks to do the least damage.  However, spells will be inherently stronger than most physical attacks.  Since you have the added hassle of running out of MP, I figured it’s only fair to make spells do extra damage.  So basically, the warrior and wizard will be doing roughly the same amount of damage to enemies.  But while the wizard will run out of MP and then have to resort to physical attacks (which he is very weak with), the warrior will be able to use his strongest attacks all day long – but he’s clumsy and misses the target sometimes.  Characters with higher magic stats, like the wizard, will also be best with healing spells.

It would be annoying to have a character who constantly misses the enemy, so it won’t happen too often.  I figure if the warrior is 10% stronger but misses the enemy 10% more often, then things will balance out.

I’ve been thinking about making an additional class with even stats (no particular strengths or weaknesses).  They wouldn’t be especially good with any specific weapon group, so I’d have to make them better in other ways.  Of course I could just give them higher max HP and MP, but I’d want to do more than that.  I think I’d give them better earned abilities than anyone else – the ability to kill certain types of enemy in one turn.  For example, they could earn a “prayer” ability which instantly kills all undead enemies.  There could be a “melt” ability to instantly kill ice enemies, and so on.  Later in the game when this character has earned all of his abilities, he’d be a force to reckon with.  Although, I suppose he’d be pretty weak against bosses.

Monday brainstorming

Someone on the Freebasic forums recommended that I switch from mp3 to ogg, and now I realize why. I think I’m going to do it. The goods news is, I just found out that FMOD already supports ogg vorbis! So I won’t have to switch libraries, afterall. I hope I can use the same functions.

I’ve been brainstorming about strengths and weaknesses for the various characters. Here’s what I think I’m going to do:

  • Archer: rarely misses a target. Good overall character.
  • Warrior: attacks do the most damage, but misses the most.
  • Wizard: is the best with cure spells. Misses sometimes.
  • Ninja: usually attacks before everyone else. Misses sometimes.

These differences will be in addition to the fact that they have different earned abilities. The earned abilities are already pretty balanced, I think. Everything will need to be adjusted as we continue testing it, though.

I’ve come up with other stat combinations that could yield additional class types, but I’m not sure if I’m going to use any of them. These four just seem to balance each other out perfectly.

Version 310

Updates:

  • No more setup option for slow PC’s. Instead, there is now an option to show FPS in the corner of the screen.
  • Fixed up the local map. It now takes a second to load, but looks much better.
  • Added bigger font to make damage/healing amounts in battle much easier to read.
  • Made a walkable invisible tile to slightly optimize scenes with a lot of foreground. Basically, the tiles that are completely obscured by foreground don’t get drawn anymore.
  • Optimized the asm in darkenedhalf, darkenedwater, etc.
  • Optimized by making it check for night once per frame instead of once per pixel!
  • Fixed simple bug in the typesomething function that was causing it to think you pressed enter as soon as the dialogue box appears.
  • Fixed circle particle effects by using sprites. It’s not exactly how I had it before, but I actually wound up with a cool smoke effect accidentally.
  • Put in new sprites for trees and water edges, and made a sample map to use them.
  • Fixed quick screen blip after viewing map.
  • Made it stop showing equip screen as soon as a new item is found, and doesn’t show stats screen as soon as a new player joined. The concept was nice, but for most players it would just be confusing.
  • Remembers the last save/load slot you used. This way, when you go to save, the cursor will already be on the last slot you used.
  • Put poison back in the game, with an update: the amount of damage done by the poison now depends on the level of the enemy. Armor can’t help you here! Hopefully the player will be carrying antidotes. It’s especially evil when an enemy poisons the entire player group.
  • Changed character sprites to arrays. It’s more efficient.
  • Added new preliminary graphics for the other characters. Right now they’re just palette swaps, but the important thing is that everyone looks different and the code is ready for the real graphics.
  • Enemy names can now be 12 characters long instead of 9.
  • Added projectile graphics for ice, electricity, and dark magic.
  • Created and fixed a bug that made it turn to night indoors.
  • Tweaked the player weapons to make sure all types of projectile and particle effect are used at least once. Actually, there are a couple that aren’t – so I’ll make sure some enemies use those ones. I wound up renaming some of the weapons, and I like what I came up with. Now the archer starts with a wood bow instead of a slingshot.