Tuesday, July 31, 2007

Development Diary Week 4 -- Design doc finished

Well, I finished the (first version of the) design document. I was too far behind and wound up a day late, but oh well.

I decided to focus my design document better by concentrating on my target audience. My primary target is, well, me. Its main purpose is to keep me focused on where I'm going, what's most important, and how I'm going to get there. The secondary audience is a hypothetical one. If I suddenly had to pass the project off to another developer or team, the document should guide them well enough that they'd eventually produce a game that's generally similar (in gameplay and plot) to what I have in mind.

I've started keeping a record of hours worked by task. I think this will be useful for 1) auditing how long a task takes me compared to my estimate, to aid my planning; 2) seeing how much time I'm actually able to spend each week.

I'm not satisfied with the menu layout and operation that I've designed so far. Some of the screens (mainly the ability learning one) seem clunky and hard to use. I think I'm going to have to wait until the game engine is fully built so I can get a sense for what the player does most often and try to make that more convenient. Corollary: Don't spend a lot of time tweaking the menus!

I still have a lot of details to flesh out in the plot. I've got a pretty clear idea of the beginning and the endgame, but only a general outline for the whole middle of the game.

In general, I'm feeling alarmed at the prospect of how much content I have to come up with in every area. ("Have to" in the sense of reaching the minimum level of variety that I'll consider adequate.) Spells, special attacks ... and I've barely thought about run-of-the-mill enemies.

I think my next step is to step back a bit and do some planning. I'm going to draw up a "triage guide" for all of the features I want to include. I'll use it as a guide to try to work efficiently by doing the most important and/or fastest features first, preparing for the likelihood that I won't get to everything (sniff). Then I'm going to make a schedule: need to have X feature done by this date, after this milestone date, need to stop adding features and just add content. I'll have to follow a careful plan if I'm going to actually get this done, especially considering my late start.

Monday, July 23, 2007

Development Diary Week 3 -- Design doc, beginnings of battle prototype

Fresh off my successful three-evening computer rebuild (could have been much faster, but it was my first time so I was super-paranoid), Last Ancient is moving forward again. I worked on the design document and started a prototype of the battle system. I met my goals for the week, although just barely.

Design Document

Got the actual design document started. Spent a lot of time listing planned character abilities. One problem I noticed is that it's easy for me to think of powerful spells and special attacks, but harder to think of simple ones suitable for the earlier game.

The ideas just keep coming when I'm thinking about spells and attacks for battles. This confirms my decision that "fun battles" is my top goal for the game.

I'm pretty sure that I have way too many ideas planned and will have to make some wrenching cuts as I go along. I think for now I'll go ahead and put everything I want in the design document and start making cuts later on after I'm in main development and have a better sense of how much is feasible.

Character Abilities

Selections from the Abilities section of the design document:

