Friday, August 3, 2012

The Dangers of Resting

A party of adventurers who checks themselves into the local inn or who visit the temple will find healing to be a safe and easy process.  But, sometimes when exploring a dungeon, wounded party members will need to rest in order to regain Life Points and Mana Points.

So, the game now has an option for the party to rest:

Three different options.

The party can choose to rest for a single hour, allowing each party member to regain one lost Life Point and one lost Mana Point.  Or, they can rest until all their Life Points are healed (though this option does not insure that all their Mana Points will be completely replenished).

Unfortunately, resting in this way can be dangerous.  It is possible that the party can be discovered by enemies while resting, which leads to combat.  This can be very bad for the party if they are wounded.  After all, there's nothing like being awakened to this...

It's a nightmare!
But, being as the party will start off in a fragile state, it seems it is the chance they may have to take while wandering around in dangerous locales.

More information to come...

Monday, July 23, 2012

Crafting the Story

With a lot of the systems for the game in place, I have started on what is probably the hardest part: creating a story that is compelling, easy to follow and not dumb.  It's not easy to do when I'm trying to keep this in the style of old-school CRPGs, which didn't always have a lot of storyline to begin with.  Most just had a simple directive to give you a reason to bash monsters...like  the "kill the evil wizard because he's evil" type of plot.

Taking a page from the SSI Gold-Box games (like "Curse of the Azure Bonds" and "Pool of Radiance"), I'm spinning my story in a similar style, through events and dialogue provided by NPCs.  But, while I'm trying to give the story a solid direction and give the player something interesting to do, I'm trying to stay away from overdoing it.

In one sentence, we learn that the goblins don't like intruders...and that their chieftain keep slaves.


I'm not allowing myself to write walls of text and whole books of knowledge into the game.  An NPC tells you what you need to know in a couple of sentences and that's it.  The point needs to be clear and it needs to happen quick enough to get you back to the action.

Sure, I could go into rambling character stories and give tons and tons of information like all those Japanese CRPGs (Final Fantasy, for example), but that's not how the old school computer CRPGs did things.  They were frequently limited on space.  I don't have those same limitations, but there's a real art in telling your story in as few words as possible.

I could have had her lament her troubles for fifteen minutes, but what would be the point?

Somehow, I have a feeling this will probably be the part that takes the longest.

Saturday, July 14, 2012

Progress...Forward And Backward

The last two weeks has seen me with my head buried in the combat engine and working with the spells.  The good news is that the combat engine is 99% done and all the spells are fully implemented.  I am very happy with the progress I've made there.

On the down side, though, I discovered that the font I was using wasn't going to port well across systems without some serious work, I so had to rework most of my screens using another font that is included in all versions of Windows.

Here's two screenshots, showing the old font and new font so that you can compare them.  First, there's the old font:

The old font, which I really liked.

And then there's the new font, which looks similar, but loses a bit of the touch that I wanted for the game.  Still, I can live with it:

The new font, which works.

Some screens are undergoing changes.  As I add more systems to the game, I find new ways to do things.  Sometimes, what was once functional gets reworked into something that is both functional and nicer looking.

Take the character screen.  Originally, it looked like this:

The original character screen.

It was functional, but it needed a bit of work.  Looking at it now, I'm glad I changed it up a bit.  Here's what it looks like now:

The new character screen.

As I build more and more functions into the game, I'm also keeping an eye on how to make the game look good as well.  I think it's important that the game has an easily approachable GUI, and that it doesn't look like it was put together by a three day old monkey with a cast on both arms.

As always, any feedback is appreciated.

Thursday, July 5, 2012

The Combat Engine

I knew going into this project that the hardest part to creating an old-school style CRPG would be getting the combat engine to work just the way that I wanted.  A lot of complex coding goes into the combat, which has to track variables for all sorts of things.  Here's a short example of what it has to keep track of in the average turn (this doesn't even scratch the surface):

  •  What are the stats of the current character?
  •  Does that character have a condition we need to know about?
  •  If the character is affected by a condition, how long does that condition last?
  •  What weapon are we holding?  What armor are we wearing?
  •  Can this character cast spells?  What kind of spells?
  •  How many Life Points do we have left?

Overall, creating the combat engine has had the slowest development.  The good news, though, is that it's coming along nicely, despite my attempts to get it wrong several times.

