Difference between revisions of "PacMath"
(62 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{TOCright}} | {{TOCright}} | ||
− | + | {{:PacMath/status}} | |
[[Image:Pacmath-logo.png|300px|none|none|alt=PacMath]] | [[Image:Pacmath-logo.png|300px|none|none|alt=PacMath]] | ||
+ | Last updated February 25, 2010 | ||
==Introduction== | ==Introduction== | ||
− | PacMath is an educational game based off the well known 80's arcade game PacMan. | + | PacMath is an educational math game based off the well-known 80's arcade game PacMan. In addition to the original game mechanics, PacMath will add fourth grade level math to this fun and exciting arcade game in order to make learning fun. PacMath will provide the student with different type math problems and in order to solve the problem correctly the student will have to eat the ghost with the correct answer. |
− | + | ||
+ | ==Sketch Up== | ||
− | [[Image:PacMath.jpg| | + | [[Image:PacMath.jpg|200px|thumb|left|alt=startscreen|Version 1]] |
− | [[Image:Start-screen.jpg| | + | [[Image:Start-screen.jpg|200px|thumb|left|alt=startscreen|Version 2]] |
− | [[Image:Eat-screen.jpg| | + | [[Image:Eat-screen.jpg|200px|thumb|left|alt=eatscreen|Version 2]] |
[[Image:Pacman-mockup.jpg|frame|none|alt=eatscreen|Version 3]] | [[Image:Pacman-mockup.jpg|frame|none|alt=eatscreen|Version 3]] | ||
+ | |||
+ | [[Image:PacMath3.PNG]] | ||
==Objective== | ==Objective== | ||
− | The objective of | + | The objective of PacMath is to use the basic mechanics of the 80's arcade game PacMan to teach fourth grade math skills. Currently, PacMath randomly generates questions using the four basic arithmetic functions (add, subtract, multiply, divide), up through the 12 times tables. In the future, we hope to build in functionality that will allow teachers to generate their own custom questions which will allow them to tailor PacMath to their curriculum. |
==Education== | ==Education== | ||
− | [[Media: | + | [[Media: PacMath_Lesson_Plan.doc]] |
Current Standards to be addressed with in this project: <br> | Current Standards to be addressed with in this project: <br> | ||
Line 28: | Line 32: | ||
*4.N.2 - Represent, order, and compare large numbers (to at least 100,000) using various forms, including expanded notation, e.g., 853 = 8 x 100 + 5 x 10 + 3. | *4.N.2 - Represent, order, and compare large numbers (to at least 100,000) using various forms, including expanded notation, e.g., 853 = 8 x 100 + 5 x 10 + 3. | ||
*4.N.8 - Select, use, and explain various meanings and models of multiplication and division of whole numbers. Understand and use the inverse relationship between the two operations. | *4.N.8 - Select, use, and explain various meanings and models of multiplication and division of whole numbers. Understand and use the inverse relationship between the two operations. | ||
− | |||
*4.N.11 - Know multiplication facts through 12 x 12 and related division facts. Use these facts to solve related multiplication problems and compute related problems, e.g., 3 x 5 is related to 30 x 50, 300 x 5, and 30 x 500. | *4.N.11 - Know multiplication facts through 12 x 12 and related division facts. Use these facts to solve related multiplication problems and compute related problems, e.g., 3 x 5 is related to 30 x 50, 300 x 5, and 30 x 500. | ||
*4.N.12 - Add and subtract (up to five-digit numbers) and multiply (up to three digits by two digits) accurately and efficiently. | *4.N.12 - Add and subtract (up to five-digit numbers) and multiply (up to three digits by two digits) accurately and efficiently. | ||
+ | *4.N.13 - Divide up to a three-digit whole number with a single-digit divisor (with or without remainders) accurately and efficiently. Interpret any remainders | ||
[http://www.doe.mass.edu/frameworks/math/2000/final.pdf Link to Mass. Department of Education] | [http://www.doe.mass.edu/frameworks/math/2000/final.pdf Link to Mass. Department of Education] | ||
Line 36: | Line 40: | ||
==Game Elements== | ==Game Elements== | ||
;Activity Icon | ;Activity Icon | ||
− | [[Image: Pacmath-icon.svg|frame|none|alt=startscreen|Version 1]] | + | [[Image: Pacmath-icon.svg|frame|none|alt=startscreen|Version 1]] [[Image: Pacmath-icon_copy.svg|frame|none|alt=startscreen|Version 2]] |
− | [[Image: Pacmath-icon_copy.svg|frame|none|alt=startscreen|Version 2]] | ||
− | |||
− | |||
− | |||
==How It Works== | ==How It Works== | ||
+ | |||
+ | [[Media: PacMath_User_Manual.doc]] | ||
+ | |||
*One Player | *One Player | ||
− | *Board Setup like the Original | + | *Board Setup like the Original Arcade Game |
− | *If the player eats a Power Pellet (4 per level) | + | *Question Appears (3 per level) |
− | + | **If the player eats a Power Pellet (4 per level) the ghosts freeze for a few seconds | |
− | + | **Player has to eat the Enemy with the correct answer | |
− | **Player has to eat the | + | **If the player eats the wrong answer they lose a life, and continue playing, the ghost is warped back to its spawn point |
− | **If the player eats the wrong answer they lose a | + | **If the player eats 100 regular pellets they gain a life |
− | **If the player eats 100 | + | ***A life is an answer attempt, if you run out of lives the game ends |
− | ***A | + | **After the three ghosts have been eaten and answered correctly, a new 'level' (so to speak) begins |
+ | ***At the start of each level, three questions are generated of random operation type (+, -, /, x) | ||
+ | |||
*Questions | *Questions | ||
− | ** | + | **Random question generation |
− | ** | + | **The answer has a programmable limit (12 by default) |
− | ** | + | **Current Types |
+ | ***Multiplication tables | ||
+ | ***Division tables | ||
+ | ***Addition tables | ||
+ | ***Subtraction tables | ||
+ | **Future Types | ||
+ | ***Order of operations | ||
+ | ***Inequalities (given a number, find which ghost's answer is greater than or less than the number) | ||
+ | ***Basic Algebra problems (solve for x) | ||
+ | ***Fractions | ||
===Features=== | ===Features=== | ||
*PacMath | *PacMath | ||
**User will control a yellow sprite | **User will control a yellow sprite | ||
− | **User will attempt to | + | **User will attempt to "eat" numbered sprites based on mathematical questions |
− | * | + | *Question sets |
− | ** | + | **Question type randomly generated at game start |
− | + | *Future Features | |
− | * | ||
− | |||
− | |||
− | |||
**Instructor will be able to see the rankings of a particular student | **Instructor will be able to see the rankings of a particular student | ||
− | * | + | **Student or teacher will be able to choose question type |
**Top 10 scores will be recorded and displayed while game is paused | **Top 10 scores will be recorded and displayed while game is paused | ||
+ | **Adjustable speed (faster for more of a challenge) | ||
===Controls=== | ===Controls=== | ||
− | User will be able to interact with the game through | + | User will be able to interact with the game through the keyboard |
*Keyboard | *Keyboard | ||
**UP-ARROW will move sprite up | **UP-ARROW will move sprite up | ||
Line 79: | Line 90: | ||
**RIGHT-ARROW will move sprite right | **RIGHT-ARROW will move sprite right | ||
**LEFT-ARROW will move sprite left | **LEFT-ARROW will move sprite left | ||
− | **P will pause and resume the game | + | **P will pause and resume the game |
− | * | + | *Future Controls - GameBoy mode |
**UP-ANGLE will move sprite up | **UP-ANGLE will move sprite up | ||
**DOWN-ANGLE will move sprite down | **DOWN-ANGLE will move sprite down | ||
**RIGHT-ANGLE will move sprite right | **RIGHT-ANGLE will move sprite right | ||
**LEFT-ANGLE will move sprite left | **LEFT-ANGLE will move sprite left | ||
− | **SQUARE will pause and resume the game | + | **SQUARE will pause and resume the game |
+ | |||
+ | ==Developer Information== | ||
+ | |||
+ | ===Code Structure=== | ||
− | + | Update: 11/16/2010, Current documentation is located at [http://mikekitson.com/pacmath/ http://mikekitson.com/pacmath/] | |
− | |||
− | |||
+ | Update: <s>2/25/2010, as of this date we have our latest up to date code structure with comments and modules on the following website [http://people.rit.edu/yah3133/ http://people.rit.edu/yah3133/]</s> | ||
− | * | + | Components: |
− | * | + | *Question generation |
+ | *Mazes | ||
*Player | *Player | ||
*Enemies | *Enemies | ||
Line 100: | Line 115: | ||
*Setup (for loading on the XO) | *Setup (for loading on the XO) | ||
− | ==Development== | + | ===Development=== |
− | The code for this project is located at the [http://git.sugarlabs.org/projects/pacmath Git.SugarLabs.org] repositories. The project | + | The code for this project is located at the [http://git.sugarlabs.org/projects/pacmath Git.SugarLabs.org] repositories. |
+ | |||
+ | The current development group includes: | ||
+ | |||
+ | * [[user:classclownfish|Abbi Honeycutt]], email: amh7732 [at] rit.edu | ||
+ | * [[user:Michael_Kitson|Michael Kitson]], email: msk5293 [at] rit.edu | ||
+ | |||
+ | The former group of project members included: | ||
− | |||
* [[user:Yah3133|Yasser Hernandez]], email: yah3133 [at] rit.edu | * [[user:Yah3133|Yasser Hernandez]], email: yah3133 [at] rit.edu | ||
* [[user:Taylor2412|Taylor Plimpton]], email: tjp3947 [at] rit.edu | * [[user:Taylor2412|Taylor Plimpton]], email: tjp3947 [at] rit.edu | ||
Line 109: | Line 130: | ||
* [[user:dxr4305|Dennis Rodriguez]], email: dxr4305 [at] rit.edu | * [[user:dxr4305|Dennis Rodriguez]], email: dxr4305 [at] rit.edu | ||
− | ==Milestones== | + | ====Contribute==== |
+ | |||
+ | To help contribute to PacMath, check out the code and contact | ||
+ | |||
+ | * [[user:classclownfish|Abbi Honeycutt]], email: amh7732 [at] rit.edu | ||
+ | * [[user:Michael_Kitson|Michael Kitson]], email: msk5293 [at] rit.edu | ||
+ | |||
+ | ===Bugs/Todo=== | ||
+ | *Game size is not the proper size for the XO (too small) | ||
+ | **Potential Fix: Increase block size from 25px to 33px | ||
+ | ***Grid stays 25x25, each point on the grid is 33x33 | ||
+ | ***Right hand answer frame increases to 375px in width (from 275px) | ||
+ | ***Bottom question frame stays 75px in height | ||
+ | *Support input via alternate controls while in ebook mode | ||
+ | **Directional angles and square button to pause | ||
+ | *Permanent Documentation solution is required | ||
+ | **non-personal site | ||
+ | **run epydoc nightly for up-to-date documentation | ||
+ | |||
+ | ==Milestones - Fall 2010== | ||
+ | * Week 7 | ||
+ | ** <s>Gain git access</s> (.5 hrs) | ||
+ | ** <s>Evaluate game direction and idea</s> (2 hrs) | ||
+ | ** <s>Determine whether to reuse or refuse the current PacMath code</s> (.5 hrs) - Reuse | ||
+ | <br/> | ||
+ | * Week 8 | ||
+ | ** <s>Document game idea and play (2 hrs)</s> - see wiki | ||
+ | ** <s>Implement pause screen (2 hrs)</s> | ||
+ | ** <s>Decide on feedback mechanism (Score, Lives, …)</s> (1 hr) - Lives, as documented earlier | ||
+ | ** <s>Random question generation (2 hrs)</s> | ||
+ | <br/> | ||
+ | * Week 9 | ||
+ | ** <s>Sugarize the activity (5 hrs)</s> - VTE widget, temporary solution? | ||
+ | ** <s>Implement multiple level capability</s> (5 hrs) | ||
+ | ** <s>Refactor collision detection system</s> (5 hrs) | ||
+ | <br/> | ||
+ | * Week 10 | ||
+ | ** <s>Improve game speed</s> (5 hrs) - runs great on the XO! | ||
+ | ** <s>Beautify game, intuitively redesign the UI</s> (5 hrs) | ||
+ | ** Refine ghost movement (5 hrs) - deemed out of scope for current time frame | ||
+ | <br/> | ||
+ | * Week 11 | ||
+ | ** Finishing touches (2 hrs) | ||
+ | ** <s>Usability testing</s> (2 hrs) - delayed until sized to XO | ||
+ | ** <s>Release evaluation</s> (1 hr) - delayed until sized to XO | ||
+ | ** <s>Potential release</s> (1 hr) - delayed until sized to XO | ||
+ | <br/> | ||
+ | Division of Labor: | ||
+ | <br/> | ||
+ | *Mike: | ||
+ | ** Ghost movement | ||
+ | ** Implementation of feedback mechanism | ||
+ | ** Implement pause screen | ||
+ | <br/> | ||
+ | *Abbi: | ||
+ | ** Sugarization | ||
+ | ** New Images | ||
+ | ** Map/Maze representation | ||
+ | <br> | ||
+ | * Both: | ||
+ | ** Game design and idea | ||
+ | ** Collision Detection | ||
+ | ** Game Speed | ||
+ | ** UI redesign | ||
+ | |||
+ | ==Milestones - Winter 2009== | ||
+ | Weeks correspond to RIT Quarter Schedule | ||
* Week 6 ( January 15th 2010 - January 22nd 2010 ) | * Week 6 ( January 15th 2010 - January 22nd 2010 ) | ||
Line 127: | Line 214: | ||
***<s>Just Maze</s> | ***<s>Just Maze</s> | ||
***<s>Just PacMath</s> | ***<s>Just PacMath</s> | ||
− | ***<s>Just | + | ***<s>Just Enemies</s> |
<br/> | <br/> | ||
* Week 9 ( February 5th 2010 - February 12th 2010 ) | * Week 9 ( February 5th 2010 - February 12th 2010 ) | ||
Line 139: | Line 226: | ||
<br/> | <br/> | ||
* Week 11 ( February 19th 2010 - February 26th 2010 ) | * Week 11 ( February 19th 2010 - February 26th 2010 ) | ||
+ | **Final Push! | ||
**Final presentation | **Final presentation | ||
==Community== | ==Community== | ||
Feedback from the community | Feedback from the community | ||
− | |||
− | |||
− | |||
− | |||
+ | ===Gary (January 21, 2010)=== | ||
+ | |||
+ | The PacMath sketches look great, can't wait to give it a play through :-)<BR>Regarding questions/game settings, | ||
+ | make sure you have a play of Walter's VisualMatch activity and see how the toolbar provides lots of flexibility to | ||
+ | the game challenge type. It would seem like a good approach to let the user choose the starting case (perhaps | ||
+ | via a teachers verbal guidance in class) and then have the general math difficulty level increase as they complete | ||
+ | level to level. It would be very desirable if you would perform the gettext internationalization (i18n) that is needed | ||
+ | to get this set up in Pootle for localization into other languages (i.e. generate POT file, set po directory in git repo, | ||
+ | make user:pootle a committer, file Trac bug with component = localization requesting Pootle hosting, etc.). | ||
+ | [[User:Cjl|Cjl]] 07:01, 12 February 2010 (UTC) | ||
+ | |||
+ | ===Walter Bender (February 11, 2010)=== | ||
+ | |||
+ | I would recommend you look at how other pygame-based activities are | ||
+ | packaged. For example, Maze. | ||
+ | |||
+ | ===Tomeu Vizoso (February 12, 2010)=== | ||
+ | |||
+ | Also, Jim's book could help clarifying several concepts, though I | ||
+ | don't see anything specific to pygame/sugargame. | ||
+ | |||
+ | ===Jim Simmons (February 12, 2010)=== | ||
+ | |||
+ | There is a project in Gitorious that sounds like it might be of use to you: | ||
+ | http://git.sugarlabs.org/projects/sugargame | ||
+ | I haven't tried it myself, but the description sounds promising. | ||
− | + | == License == | |
+ | All of PacMath is licensed | ||
+ | http://i.creativecommons.org/l/by-sa/3.0/88x31.png | ||
+ | <br/> | ||
+ | [http://creativecommons.org/licenses/by-sa/3.0/us/ http://creativecommons.org/licenses/by-sa/3.0/us/] |
Latest revision as of 11:12, 16 November 2010
Status: | Active development in progress (restarted) |
Group Members: | Michael Kitson, Abbi Honeycutt |
Fourth grade level math game based on the classic arcade game PacMan |
Last updated February 25, 2010
Introduction
PacMath is an educational math game based off the well-known 80's arcade game PacMan. In addition to the original game mechanics, PacMath will add fourth grade level math to this fun and exciting arcade game in order to make learning fun. PacMath will provide the student with different type math problems and in order to solve the problem correctly the student will have to eat the ghost with the correct answer.
Sketch Up
Objective
The objective of PacMath is to use the basic mechanics of the 80's arcade game PacMan to teach fourth grade math skills. Currently, PacMath randomly generates questions using the four basic arithmetic functions (add, subtract, multiply, divide), up through the 12 times tables. In the future, we hope to build in functionality that will allow teachers to generate their own custom questions which will allow them to tailor PacMath to their curriculum.
Education
Media: PacMath_Lesson_Plan.doc
Current Standards to be addressed with in this project:
(As per standards of the Massachusetts Department of Education)
- 4.N.2 - Represent, order, and compare large numbers (to at least 100,000) using various forms, including expanded notation, e.g., 853 = 8 x 100 + 5 x 10 + 3.
- 4.N.8 - Select, use, and explain various meanings and models of multiplication and division of whole numbers. Understand and use the inverse relationship between the two operations.
- 4.N.11 - Know multiplication facts through 12 x 12 and related division facts. Use these facts to solve related multiplication problems and compute related problems, e.g., 3 x 5 is related to 30 x 50, 300 x 5, and 30 x 500.
- 4.N.12 - Add and subtract (up to five-digit numbers) and multiply (up to three digits by two digits) accurately and efficiently.
- 4.N.13 - Divide up to a three-digit whole number with a single-digit divisor (with or without remainders) accurately and efficiently. Interpret any remainders
Link to Mass. Department of Education
Game Elements
- Activity Icon
How It Works
Media: PacMath_User_Manual.doc
- One Player
- Board Setup like the Original Arcade Game
- Question Appears (3 per level)
- If the player eats a Power Pellet (4 per level) the ghosts freeze for a few seconds
- Player has to eat the Enemy with the correct answer
- If the player eats the wrong answer they lose a life, and continue playing, the ghost is warped back to its spawn point
- If the player eats 100 regular pellets they gain a life
- A life is an answer attempt, if you run out of lives the game ends
- After the three ghosts have been eaten and answered correctly, a new 'level' (so to speak) begins
- At the start of each level, three questions are generated of random operation type (+, -, /, x)
- Questions
- Random question generation
- The answer has a programmable limit (12 by default)
- Current Types
- Multiplication tables
- Division tables
- Addition tables
- Subtraction tables
- Future Types
- Order of operations
- Inequalities (given a number, find which ghost's answer is greater than or less than the number)
- Basic Algebra problems (solve for x)
- Fractions
Features
- PacMath
- User will control a yellow sprite
- User will attempt to "eat" numbered sprites based on mathematical questions
- Question sets
- Question type randomly generated at game start
- Future Features
- Instructor will be able to see the rankings of a particular student
- Student or teacher will be able to choose question type
- Top 10 scores will be recorded and displayed while game is paused
- Adjustable speed (faster for more of a challenge)
Controls
User will be able to interact with the game through the keyboard
- Keyboard
- UP-ARROW will move sprite up
- DOWN-ARROW will move sprite down
- RIGHT-ARROW will move sprite right
- LEFT-ARROW will move sprite left
- P will pause and resume the game
- Future Controls - GameBoy mode
- UP-ANGLE will move sprite up
- DOWN-ANGLE will move sprite down
- RIGHT-ANGLE will move sprite right
- LEFT-ANGLE will move sprite left
- SQUARE will pause and resume the game
Developer Information
Code Structure
Update: 11/16/2010, Current documentation is located at http://mikekitson.com/pacmath/
Update: 2/25/2010, as of this date we have our latest up to date code structure with comments and modules on the following website http://people.rit.edu/yah3133/
Components:
- Question generation
- Mazes
- Player
- Enemies
- Game (control)
- Activity (main)
- Setup (for loading on the XO)
Development
The code for this project is located at the Git.SugarLabs.org repositories.
The current development group includes:
- Abbi Honeycutt, email: amh7732 [at] rit.edu
- Michael Kitson, email: msk5293 [at] rit.edu
The former group of project members included:
- Yasser Hernandez, email: yah3133 [at] rit.edu
- Taylor Plimpton, email: tjp3947 [at] rit.edu
- Abel Rendon Jr, email: axr9780 [at] rit.edu
- Dennis Rodriguez, email: dxr4305 [at] rit.edu
Contribute
To help contribute to PacMath, check out the code and contact
- Abbi Honeycutt, email: amh7732 [at] rit.edu
- Michael Kitson, email: msk5293 [at] rit.edu
Bugs/Todo
- Game size is not the proper size for the XO (too small)
- Potential Fix: Increase block size from 25px to 33px
- Grid stays 25x25, each point on the grid is 33x33
- Right hand answer frame increases to 375px in width (from 275px)
- Bottom question frame stays 75px in height
- Potential Fix: Increase block size from 25px to 33px
- Support input via alternate controls while in ebook mode
- Directional angles and square button to pause
- Permanent Documentation solution is required
- non-personal site
- run epydoc nightly for up-to-date documentation
Milestones - Fall 2010
- Week 7
Gain git access(.5 hrs)Evaluate game direction and idea(2 hrs)Determine whether to reuse or refuse the current PacMath code(.5 hrs) - Reuse
- Week 8
Document game idea and play (2 hrs)- see wikiImplement pause screen (2 hrs)Decide on feedback mechanism (Score, Lives, …)(1 hr) - Lives, as documented earlierRandom question generation (2 hrs)
- Week 9
Sugarize the activity (5 hrs)- VTE widget, temporary solution?Implement multiple level capability(5 hrs)Refactor collision detection system(5 hrs)
- Week 10
Improve game speed(5 hrs) - runs great on the XO!Beautify game, intuitively redesign the UI(5 hrs)- Refine ghost movement (5 hrs) - deemed out of scope for current time frame
- Week 11
- Finishing touches (2 hrs)
Usability testing(2 hrs) - delayed until sized to XORelease evaluation(1 hr) - delayed until sized to XOPotential release(1 hr) - delayed until sized to XO
Division of Labor:
- Mike:
- Ghost movement
- Implementation of feedback mechanism
- Implement pause screen
- Abbi:
- Sugarization
- New Images
- Map/Maze representation
- Both:
- Game design and idea
- Collision Detection
- Game Speed
- UI redesign
Milestones - Winter 2009
Weeks correspond to RIT Quarter Schedule
- Week 6 ( January 15th 2010 - January 22nd 2010 )
Get git working on git.sugarlabs.orgFinish adding details to the PacMath WikiMake a Sketch-Up for the gameE-mail Math4 Mailing List informing everyone about our project and ask for ideas and volunteers
- Week 7 ( January 22nd 2010 - January 29th 2010 )
Get all the code sections defined wellSplit up code sectionsStart initial basic codingTest an initial simple blank screen
- Week 8 ( January 29th 2010 - February 5th 2010 )
- Test segments of PacMath
Just MazeJust PacMathJust Enemies
- Test segments of PacMath
- Week 9 ( February 5th 2010 - February 12th 2010 )
Test the basic activityPut the pieces together- User Group Test
Pick a License for the project
- Week 10 ( February 12th 2010 - February 19th 2010 )
- Wrap Up
- Week 11 ( February 19th 2010 - February 26th 2010 )
- Final Push!
- Final presentation
Community
Feedback from the community
Gary (January 21, 2010)
The PacMath sketches look great, can't wait to give it a play through :-)
Regarding questions/game settings, make sure you have a play of Walter's VisualMatch activity and see how the toolbar provides lots of flexibility to the game challenge type. It would seem like a good approach to let the user choose the starting case (perhaps via a teachers verbal guidance in class) and then have the general math difficulty level increase as they complete level to level. It would be very desirable if you would perform the gettext internationalization (i18n) that is needed to get this set up in Pootle for localization into other languages (i.e. generate POT file, set po directory in git repo, make user:pootle a committer, file Trac bug with component = localization requesting Pootle hosting, etc.). Cjl 07:01, 12 February 2010 (UTC)
Walter Bender (February 11, 2010)
I would recommend you look at how other pygame-based activities are packaged. For example, Maze.
Tomeu Vizoso (February 12, 2010)
Also, Jim's book could help clarifying several concepts, though I don't see anything specific to pygame/sugargame.
Jim Simmons (February 12, 2010)
There is a project in Gitorious that sounds like it might be of use to you: http://git.sugarlabs.org/projects/sugargame I haven't tried it myself, but the description sounds promising.
License
All of PacMath is licensed
http://creativecommons.org/licenses/by-sa/3.0/us/