MV3D 0.60 Released!

I’m pleased to announce the release of MV3D version 0.60! This release focused on scalability of worlds and includes support for splitting a single area across multiple server processes with automatic load balancing and redundancy. Areas can now be connected together using gateways to build worlds limited in size only by the amount of available hardware. The Overseer Cluster Management tool was upgraded in order to better handle many processes across multiple physical servers. Camera controls across all content tools have been unified. Better support for Panda3D clients was added as well.

Panda3D support is almost on par with Ogre3D support now. The current missing functionality includes skies, terrain texture splatting, and character animation. All of those are expected to be completed in the next release. This release also comes with Windows only Panda p3d binaries for the client and tools which you can download here. Note that even though it’s distributed as p3d, it doesn’t run in browser this release.

MV3D is an open source virtual world and multiplayer game framework written in Python. It was designed with scalability in mind and is able to distribute a world across as many servers as needed while dynamically balancing the load. The simulation framework is not specifically slanted towards any one genre of online game, and can just as easily be used for a space game as a fantasy setting. Objects on an MV3D server are simulated using the ODE physics engine. A single server can host thousands of simulated objects. MV3D supports both Python-Ogre and Panda3D.

For more information on MV3D and this or future releases, please visit the website. The full release notes for version 0.6 are available online as well. For further inquiries, feel free to stop by our IRC channel on #MV3D.

Here are some in game screenshots from a demo area I put together quickly today:



That’s very interesting, congratulations!

Hi Mike,

Just a few questions before I have a deeper look at MV3D.

(1) Is Panda engine being used solely on client side?
What about core game logic at server(s)?

(2) Is Panda usable in c++ for add-on?

(3) Is it (would it be) possible to use Bullet instead of ODE?

In any case congratulations for your development!

That’s correct. The server does not use either Ogre3D or Panda3D. This makes it able to be completely disconnected from any specific renderer. The demo server runs both the Panda3D and Ogre3D demo worlds for example (and neither library is installed on that machine).

Historically, MV3D has left the game logic up to users to implement, but we are starting to add in some fairly general things such as state machines, and path finding. This next release, we are looking to broaden that to include some very simple game systems. Exactly what systems we’ll be working on first hasn’t been decided yet.

Panda is, but MV3D is not. Well, I’m sure you could find a way to make that work, but no one I know of has tried it yet.

We would really like to support Bullet. The problem is that there isn’t a Python wrapper for it (as far as I’ve seen) that isn’t attached to a 3D engine. The main motivation for this happened this morning-- ODE asserts when something goes wrong. That crashes the whole Python process which in this case was the demo server.



One more thing I should mention. There are two demo worlds on the default server. One is for Ogre and one for Panda, so make sure you choose the Panda character and Panda World when creating a character. Also you’ll need the Panda runtime if you are using the Windows binaries since they’re p3d files.



Decided to try this one as it looks interesting but after downloading the client it totally refuses to load… error about invalid certificates. And Panda does NOT give me the nicely “unsafe” option to ignore… close is the only choice I’m given. This is the first time I’ve posted in a long time … after being roundly castigated by a bunch of “Ivy League” “professional developers” over my favorite choice of text colors ( 1.0, 0.0, 1.0, 1.0 ) over black and my stunning lack of professionalism… what I’m trying to do isn’t about money to me its about supporting creativity which moneygrubbing VR sites like Second Life care little about. Your app interested me as you seem to have gotten further along, I’m still having problems figuring out how to enable collisions on non-EGG terrain. I really wanted to look at this …BUT.

It sounds like you may be trying to run the client.p3d file in a browser. It isn’t quite set up to do that yet, so you’ll need to download it and run the p3d file on the command line. Double clicking its icon should work as well I believe.

We’ll be releasing a working browser plugin in future releases. It’s pretty easy to get going, just the most recent release didn’t include that functionality.

Actually I just noticed that the demo server is down currently. I’ll restart that later today. The server is pretty stable, except that ODE asserts when it gets angry which crashes the whole Python process. We’re looking to move to Bullet to resolve this issue, but there aren’t any polished Python wrappers for it that I’m aware of that aren’t attached to a 3D engine.

Hope that helps!



Since I saw it was distributed as a P3D I just made the assumption … run in browser. Me personally I’ve NEVER liked the whole “certificate” based security model anyway.

I wanted to see how your prog worked as you are a lot further along than I am, actually I’m probably buried right now by an insoluble problem with collision detection in Panda involving GEOMIP Terrain and a system based on Craig Macomber’s infinite shader based terrain.

You are a lot further along having already integrated Twisted Core and Reactor for networking. This was to be a much later step for me, after getting collisions and onscreen picking running to support a SQL lite based world editor.

Since MV3D is open source and MIT license I had thought to check it out as it could provide me with an example of how to integrate Twisted and Entangled for my P2P cloud networking and database system.

I will try running it from command line to see, maybe you should add that little bit of a hint to your existing post where I found the link.

Thing is my own project is probly DOA due to the collision problems being endemic to the C++ side of the Panda engine, C++ coding is NOT something I’m very good at and do not currently have the tools for as the cost of Visual Studio puts it totally out of my reach.

Good idea… I just edited the post above with that info.

Also the demo server is up now. When creating a character, make sure to chose the Panda character and Panda area since that server hosts worlds for both Panda and Ogre. Let me know if you run into any troubles. There was a bug with the permissions granted to newly created Panda characters that was fixed in svn trunk which may need to be patched on the demo server. MV3D has an extensive permission system for setting up admins and granting or denying access to everything down to the level of in game objects.

If you’ve got questions about how anything works, feel free to ask away. I’ll happily answer if I can.

That’s unfortunate. If you’re more familiar with Python, then MV3D is definitely worth checking out. We’ll eventually be doing optimization in C++ or Cython, but right now, it’s all Python. By the end of the current release, Panda support should be at the same level as Ogre support. The only thing missing right now is character animation and that system is next on my list. Terrain texture splatting for Panda just made it into svn trunk so you can use MV3D’s world editor (Composer) to paint on terrains in Panda now.