So, what's it like?  That's the first question I would be asking.

In order to answer that, I need to go back in time to a game created by SSI, called "Phantasie," which came out in 1985.  I remember watching a friend play that game for hours, and being captivated by the combat engine, which was the first graphical CRPG engine I had ever seen (prior to that, games like "The Bard's Tale" used text to relay what was going on in combat).

It looked something like this:

"Phantasie" on the Commodore 64.

By today's standards, it's a bit primitive.  But it's effective, and it still works well.  I played the game last year, and found the layout to be intuitive (even though the controls were somewhat clunky).  The party was at the bottom, and the enemies they faced appeared at the top.  The look of the combat screen is what I like the most.  It's simple...and that's really important.

What I didn't like, though, was that you had to select everything you were going to do with your characters before the turn started, and you had to hope that you picked right.  If someone got seriously hurt during that turn and you didn't choose a healing spell, they were screwed until the next round began, and you had to hope they didn't get hit again.

My engine, while taking some ideas from Phantasie in layout, allows you to actually do things when your turn comes up.  You don't have to select everything before the round starts.  So, I kept the simplicity, but added in some flexibility.

But, enough of me, let's take a look at it:

We've come a long way in 27 years, but I still like the retro feel...

One thing I will point out about these screenshots is that they don't actually do the combat engine justice.  These screenshots don't show off the animations that happen when you hit an opponent or cast a spell at them.  You can't hear the sound effects.  You don't get the sense of satisfaction that comes when you hit an enemy and kill them and watch them leave the combat.

So, keep that in mind as you look at them.

The flash of healing that is usually present can't be seen here.

There are a lot of systems working already.

Attacking, which was the easiest thing to do, got done on day one.  Both the monsters and PCs are capable of attacking each other.  The game also allows for a chance of scoring a critical hit, allowing a character (or monster) to do double damage on a single hit.  Even better, Scouts sometimes trigger a special attack that gives them double damage as well...and if they critical at the same time, they get four times the normal damage that they would be able to do.

Ouch!

Characters can access their inventories to use items (like healing potions, for example) or swap weapons or armor pieces when necessary.  They can even trade during combat, allowing them to give someone in need a potion of healing or something else of importance.

Of the spells, only the priest spells are implemented (I haven't actually begun coding the Sorcerer spells yet).  In fact, spells are the toughest thing so far.  It takes time to create code for all the special things that can happen due to spells.  And each spell has a sound effect and an animated graphic.

Really, the only button with no functionality is the Flee button, allowing a character to attempt to escape a combat.  But, that will come.

A goblin has been entangled by a spell.

All in all, it's coming along pretty well.  The engine even knows when the PCs win and gives out experience points.  And it knows when the monsters win too...which puts you right back at the main menu (it's a good idea not to let that happen).

I'll add more updates as the engine comes along.  I'm hoping to finish it soon.  Once it's done, everything else should be easier...and I imagine the game will come along much faster after that point.


Tuesday, June 19, 2012

More Pieces of the Puzzle

It's amazing to me how many puzzle pieces seem to be involved in putting together a CRPG.  You need inventory systems, combat systems, magic systems, etc.  There are items to track, statistics to track, character information to track, etc.

The last few weeks, I have been working hard to nail down the inventory system, and for the most part, I have.  All the commands are in place that allow players to manipulate items in their characters inventories.  They can trade items amongst party members, drop items they don't need, use items (though only a couple at the moment, since not all items have been given information), and equip items that can be worn or wielded.

Standard inventory screen with some fancy icons.

Being able to equip important items is probably the most important thing that characters can do with their inventory.  I've created a way for players to clearly see what each character currently has equipped and what slots they take up.

Where would we be without equipment?

But, besides working with equipment, I've been doing a couple of other things too.

I've added some music and icons (all taken from artists who devote their resources to people like me who make games under the creative commons license, and I will insure each of them is properly credited...and if I can help it, I'll do something else special for them in the game).  This gives the game a less bland feeling.

I finished up the shop, giving players an option to sell items that they find while adventuring.

Oh, and I've also been working on spells...

Priest Spells

So, overall, the game is coming together pretty nicely, one puzzle piece at a time.

Tuesday, June 12, 2012

Healing and Death

