Sunday, August 30, 2009

Oops

Looks like my domain name expired. I don't know entirely how this works, but it looks like a domain squatter grabbed it. We'll see how this works out. Maybe I'll have to scramble to make up a new name. I can only express my feelings in an emote :(

In other news, don't set your contact info for your web host to go to an email account you don't check regularly.

Thursday, August 27, 2009

One Week Off

Impromptu decision monday to take the week off, forgot to post. Resuming next week.

Sunday, August 23, 2009

Weekend Update

Accomplished:
World map (needs to be really tested)
Character selection screen (needs work, but functional)
Some behind the scenes stuff to manage battles
Game loading (may need more debug)
Three new characters added, several more drawn
Basically, I'm about where I wanted to be, slightly short, but close

I set some lofty goals that I secretly thought weren't obtainable, but managed to finish.

I sat down and finally plotted out the world map on paper, and selected all the characters I wanted to use out of my idea pool. I'm sitting at 59 right now, but definitely subject to change. I then went through the ones I want to use and sort of specced out what I want their attacks to be. This makes it much easier to add characters.

I'm getting better with the art style. At first my designs were very simple (see the pirate), but they've gotten steadily more detailed, and I really think they look good. It makes me want to go back and revise some early designs, but I don't think I really should re-invest that time for now. It's really hard to make some of the classes look better.

There's a lot of polish to be done, and nothing happens when you win or lose. That leads into this weeks plan...

ToDo:
Victory and failure screens
Saving games
I really need to focus on the characters and animations after this. I've got half a dozen needing to be put in and animated, and I'd like to make some more.
After that, I'll try to start in on the terrain, as that will be another time sink.

Wednesday, August 19, 2009

Meet the Pirate

Oops, forgot to post yesterday.

So this week, we're taking a look at the Pirate. Very different from the monk, the pirate is a bit sturdier, and a bit more self-reliant.

  • His first attack is just a simple sword slash. A number of other units share this attack. It's sort of a baseline attack.
  • His other offensive option is to take out his pistol and fire off a round. He's got a pretty good range, but it takes a fair bit of MP.
  • He can always take a swig of his rum. This gives him a little health, and the warm feeling will heal him for a while.
  • The final option the pirate has is he can take a handful of his gun powder and throw it in the air. He ignites the powder in the air to create quite a flash and a bang. This blinds everyone around.

The pirate has a bit more health, and a bit more MP than the monk. Same speed as the monk. The pirate is a pretty versatile character. He usually sits back and takes pot shots with his pistol until the enemies get close. Then he closes and goes at them with his sword. If he finds he's surrounded, he can use his flash powder to either escape or even the odds. He can also be aggressive with the flash powder, charging in to blind the enemy. Like any good pirate, this one knows when to run away. Fleeing and taking a swig of rum to recover is always an option.

Next week I'll be looking at the stalwart legionnaire.

Monday, August 17, 2009

Tubes Made of You



So I said I would upload a video of gameplay, and I have. I just filmed a whole round vs an AI. Hopefully it'll give you maybe a little sense of how the game plays.

Some notes:
  • The games for windows live thing at the start is asking me to sign in, which I couldn't be bothered.
  • Animations are running at half speed at the moment. Architecture should have decoupled the draw and update for attack animations, but apparently, I did not. It's a quick fix, but I didn't notice till after I started recording. Just imagine all of the attack animations running at double speed.
  • The health bars and symbols is from me hitting RB for more info.
  • If you watch closely, you'll notice some of the animations are bugged (the flash powder is especially bad). Haven't fixed all of them yet.
  • It doesn't end when I eliminate the opponent, have that turned off presently.

I would have just used youtube, but it has a 10 minute limit. I apologize for how fuzzy it is. I have no idea why, I only imagine when they convert it to flv they downsample a fair bit. Maybe I'll use youtube in the future, just so I can get higher def.

I am impressed with these video websites, I really expected a crappy java app would have to transmogrify my files before I could upload them, but it seems they're quite happy to have gigs of avi shoved down their pipe.

