Suggestions for a development environment?

James Newton james.newton at openspark.com
Thu Feb 21 13:31:47 EST 2008


Hi Python activity developers,

I am fairly new to Python and to Linux.  I have a number of ideas for
educational activities that I would like to create for the XO.   I'm
currently working on a Snakes and Ladders game.  I have plans for several
other activities, including an Abacus, a game for stimulating mental imagery
and a co-operative game based on micro-loans.

I have spent some weeks now looking for the right tools to help me develop
these activities.  In the hope that I may have missed an obvious but ideal
solution, I'd like to give a summary of what I'm hoping to do, and ask you
for your suggestions. 

Snakes and Ladders
==================
Snakes and Ladders is an implementation of the classic board game
<http://en.wikipedia.org/wiki/Snakes_and_ladders>.  My aim is to help young
children to learn to count (use number names in the correct order, count
each square in order, count each square only once, associate number name
with quantity, ...).

You can find a (non-XO) draft implementation of it at:
<http://olpc-dev.fuelindustries.com/snakes_080116.zip>

Issues
======
1) Show the numbers in a localized writing system (Roman, Arabic,
   Chinese, ...)
2) Show multiple counters on the same square with an offset, so that 
   all are visible.
3) Show the current player's counter at the front (z-order)
4) Use SVG images for the default graphics, to limit file size
5) Allow user to import custom artwork for the background from (say)
   the Paint activity to override the default graphics
6) Allow user to customize the Snake and Ladder start and end points
   to match those in their background image
7) Allow user to import custom sound files from (say) Record
   (Sound files are used to count aloud, so it would be great to use
   a recording of the player's own voice)
8) Allow multiple players to share one machine, and multiple
   machines to share a single game 
9) Show a preferences screen to allow choice of number of players,
   number of dice, and so on.

Modules
=======
So far, I've been using Pygame to display the background and counters at
precise positions on the screen.  My understanding is the PyGTK might more
economical in terms of CPU usage than PyGame, and that it would let me use
Glade to layout the screens.  

On the one hand, I am unsure how I could deal with multiple overlapping
counters [2] or a criss-cross arrangement of snakes and ladders [4, 5] in
PyGTK.  On the other, creating a separate screen for setting seems simpler
in PyGTK than in Pygame.

Is it possible to use the two approaches together?

Platform
========
My background is in Macromedia Director, which I have used at a high level
for over ten years.  I'd probably be most productive most quickly if I could
find a similar authoring environment for Python.  Having said that, I
understand that Python uses a very different metaphor, so, in the long term,
I would be better off using a purely Pythonic environment.  I'm looking for
new good habits to acquire.

I have done most of my Python development so far on Windows, using IDLE.  I
am also very much at ease on Macintosh.  I would guess that the closer my
development environment is to the XO environment, the smoother the
development process will go.  I have managed to get a machine set up to run
Ubuntu 7.10, but I haven't found how to install IDLE on it.

I have found a list of Python IDEs at
<http://linuxmafia.com/faq/Devtools/ides.html>, but no reviews that allow me
to compare them.  I would be willing to pay for an IDE (shareware or
otherwise) if that is what you recommend.


I understand that personal preferences play a large part in choosing both
what modules to use for a particular development and what platform and
environment to work with.  So what would your personal preferences be for
the project I describe above and why?


Thanks in advance for your insight.  In return, I plan to create a series of
tutorials[1], written from my beginner-to-the-whole-Python-Linux-XO-thing
point of view, so that others interested in writing XO activities can get up
and running faster.

James


[1] Examples
For the XO:   <http://wiki.laptop.org/go/Ethiopian_Setup>
For Director: <http://nonlinear.openspark.com/articles/index.htm>




More information about the Devel mailing list