Jump to content
  • Advertisement
Sign in to follow this  
Nanook

3dsmax exporter

This topic is 2525 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm going to write a 3dsmax exporter for my engine, but I'm not sure if I should write it in maxscript or use the c++ api?

Someone told me the c++ api is a pain to work with? I did some googling and there where some old post saying the opposite.. whats the state of things now?

Share this post


Link to post
Share on other sites
Advertisement
It is a little bit off topic, but I can't stress it enough. Writing an exporter for a certain tool to export only models,animations,skeletons etc. for a game is a very time intensive idea (=bad idea for most indi developers). Here are the reasons:
- there're many version of max available, many with differences in their api
- when a new max version comes around you most probably need to refactor your exporter
- all artists, using blender or maya, needs to buy and use a new tool, or you need to write exporter for these tools too.

This is not a problem for large studios, but as indie developer you need to invest just too much time.

My sugguestion:
Use an existing, widely supported,stable exportformat and write a converter tool instead. I.e. FBX or collada is a good format. So any modelling tool and version supporting this export format could be used and you have to support only one converter tool.

Share this post


Link to post
Share on other sites

- there're many version of max available, many with differences in their api

There are many versions, and the OP will be using ONE of them. As for saying there are many differences, you sir are spreading mis-information and downright lies! The SDK stays the same between each version (sadly).


- when a new max version comes around you most probably need to refactor your exporter

More lies. More misinformation. You'll just need to recompile, but I've yet to see a new release force a refactor (in 8 or so years...)


- all artists, using blender or maya, needs to buy and use a new tool, or you need to write exporter for these tools too.

Again, more misinformation. In any toolchain you will use multiple tools for multiple reasons. I could understand someone wanting to model in Max, rig in Maya, animate in Motionbuilder, and texture within Z-Brush. I simply do not believe that you will ever work with someone who uses multiple packages to do exactly the same thing. Chances are, you'll only be extracting portions of the data set if you are using multiple tools. It is unlikely that you'll be exporting the same data from multiple packages (unless you work in middleware of course).


This is not a problem for large studios, but as indie developer you need to invest just too much time.

That's a fair argument, but who is to say the OP wants to develop an indie game? (He could be doing things for the sake of learning something new).


Use an existing, widely supported,stable exportformat and write a converter tool instead. I.e. FBX or collada is a good format.

The only problem with that is when you have a custom toolset used to markup level & character data (i.e. you've added a load of custom nodes that allow you to place character start points, trigger volumes, etc). There are no exporters that output this information. You will have to write your own exporter to get at the data.

Max makes a very good level editor with a little bit of work. The time savings of leveraging that tech + the time spent writing a custom exporter is considerably less than the insanity of trying to write your own game editor!!!!

[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

I'm going to write a 3dsmax exporter for my engine, but I'm not sure if I should write it in maxscript or use the c++ api?

[/font][/quote]
Max Script can't *quite* get to all of the data (but that probably won't affect you too much).
The SDK is a massive pain (dl3d is the best place to ask questions if you get stuck). Writing an exporter in it isn't too bad, although it's not exactly what I'd call fun....
If maxscript can get the stuff you need, use that. If it's for tonnes of data, then you might want to consider the SDK.
There is also IGame (which is a wrapper over the Max SSK). Some people claim it's quite good, although I'm not sure I share that opinion (I think just grabbing stuff from the SDK is easier tbh....)

[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

Someone told me the c++ api is a pain to work with? I did some googling and there where some old post saying the opposite.. whats the state of things now?

[/font][/quote]
I've worked with pretty much all of the 3D packages in my time, and I can confirm that the Max SDK is by far the worst example of application programming I have ever seen. It's not that the SDK is crap, it's just that the entirety of 3ds max is crap, and that's reflected most strongly in the SDK. If all you need is just some mesh data, then it's probably better to simply export using an existing format. If it's just for a load of custom markup data, I'd probably combine an existing format with a max script exporter just for that markup data. My 2 cents anyway....

Share this post


Link to post
Share on other sites
Disclaimer: My assumption is more for indie-development (none to low budget) and not development studios with bigger budgets.


There are many versions, and the OP will be using ONE of them. As for saying there are many differences, you sir are spreading mis-information and downright lies! The SDK stays the same between each version (sadly).

More lies. More misinformation. You'll just need to recompile, but I've yet to see a new release force a refactor (in 8 or so years...)

You are most probably right here, my experiences are somewhat older (>10 years), sorry for the mis-information.


[quote name='Ashaman73' timestamp='1326805532' post='4903598']
- all artists, using blender or maya, needs to buy and use a new tool, or you need to write exporter for these tools too.

Again, more misinformation. In any toolchain you will use multiple tools for multiple reasons. I could understand someone wanting to model in Max, rig in Maya, animate in Motionbuilder, and texture within Z-Brush. I simply do not believe that you will ever work with someone who uses multiple packages to do exactly the same thing. Chances are, you'll only be extracting portions of the data set if you are using multiple tools. It is unlikely that you'll be exporting the same data from multiple packages (unless you work in middleware of course).
[/quote]
I'm talking about working with more than one artist or changing artists. I know artists who prefer max, I know artists who prefer maya. Both (2012 versions) costs around $3.5k (3d max, maya), writing an export only for 3d max, you will turn off any artist who owns and uses maya (maybe you can convince him when you invest $3.5k to get a license for 3d max). Even blender is quite attractive to none-professional artists.

Seeing all the begging and pleading for artists in the help wanted forum, I think that it is not one of the best ideas as indie-dev to turn down artists who own and use other tools than max.


[quote name='Ashaman73' timestamp='1326805532' post='4903598']
Use an existing, widely supported,stable exportformat and write a converter tool instead. I.e. FBX or collada is a good format.

The only problem with that is when you have a custom toolset used to markup level & character data (i.e. you've added a load of custom nodes that allow you to place character start points, trigger volumes, etc). There are no exporters that output this information. You will have to write your own exporter to get at the data.
[/quote]
That's true, but you often have a chance to place custom parameters which will be exported too. In this case you need to check your requirements. I got a similar case and wrote a simple exporter (about 50 lines of code) to export these meta informations. Still I believe that this is the better way.

An other advantage of using a converter is, that you can easily batch it. This way changes of the converter could be easily applied to already exported assets. Thought I don't know if max supports batching exports.


Max makes a very good level editor with a little bit of work. The time savings of leveraging that tech + the time spent writing a custom exporter is considerably less than the insanity of trying to write your own game editor!!!!

You should re-read my post and re-think your response (convert != game editor).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!