CodingProjects

From Sirikata Wiki
Jump to: navigation, search

UI System

We went with the long thinking strategy of using the new SDL-1.3 which has very good internationalization support...but we're finding everything else is just raw and roughcut. If we have someone interested inUI and camera support, probably the first thing to do is fix all those input bugs...

if the person is skilled one method for doing that could be sitting down with SDL-1.3 and fixing them if the person is less skilled another method would be to actually take the latest version of OIS and write a simple wrapper that made it look like the subset of SDL-1.3 that we used.

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.

Embedded browser

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

There's another bitesized project for someone less familiar with C++ but more familiar with scripting languages (specifically javascript): we're going to need to communicate with javascript on the browser. Right now our language of choice is protocol buffers. Someone could write a protocol buffers decoder in javascript itself--we have many of the pieces but they need to be put together

Terrain

We are interested in integrating the new terrain system being developed by Sinbad creator of Ogre

Shadows

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