This is PySoy's Frequently Asked Questions page. These are not a selection of questions that we think will be frequently asked; they have been frequently asked.

Design Choices

why did you…

Q: license the engine under the  AGPLv3?

A: Many people have commented that PySoy would be more popular if licensed under a MIT/BSD style license. While likely true, our goal is to promote and enable the creation of copyleft games. The AGPLv3 license best protects player's freedoms to use, modify, and redistribute PySoy-based games.

Q: build the engine for  Python?

A: Python was chosen due to it being easy to learn, fast to develop with, and because it's the scripting language used in both 2d and 3d art software ( Blender,  GIMP, etc). It's also in fairly wide use in the proprietary games industry, both for add-on scripts and the core engine, and is cross-platform. With all the speed-intensive functions in C, there's really not a noticeable difference to players.

Q: base the engine on OpenGL 1.4, isn't that really outdated?

A: While many game engines are based on OpenGL 2.0+, we aim for PySoy-based games to be playable on virtually any modern system including netbooks and smartphones. We've decided to focus on convenience and fun for everyone, not just "gamers".

Q: use a threaded architecture? isn't that pointless in Python?

A: Much of PySoy runs in GObject-based threads which never need to hold Python's Global Interpreter Lock (GIL), and thus, PySoy can utilize all available cores on a server.

Q: use so many  Gnome libraries?

A: PySoy's primary development target is the Gnome desktop, as is used by  Ubuntu and most other modern GNU/Linux distributions. As these libraries are cross-platform PySoy is also available on MacOSX and Windows.

Q: use  XMPP for networking?

A: We've seen from existing free software game networks that dedicated chat systems fail at building a viable player community. By implementing  XMPP (aka Jabber) we allow any player using any PySoy based game to chat with any user on a federated server. Players will be able to log in using their existing account(s), join chat rooms for different games, utilize teamspeak-type chat via the  Jingle extensions, and advertise their own servers. The actual game play is done via  ICE-UDP for minimal latency.

Build Problems

i can't get it installed!

Q: GCC cannot find xf86vmode.h, reporting an error like this:

src/textures/soy.textures.c:43:38: error: X11/extensions/xf86vmode.h: No such file or directory

A: If you're on a Debian-derived distro (ie, Ubuntu), that header is provided in the x11proto-xf86vidmode-dev package. You will likely also need to install the libxxf86vm-dev package.

Import Problems

i get a segfault on import

Q: I'm getting an error like this, what is wrong?

ImportError: /usr/lib/python2.5/site-packages/soy/ undefined symbol: __cxa_pure_virtual

A: You're using an old version of ODE that we don't support. You need ODE 0.10 or higher.

Q: I'm getting an error like this, what is wrong?

ImportError: /usr/lib/python2.4/site-packages/soy/ undefined symbol: dInitODE

A: You either don't have ODE installed, or it is installed in a path your distribution is not configured to search for libraries in. Check /etc/ for the ODE install path.

Q: Are these errors a reflection on the quality of PySoy?

A: Of course not! This is happening because PySoy is still in Beta, and as such, isn't in distros' repositories, so you can install without dependencies. Then bad things happen because they're missing or too old.

Should I...?

Q: Should I use PySoy for 2D games?

A: If you're looking at a 3d side scroller, akin to Little Big Planet, PySoy may be ideal. For true 2D games you may want to consider  PyGame.

Q: Should I use PySoy for my project yet?

A: Until we've released PySoy 1.0, it's not a very good idea to use PySoy for a major project, as we haven't nailed everything down yet. APIs may appear, disappear, or change in functionality or interface. If you want to play around with it and see what it has to offer, go ahead! Catastrophic changes don't happen very often, we just can't guarantee that they won't yet.

Q: (Where) Should I start?

A: The Part 1: A Spinning Cube shows you how to setup a scene and animate a 3d PySoy object, which is a pretty good start. Also take a look in the /tests and /examples in your pysoy root directory. (And yes, you should start).

Other ...?

Q: Are you all a bunch of vegetarians?

A: We're not anti-meat, we're anti-wheat, and to be a true part of the PySoy team you must swear an oath to rid the world of heathen gluten-lovers. In all seriousness, some of us are, but the name is really just something we have fun with.