Post-PyWeek improvements

Well, reviewing is over, and some people didn't like this game, but oh well. I think it turned out great, and it has been a fantastic testing ground for the SGE Game Engine.

After the submission period ended, I made several improvements to Pacewar, and I want to report them here:

Pacewar 1.5.2 can be found here:

(log in to comment)

Comments

It still has terrible performance on my system. Like 1 FPS. Is this a known issue that you plan to address, or is it just me?

That's because it uses the SGE Game Engine, which generalizes a lot of stuff, and it's currently implemented with Pygame as a backend, which is not exactly the most efficient choice. So system requirements are somewhat high. It runs somewhat decently on my old laptop with an Intel Celeron processor and Intel GMA, though. 1 FPS... how old is your computer? What kind of CPU and GPU?

When the SGE gets stabilized, I plan to re-implement it in other libraries like PySDL2 and Pyglet, and hopefully one of these other implementations will be faster, or be able to have a speed increase by using PyPy. I want to have a couple games made first, though, so I'm sure of the capabilities of the spec. This game went towards that. I think I'll finish one more game (of a different type), and then I'll finalize version 1.0 of the SGE spec and re-implement it in PySDL2 and/or Pyglet.

One thing you can try, though: this game uses precise collision detection. It's not terribly inefficient, but maybe you would get some performance boost if you turned it off. If you want to try that, go to lines 700 and 830, and change "collision_precise=True" to "collision_precise=False". Actually, could you try that and tell me how much performance boost you get? If it's significant enough, maybe I'll release a version with a slightly more polished implementation of that (more polished as in, assigning a proper bounding box to the bullets).

Oh, one more thing: the game uses limited delta timing. You could go to line 1376 and change "delta=True" to "delta=False" to disable it. That would eliminate any choppiness you might be experiencing and slow down the game instead. YMMV.