Introduction

MV3D is a framework for simulating online virtual worlds. Virtual worlds can exist for many purposes, but the most well known reason is for online games. Worlds in MV3D can be as small or as large as you want. One of the main goals behind the framework is to be able to scale up both in world size and population. As this alone is no simple feat, it is the brunt of what MV3D attempts to do. MV3D is not an out of the box game creation toolkit. While there may be plenty of supporting features, there's no game logic included like spell systems or combat.

MV3D uses many supporting libraries in C++, but all of MV3D's code is written in Python. Python is an excellent language for virtual worlds and is in use in some of the biggest ones online today such as EVE online, Disney's Toontown, Disney's Pirates of the Caribbean online, World of Tanks, and many others. It makes for lightning fast prototyping and iteration which gets you to a finished product quicker.

Originally, MV3D was written to be a proprietary game engine for Mortal Coil Games, but in 2008, it was released as open source. Since then, many features have been added and it is now a fully functional framework. For more information, see the Major Features page.

Experience Required

MV3D is not for beginners. A solid knowledge of programming is required to make a virtual world or game with it. It is in no way an MMORPG maker toolkit where you can just point and click your way through it. Of course, if you are part of a team, not everyone on the team needs to be an engineer. In order to write a game with MV3D, someone on your team will need programming experience. If you are completely new to programming, MV3D is not a great place to learn. It would be better to write a simple game (or even "Hello World") without using a giant framework like MV3D.

Making MMORPGs is hard work and takes experience in many areas. MV3D is designed to support a MMORPGs with many concurrent online players, but if this is your first game or your first programming experience, it would be wise to start smaller than "a World of Warcraft clone." For a humorous look at this, see this video. In general, to make a very basic MORPG (note the missing "M" for Massively), you'll need people with the following skills:

  • Programming including:
    • Python
    • An understanding of network programming and protocols.
    • 3D math-- Vectors, Quaternions, etc.
    • Physics (assuming you use ODE)-- mass, friction, and other surface properties along with knowledge of physics engines.
    • 3D Graphics-- Shaders, materials, animation, LOD, lighting and shadows.
    • AI-- navmeshes, A*, and state machines.
    • Databases-- basic understanding at least to be able to diagnose problem points.
    • Audio-- listeners, voice limits, etc.
    • Gameplay-- all aspects of gameplay programming such as core systems, quests, combat, and spells.
  • 2D Art including:
    • Making textures.
    • Graphic design for UIs and other areas.
    • Concept sketches.
  • 3D Art including:
    • Building models
    • Rigging
    • Animating
    • Terrain sculpting / other environment art.
  • Music including:
    • Composing
    • Recording
    • Sequencing
    • Scripting
  • Sound Effects including:
    • Generating / Recording
    • Scripting
  • Game design including:
    • World design
    • Quest design
    • System design-- combat, skills, spells, etc.
    • Writing dialog

This certainly isn't an all-inclusive list, but it's just some of the things that go into a full featured game. MV3D does take care of a good portion of the programming side of things, but as a team, you will need to at least know the basics about most of those areas. There is of course no need to make a large full featured game. It's entirely possible to make a smaller game with one or two people if they have the right set of knowledge.

This section isn't meant to deter people, but rather to set expectations. MMORPGs like World of Warcraft take a team of over a hundred people years to complete due to the sheer amount of content involved. Unless you have those resources, starting smaller is a very good idea.

Where To Learn Python

As mentioned previously, MV3D isn't a great place to learn Python or to learn computer programming in general. Here's a collection of links to great tutorials and instructions on learning Python:

License

MV3D is released under the MIT License. This makes for easy use in commercial and hobby projects alike. The MIT License does not require modifications to be distributed when you distribute your game or virtual world. However, of course, if you make a modification or bug fix, we'd love to include that in the main distribution. If nothing else, it'll keep you from having to maintain it! The license also does not require source distribution.