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, and this goal is best served by the AGPLv3 license.
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: Many game engines are based on OpenGL 2.0, or even 2.1, and it's true that GLSL shaders can perform some neat tricks. However, most of our target audience for PySoy-based games are not using "modern" video cards. We've decided to focus on CPU-side features, such as physics and networking, while allowing the engine to run just fine on "budget-grade" video hardware.
Q: use a threaded architecture? isn't that pointless in Python?
A: The thread system, namely the LoopThread class, allows PySoy to utilize all cores, not just one, and even on single processor systems the threaded architecture gives us lower latency in physics and a higher fps. We've been very careful to minimize the use of Python's Global Interpreter Lock (GIL) to keep these high-speed loops from interrupting Python-based game code.
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 extension, 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/shapes.so: undefined symbol: __cxa_pure_virtual
A: You're using an old version of ODE that we don't support. You need ODE 0.8 or higher.
Q: I'm getting an error like this, what is wrong?
ImportError: /usr/lib/python2.4/site-packages/soy/_core.so: 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/ld.so.conf 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: In most cases, using PySoy for 2D games is not the right choice.
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 gluten-lovers. In all seriousness, some of us are, but the name is really just something we have fun with.
