MV3D Development Blog

June 25, 2007

Two For One Sale

Filed under: Uncategorized — SirGolan @ 11:11 pm

Yes, that’s right, two posts in one night! In this post, I’ll be rambling about content creation tools.

MV3D currently has some rudimentary in game editing tools. They allow you to select objects, move them, rotate them (sorta), create, delete, etc. Very basic stuff, and really not all too useful if you are looking to build anything remotely complex. I need to come up with a much more useful way to place things in the game world.

Adding some more features to the current editing tools would definitely be a good start to this. In fact, making the current tools less buggy would even be good. Currently, when you move or rotate an item, you are constantly fighting with the server. So you’ll move the item in real time (only on the client) and then while you are doing so, the server will be like “oh yeah, don’t forget, that item was *here*” and it’ll put it back to where it started. The other problem is selecting things with the mouse is and always has been very broken. I’ve handled the specific problem of translating a 2d mouse click on the screen to a 3d object plenty of times before, but I think in this case, I’m using the physics engine to figure it out rather than the graphics engine. And you know what, I think there was a reason for that, but I’m going to call it not a very good one at this point.

Features to add include at the bare minimum, aligning objects. For instance, you want a house object to be planted on the ground. There should be a function that figures out the bottom of the house and the top of the ground and matches them up. Part of the problem there, I think, was that I don’t (yet) know of any way to get to the internals of a 3d model in Ogre. It was pretty easy in Crystal Space, but Ogre hides it from you. So I can’t just be like “Ok, what’s the lowest point on this model, and what’s the highest point on that model.” (Yeah, I know, whine whine) Also can’t forget that multiple selection would be handy.

Beyond that, though, There need to be some other higher powered features like clone (clone a line of things, clone a grid of things, clone a circle of things), randomly place stuff (randomly place, but aligned to ground), terrain editing, and so on.

Please feel free to chime in with any ideas. MV3D’s game world is completely dynamic. Anything above the level of 3D model needs to be edited in game (or in a separate editor).

One more idea that just hit me. It could be possible (maybe even not very hard) to make an external program that you could edit stuff in and then it could connect to a MV3D server and place it in game. That way, you don’t have to talk to the server at all while you are building things. Hmm. Could work, could suck.

SVN Commit Baby!

Filed under: Uncategorized — SirGolan @ 7:51 pm

I made the first SVN commit to MV3D in quite some time just now. I keep thinking that I really need to get back to it, but only just today had some time. No, I didn’t do anything fancy or supa-cool. Mostly, I updated things to work with the newest version of Python-Ogre. Due to working with a bit lately (on unrelated things), I now see a lot of areas that could use improvement. He just recently opened my eyes to a really nifty Twisted class called Cooperator. There’s about a million places in MV3D that could benefit from using one of those. The programming pattern seems to go like this with a lot of things in Twisted:

  • Twisted implements a feature.
  • Quite some time later, I want to do the same thing as said feature, so I implement it on my own.
  • More time passes.. I find out that the feature was in Twisted all along and probably works better than my version.
  • I cry.
  • I switch to Twisted’s version.

Anyway, no pretty screen shots this time. Anyone know a good 3D artist who is looking for an open source project? That would help with the pretty screen shots.

Powered by WordPress