pygame is
Simple DirectMedia Layer is
Site Swing

PolyPlay - 1.4.0

Francesco Mastellone (effeemme)



Polyplay(I really am looking for a better name) is a physics playground based heavily on soft bodies. Drag around structures of masses and springs, make landscapes of lines, make walking structures, flood the screen with fluid, or just goof around with the character.


Warning - this is a very stripped down and early release of what will become PolyPlay 2. If you want something actually nice to play with, go for the 1.3.0 version.

You thought I was done with PolyPlay? Well you were wrong =p

I discovered the beauty of Cairo, a vectorial graphics library with Python bindings, and thought that it's what I wanted for PolyPlay. I plan to make PolyPlay use exclusively that and Clutter(another spiffy library) somewhere later, but in the meanwhile I'm going to improve PolyPlay as a Pygame application.

I've learned much since I last coded it, and I now realize that I've got much cleaning up to do, and I definitely wanna try out some new things. At the time I didn't know of ConfConfig, pickle, and other nifty stuff.

This new release of PolyPlay is very stripped down, as I worked much on improving the interface and temporarily removed access to some functions. Some stuff that's avaible and improved or new altogether:
-The select function has been merged with the move function. You can now select groups of masses and move them in two clicks
-The structure making system is no longer based on the separate mass & constraint making functions, but a merge of the two. There's also move visual information about what your next click will create.
-Actuator Groups: if you want a line to grow and shrink periodically, you can now add it to an actuator group and modify the group's settings instead of those of all the group's lines.
-The 'context' system: tabs and other widgets appear as you need them, based on what tool you're using. The context bar contains the following contexts: edit settings - select/move - make structures - edit actuator groups

Temporarily removed features:
-Saving and Loading. Those will be implemented with Pickle. Or YAML. Or XML.
-Collisions. They need reworking. I will try implementing the collision of masses against curves, and that'll be ten different degrees of cool. However, slow. I might rewrite the physics engine in C++. Might, because I haven't the slightest clue about interfacing C++ and Python. I can and could write it right now but would not be able to use it.
-Fluids. They were too slow anyway. Dunno if they'll be back.

Planned features:
-Cairo/Clutter interface
-An interactive tutorial! The game is almost incomprehensible at this stage of development, a tutorial would help loads.


Home Page:


click to view original size


PolyPlay - 1.4.0 - Aug 25, 2008
PolyPlay - 1.3.0 - Apr 3, 2008
PolyPlay - 1.2.2 - Mar 21, 2008
PolyPlay - 1.2.1 - Mar 17, 2008
PolyPlay - 1.2.0 - Mar 16, 2008
PolyPlay - 1.1.0 - Mar 13, 2008
PolyPlay - 1.0.4 - Mar 9, 2008
PolyPlay - 1.0.3 - Mar 9, 2008
PolyPlay - 1.0.2 - Mar 7, 2008
PolyPlay - 1.0.1 - Feb 5, 2008
PolyPlay - 1 - Feb 2, 2008 account Comments

If you wish to leave a comment with your account, please sign in first.

September 21, 2009 4:17pm - Mitchell K - nickname: (mk12) - 4/5
Looks cool! Keep working on it.
April 8, 2008 11:51pm - Lenard Lindstrom - nickname: (lenl)
The problem is with pygame.draw.aaline and has been around for awhile. It is fixed in SVN. PolyPlay no longer crashes. Now I just have to try an figure out the controls.
April 7, 2008 8:37am - Francesco Mastellone - nickname: (effeemme)
That's odd. It works fine with pygame 1.8 under Ubuntu Linux. Mind to post the traceback?
April 6, 2008 5:30pm - Lenard Lindstrom - nickname: (lenl)
Well, I cannot say much right now except that for Pygame 1.8 on Windows I get a "Segmentation Fault" caught by the Pygame parachute after the Walker demo loads and starts. Unless PolyWalker is using ctypes or something - it doesn't appear to - then I have a Pygame bug to chase down. I have eliminated psyco as the cause though.
April 5, 2008 7:57am - Francesco Mastellone - nickname: (effeemme)
Not many people seem to be playing it. Is it the concept? Is it the implementation? Should I write a tutorial? Comment! This is open source for a reason after all =)
March 27, 2008 4:46pm - Andy Meier - nickname: (jeorb)
Thanks for the tip! Speed 1.2 and jump 14 are just what I was looking for.
March 27, 2008 9:59am - Francesco Mastellone - nickname: (effeemme)
You can make the character faster by yourself right now, it has convenient speed and jump variables =)
As for warping him back into the screen... I have a pretty good idea for 1.3.0, you'll see soon =)
March 25, 2008 5:13pm - Andy Meier - nickname: (jeorb)
I see collision in your latest video. That is a great improvement and I can't wait to try it.

Could you make the character a lot faster and able to jump higher? Interacting using the character with the keyboard is a lot less fun than using the mouse right now.

Also, a way to warp the character back to the center of the screen would be nice for when it falls off the edge of the platform.
March 18, 2008 4:38pm - Andy Meier - nickname: (jeorb) - 5/5
Very fun. Keep going!
February 3, 2008 9:37am - Francesco Mastellone - nickname: (effeemme)
Nope, I programmed my own.
February 3, 2008 5:19am - Luca Fabbri - nickname: (keul) - 5/5
Video are somehow impressive! Are you using PyODE or others python physic modules?
February 2, 2008 8:27pm - Francesco Mastellone - nickname: (effeemme)
Alright, try again. This time I'm not using some wacky python module to execute a file in another folder.
To Windows users: run run.bat
To anyone else: run lib/
February 2, 2008 8:07pm - Andy Hanson - nickname: (rhodiumgames)
Yep. Main just isn't there. Maybe it got left out of the zipping process?
February 2, 2008 7:58pm - Francesco Mastellone - nickname: (effeemme)
Hmm, you did extract the Folder from the zip file right?
February 2, 2008 7:54pm - Andy Hanson - nickname: (rhodiumgames)
Traceback (most recent call last):
File "C:\Documents and Settings\Owner\Desktop\PolyPlay\PolyPlay\", line 12, in <module>
from main import Main
ImportError: No module named main

This is what I get when I run

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
Feb 21, 2017

Jan 31, 2017

Jan 24, 2017

Jan 18, 2017

Jan 7, 2017

Dec 30, 2016

Dec 8, 2016

Nov 28, 2016

Nov 27, 2016

... more!
for pygame related questions, comments, and suggestions, please see help (lists, irc)