MMO Features
- Region-based interest management - Square tile algorithm with variable width, height and tile size is implemented
- Easily replaceable with other region algorithms (hexagonal, etc. see http://gram.cs.mcgill.ca/papers/boulanger-06-comparing.pdf)
 
- Items (Avatars, NPCs, shared game objects) - Clients can spawn, destroy and move items.
- Items can have properties that are readable by other clients and
 changeable by the owner.
- Item properties have a revision number: Clients that lose sight
 of an item for some time can compare the revision to determine
 if they need to receive updated properties.
 
- Interest automatically received. - Interest areas have two interest thresholds. Regions that enter
 the inner radius become visible; regions that leave the outer
 become invisible. This optimization reduces frequent visibility
 changes.
 
- Interest areas have two interest thresholds. Regions that enter
 
    - Invisible item, out of range - Invisible item enters outer interest area
- Invisible item enters inner interest area and becomes
 visible
- Visible item leaves inner interest area
- Visible item leaves outer interest area and becomes
 invisible
 
- Interest areas can be resized: Adjusting the view distance in 
 proportion to the amount of seen items can be beneficial- To improve the performance in crowded areas or
- To show distant items in areas with low population.
 
- Interest areas can be attached to any item: Whenever the item 
 moves the interest area follows and changes the interest
 accordingly. This is especially useful to move the interest area
 with the own avatar.
- Detached interest areas can be moved freely. This is beneficial 
 for camera flights.
- Clients can have multiple interest areas to show different parts 
 of the world at the same time.
- Manual interest management: Clients can manually (un-)declare 
 interest in items.
- Custom events can be sent through items to two possible targets: - The item owner
- All clients that are interested in the item (item subscriber)
 
- Optimized position updates: Clients send updates only when they 
 move.
- Duplicate user recognition: A subsequent user connection resets the 
 previous connection.