Sunday, June 14, 2009

Flicker

I'm getting ready to jump right into modifying my blocking code (and adjusting all the numbers to ignore the previous space where they were) when I discovered that my code is infested. I mean, I hadn't gone through and regression tested the whole thing yet. So when I built a new bit, I tested the new bit to make sure that it worked. AI, it turns out, is a funny thing. It's terribly susceptible to the vagaries of numbers and logic. Environments don't seem to care so much, since they're working with constants. AI is like trying to juggle pudding. Hot pudding.
To boot, somehow I managed to break the attack animations. They just don't play. The first frame played, and then it decided that it didn't want to play. Further, the only way to get it out of that was to hit it. Turned out the falling code I added broke it by making the animation frame 1 by default. Now it doesn't do that anymore.
I also managed to break the move back code that I spent so much time working on. I find it's okay because I know the specific logic of that code works. The rest of the engine just isn't giving it the right kind of input. I just need to correct that.
Finally, the blocking code is broken now too. Sort of. It flickers. I turned on the debug stuff (invaluable by the way) and found that it would cycle from En Guarde to Blocking every other frame and I don't know why. Yet.

-...and there we go. But it still flickers. Debug tells me it's for the backing up behaviour now. I think the root cause stems from the fact that my AI functions aren't consistent. Some, count up, while others count down. At the time counting up was for things with animations. Counting down was for a timer. Now, I see that it doesn't work. I can't end out a behaviour and feed a specific kind of input to the next behaviour. I need to make them consistent to continue, so I'll do that now.

-...Erk. Behaviours that count down have the ability to be set as variable and/or random, like the block functions. I could randomize them every cycle but that doesn't give me the fine level of control needed. In fact, looking at them it seems that most of them actually count down. So, I have an idea. If an animation is required (and it probably will be, or a really short cyclical animation) I'll figure something out to make it display consistently. Until then, I'm thinking that down is the way I want to go for all of them except the combat functions. Grrr.

-I seem to have arrived at a solution, based on a retarded thing that I did, which is unusual. Basically, the system is running into a problem with the En Guarde behaviour and it's position as the 0 behaviour. I had set up 0 to be the "Okay, great, now do something else" variable. However, when I made En Guarde be that number, it ran into a number of problems, like the flickering and working like ass. So I went ahead and made the En Guarde behaviour the gatekeeper behaviour. So when the system finishes doing something, it goes back to the En Guarde behaviour, just like the Doc says for it to. =>
So the flicker is gone. The AI seems to be behaving now, but now my backup function is gone. I'm trying to figure it out still. It's 11 in the PM, so I'll do that tomorrow.

-In totally random crap, all the times I've used the words AI, Game and Behaviour has broken Google's positronic brain. Clicking through has given me, in no particular order, "Get a Game Degree," "Get over your addiction," and my favorite, "Dog training available." That has nothing to do with anything. Go ahead, scroll down and click it a few times. I'll still be here when you get back.

EDIT: As I checked my list again, I realized that I've already built the animation controller for the throw. It's untested, but built. So, I orangified it.

No comments: