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.4 and below had a bug with d-pad recognition. If you ever tried to use a d-pad, it crashed the game. This was fixed in version 1.5.
- Pacewar 1.5 also added a "colorblind" mode, activated by pressing F7. This displays a diamond shape over the green ships, and an hourglass shape over the red ships, and also displays the sameships on the appropriate sides of the score bar.
- A couple of you went ahead and tried to run the game with Python 2 even though Pacewar 1.4 and below supported only Python 3. Obviously, these people were not successful. However, Pacewar 1.5 added Python 2 support.
- Because of the added Python 2 support, I was able to build Windows binaries and 32-bit GNU/Linux binaries.
- Control configuration is now saved as of Pacewar 1.5.2.
Pacewar 1.5.2 can be found here:
- Windows (32-bit): https://pyweek.org/media/dl/19/onpon4/pacewar-1.5.2-win32.7z
- GNU/Linux (32-bit): https://pyweek.org/media/dl/19/onpon4/pacewar-1.5.2-gnulinux-i686.tar.xz
- GNU/Linux (64-bit): https://pyweek.org/media/dl/19/onpon4/pacewar-1.5.2-gnulinux-x86_64.tar.xz
- Source code: https://pyweek.org/media/dl/19/onpon4/pacewar-1.5.2-src.tar.gz
(log in to comment)
Comments
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).
cyhawk on 2014/10/26 10:16:
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?