Tuesday, September 29, 2009

Run, My Minions! Run!

Monday 9/28: Added logic for the AI to wait to move to a position if it's occupied (essentially, lining up). Added 'marker' objects for use in drills. They are just red X's on the ground. Added .gam files to configure the number and positions of players on the field (for different drills).

Tuesday 9/29: Added logic for the AI to wait for a clear path and a thrower before cutting. Refactored the targeting/throwing system into its own class. Changed the background color to sky blue. Used all the AI available so far to create a simple throwing drill. (Screenshot below)

Friday, September 25, 2009


Thursday 9/24: All-new movement system. Just tap where you want to go.

Friday 9/25: More work on AI scripting. Tweaks to AI reading.

Thursday, September 24, 2009


Recently I've read a few stories of Ultimate players facing medical difficulties. One fought cancer and has since returned to the field. Another tore his ACL, decided it was the last straw, and hung up his cleats, after only a few years of competitive play. The former was a story of perseverance and the invincible spirit. The latter was a reminder of the fragility of athleticism, and here, I'll take his advice to heart.

At the end of a recent, grueling, 4-hour practice, we ran a standard huck drill, with a small group throwing and everyone else chasing. Robbie, one of the throwers, joked that he would throw it extra far to make us run as much as possible. I countered that he couldn't overthrow me if he wanted to. It was a ridiculous challenge, given the circumstances. At one of the last throws of the drill I saw that I had lined up to cut for Robbie's huck, and of course he would try to bomb it as far as possible.

I left a second early and ran as hard as I could. At some point I sighted the disc and it didn't have much float to it. I reached out my arms and leaped as the disc dove toward the ground, and barely brushed it with my fingers. It rolled to a stop a few feet away.

Right now, I am as healthy as I can probably ever expect. I'm in shape. I feel fast. I fly as I chase down a disc. At any time I can tear my ACL or break my leg or whatever, but I want to note, on the record, that I do appreciate my health. I know it can crumble at any time. It is worth it.

Wednesday, September 23, 2009

Let's Play Catch

Friday 9/18: A little work on the beginning of an AI scripting system.
Monday 9/21: Tweaked the camera and throwing mechanics. Added some space at the bottom of the screen when holding the frisbee that you can use to turn.
Tuesday 9/22: Tweaked the AI system. Started on the frisbee reading/catching logic.
Wednesday 9/23: Finished the frisbee reading/catching. More camera tweaks. Added a ground "shadow" to make it easier to read the frisbee.

I think I'm almost to the point where I can implement a simple drill.

Thursday, September 17, 2009

Plodding along

The last week has been fairly terrible as far as visible progress is concerned, but I think I got a lot of necessary work done that will pave the way for future improvements.

Thursday 9/10: Reworked the frisbee flight calculations using some actual physics equations. Added transition actions to show a smooth transition between running and standing, for instance.

Friday 9/11: Started to expand the action system to allow for more complex actions.

Monday 9/14: Day off.

Tuesday 9/15: Used the new action system to create a more complex throwing motion, including pivoting.

Wednesday 9/16: Continued working on the throwing mechanics.

Thursday 9/17: Created a more advance UI display system. Finished (for now) the throwing system. Basically, a target arrow pops up after you pivot out that helps you judge the direction and distance of your throw.

Next up...AI?

Thursday, September 10, 2009

I can run! I can throw!

I ran into some frustrating problems getting my animations to work. I ended up sticking with my own modeling format (instead of .md2). I might change later, but for now it serves my needs.

By the way, I think I work in cycles. First, I carefully plan and execute a feature. Then, when the end is in sight, I rush to get it finished so that I can see it on the screen. Then, hopefully, I clean up my work so that it will work in the future.

Tuesday 9/8: Got the run animation loaded. This took way longer than it should have.

Wednesday 9/9: Made a forehand animation. Refactored the animation code to handle more than one animation in the same model. Made an action system to handle the timing of animations (as well as the actions they represent). All of this also involved animating the frisbee to act with the player. Added animation frame interpolation, so that animations are smoother and require less disk space.

Tuesday, September 8, 2009

Virtual Axis

Making steady progress with the graphics...

Saturday 9/5: Made a skeleton for the model and bent it into a quick pose. Also made a basic texture with skin color. Got the model loaded and displaying. Added simple lighting. Made a better frisbee model and texture.

Sunday 9/6: Improvements to texture loading system. Gave the field a grass texture. Added hair and eyes to the player texture.

Monday 9/7: Filmed myself running around and throwing frisbees. Completed a 'run' animation, but haven't loaded it yet. I think I'm going to use .md2 models (the Quake II format), because they are pretty compact.

Saturday, September 5, 2009

More Lies

So, it seems I keep lying. Every time I write here I say the graphics are good enough and that I'll spend the next few days working on game mechanics. And then, invariably, inevitably, I go back to work on the graphics. Maybe it has something to do with my insecurity over the look of the game, along with my confidence in hashing out the gameplay.

Wednesday 9/2: Added some structure for player AI. Currently, once the other player catches the frisbee, it will chuck it back at you as soon as it can see you, but it doesn't move at all or throw accurately. I also did some work on loading models with multiple frames (i.e., animations).

Thursday 9/3: I spent the day following modeling tutorials and making something terrible from scratch. I was happy with it at the time though. I won't show the result.

Friday 9/4: I spent the day modeling myself. It looks great. I also created the texture mapping.

Tuesday, September 1, 2009


Monday 8/31: Two-finger swipe camera panning. Model loading. Basic frisbee model.
Tuesday 9/1:  Basic player model. Added another player to throw to. UI drawing layer, including a nice button class. Different camera modes and a change mode button (the white rectangle). Added rotation to the player based on direction.

So, I lied about how long it would take to get real models in the game. The transition from Blender to OpenGL is actually pretty painless, although I don't have any animation yet. Now that it looks a bit better, I can move on to throwing / catching mechanics and basic player AI.