Differences between revisions 7 and 8
Revision 7 as of 2002-09-03 11:46:20
Size: 2069
Editor: proxy30
Comment:
Revision 8 as of 2002-09-19 08:00:06
Size: 3201
Editor: c-24-126-153-237
Comment:
Deletions are marked like this. Additions are marked like this.
Line 28: Line 28:


Not every type of game will work well with python. Although I must disagree that none of the games written in pygame are action or arcade games. Pygame can do extremely well in these environments. My first game, SolarWolf, is an action arcade game. It runs locked and limited at 40 frames per second with its 800x600 graphics, with generally over 50 animated objects on the screen. It uses time-scaling to control animations on slower machines, and has been rated very playable by people on less than 200mhz pentiums.

The general performance problems people have with pygame are related to using the SDL library. Without special tweaking, games usually run on SDL with no hardware acceleration. This can take a noticeable speed hit on games with fullscreen scrolling graphics. Generally, speeding up the python code will have minimal performance games, but optimizing what is drawn will have significant impact.

Still, I concede that there are types of games that just won't be suited towards python. But the situation is far more hopeful than the experiences of 'Escape of the Unicorn'.

-- Pete 'ShredWheat' Shinners

Game Programming With Python

You can write whole games in Python using [http://www.pygame.org/ PyGame].

If you have an existing game and want to add a scripting engine to make it more flexible, Python is also a very good choice. But you'll have to learn about IntegratingPythonWithOtherLanguages.

Read [http://www.onlamp.com/pub/a/python/2002/07/11/pythonnews.html Humongous Python] for a case study.

Another library is [http://www.alobbs.com/pykyra PyKyra]:

  • PyKyra is a fast game development framework for Python. It is based in SDL and the Kyra engine. In addition to the standard features of Kyra, PyKyra also supports MPEG video, sound (MP3, Ogg Vorbis, Wav and Multichannel module files), direct images reading and much more. -- InTheirOwnWords

Testimony

I tried porting [http://taoriver.net/eouwiki/ Escape of the Unicorn] to Python/PySDL, but the game dropped from 30 fps to 6 fps.

After a lot of profiling and unrolling screen draw code, I was able to reach 8 frames a second.

If you look at PyGame and PySDL games, you'll notice that they aren't action or arcade games.

I have only heard of few efforts that succeeded in embedding Python in C++, and I have forgotten them. For the most part, people (including Humongous, as described in [http://www.onlamp.com/pub/a/python/2002/07/11/pythonnews.html the case study described]) extend Python with C++. If you are going to mix Python and C++, I think it is best to extend Python- that is the intended direction. I consider this a failing of Python.

If you want to embed a scripting system because you already have a huge system, embed something like Guile. I think it is an inferior solution, but that it will result in a lot less heartbreak.

I suspect I'll try to rewrite Escape of the Unicorn as a C++/Python mixture some day, and pay careful attention to how I cut the C++/Python lines. I think only a few things need to be given to C++, such as display loops, animation management, and collision detection.

-- LionKimbro DateTime(2002-07-19T10:45:57)

Not every type of game will work well with python. Although I must disagree that none of the games written in pygame are action or arcade games. Pygame can do extremely well in these environments. My first game, SolarWolf, is an action arcade game. It runs locked and limited at 40 frames per second with its 800x600 graphics, with generally over 50 animated objects on the screen. It uses time-scaling to control animations on slower machines, and has been rated very playable by people on less than 200mhz pentiums.

The general performance problems people have with pygame are related to using the SDL library. Without special tweaking, games usually run on SDL with no hardware acceleration. This can take a noticeable speed hit on games with fullscreen scrolling graphics. Generally, speeding up the python code will have minimal performance games, but optimizing what is drawn will have significant impact.

Still, I concede that there are types of games that just won't be suited towards python. But the situation is far more hopeful than the experiences of 'Escape of the Unicorn'.

-- Pete 'ShredWheat' Shinners

GameProgramming (last edited 2020-06-12 09:29:10 by DavidBoddie)

Unable to edit the page? See the FrontPage for instructions.