X2o (activity): Difference between revisions

From OLPC
Jump to navigation Jump to search
 
(31 intermediate revisions by 9 users not shown)
Line 3: Line 3:
{{ OBX activity | [[Image: Activity-x2o.svg|40px]]|extra}}
{{ OBX activity | [[Image: Activity-x2o.svg|40px]]|extra}}
{{ OBX source dev|activities/x2o}}
{{ OBX source dev|activities/x2o}}
{{ OBX xobundle|http://dev.laptop.org/~alevenson/x2o-3.xo|x2o}}
{{ OBX xobundle|http://dev.laptop.org/~alevenson/x2o-9.xo|x2o-9}}
{{ OBX team | [[User:alexlevenson|Alex Levenson]],}}
{{ OBX team | [[User:alexlevenson|Alex Levenson]],}}
{{olpcboxbottom}}
{{olpcboxbottom}}
Line 16: Line 16:


==Components List==
==Components List==
These are the "things" that can be in a level and effect the physics of the level. <b>Bold</b> indicates already implemented.
These are the "things" that can be in a level and affect the physics of the level. <b>Bold</b> indicates already implemented.


*<b>Ramps</b> are fixed in space (they don't fall or move) obstacles. They can be used as walls, or as ramps for things to slide on, or as a surface to bounce off of.
*<b>Ramps</b> are fixed in space (they don't fall or move obstacles). They can be used as walls, or as ramps for things to slide on, or as a surface to bounce off of.
*<b>Bouncy Balls</b> are small, light, and bouncy!
*<b>Bouncy Balls</b> are small, light, and bouncy!
*<b>Bowling Balls</b> are big, heavy, and not bouncy at all...
*<b>Bowling Balls</b> are big, heavy, and not bouncy at all...
*<b>See-Saws</b> consist of a solid immovable base/fulcrum and a board hinged to the top of the base. They make good dynamic ramps (switches?) and catapults
*<b>See-Saws</b> consist of a solid immovable base/fulcrum and a board hinged to the top of the base. They make good dynamic ramps (switches?) and catapults
*<b>Fans</b> blow air (and objects) strait up. Good for keeping things airborne!
*<b>Fans</b> blow air (and objects) straight up. Good for keeping things airborne!
*Gears, Joints, pulleys and the like very soon to come
*Gears, Joints, pulleys and the like very soon to come
*Baseballs, light but not bouncy
*Baseballs, light but not bouncy
Line 32: Line 32:
*Connectors, think of it as a rigid rope
*Connectors, think of it as a rigid rope
Got an idea for a component? Leave a note below!
Got an idea for a component? Leave a note below!

==Suggestions==
*Conveyor belts
*Conveyor belts
*Pipes
*Pipes
*Magnets
*Magnets
*Breakable Objects, glass boxes, balloons that can pop,
*Breakable Objects, glass boxes, balloons that can pop

==Suggestions==
*Standard Sugar UI compatible activity icon -- Alex: Done!
*Tool bar icons to fit with Sugar UI design -- Alex: How so? Shouldn't be in color?
*Custom mouse pointers for different tools
*How about a palette for components? Then you can drag and drop them onto the canvas. -- Alex: yes! Good solution to the bad UI, thanks!

==Name Not Optimal==
x2o might be too short of a name, and the play on words (2==to) is English only :(<br>
Anyone have a better idea?<br>
Put it here or in the discussion!<br>
--Alex

What about "X<-0" pronounced "X is less than minus zero".

"X-->0" works too - pronounced "X to O"; the arrow is less culturally specific than a 2.

[[User:Filceolaire|Filceolaire]] 13:41, 25 January 2009 (UTC)


==Needs to be Added==
==Needs to be Added==
Line 45: Line 61:
==How to Use==
==How to Use==
===Playing Levels===
===Playing Levels===
When you first open x2o you are brought to the level editor. Click on the 'Run' tab, and then load a level from the drop down menu.
When you first open x2o you are brought to the level editor. Click on the 'Run' tab, and then load a level from the drop down menu. Or click the button next to it to load a level from the journal.
You can always get back to the level editor by loading the level titled "Make your own levels". Once a level is loaded, click on the 'Insert' tab to add components to the level. Remember, your goal is to get the O to land on the X. If you want to see how much of each component you have, click on the component and the blue banner should tell you.
You can always get back to the level editor by loading the level titled "Make your own levels". Once a level is loaded, click on the 'Insert' tab to add components to the level. Remember, your goal is to get the O to land on the X. If you want to see how much of each component you have, click on the component and the blue banner should tell you.


Line 55: Line 71:
There are two ways to make a level. One ways is to load the level editor ("Make your own levels") or to load an existing level. The process is the same for both, but if you load an existing level, you'll have to hit unlock on the modify tab in order to move the initial components.
There are two ways to make a level. One ways is to load the level editor ("Make your own levels") or to load an existing level. The process is the same for both, but if you load an existing level, you'll have to hit unlock on the modify tab in order to move the initial components.


Once you've created your scene, go to the save tab and name the level. Then set the amount of each component the use should have (excluding the one's you've placed already). Then hit save, that's it! The level is now saved (improperly) in the activity's 'data' folder and is hidden away in sugar with the extension .level. It's actually just a file generated by pickle.dump(), so if you pickle.load() it you'll get a python dictionary which you can edit as well.
Once you've created your scene, go to the activity tab and name the level. Then set the amount of each component the use should have (excluding the one's you've placed already). Then hit keep, that's it! The level is now saved in the journal. It's actually just a file generated by pickle.dump(), so if you pickle.load() it you'll get a python dictionary which you can edit as well.

===So you made a cool level===
If you make a cool level, then post it here on the wiki! In order to get the level file you can use browse to upload it (browse will open up the journal for you) or to email it to yourself or you can use the journal to drag the level onto a USB stick.


==Activity Info==
Levels will soon be saved via the datastore properly.
{{Activity page
|icon=Image:Activity-x2o.svg
|genre=Games
|short description=A puzzle solving and critical thinking game similar to the Incredible Machine.
|long description=A level consists of a stage (or canvas) that starts out with a few fixed (non-user editable) components (see list of components below), a certain quantity of components that the user can add to the stage, an X, and an O. The X does not move, and the O is like a ball, it falls and bounces off the other objects in the scene. The goal is to get the O to land on the X (thus x2o, I know, it's backwards) making the XO logo. Thanks to Patrick Thomson for the name "x2o".
|contact person=User:alexlevenson
|activity source=http://dev.laptop.org/git?p=activities/x2o
|language=English
|language codes=en
|related project=Physics_(activity)
|team=User:alexlevenson
|bundle URL=http://dev.laptop.org/~alevenson/x2o-9.xo
|activity version=9
|releases=7.1.2 (656), 8.1.0 (703), 8.1.1 (708), Candidate
|devel status=5. Production-stable
}}
{{Activity bundle
|bundle URL=http://dev.laptop.org/~alevenson/x2o-9.xo
|activity version=9
|releases=7.1.2 (656), 8.1.0 (703), 8.1.1 (708), Candidate
|devel status=5. Production-stable
}}

Latest revision as of 22:45, 31 March 2011

Activity-x2o.svg
.xo Bundlex2o-9.xo

Overview

x2o (X to O) is a puzzle solving and critical thinking game similar to the Incredible Machine. It uses Box2D for it's physics engine and is being written by Alex Levenson.

A level consists of a stage (or canvas) that starts out with a few fixed (non-user editable) components (see list of components below), a certain quantity of components that the user can add to the stage, an X, and an O. The X does not move, and the O is like a ball, it falls and bounces off the other objects in the scene. The goal is to get the O to land on the X (thus x2o, I know, it's backwards) making the XO logo. Thanks to Patrick Thomson for the name "x2o".

Please see my git repository for a log of what's going on with x2o currently.

Components List

These are the "things" that can be in a level and affect the physics of the level. Bold indicates already implemented.

  • Ramps are fixed in space (they don't fall or move obstacles). They can be used as walls, or as ramps for things to slide on, or as a surface to bounce off of.
  • Bouncy Balls are small, light, and bouncy!
  • Bowling Balls are big, heavy, and not bouncy at all...
  • See-Saws consist of a solid immovable base/fulcrum and a board hinged to the top of the base. They make good dynamic ramps (switches?) and catapults
  • Fans blow air (and objects) straight up. Good for keeping things airborne!
  • Gears, Joints, pulleys and the like very soon to come
  • Baseballs, light but not bouncy
  • Balloons, move upward because they have "Helium"
  • Basket, can prevent balls from rolling
  • Spring, can bounce balls up
  • Dripping Paint bucket, heavy at first but slowly loses weight over time as paint drips out
  • Motors, Piston
  • Connectors, think of it as a rigid rope

Got an idea for a component? Leave a note below!

  • Conveyor belts
  • Pipes
  • Magnets
  • Breakable Objects, glass boxes, balloons that can pop

Suggestions

  • Standard Sugar UI compatible activity icon -- Alex: Done!
  • Tool bar icons to fit with Sugar UI design -- Alex: How so? Shouldn't be in color?
  • Custom mouse pointers for different tools
  • How about a palette for components? Then you can drag and drop them onto the canvas. -- Alex: yes! Good solution to the bad UI, thanks!

Name Not Optimal

x2o might be too short of a name, and the play on words (2==to) is English only :(
Anyone have a better idea?
Put it here or in the discussion!
--Alex

What about "X<-0" pronounced "X is less than minus zero".

"X-->0" works too - pronounced "X to O"; the arrow is less culturally specific than a 2.

Filceolaire 13:41, 25 January 2009 (UTC)

Needs to be Added

  • Sound
  • Animation

How to Use

Playing Levels

When you first open x2o you are brought to the level editor. Click on the 'Run' tab, and then load a level from the drop down menu. Or click the button next to it to load a level from the journal. You can always get back to the level editor by loading the level titled "Make your own levels". Once a level is loaded, click on the 'Insert' tab to add components to the level. Remember, your goal is to get the O to land on the X. If you want to see how much of each component you have, click on the component and the blue banner should tell you.

After you've added components, and would like to run the level, go to the 'Run' tab and click the green arrow. Clicking reset will reset and pause the level, and the revert button will reset and remove all the changes you've made.

You can use the move and remove tools to modify the components you've added.

Making Levels

There are two ways to make a level. One ways is to load the level editor ("Make your own levels") or to load an existing level. The process is the same for both, but if you load an existing level, you'll have to hit unlock on the modify tab in order to move the initial components.

Once you've created your scene, go to the activity tab and name the level. Then set the amount of each component the use should have (excluding the one's you've placed already). Then hit keep, that's it! The level is now saved in the journal. It's actually just a file generated by pickle.dump(), so if you pickle.load() it you'll get a python dictionary which you can edit as well.

So you made a cool level

If you make a cool level, then post it here on the wiki! In order to get the level file you can use browse to upload it (browse will open up the journal for you) or to email it to yourself or you can use the journal to drag the level onto a USB stick.

Activity Info

Activity Summary

Icon: Sugar icon::Image:Activity-x2o.svg
Genre: Activity genre::Games
Activity group: ,|x|Activity group::x}}
Short description: Short description::A puzzle solving and critical thinking game similar to the Incredible Machine.
Description: [[Description::A level consists of a stage (or canvas) that starts out with a few fixed (non-user editable) components (see list of components below), a certain quantity of components that the user can add to the stage, an X, and an O. The X does not move, and the O is like a ball, it falls and bounces off the other objects in the scene. The goal is to get the O to land on the X (thus x2o, I know, it's backwards) making the XO logo. Thanks to Patrick Thomson for the name "x2o".]]
Maintainers: ,|x|Contact person::x}}
Repository URL: Source code::http://dev.laptop.org/git?p=activities/x2o
Available languages: ,|x|Available languages::x}}
Available languages (codes): ,|x|Language code::x}}
Pootle URL:
Related projects: Related projects,|x|Related projects::x}}
Contributors: ,|x|Team member::x}}
URL from which to download the latest .xo bundle Activity bundle::http://dev.laptop.org/~alevenson/x2o-9.xo
Last tested version number: Activity version::9
The releases with which this version of the activity has been tested. ,|x|Software release::x}}
Development status: Devel status::5. Production-stable
Ready for testing (development has progressed to the point where testers should try it out): ,|x|Ready for testing::x}}
smoke tested :
test plan available :
test plan executed :
developer response to testing :


URL from which to download the last .xo bundle that works with old releases Activity bundle::http://dev.laptop.org/~alevenson/x2o-9.xo
Activity version number: Activity version::9
The releases with which this version of the activity has been tested. ,|x|Software release::x}}
Development status: Devel status::5. Production-stable