It goes without saying that as a player takes their characters on quests in Lands of Adventure, they're going to encounter combats and dangerous situations.  Along with these dangers will come damage and death.  It is unavoidable.

Damage is done to characters in the form of Life Points, and each character only has so many.  When they reach 0, the character is dead.  For that reason, each party should have at least one Priest character, who can use their divine magic to heal members of the party.  Being able to heal is important to the party's overall survival.

But, what happens when the priest runs out of healing spells or someone dies?  Well, the good news is that even death is curable...for a price...

Welcome to the Waystop Temple.

In true CRPG tradition, Lands of Adventure includes a mystical temple where players can have their characters healed and raised from the dead.  Of course, this kind of healing doesn't come free.  The characters will have to surrender some of their hard earned gold in order to get back in fighting shape.

While I don't want the game to be completely brutal, I don't believe that CRPGs should coddle players and never put them in danger.  I think it's okay for characters to die on occasion, especially if a means exists to return that character to life.

Let's take a look at what the temple can do for the player:

Healing, healing, healing.

Light Healing: A character can be healed up to 10 Life Points with Light Healing.  This is useful if a character hasn't taken a lot of damage, or needs just a little bit of healing to get back up to their full capacity of Life Points.

Full Healing: For the right price, the character can also be returned to their maximum Life Points with a single spell.  Of course, this can be expensive.  But, when necessary, it can also be really handy.

Cure Disease: Sadly, characters may encounter all sorts of things when they're roaming around the world.  Catching a terrible disease is one of those things that they probably want to avoid.  Still, if it happens, they can have the disease removed for a fee.

Ressurection: So, you had the misfortune to have a character die during one of your quests?  No problem.  Pay the priest at the temple and he will be happy to return your character back to life, though only with 1 Life Point.

Sounds good, right?

But, what if you don't have a lot of gold and you want to heal your character naturally?

The Waystop Inn interface.

Luckily for the characters, they can visit the local inn and rest.  During a single night's rest (which only costs 10 gold pieces), they will recover a random number of Life Points and Mana Points based upon their level.  It may or may not get them back to full health, but several days rest would probably do the trick.

Either way, the characters can head out and fulfill their destinies without worrying too much about whether or not they have the means to rest or come back from the dead.

Well...unless they all die...

Wednesday, June 6, 2012

Items and Inventory

If you're wondering why I haven't posted about Lands of Adventure in a few weeks, it's because I've been too busy to really do any work on it.  But, even in my time away from it, I have been giving a lot of thought to the way the inventory system would handle items and how shops in the game would be set up.

Before I stopped working on the program a month ago, I had the skeleton of the system worked out.  Earlier today, I jumped back into the thick of things and quickly threw the whole thing together.

One of the shop screens, this one showing weapons.

Originally, I wanted to be lazy in my approach and create the game so that each character could only possess three things:  a weapon, armor and possibly a shield.  What I came to realize after a while was that doing the game that way would make me really unhappy.  I didn't want to cheat the player out of a better inventory system that allowed them to equip and carry multiple items (like rings, magical wands and potions).

So, looking at some older CRPGs, I figured out how to create an inventory system that tracks a certain number of items in a character's inventory and allows them to interact with those items.  A character can equip items that can be worn, trade items that they don't want, drop things they think are unnecessary, and sell items back to the shop at less than their selling cost.

An example character inventory.

What you might be thinking to yourself is that this is fairly obvious.  But, if you aren't a programmer, you may not realize how difficult putting something like this together can be.  Actually, a great many things in a CRPG can be quite challenging to get working exactly the way that you want.

Part of the fun of building one of these games on your own is that there are a lot of technical challenges to overcome that make me appreciate how much hard work went into those old games I loved.  Each time I achieve a goal, I feel it makes me a better programmer...because programming is all about knowing what your problem is and then teaching your computer, via scripted language, how to conquer the problem and do the work you want in just the way that you want.

Equipping armor.

There's still work to be done with the inventory system.  It took a while to figure out how to implement everything in a way that works.  Simple things like: knowing if a player is trying to equip something like armor, or if they're trying to equip a scroll by putting it on their head.  Or, knowing whether the thing the player wants to use in combat is a Rod of Fire, which allows them to damage enemies, or a bandage that will give him the opportunity to heal one of his damaged party characters.

Easy in concept, but harder in execution.  Still, it's rewarding when it works.