Monday, August 27, 2007

Week 8 -- Knocking each other around

The battle prototype came along nicely this week. I added the "wait time" in between attacks (preventing button mashing) and made so that you and the enemies knock each other back with each hit. (I also added not-yet-used displays for MP and SP.)

For the wait time, I realized that I really needed to add some simple state tracking to my player and enemies. In the process, I also cleaned up a couple of details, making it so you can't move while swinging your sword, etc. So far the player has an action state that is either ready, mid-attack, or wait ("cool-down" if you will), with more coming for spells and stuff later. There's also a just-got-hit flag (can't control your movement or attack while you're getting knocked back).

Had some trouble getting the knock-back effect right. It was easy to just knock you straight left or whatever, but I ran into problems trying to knock you back away from the direction of contact. First I tried taking the normal from the collision callback. That worked if you were standing still (after I fiddled with the collision settings), but sometimes would make you go backwards. Not sure why. I eventually got something working with some trig after some trial and error:

%rise = %dstObj.getPositionY() - %this.getPositionY();
%run = %dstObj.getPositionX() - %this.getPositionX();
%collDeg = mRadToDeg (mAtan (%rise, %run)) - 90;
%this.setLinearVelocityPolar (%collDeg, 20);


I think it needs the - 90 because in TGB 0 degrees is up instead of to the right. Or something. It's past my bedtime.

So now you fly backwards when the enemies run into you, and they fly backwards (away from you rather than your sword itself) when you hit them. That was cool.

I also made the enemy movement a bit more interesting. (I had to in order to knock them around. I had just been doing a moveTo and forgetting about them until they arrived, but they might not ever get there once the player started knocking them around.) So now they move towards you in "hops" with regular pauses. Then I was having fun so I made them sometimes take a longer pause and then lunge extra-fast! Yikes! Fun stuff.

There's still not much to see from a screenshot. Maybe I'll figure out how to take a movie sometime soon.

I'm about two weeks behind on my schedule. I'm still going for completing a rough, rough draft of the opening by the end of September. I'm feeling unsure about the plot, specifically the details of how the story starts off. So my "first five minutes" milestone will be more tentative as far as what exactly happens -- I'll use more "placeholder" type dialogue and areas rather than spending significant time on the details of something I'll likely change later.

The final steps for the battle system prototype are the spellcasting system and special techniques. That covers all the things I want to test out, and will set me up to take a running start at the real game.

Monday, August 20, 2007

Week 7 -- How many HP do I have?

Well, it was indeed a busy week, but I got a bit of time for the project. I spent most of it learning about TGB GUIs. Seems powerful and potentially handy, but I found the GUI builder distressingly buggy. I still managed to add a Hello World pop-up. (Handy for distracting you from fighting the demo enemies!)

My main goal was to add a couple of stat displays (HP now and a couple more later) to the battle system prototype. I figure it's time well spent as I'll certainly need those skills for the real game. And so there's now a working HP display in the corner of the window. And I wound up not even using a real GUI for it. =) Oh well.

So I've got catching up to do this coming week. Fortunately work looks more under control, I hope, so we'll see.

Sunday, August 12, 2007

Week 6 -- Battle prototype baby steps

The bad news this week was that I was pretty busy and didn't find much time for the project. The good news is that I stayed somewhat on-schedule because the tasks I did took less time than I'd estimated.

I improved the battle system prototype a bit. Now it spawns multiple enemies, one wave at a time. The most interesting stuff happened behind the scenes here -- I had to learn some more about TGB and TorqueScript to get this working (mainly, dynamically creating the enemy objects rather than placing one in the level builder). Also, both the enemies and the player now have HP rather than dying in one hit. And the enemies freeze momentarily when you hit them. Also, everyone's momentarily invincible after getting hit (to prevent the constant collision from causing many rapid hits). This is a temporary quick measure; I want to later do something more sophisticated, like that each attack can only hit you once, but another enemy's attack can hit you any time.

The final bad news is that I'm extremely busy with work-work, so the outlook is grim for this week. We'll see.

Monday, August 6, 2007

Week 5 -- Planning

This week was a bit slower. I took a bit of a breather after working hard to get the design document out the door. I spent my time listing out all of the tasks I need to get done -- and boy is there a lot to do -- and estimating how much time each would take.

From there I drew up my schedule. So here's my plan: About 2 weeks prototyping key features of the battle system to see if they'll be fun and workable. From then through the end of September, implement the basic battle system, dialogue display, and navigation between areas, and come up with (rough) content for the introductory sequence of the game. This will give me a rough draft of the "first five minutes" of the game, a concept of Jay Barnson's that I think will be useful for focusing my early work.

October through mid-November: System for improving character powers (raise attributes, learn abilities), ally characters, various other things, and content (areas and enemies) for the first major exploring-type area.

My schedule may slip from tasks taking longer than planned and/or me having less time than planned. If my schedule slips more than a couple of weeks, I'll have to revise my plan and think about making some cuts. The ultimate contingency plan is to scale back the contest release to be a demo rather than the full game. Instead of trying to dash off content for the entire plot, I can cut it back to only the first "chapter," or first couple of areas, or whatever I can do well in the time I have.

After my mid-November goal, I have about 3 months to add more features and content. I want to wrap up major additions by mid-February and get the game semi-stabilized for the start of alpha testing on March 1.

Yikes. Well, here I go!

Wednesday, August 1, 2007

Concept sketches, schedule

Well, midway through making my task list and schedule, I'm feeling even more overwhelmed by how much there is to do. Yikes....

Here are a couple of my early concept sketches. First, the general main screen / battle concept:


And a couple of menus ... but I have a feeling I'll wind up doing something pretty different for a lot of these functions.