Story Builder
From WorldWideWorkshop-OLPC wiki
| Summary |
|---|
| Tickets: Trac |
| Source: Git |
Latest Development Updates
[Date/Name]: Add entry here
[12/11/07 Morgan]
Mike Fletcher volunteered to take over maintaining olpcgames, and fixed the keyboard event issue so it now works with Story Builder! Find the latest version (bundle version 11) at http://wiki.laptop.org/go/Activities - you can install it directly on an XO running Ship.2 (build 650) or current Joyride, by clicking on the bundle using Browse and resuming it from the Journal when it has downloaded.
[8/24/07 Morgan]
Added bundle version 8 with lesson plans working - files were missing from the previous bundles although the lesson plans were already implemented.
- Note that when translating the lesson plans for Story Builder, please work from the html files included in this bundle and not the original .doc file, because it has to be in this format and converting from the .doc file is time consuming as it's a limited set of HTML that can be used here, not Word's File/Save As/*.html...
[8/22/07 Morgan]
Lincoln responded to the Trac ticket #2871 and with his help, Story Builder now runs under Sugar - however the keyboard does not work, so you cannot type in a story title or text. (Without a title you cannot save...)
I've uploaded bundle version 7 with this status.
[8/17/07 Morgan]
I've logged Trac ticket #2871 against the games module and assigned to lincolnquirk to track progress of making olpcgames work for Story Builder.
[8/16/07 Morgan]
I've uploaded bundle version 6, with sound effects for all themes.
The sound effects were converted to OGG, a compressed patent-free format which works in PyGame. The "final" sounds for all themes were small enough to include.
Ticket closed: #2786
[8/14/07 Morgan]
I've uploaded bundle version 5, with sound effects for the Jungle theme.
[7/24/07 Morgan]
I've uploaded bundle version 4, with:
- Lesson Plans
- Better text editing for the Story text
[7/16/07 Shannon]
Hi Morgan, Nice improvements to v1.0. I will upload the Lesson plans later today. I have added a new section to this wiki page called Bug Notes, it's at the very bottom. Please check my notes on this latest release there. Thanks, Shannon
[7/12/07 Morgan]
I've uploaded screenshots and a new version which has a story title, and saves and can load from the saved stories.
Status
PyGame/Sugar
Still not working under sugar. Waiting on Lincoln Quirk's update to olpcgames.
GUI
Implemented PGU GUI for editing story title and save and load functionality.
PGU doesn't have a multi-line text editing feature for the story text, so still working on that.
Language
At the moment, all the text on the screen - SAVE, Add my character, Add my background - are displayed using images, so they cannot be translated. Once I get the GUI code integrated, I should be able to display it as text and therefore translatable.
Until then the Language button won't do anything - then I will hook it up and see if I can make it look the same as the Sugar activities.
Summary
The following is outstanding:
- Running within Sugar [depends on olpcgames fix]
- Better text editing for story text
- Lesson Plans - can add whenever you get me the text
- Sound [depends on getting sound and button]
- Language
[7/11/07 Morgan]
I will have Story Builder working by the end of the week, with the caveat of not running under Sugar as mentioned on the Beta_Release_1.1 page.
The GUI is shaping up, and saving works - the major part I need to fix still is the selection of saved stories to load. I should have that ready for you tomorrow (Thursday 12 July).
[7/9/07 Shannon]
Great start Morgan, especially given the challenges with PyGame. I answered your 3 questions directly in your July 4 entry below. In a nutshell, the answer is YES to everything.
Do you feel that it is feasible to have the Story writing and Saving functionality ironed out this week? I feel that those elements need to be in place before we release it to OLPC. Our next planned release is July 16 (next Monday.)
[7/9/07 Morgan]
PyGame/Sugar
Lincoln Quirk is doing a major rewrite of the PyGame/Sugar interface which may solve the problem of the crashing, but no news on a completion date.
GUI
I am implementing a GUI called PGU built on top of PyGame, which should handle the save/load and add my background/character functionality. I should have something running tomorrow and will provide a status update then.
[7/4/07 Morgan]
PyGame/Sugar
The biggest issue at the moment is that the PyGame/Sugar interface olpcgames crashes when I try and run StoryBuilder through it. This code, under development by Noah Kantrowitz and Lincoln Quirk, makes a PyGame game launch under Sugar as an activity. All the demo games I've seen running using this method are really simple, and their code is very experimental. I think this activity is pushing beyond olpcgames' limits at the moment.
So at some stage, hopefully soon, we will be able to run the activity in Sugar but for now we have to launch it in the console terminal (Alt 0).
PyGame vs GUI
PyGame is designed for producing games, not application GUIs. In our activity we have both - the animated characters on the one hand, and the story text and saving/loading on the other.
PyGame development is all about working with images, and does not have widgets - buttons, radiobuttons, text entry fields etc like a normal GUI. There are a couple of GUI extensions for PyGame that I am looking into, but right now the following aspects of Story Builder are not working the way they should:
- Text area - at the moment anything you type appears in this area. However you cannot move the cursor around and edit, you can only use backspace to remove from the end.
- I can save (in today's version, not uploaded because there are no visible changes) but when you click the SAVE button there's no feedback to the user that the click did anything.
- Loading saved stories will need to use some GUI functionality to show the list of saved stories and allow you to click on one to select it.
Language
At the moment, all the text on the screen - SAVE, Add my character, Add my background - are displayed using images, so they cannot be translated. Once I get the GUI code integrated, I should be able to display it as text and therefore translatable.
Until then the Language button won't do anything - then I will hook it up and see if I can make it look the same as the Sugar activities.
Questions
- The MyGLife Story Builder has a sound that plays when you place a character. Assuming this is what we are going to do on OLPC, can you make that sound file available?
YES, we will find the sound and upload it to this wiki page.
- The sound button therefore would turn sound on and off. I'll need an image of the sound button showing sound disabled - can you ask Rich to do this? The current image with a line through it... MyGLife has
and
YES, I will ask Rich to make the Sound off image this week.
- We spoke about a title for the story which could be used when loading stories to select instead of a filename. Should I make a separate line above the text area for the title?
YES, excellent idea, go for it.
Summary
The following is outstanding:
- Running within Sugar [depends on olpcgames fix]
- Story title
- Save - I have a working version but without titles it doesn't save different files [depends on having a title]
- Load [depends on save and GUI]
- Better text editing [depends on GUI]
- Lesson Plans
- Sound [depends on getting sound and button]
- Language [depends on GUI]
[7/2/07 Morgan]
The following items have not been implemented yet due to PyGame issues:
- Lesson Plan
- Language
- Save/Load
- Text editing - at the moment if you type text it appears in the text area, since PyGame does not integrate with the usual GUI controls. I'm working on this so don't take the current functionality as what it will be...
The following features need discussion and/or media before they can proceed:
- Sound button and sound effect
Description & Goals
Summary
MaMaMedia's What’s the Story is a graphical story constructor with a variety of characters and backgrounds to be combined as a scene and simple word-processing capabilities for writing and printing.
The original activity is HTML-based, and there is a recent Flash port called Story Builder.
This new version of Story Builder for OLPC mimics the Flash Story Builder, but is being re-written in Python and specifically tailored to the OLPC Sugar environment. Story Builder will run locally on the XO (no internet connection required). We also plan to enhance it so kids can share stories via the mesh. Because Sugar is itself a pygtk application, it makes sense to rebuild these applications in pygtk too.
General Notes:
- This application must be designed to run optimally on the XO laptop and in the Sugar interface. Developer will use software languages, libraries and tools that are supported and recommended for the XO and Sugar. Applet size will be light enough to ensure efficient loading and satisfactory technical performance and user experience on the XO.
- This is an open source project, in spirit and practice. As such, all development work must be regularly documented on the project wiki. Documentation must include version status reports (weekly, if not daily) and a complete, cleanly organized and well commented set of source code files for each version (so that future developers may review, use or even complete it.)
Goals
Version 1.0 (Basic application rewritten to run locally/optimally on XO)
Due: July 2, 2007
Description: This version mimics the Flash Story Builder activity on MyGLife.org (a port of What’s the Story from MaMaMedia.com), but is re-written in Python to run locally on an XO laptop.
Functionality:
- Full activity logic and interface integrated with the OLPC framework
- Select a background / theme (from fixed set of themes and images; assets to be provided by WWW Foundation.)
- Place the animated characters freely on the background
- Select placed characters and move them around or remove them
- Selecting a character which overlaps with others also brings it to the front
- Clear Picture
- Add the story text
- Save (Store the story in the Journal) – a file format will need to be developed which stores the story as compactly as possible so that the graphic components are not duplicated multiple times on the Data Store, if possible.
- Print (if possible in current version of Sugar – otherwise printing may be deferred)
Version 1.1 (New “Make Your Own” functionality to leverage XO tools)
Due: July 9, 2007
Description: This version will let students create stories featuring their own characters and backgrounds that they made using the XO drawing and camera tools.
Functionality:
- Allow students to take drawings created with the XO painting tool and use them as foreground and background images.
- Allow students to take photos with the XO camera and use the photo files as background images.
- This requires using images and photos from the Journal, and doing appropriate file type conversions.
- Animations will not be possible, just static images (We can discuss this but it will require more time or a further iteration since we would need to build something to create the animations from several images.)
Version 1.2 (Mesh-based sharing of saved stories and original assets)
Due: Aug 20, 2007 (assuming mesh functionality via bulletin board is stable for use in development)
Description: Using the Mesh Network to access one another’s XO laptops or the school’s XO server, users can find saved stories and read them. A group of students will be able to look at a story together simultaneously. Students should also be able to find asset files (images, sounds) on other machines in the Mesh and use them in new stories.
Functionality:
- Sharing the story would implicitly share the assets as well, assuming the file format mentioned in 1.0 does not embed them in the file.
- This would probably be achieved with the Bulletin Board functionality. This allows sharing the story with a group of children with a chat facility built in.
Collaboration
Using the Mesh Network, users can share stories and assets.
Visual Design
- Need to incorporate new buttons for "Add My Character," "Add My Background" and "Save"
- Starter backgrounds and characters will be drawn from MaMaMedia's "Stamps and Stomps" activity instead of "what's the Story" because the themes for the original "What's the Story" are very specific to American culture. Stamps and Stomps content is a bit more universal, and accessible to global audiences.
Media
| Document | Description |
|---|---|
| New_assets_for_story_builder.zip history | Backgrounds and animations (revised set as of June 19 -- Ocean, Jungle, Rock Concert) |
| GameLogoCharacter.psd history | NEW .psd file for updated MaMaMedia logo and character (to be included on activity interface in upper left) |
| Storybuildersounds.zip history | MaMaMedia sound assets |
Screenshots
Development
Feature Requests
Implementation Discussion
(2 Jul 07) The following items have not been implemented yet due to PyGame issues:
- Lesson Plan
- Language
- Save/Load
- Text editing - at the moment if you type text it appears in the text area, since PyGame does not integrate with the usual GUI controls. I'm working on this so don't take the current functionality as what it will be...
The following features need discussion and/or media before they can proceed:
- Sound button and sound effect
Version History
Source
Source code is versioned in git, at: http://dev.laptop.org/git.do?p=projects/story-builder;a=summary
XO Packages
Latest
- works on Build 542
- Lesson plans added (accidentally omitted from previous bundles)
Instructions:
- cd
- rm -r Activities/StoryBuilder.activity/
- unzip StoryBuilder-8.xo.zip
- sugar-install-bundle StoryBuilder-8.xo
To launch without Sugar, to see the text functionality which is currently not working within Sugar...:
- cd Activities/StoryBuilder.activity/
- python ./StoryBuilder.py
- Alt 0 to see the activity
- Press Esc to quit Story Builder
History
- Storybuilder-1.xo-20070702.zip history - works on Build 432 but doesn't run from sugar due to a bug in the PyGame/Sugar integration code
- Storybuilder-2.xo-20070705.zip history - works on Build 432 but doesn't run from sugar due to a bug in the PyGame/Sugar integration code
- StoryBuilder-3.xo.zip history - works on Build 432 but doesn't run from sugar due to a bug in the PyGame/Sugar integration code
- Added:
- Story loading and saving
- Title
- StoryBuilder-4.xo.zip history - works on Build 432 but doesn't run from sugar due to a bug in the PyGame/Sugar integration code
- Added:
- Lesson Plans
- Better text editing for story text
- StoryBuilder-5.xo.zip history - works on Build 432 but doesn't run from sugar due to a bug in the PyGame/Sugar integration code
- Added sound effects for Jungle theme!
- StoryBuilder-6.xo.zip history - works on Build 542 but doesn't run from sugar due to a bug in the PyGame/Sugar integration code
- Added sound effects for Ocean and Backstage themes
- works on Build 542
- Now runs from Sugar, but keyboard doesn't work when doing so
Resources
- What's the Story, an HTML application hosted at MaMaMedia.com.
- Stamps and Stomps, a java application hosted at MaMaMedia.com.
- Story Buildera Flash version of What's the Story created in 2006.
- OLPC Wiki
- OLPC Sugar Activities List
Lesson Plans
Downloadable Story Builder Lessons Plans (in English)
Research
Bug notes
July 16 - v1.0
Title text field
- Exceeds template (runs off right side of screen)
- Maybe should not allow user to type in a title longer than it can display in Story Browser. I typed “My crazy rock and roll jungle ocean adventure by Shannon” and on the Story Browser list it was cut off in the middle of the word adventure.
Story field
- Still extremely hard to edit
- No cursor visible, so you can’t tell exactly where your next letter will appear until you type it
- Can’t click mouse to put cursor in a new location
- Can’t use Back arrow to go back and fix typos in the copy already written (erases text if you do)
- Can’t hit Enter for to start on a new line or create paragraph spacing
- Can’t use Forward arrow to create extra spacing
SAVE and LOAD
- No indication if story was saved or where – needs some sort of confirmation message
- Change “LOAD” button to say “OPEN”
Story Browser
- Story browser window is very small. It should be wide enough to accommodate a title at the max number of characters allowed.
- User needs to click on their story title to load the story, but there is no indication of this requirement.
- Hitting Load on the Story Browser without selecting a title closes the whole activity.
- Animations did not load, only the story text and background.
