Contributing to MV3D

MV3D is a very ambitious project, and it needs your help! The quickest way to get involved is to join the IRC chat #MV3D on Once you get in, please introduce yourself. Don't be disappointed if people don't answer right away as most people leave their IRC clients logged in to the chat all day (feel free to do that). Note that registration for the forums, wiki, or mailing list requires activation by SirGolan. It may be a few days before your account is activated or possibly more. The best thing to do to get your account activated is to look for SirGolan on IRC or email mike at

MV3D is developed using the Scrum methodology. Development is broken up into sprints (milestones in trac), and each sprint, tickets to be worked on are pulled from the backlog. All work to be done (bugs and features) have associated tickets. Basically, MV3D follows UQDS. In short, a ticket is created, it's assigned to a milestone. A branch is created for all work done in that ticket and someone starts working on it. When ready, they submit the ticket for review and the reviewer checks over the changes and either approves it or hands it back with suggestions. If you don't have svn write access, then the process is similar, but just attach a patch to the ticket when submitting for review. MV3D uses Twisted's coding standard for all code. For more information, see CodingGuidelines.

Non-Code Contributions

MV3D also needs help making the Demo World look better and adding to the free AssetRepository. If you are interested in helping out in those areas, contact SirGolan on IRC or by emailing mike at mv3d dot com. Some of the things that are needed here include:

  • Worldbuilding - editing terrain, adding objects, and expanding the world.
  • Static 3D Models - more buildings, props, bridges, trees, etc.
  • Animated 3D Models - Better animations for the player characters, monsters, and new rigged models.
  • SoundFX and Music.
  • Documentation.
  • Publicity.

Ticket Conventions

In addition to the standard trac workflow, we also use keywords to denote a secondary status for tickets. Use the 'review' keyword to specify that a ticket is ready for review. The 'stealable' keyword should be used on tickets that are up for grabs for anyone to take on. The other keyword is 'easy' for any tickets that are good for a beginner to tackle.

Easy Tickets

milestone MV3D-0.70

Better error handling for tools.
Composer needs a function to move the camera to an object.
Add wireframe view to Composer
Tools should optionally use degrees rather than radians for angles.
Mass importer progress bar is wrong.
Importer should copy the asset files into the Extern dir when importing.
Command line auto-collider solid.
Importer's Fix Dependencies doesn't handle Panda models.

milestone backlog

Incoming chat messages should make a sound.
mv3d.client.ui.image has no tests
Need more and better tests for camera classes
More tests for mv3d.client.ui.connect
Split up mv3d.test.test_editor
Docstrings and tests for mv3d.client.ui.ogre3d
Tests needed for mv3d.client.ui.player
Docstrings and tests for mv3d.client.view.area
Docstrings and tests for mv3d.client.view.object
Docstrings and tests for mv3d.client.view.player
Docstrings and tests for mv3d.client.view.realm
Remove mv3d.client.view.TerrainView
Need tests for mv3d.client.asset
Need more tests for mv3d.client.player
Split up mv3d.test.test_net
More tests for mv3d.test.test_securable
More tests for mv3d.phys.collider
More tests for mv3d.reporter.event
More tests for mv3d.reporter.guilog
More tests for mv3d.resource.ogre3d
More tests for mv3d.server.model.physical
More tests for mv3d.server.model.realm
More tests for mv3d.server.account
More tests for mv3d.server.login
More tests for mv3d.server.player
More tests for mv3d.server.realm
More tests for mv3d.server.sim
More tests for mv3d.util.classgen
More tests for mv3d.util.conductor
More tests and docstrings for mv3d.util.container
Standardize the config file
Errors during startup of a single service shouldn't affect other services
Webconsole button on overseer
Disable gui elements that shouldn't be active in tools.
Spruce up default eclipse pydev project file
New Overseer GUI needs some minor tweaks
Guide widgets with a value of None should not display a value
Add Menu widgets to GuideCE.
Generate 2D instead of 3D thumbnails for images
Create an API to add additional player key mappings on the client.
Create an API to add additional player actions on the server.