CodingProjects

From Sirikata Wiki
Revision as of 22:43, 14 April 2009 by Danielrh (talk | contribs)
Jump to navigation Jump to search

Content Distribution

Integrate current CDN (folder libcore/src/transfer) with S3 storage service

Database backend:

writing a standalone database that respects the interface we have designed (or options to change the interface if something could be improved) Integrating database with libcore/src/transfer system

Proximity management:

Ask us to give you the interface and example code for proximity management and the current n^2 code. Make it more efficient by distributing it across computers and/or making it efficient with better single-computer algorithms

Location subscription services:

Once two objects are proximate, the moving object may want to broadcast its updates---so a simple server to connect providers up with listeners is needed

Object Placement:

The object placement system is a great place to get started with the graphics engine. The best place to start is simple camera and mouse motion control using the mouse input device. Keep in mind multiselect and have lists of selected items rather than a pointer to one.

The place to start is to make a native C++ SelectionManager class in the liboh/plugins/ogre folder that deals with tracking the active set of selected ProxyObjects. Then a number of controllers can handle what do with mouse events (clicking, dragging, moving) would be ideal..and then they would in turn tell the ProxyObjects what to do. So I believe the way this would work is you'd query the Ogre SceneManager for intersections, that would give you back the ogre objects named by the Graphics::Entity's UUIDs (a bunch of ProxyListeners mapped in the OgreSystem)--and that then has a shared_ptr back to the ProxyObject which you could tell how to move... then once it has moved, it will update all of its listeners in the graphics (and eventually physics) systems---as well as update the serverside object.

Inworld webpage management:

Download the osm_sirikata Integrate the WebView class with the Listener interface and have a ProxyWebView type of object that exposes a provider for the necessary listener so that we can have remote objects initiate webpage changes and updates. Also this can involve working with Adam from Texas as he integrates chromium

Terrain:

Download the ClipmapTerrain from the ogreaddons and improve it (fixing up the lighting and any performance problems, integrating it with the sirikata code, adding material editing abilities and the ability to poke holes in the ground and make room for caves to be placed as meshes

Or: Download the DynamicTerrain and improve it (making it multiresolution, and cutting out a square hole in the middle of each, integrating it with the sirikata code, adding material editing abilities and the ability to poke holes in the ground and make room for caves to be placed as meshes)

Shadows:

Enable shadows in ogre and make a simple test scene that shows it off