netmorph an intuitive mobile object system and its applications masashi umezawa kazuhiro abe satoshi...
DESCRIPTION
3 Network-enabled SqueakToys (1) MyCar forward by 5 MyCar turn by 5 MyCar warpTRANSCRIPT
NetMorphAn intuitive mobile object system
andits applications
Masashi Umezawa Kazuhiro AbeSatoshi Nishihara Tetsuya Kurihara
September 27, 2002
2
Normal SqueakToys
• MyCar forward by 5MyCar turn by 5
3
Network-enabled SqueakToys (1)
• MyCar forward by 5MyCar turn by 5MyCar warp
4
Network-enabled SqueakToys (2)
• MyCar warp to– somehost– MyCar’s home– MyFriend’s address
5
World Map (1)• Defining relationships between Worlds• Easily editable by NmWorldMapMorph
6
World Map (2)• Implemented as NmWorldMap• Map is served by MapServer (Comanche) or
local file system
7
Warp Mechanism (Steps)1. A Morph detects a display edge.2. The morph searches a destination from the map.3. The morph is serialized.4. The morph is transferred to the destination
( by SOAP*).5. warpingOut event is raised.6. The original morph is dismissed.7. The incoming morph is desterilized.8. The morph appears at the destination.9. warpedIn event is raised.
* We use Masashi Umezawa’s SoapCore
8
Warp Events• warpingOut
– Raised before warp• warpedIn
– Raised after warp
9
Funny Features (1)
• Visual Effects– MyCar effect
• appearImageSquares• curtainFall• poofIn• etc.
• These are fun to use with warp events.
10
Funny Features (2)• Easy Bounce
– MyCar head• up | down | left | right
– It is fun to use with ‘color sees’.
11
Applications• Tennis• Deluxe Tennis
12
Implementation of NetMorph
• Tight Integration with Morphic System – Added some attributes and services Morph
and MorphExtension (no subclassing)– Also added attributes and services to Player– Added some
phrases to Vocabulary
13
NetMorph Attributes• MyCar’s identifier
– World wide unique identifier (a.k.a. UUID)• MyCar’s path
– Records of the locations where the morph has ever visited
• MyCar’s home– Morph’s birthplace (path first)
• MyCar’s address– The current location (path last)
14
NetMorph Services• MyCar warp
– The morph is automatically transferred by screen edge detection
• MyCar warp to abc– The morph is immediately transferred
to a specified destination (abc)
15
Address and Map• NmUrl
– Describes host and port in a URL format• nm://somewhere:37458
• NmWorldMap– A dictionary that keeps World relationships
• Key: a NmUrl • Value: a Point (World’s logical location)
16
Communication between NetMorphs
• MyCar forward by Joystick upDownMyCar turn by Joystick leftRightMyCar warp
• What happens when MyCar goes beyond the screenedge?
17
NetMorph Communication Mechanism
1. When a target morph is away from the local World, its new address is automatically detected.
2. A proxy of the morph is dynamically created in the local World.
3. Messages are delegated to the target morph(remote) by the proxy.
18
Japanese Localization• Compatible with SqueakNihongo*
* SqueakNihongo is based on Yoshiki Ohshima’s MultilingalizedSqueak and enhanced by Kazuhiro Abe
19
Progress*
* This metrics was recorded by Atsushi Aoki’s OOM that ported to Squeak by Satoshi Nishihara
020406080
100120140160180
Classes*10Methods
20
The Next• Performance tuning• More robustness• More applications• Field testing
– By children?• MacOS, Linux support
– Currently NetMorph runs on Windows only!
21
Any Questions?