and more

Ok, so I've modified the sandbox so it's a regular memory bitmap & thus needs to be blitted to the screen. Not much of a performance hit (if at all) on my Mac. Now to see how it fares in Windows. Everything is still line drawing, so replacing it w/bitmaps should help a bit.

The tough part is going to be determining which quadrant each vector is in. & I really should run tests on this. But I need to know what the right answer is, 1st.

Before I even get to any of that, I need to figure out this performance problem. Look at some examples / tutorials... See if I can spot what I'm doing differently (wrong).

I wonder if there's some sort of objects-on-screen stress-test example? A blitting example, or something.

[trig. diagrams] vx1f = vx1 - m21 • dvxz vx1f = vx1 - m2 / m1 • -2(vx21 + a + vy21) / ((1 + a2)(1 + m21)) [I don't really know what this's about]

what?! d = √(dy2 + dx2)

So yeah, my math for that was completely wrong.

The flocking needs work. The little bit I did before work today, to implement an FOV for the bots, doesn't seem to work.

How wd I go about "overloading" the math operators for vectors in plain C?

Okay, the ships(!) flock now but it needs tweaking. They're pretty psychotic. I need to put a cap on their velocity... or something. And a better rule for when there's no other flockers in view. Then flocking for bullets.

Enemies need to have a rule for when & under what conditions to leave the screen. So do powerups.

Enemies that shoot at the player.

Handle player death / game over

Bullet paths. Enemies following paths, too. Probably clean up my code. Take more advantage of subclassing.

I know it's premature, but I'm thinking a bit about optimization, too.

I know unrolling loops is supposed to help, but I don't have any loops I can unroll.

Lasers. A secondary ship.

multiple kinds of powerups.

Ship animations?

accelleration / decelleration? (very slight)

Missles. That's what bullets w/variable paths should be used for. They'll need a timer. They seek until that timer runs out ("fuel"?) at which point they just continue offscreen.

Want to do something w/fluid dynamics. Not sure exactly... Probably some sort of background animation.

Not now, but I will want to niceify the OS X version (& probably the Windows, too) – make them behave more like native apps. Menus, being able to close the window from the title bar, etc.

Missles. Missles need trails. Now, I see 2 possibilities for this. Have each "segment" be a distinct element - say a square - that gets drawn w/o reference to the other elements. OR: draw the trail as polygons connecting 2 elements.

Treat missles as multiple seeking particles that all start moving in different directions, but converge on the same target.

Theme: steampunk. cyberspace. demonic?

Some forms of missles encircle the enemy & create a containing sigil... or something.

Story? I like the idea of a secondary story like in the 1st Katamari Damacy where it's about characters who are affected indirectly by the events in the game.


Ok; but that's not important now. Missles, there should be a cap (upgradeable) on how many are onscreen @ once. if (# < cap>) fire_missle();

while (ship) {
  if √(dx + dy) < d {
    target = ship
    d = √(dx + dy)
  ship = [ship next]

ok, missles are go. And they're quite powerful. Don't really like how they behave, though.

What next? New kinds of enemies? Further enhancements to weapons? Tweaks/improvements?