Nell/Architecture: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 18: Line 18:
== Narrative model ==
== Narrative model ==
* Contains metadata visible to the tech tree about what kind of narrative this is.
* Contains metadata visible to the tech tree about what kind of narrative this is.
* The prerequisites for an activity/narrative chunk aren't limited just to which activities/story chunks have been completed -- they might also depend on <b>outcomes</b> from activities, stored in Avatar Services. This provides for a coherent narrative arc, with the side effect that the user gets to hear stories that are more like the stories they've enjoyed and chosen to go deeper into previously.
* The prerequisites for an /narrative chunk aren't limited just to which story chunks have been completed -- they might also depend on <b>outcomes</b> from narratives, stored in Avatar Services. This provides for a coherent narrative arc, with the side effect that the user gets to hear stories that are more like the stories they've enjoyed and chosen to go deeper into previously.
* Activities must be extremely pluggable. The same activity (painting, music creation, etc) may have many different narratives available -- some with different languages, teaching styles, some may have been written by teachers and some by kids.
* Narratives must be extremely pluggable. The same narrative may have many different implementations available -- some with different languages, teaching styles, some may have been written by teachers and some by kids.
* The narrative model defines possible outcomes from this activity, and passes them down to Avatar Services as they're made.
* The narrative model defines possible outcomes from this activity, and passes them down to Avatar Services as they're made.
* Achievements are types of outcomes, too.
* Achievements are types of outcomes, too.


== Activity view ==
== Narrative view ==
* Takes a narrative model and renders the story on-screen, incorporating partially scripted interactions with an underlying Activity. At interesting decision points or events, evokes outcomes to the model. Much of the story logic is probably embedded in the view. The view hooks into avatar services to decide how best to present itself. The view hooks into the underlying activity to make special functions available -- for example, to present a piano or a drawing canvas or turtle programming environment or a cut scene.
* Takes a narrative model and renders the story on-screen, incorporating partially scripted interactions with an underlying Activity. At interesting decision points or events, evokes outcomes to the model. Much of the story logic is probably embedded in the view. The view hooks into avatar services to decide how best to present itself. The view hooks into the underlying activity to make special functions available -- for example, to present a piano or a drawing canvas or turtle programming environment or a cut scene.

== Activities ==
* So far we've discussed narratives, which are pieces of software that provide plot to an activity. An activity is a piece of software that a narrative chooses to launch to conduct a task like piano playing, showing a movie, painting, using a calculator, and so on. Narratives (may) launch activities when the goal of a narrative can't be accomplished just using the visual view provided by the narrative API.


== Story creator ==
== Story creator ==
Line 31: Line 34:


= Open questions =
= Open questions =
* Is the activity model/view split actually interesting, or should everything other than prerequisites just happen inside the view? (Maybe this should be decided after a few demo activities exist.)
* Is the narrative model/view split actually interesting, or should everything other than prerequisites just happen inside the view? (Maybe this should be decided after a few demo activities exist.)

Revision as of 21:53, 23 January 2012

Nell consists of several modules. They're not independent; there are defined API interactions between them. (Listing them here doesn't mean that we're going to design and implement each top-down before putting any activities together -- I think being very demo-focused and starting right at the user-visible layer is still a fine idea.)

Nothing here is final yet; still at the brainstorming stage.

Modules

Avatar services

  • Stores user's name, chosen avatar appearance, avatar's friends, preferences.
  • How literate is this user?
  • What kind of learning style (visual, puzzle solving, blackboard) do they learn from best/prefer?
  • Like Sugar's Journal, this should provide an opportunity for reflection on (and replay of) past experiences.

Tech tree

Narrative model

  • Contains metadata visible to the tech tree about what kind of narrative this is.
  • The prerequisites for an /narrative chunk aren't limited just to which story chunks have been completed -- they might also depend on outcomes from narratives, stored in Avatar Services. This provides for a coherent narrative arc, with the side effect that the user gets to hear stories that are more like the stories they've enjoyed and chosen to go deeper into previously.
  • Narratives must be extremely pluggable. The same narrative may have many different implementations available -- some with different languages, teaching styles, some may have been written by teachers and some by kids.
  • The narrative model defines possible outcomes from this activity, and passes them down to Avatar Services as they're made.
  • Achievements are types of outcomes, too.

Narrative view

  • Takes a narrative model and renders the story on-screen, incorporating partially scripted interactions with an underlying Activity. At interesting decision points or events, evokes outcomes to the model. Much of the story logic is probably embedded in the view. The view hooks into avatar services to decide how best to present itself. The view hooks into the underlying activity to make special functions available -- for example, to present a piano or a drawing canvas or turtle programming environment or a cut scene.

Activities

  • So far we've discussed narratives, which are pieces of software that provide plot to an activity. An activity is a piece of software that a narrative chooses to launch to conduct a task like piano playing, showing a movie, painting, using a calculator, and so on. Narratives (may) launch activities when the goal of a narrative can't be accomplished just using the visual view provided by the narrative API.

Story creator

  • We'll need a tool that can author an narrative model. It should allow the author to choose prerequisites, define outcomes, and have access to any prior outcomes it's interested in when deciding on a narrative.
  • Activities can be authored using Pippy-like or TurtleArt-like tools. These might be integrated with the narrative authoring tool, but don't need to be. One should be able to author lots of narratives ("lesson plans") around a single Activity ("turtle art", say).

Open questions

  • Is the narrative model/view split actually interesting, or should everything other than prerequisites just happen inside the view? (Maybe this should be decided after a few demo activities exist.)