Beating enemies (and doing other stuff?) gets you Ability Points (AP), which you spend to raise your stats or learn new abilities. You can learn new special attacks, weapon techniques, magic spells, or support abilities. Or you can improve one of your existing abilities, like making your Fireball spell cheaper, faster, or stronger. The key idea here is to let the character specialize in certain abilities (meaning he'll clobber some enemies but maybe not have much to do against others) or be more diverse (or jack-of-all-trades, depending on your viewpoint) as the player chooses.

Note that spending AP is the only way that stats are permanently raised – there's no “level-up” process or anything else that automatically raises stats. Player has to balance raising stats (general character improvement) or learning abilities (more specific usefulness).

Special attacks should be usable frequently (several times in a battle); they are not occasional things that are hard to build up to (e.g. Limits/Overdrives in Final Fantasy). Ideally they should be used for a momentary boost to turn the situation in your favor. (Knock a tough guarding enemy out of the melee temporarily so you can take out the others, suppress enemy ranged fire so you can close in safely, strike down the troublesome armored enemy, that sort of thing.)

Special attacks:

  • (weapon type) flurry: no wait time between (weapon type) attacks for a certain time

  • (spell type) flurry: no wait time between (spell type) spells for a certain time

  • shield blocks more/unlimited attacks for a certain time

  • Lunging sword attack

  • Several rapid sword slashes

  • Double spell: Next spell cast fires twice rapidly (no MP cost for second one?)

  • No MP cost for a certain time

  • Hard hit: attack with greatly increased knock-back

  • Piercing strike (normal damage against Armored target)

  • Critical: ignores several pts. of target's Defense

  • Sure shot: arrow automatically strikes nearest enemy

  • Spinning sword/axe

  • Spear spin: spin defensively in front, deflect all weapons/projectiles for a certain time

  • Great Guardian: automatically intercept all attacks against nearby allies with shield for a certain time

  • Light Burst: sword shoots beams of light in all directions

  • (other such “Super” attacks)

“Super” attacks such as Light Burst shall be expensive to learn such that a normal character will probably have only one or two.


Spells (many of these are tentative / for example):

  • Fire Shot: fire attack flies straight across screen

  • (similar simple ranged attacks for most/all elements)

  • Lightning: lightning bolt strikes spot at certain distance in front of caster

  • Fireball: fireball flies straight, detonates on striking enemy/obstacle

  • (Element) Field: creates stationary magic field around player that has some of the following effects (TBD): weakens/dispels spells of the inferior element, provides permanent duration for enchantments of that element, allows casting of advanced spells of that element, has permanent duration as long as caster remains in field

  • Barrier: magical wall, works kind of like a shield but wide, blocks physical/magical attacks but loses strength with each hit as well as time – may want several power levels and specialized varieties (strong barrier against fire magic, etc.) for this

  • Dispel: (large-ish) spell flies straight, weakens/destroys all enemy attack spells or enchantments that it hits

Inherent:

  • faster MP recovery

  • less/no wait before MP recovery begins

  • increase (weapon type: sword/spear/axe/etc.) damage

  • reduce wait time after (weapon type) attack

  • able to resume casting spell after moving

  • able to move while casting spell

  • less/no chance to lose concentration (spell canceled) when struck while casting

  • Pierce Elemental Field: Your spells can go through a field of the superior element without getting dispelled

Battle Prototype

I spent some time learning basics of TGB and GIMP, building up to start prototyping the battle system. My immediate goal for this is to try out the key ideas and make sure they seem like they'll work, so that I don't sink a lot of time into a design element that wasn't such a hot idea.

So far, the demo has a player character who can move around and make a momentary sword attack. (Yeah, he's stuck facing right, and he can leave his sword in mid-air and move away, and....) There's an enemy who makes a beeline for the player. If the enemy hits a sword attack, he dies and restarts from another spot. If the enemy hits the player, the player vanishes.

So it's not much at all, but it's the first step. I was pleased by how quick and easy it was to put together in TGB. I still feel that I don't "get" TGB, how the objects, scripts, and levels relate to each other, or what the "right" way is to design everything. But I'm finding it pretty easy to learn so far.

OK, one screenshot.

WARNING WARNING BAD PLACEHOLDER ART AHEAD



Next Week

I've got less than a week to submit my design document. (I might be better off points-wise turning it in a bit late, but it's important to me to hit the deadline.) I may work on the battle demo too, but I'll have to manage my time very carefully. (Focus on just testing the ideas as quickly as possible, not tweaking things to be more polished. It's a prototype, self!) This will be a tough week.

Sunday, July 15, 2007

Development Diary Week 2 -- Nothing to see here, move along

This will be a short update. My plans for big productivity Friday died along with my main computer's motherboard. So all I have this week is a couple of minor design thoughts.
  • Magic and MP: I want to allow characters to cast spells without MP at a penalty, to avoid the phenomenon my friend Dustin pointed out where you never use your cool magic because you're afraid of running out. I'm tentatively thinking that you can cast a spell instantly by spending MP, or you can spend time charging the spell (gathering magic power, if you will) to reduce the MP cost. If you have no MP stored, you can still cast a spell, you just have to charge up the full amount first.
  • Normal battles will range from a couple of easy enemies to lots of and/or harder enemies. This works with the above idea of your MP being stored-up quick extra firepower.
  • I'm toying with the idea of making it so in order to cast the more powerful spells, you first need to cast a "field" of that element around yourself. My idea here is to add a tactical / positioning issue to your strong abilities -- if you get knocked out of position, you can't do what you were planning to.
  • In general, I think it's interesting for battlefield positioning to be tactically important. Nope, no more detailed thoughts on that, just a principle on my mind.
So my goal last week was to get the design document started and make a schedule. Fail. So this coming week my goal is to catch up on that, and also get a decent start on a combat mock-up in TGB. (Decent start = player character able to fight and defeat at least one enemy, enemy able to fight and defeat player.) But before that, I have to fix our main computer, so I'll bid you good night.

Wednesday, July 4, 2007

Development Diary Week 1 -- Basic thoughts

Here we are with my first weekly entry. So far I haven't accomplished anything concrete. I've just been thinking through the plot and gameplay, getting ready to write my design document.

Basics

The main game screen will be a third-person top/three-quarters view of the player character and surroundings. Settings will be general fantasy fare: castles, fields, forests, caves, etc. The player will visit towns etc. and talk to people to learn about what's going on and buy equipment.

A lot of time will be spent in battle against enemies (monsters, enemy soldiers, etc.), usually while traveling or exploring caves etc. Battle will be real-time action. I'm going for a bit slower, more tactical pace to the action, not a full-speed frenzy. The player will earn experience through battle (maaaybe also sneaking and other non-violent approaches, but that'll probably be too complicated for me to include) for increasing his power and learning new abilites. The player will also increase his power by buying/finding better equipment and magical items.

