Pandora How To Build A Game Specific To Pandora Without A Pandora?


Kulangot_AG

Still Fresh
Joined
Oct 19, 2009
Messages
10
Hello,

I'm currently making a strategy role playing game (Japanese-style SRPG similar to FF Tactics) in pygame, but I don't have a Pandora (yet). I'm not really a good programmer so even if I had one, I doubt I would be able to cross-compile anything.

When I complete the game and have tested the beta (linux build) sometime in September-October (yep I'm entering it into IGF as well), could I swing by here and ask for people willing to port it more specifically for the handheld? It's going to be a freeware game but it's an original IP and you can say the developer (myself) already wants Pandora as a primary platform.

To start with, I will have the game resolution set to 800 x 480 and I am making the user interface buttons large as befits a handheld platform. However it is all mouse-based point-and-click so I'm not sure how that would interface to the Pandora control pad. Maybe should I get the keyboard shortcuts working that will suffice?

Is there anything else I will need to keep in mind while making the game so that the port will go as smoothly as possible? Thanks.
 
Hi. :p

I can't help you with a lot here, as I'm not a coder or anything like that. However, regarding what you mention about point-and-click, the Pandora's analogue nubs can act as a mouse substitute (by default, the left nub is used for movement, and the right one is used for left-clicking by moving it to the left, right-clicking by moving it to the right, and double-clicking by moving it upwards), and the touch-screen can also be used in this way, if that's of any help to you. :)
 
I'm no expert, but anything written in Python should just run on the Pandora. AFAIK, The D-Pad is mapped to the arrow keys, the A button is mapped to Home, the B button is mapped to End, the X button is mapped to Page Down, the Y button is mapped to Page Up, the L button is mapped to Right Shift, the R button is mapped to Right Control, and you can use mouse functions for the touch screen.
 
qemu will give you an ARM environment to build natively inside of... now if only someone at OP would sit down and have a talk with the qemu people about hardware emulations of the pandora for QEMU.... hmm... wonder how that would go.... :p
 
Usually you won't need the ARM environment. Especially not for a Python game.

But yeah, get the keyboard controls working and you should be fine, although I recommend eventually grabbing a gamepad and using that too so you can have a better feel for how the controls work in a more authentic way.
 
Thanks! I decided I wanted to implement the following: End as 'Confirm Selection', Page Down as 'Cancel Selection', Page Up as 'Main Menu', and Right Shift / Right Control to cycle through characters in the inventory screens since that's similar to conventional controls on the DS and Playstation. I'll really be pleased if the game will work straight out of the box!
 
Let me ask a parallel question. Is there a compiler like py2exe for the Pandora that will allow the creation of faster (and more optimal) machine code?

I'm working on a game in Python that I'd like to port to the Pandora, and am concerned about the performance of SDL and such on the device.
 
You should be in pretty good shape; honouring the resolution guidelines, and trying not to go hogwild with CPU or graphics abuse, and you should be fine. (Touchscreen acts as a mouse, btw, in a lot of ways too .. so click-on-button type stuff should work out of box for you that way as well.)

Once you get half ready for alpha or beta, come request, folks will help out :)

jeff
 
Updownupdownleftright said:
Thanks! I decided I wanted to implement the following: End as 'Confirm Selection', Page Down as 'Cancel Selection', Page Up as 'Main Menu', and Right Shift / Right Control to cycle through characters in the inventory screens since that's similar to conventional controls on the DS and Playstation. I'll really be pleased if the game will work straight out of the box!
Most of the stuff I packaged worked out of the box flawlessly. I cant see any reason why your work (with this ^^ in mind) wont :)
I'm willing to help anybody to setup their cross-compilation environnement (already done that :) ) Or I can create the package for you if you want too :)
 
Last edited by a moderator:
py2exe is not a compiler. It's just a frontend that includes Python and your program, and launches the former with the latter. The only benefit is that it can be distributed to platforms w/o requiring a Python installation. Since Pandora has Python there wouldn't be any point to this and it'd just bloat your program size a lot.

I'm not aware of any native "AOT" or "JIT" style compilers for Python that target ARM, only x86. pypy-c-jit looks promising, but it still needs an ARM machine code generating backend.

SDL performance should be entirely independent of Python performance. Improving performance of SDL blits and screen surfaces and whatnot is still an open problem, but in the state it's currently in Pandora should still offer pretty good SDL performance if you don't push it too hard.
 
Exophase said:
py2exe is not a compiler. It's just a frontend that includes Python and your program, and launches the former with the latter.
Oh? Good to know.

Exophase said:
The only benefit is that it can be distributed to platforms w/o requiring a Python installation. Since Pandora has Python there wouldn't be any point to this and it'd just bloat your program size a lot.
I meant to ask: Which version of Python comes on the Pandora? I'm developing in Python 3.1 and some libraries built for that version.

Exophase said:
SDL performance should be entirely independent of Python performance. Improving performance of SDL blits and screen surfaces and whatnot is still an open problem, but in the state it's currently in Pandora should still offer pretty good SDL performance if you don't push it too hard.
Also good to know. Thanks for your insight.
 
Last edited by a moderator:
I'm really glad to be learning Python, and especially at this important time when all computing devices are converging to common standards.

A few more questions...

Looking further on the Pandora interface, I noticed that the 'Start' is mapped to 'Alt' and 'Select' is mapped to 'Ctrl'... which Alt and Ctrl are they if it were a desktop computer, left or right? I'm guessing... Left? Thx again.
 
Did anyone get the GLES stuff working under Python on the Pandora (ES 1.1 or ES 2.0, either one)?
 
Aethix said:
I'm no expert, but anything written in Python should just run on the Pandora. AFAIK, The D-Pad is mapped to the arrow keys, the A button is mapped to Home, the B button is mapped to End, the X button is mapped to Page Down, the Y button is mapped to Page Up, the L button is mapped to Right Shift, the R button is mapped to Right Control, and you can use mouse functions for the touch screen.
Good answer!

I rather assumed (or I might have heard it at some time) that the touch-screen = mouse.

@^v^v<> Convert your images and use dirty rects.
 
Last edited by a moderator:
Back
Top