You probably will have no idea what's going on, maybe in the future I'll do commentary on a shorter match. I was thinking about uploading video weekly, but it's such a pain. I think I'll wait a while before posting another video.

[edit] Why is the post date and time set when I create the post, not when I publish? Who thought that was a good idea?
[edit] added embedded video, cuz I'm "hip" and "with it"

Sunday, August 16, 2009

Dev Update

I have a gameplay video to post, but have to encode and upload still. Had more trouble than expected, should be up tomorrow.

-----------

So I started doing some testing on the 360. Couple things to note:

Turns out the garbage collector isn't quite as smart as the full .Net GC. The solution for now, manually collect 3 times a second *shudder*. I only have a partial idea why and the performance hit is negligible, but my code is bad and I should feel bad.

Floating point operations, noticeably slower, as are string operations. Luckily some AI optimization stopped this problem before it started. I felt rather silly waiting 10 seconds for the AI to decide it's best option was to just sit there and meditate.

Also true on PC, but render targets are rather difficult to deal with in XNA. In the future, I will not use them again, and will find some other way. I haven't found a better way to do what I wanted. At present, the code is hideous and fragile, but without major architecture revision it won't get any better. There's gotta be a better way. All I want is a simple scrolling list.

-----------

The following may or may not make sense, it's really only so I can track my own progress.

Anyway, progress report:
6 characters are complete (even if some of their animations really need work)
3 more ready, just need to be put in code and animated. 2 need a little work before I can use them
Character selection dialog built, but not used at present (the source of most my coding woes)
Bug fixes and performance improvements in the AI
Technically the multiplayer framework is in, but nothing triggers it and the menus aren't in place
Oh yeah, temporary main menu
New maps, small bridge, and the one in the video, along with some new tiles

Goals for the week:
Basic world map
Character select for campaign
Implement/animate the three new characters, mock up three more
^^ this requires adding support for summons and transforming classes, so prolly this before that
*target* Get one encounter finished, from world map, to character select, to victory and bonus

Friday, August 7, 2009

Meet the Monk

So today we talk about the venerable monk class. This character won't be available too early in the game, but he's a fun class.The monk is quick, but weak, and low on mana. He has to stay away from combat frequently to preserve his health and restore his mana, but once he runs in he is not one to be ignored. Combat Focus gives him an attack bonus for a few turns. Guard Break removes defensive buffs. Paralyze stops enemy movement. Finally, Sudden Blow is a fast damaging attack.

Sudden Blow is not the most damaging attack, but when combined with the attack bonus, and removal of any opposing guard bonuses, he can bring down an enemy very quickly. He may need some time to rest after that, but it won't matter if the opponent is dead.

I'll try to post one of these a week, every Wednesday. Next week, I'll talk about the Pirate. Until then, hopefully I'll figure out video recording and post some gameplay this weekend.

Combat

So, the big focus of the game is the combat system. It's elegant and simple, but has a surprising amount of depth. I think the best way to explain why I think the system is clever is to describe what you can do with it. So I will be posting short descriptions of the various character classes, describe what you can do with them and discuss how they fit in the game. First though, I have to do a quick overview of the combat system.

Each character has three stats, action points (AP), hit points (HP), and mana points (MP).
AP: Action points determine turn order and the actions the character can perform each turn. Each turn, every characters AP is refreshed. The character with the highest AP goes first. Each action uses a certain number of AP. When a character runs out of action points, the next fastest character may go.
HP: Hit points are refreshed at the start of a match. When a character reaches 0 HP, they die (there are no revivals in combat, but no perma-death either)
MP: Almost every action takes some MP. It is refreshed at the start of a match, and can be partially replenished through meditation.

Characters each have 4 attacks, mostly unique to that character. All characters may also move, mediate, or block. Mediation uses the remaining AP points and converts them to MP. Blocking gives the character a one turn guard buff, which reduces damage.

There are a number of status effects and buffs that may be applied to each character as well. A character can only have one status effect (blinded, weakened, poisoned, etc) and one buff (guarded, healing, faster). A new buff will overwrite an old one, same for status effects.

That's it. That's all there is. Next post, I'm going to take a look at the monk class to give you an idea of how the system actually plays.

New Project

I'm actually pretty well underway into this project. I just never got around to making this blog until now.

So here's the game. It's a strategy game similar in some ways to tactical RPG's like Final Fantasy Tactics or Fallout Tactics. To be honest though, I haven't played either of the games I just mentioned. This game is very much it's own.

RPG stat leveling? No.
Complex inventory management? No.
Interesting story? Only if you though Mario was deep.
Rich characters? Nope.
Strategy? Hell yes!

Players control a company of mercenaries, fighting at various battle stages. At each battle players select a number of their company to fight. Players unlock additional characters if they complete certain side objectives at each battle stage. During battle, characters take turns performing actions, with the eventual goal of eliminating the opposition.

That description could easily describe most SRPG's, so here's where this game differs:
  • Characters do not level up, the focus is on the who you bring to battle, not which warrior has the biggest ax.
  • Combat is very streamlined. You don't dig through a deep menu tree to cast a spell. This isn't move-attack, move-attack, move-attack, what a character does each turn varies wildly. Your tactical choices will have immediate rammifications, and tactics will have to change often if you are to survive.
  • It is turn based, and there is no hard time limit, but it feels fast paced. Combat doesn't feel repetitive, and you have to adjust your strategy every time the AI moves. Some characters will be unlocked for beating stages in a certain amount of time.
  • You won't be fighting monsters, and you won't be facing dumb hordes. Enemy teams will almost entirely consist of characters you can recruit. Battles will predominantly be rather fair.
  • Tactics are king. The system is simple to learn, but there is a lot of depth in the mix of characters. (I will attempt to explain why the system is so good in future posts, it's hard to talk abstractly about it)
  • The AI really shines. In my own tests, the AI doesn't usually win a perfectly fair fight against me, but it is always close. I would have lost a number more if I hadn't have gone first. The AI often suprises me, and has taught me a thing or two about my own creations.

Before each battle, you'll choose who you want to fight for you. Each stage will have a cap on how many may enter from your company. This is where all the strategy comes in. Do you bring in a healer and some muscle? Do you go with a team of fast ranged units and try to out manuver the enemy and whittle their numbers with superior use of the terrain? Do you focus on disabling though status effects and cleaning up with a fragile hard hitter? This isn't a decision you make once - every battle will be very different. There might be three different rounds, and you might well win easily round one, but strugle on the remaining rounds. Not every battle will have the same scale either. Most will range from 3-6 combatants, but the plan is to have a few epic battles (20+) later in the game.

Multiplayer is a large component as well. No plans for online multiplayer, but four players (with or without a mix of AI players) will be able to face off on a number of battlefields of various sizes.

The art style is unique. A picture is worth a thousand words, so:

I don't have a good name for it, so for now, I'll just call it Pixel Tactics. It's growing on me as a name, we'll see. I'm creating it for release on Xbox Indie Games using XNA. Hopefully I'll be at point I can release by Christmas, provided I don't get majorly distracted along the way.

To give you a sense of where I am in development (and myself a log) heres a list.
Done:
Combat system and battle engine
AI
Upcoming work:
Map editor (this isn't going in the game, but I'll take this any day over editing maps by hand)
Adding more terrain and some arenas (creating the art assets is the big time sink here)
Character selection
Challenges (these will be quick playable stand alone battles with preset parties)
Future development:
Main menu/title screen
Multiplayer
World map (probably the last thing I do)
More characters (5 are fleshed out for demo, the plan is more than 50, but I'd like to fit in some additional beyond that)
Character balancing
Battle animations (This is a time sink if ever there was one)
More sound effects

Thursday, August 6, 2009

First!

lol frist!!!!11

I don't really expect anyone to ever read this, but it will allow me to track my progress on my own development. Perhaps if I create something interesting people will come. I think that's the idea of most blogs anyway.