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 irc.freenode.net. 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.com.

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

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

milestone backlog

#292
Incoming chat messages should make a sound.
#315
mv3d.client.ui.image has no tests
#377
Need more and better tests for camera classes
#379
More tests for mv3d.client.ui.connect
#380
Split up mv3d.test.test_editor
#381
Docstrings and tests for mv3d.client.ui.ogre3d
#382
Tests needed for mv3d.client.ui.player
#383
Docstrings and tests for mv3d.client.view.area
#384
Docstrings and tests for mv3d.client.view.object
#385
Docstrings and tests for mv3d.client.view.player
#386
Docstrings and tests for mv3d.client.view.realm
#387
Remove mv3d.client.view.TerrainView
#389
Need tests for mv3d.client.asset
#390
Need more tests for mv3d.client.player
#391
Split up mv3d.test.test_net
#392
More tests for mv3d.test.test_securable
#395
More tests for mv3d.phys.collider
#398
More tests for mv3d.reporter.event
#399
More tests for mv3d.reporter.guilog
#400
More tests for mv3d.resource.ogre3d
#405
More tests for mv3d.server.model.physical
#406
More tests for mv3d.server.model.realm
#408
More tests for mv3d.server.account
#409
More tests for mv3d.server.login
#410
More tests for mv3d.server.player
#411
More tests for mv3d.server.realm
#412
More tests for mv3d.server.sim
#413
More tests for mv3d.util.classgen
#414
More tests for mv3d.util.conductor
#415
More tests and docstrings for mv3d.util.container
#422
Standardize the config file
#446
Errors during startup of a single service shouldn't affect other services
#514
Webconsole button on overseer
#635
Disable gui elements that shouldn't be active in tools.
#644
Spruce up default eclipse pydev project file
#651
New Overseer GUI needs some minor tweaks
#684
Guide widgets with a value of None should not display a value
#733
Add Menu widgets to GuideCE.
#789
Generate 2D instead of 3D thumbnails for images
#831
Create an API to add additional player key mappings on the client.
#832
Create an API to add additional player actions on the server.