I'd like to include some puzzles and problem-solving to add some variety, but at this point I'm really not sure if I'll be able to include that.

I haven't decided whether you'll have a party or just one character. I'd really like to have multiple characters, but I'm afraid it would add a lot of work to implement (especially the A.I. for controlling your allies in battle).

(A note about pronouns: I noticed that I'm writing "he" for the player / main character. At this point, I'm thinking you'll have one main character as opposed to choosing one of several characters to be your main one. And he'll be a guy. Write what you know, right?)

Plot


The main character will begin the game as a soldier in his country's army, probably one who's just been drafted into service. This gives us a game opening where he goes through some basic combat training (probably a "go through my monster-infested training course" type of thing) to get the action going right away. The opening also needs to immediately set up the beginning plot situation -- why are we going to war? What's going on?

The overall plot is still unsettled, but I've got a couple of basic ideas decided. There's this guy known as the Last Ancient. Eventually it turns out that he's the lone survivor of an ancient race -- we're talking maybe dinosaur era here. He's come to the present day (suspended animation? just a spirit? near-immortal?) and is beginning his plan to revive his perished race. This plan will not turn out well for humanity, as you might guess. (It doesn't occur to him to care -- being from a much earlier species, he views us as just overgrown rodents.) He believes that the strongest (that's him and his people) should rule, and that the end of his race was contrary to the proper order of the world. It should never have happened.

So what's his plan? Um, that's what I still need to work out. It needs to lead to a good starting situation for the game. And it needs to provide good reasons for the player to travel to various places around the world. More subtly, it needs to be resolvable without requiring any crazy scenes or situations. (It could be fun to have a mass battle sequence, but am I really up for implementing something like that? No!)

I really want to avoid falling into the Collect X Special Items / Visit X Special Locations plot structure. I think we're all tired of that. But if I can't come up with anything better, oh well. I can't afford to aim for perfection here.

Battle Mechanics

The player should be able to dodge or block most if not all enemy attacks. That's a critical part of making action fun. Because the main character will start off as a generic soldier/swordsman type, the "default" defense will be a shield. I'm leaning towards having the shield be passive defense (it's always protecting your front when you're not attacking) rather than active defense (need to make a control action to block), but I may change my mind, especially if I add other advanced defensive abilities like barrier spells.

The player will need to make real-time actions to swing his sword at the enemy, cast a spell, and so on. Attack spells will vary in size and movement. Generally they will not be automatic hits, but will fly across the screen (or whatever) and hit the enemy or not.

I'm tentatively thinking that the player will charge up special attack points with normal hits. Special attacks will range from mundane ones like jump slashes and double slashes to more spectacular super attacks.

Spells (most spells?) will take time to cast (charge up) before using. There may be quick/instant weak spells and stronger more time-consuming spells. Magic consumes MP and is limited by your MP supply.

I may make a combatant go through a significant (a second or two) cool-down before making his next action. This cool-down, if any, will be whatever it takes to establish the moderate pacing that I want for the action.

As for damage calculations and such, right now I'm thinking to make them non-variable, that is, you know that it always takes 3 hits to kill So-and-so's. Not sure yet.

Puzzles / Obstacles

I'd like to include some puzzles and problem-solving to add some variety, especially when exploring ruins and such. Unfortunately, I haven't had a lot of ideas for this yet. Maybe I'll provide a wide variety of tools and magical items for solving obstacles, provide the obstacles, and not worry so much about scripting one "right" way to get through every area. For example, there's a high ledge. You can just take the long way around through the corridors. You can find the hidden switch to drop a rope up to the ledge. Or maybe the player uses his tree wand to make a tree grow on the ledge and grapples up to it, and maybe I never even thought of that solution -- great!

It seems like I'm thinking mostly in terms of optional obstacles / shortcuts. The player should get a hefty bonus (experience?) for cleverly skipping part of the "normal" path through an area.

Abilities

Experience lets you raise your stats or learn new abilities. You can learn new special attacks, weapon techniques, magic spells, or support abilities. Or you can improve one of your existing abilities, like making your Fireball spell cheaper, faster, or stronger. The key idea here is to let the character specialize in certain abilities (meaning he'll clobber some enemies but maybe not have much to do against others) or be more diverse (or jack-of-all-trades, depending on your viewpoint) as the player chooses.

I'd like to include non-combat ability sets, such as forging equipment, enchanting magical items, and so on. Again, not sure if it'll be feasible to include that.

Some abilities may have other abilities as prerequisites. But I think I'll keep that pretty minimal and instead make it easier to pick a varied set of abilities.

Conclusion

Well, this turned out a lot longer than I expected. Guess that's a good sign. My goal for next week is to get the actual design document started (possibly just this post copied and expanded). I should make myself a schedule too. Thanks for reading! If you have any thoughts or suggestions, please feel free to comment.