Sign in to follow this  
Robo-Link

Create your own tools, or use someone elses?

Recommended Posts

Robo-Link    100
What are the pros and cons to creating your own tools or using someone elses? And what do professional game developers do? (I.E. Creating your own 3D model format/viewer/editor, or using Blender.)

Share this post


Link to post
Share on other sites
zer0wolf    1022
Well, the pro to developing your own tools is that you can get exactly what you want. The con (and a big one at that) is how much of a time and money sink it is to develop your own tools.

At work we have been developing our game engine and many of the supporting tools in house. I personally think that in general this hasn't worked out in our favor thus far, but I don't make those decisions [wink] For a project that we are planning on next year we're probably going to wind up licensing an engine for it. The man hours we'd need to devote to supporting additional platforms with additional features in the time we have before we start development just isn't feasible.

We certainly don't develop our own 3d art tools (very, very few companies do, but I know of a couple of them and they're all film companies, not videogame companies). Game specific tools are written in house, though. For instance when I was working on Iron Chef a guy wrote a tool for me to manage all of the data for assembling the recipes and adding all of the supporting text.

Share this post


Link to post
Share on other sites
Kest    547
It depends on how complex the tool would be to develop. If it's rather simple, then the cost of being restricted by someone else's tool might be too high.

There's also the point of automation. Game resources often have many necessary frills that artists and developers need to add on to everything they create to go into it. By creating your own tools, you can make some of those things happen automatically, saving far more time in the long run.

Otherwise, if an existing tool does everything you need it to do, it would be stupid to make your own. Well, other than for fun or learning.

Share this post


Link to post
Share on other sites
swiftcoder    18439
Quote:
Original post by Kest
Otherwise, if an existing tool does everything you need it to do, it would be stupid to make your own. Well, other than for fun or learning.
It is worth pointing out that this goes for more than just tools. For example, implementing a physics engine from scratch (other than for educational purposes) is stupid, considering that physics is time consuming to implement, relatively hard to get right, and there are many, very good existing physics libraries.

Share this post


Link to post
Share on other sites
SiCrane    11839
One thing to note is that many existing tools provide methods for customization. For example, 3D modeling tools frequently can be customized via scripting or plug-ins, often both. So if one doesn't support exporting to a file format you like, you can often write a plug-in to export to your own format.

Share this post


Link to post
Share on other sites
Cornstalks    7030
I personally like to make my own (assuming I have the knowledge required to do so) just so I can learn more about how they work. I find it a great programming exercise. But in a real application or product, I'd rather use someone else's. Theirs would be more stable, better designed, and increase my production time.

Share this post


Link to post
Share on other sites
shurcool    439
Basically, yeah, what others have said. If you're doing it for learning (and you are interested in knowing what goes into making a tool), do it yourself. If you want to get to a finished result as soon as possible, or would rather concentrate your learning in other areas, use someone else's (provided it is suitable for your needs... you may not always be so lucky and have a choice).

Quote:
Original post by SiCrane
One thing to note is that many existing tools provide methods for customization. For example, 3D modeling tools frequently can be customized via scripting or plug-ins, often both. So if one doesn't support exporting to a file format you like, you can often write a plug-in to export to your own format.

Just one note, I heard it's better to write a format converter tool rather than an app/version-specific export script. Reasons are that the tool you use may change (different brand, different version, etc.), breaking your export script in the process. Whereas a good converter tool will always do its job and won't require (as much) maintenance in general. And you can always convert between different formats.

I haven't tested that idea myself, but it seems like good logic to me.

Share this post


Link to post
Share on other sites
SiCrane    11839
That works under the assumption that an existing format contains all the information that your format needs, which may not be true. After all, you're using a custom format for a reason in the first place, right?

Share this post


Link to post
Share on other sites
Kest    547
Quote:
Original post by shurcool
Quote:
Original post by SiCrane
One thing to note is that many existing tools provide methods for customization. For example, 3D modeling tools frequently can be customized via scripting or plug-ins, often both. So if one doesn't support exporting to a file format you like, you can often write a plug-in to export to your own format.

Just one note, I heard it's better to write a format converter tool rather than an app/version-specific export script. Reasons are that the tool you use may change (different brand, different version, etc.), breaking your export script in the process. Whereas a good converter tool will always do its job and won't require (as much) maintenance in general. And you can always convert between different formats.

I haven't tested that idea myself, but it seems like good logic to me.

You can also have your game engine automatically run the converter tool in the background the first time you attempt to load a resource file in its raw format.

I do this with animations. I export the animations along with the entire skin mesh and other scene data as an .X format file (about 3MB each). When my game attempts to load this file in, it checks to see it's a standard X format file, then runs the conversion tool to strip away everything except the animation and resave the file (down to about 25KB). It also uses some scene objects to compute extra data, like placement/waypoint nodes and collision primitive shapes.

Share this post


Link to post
Share on other sites
SuperG    1300
I get the impression professional dev's do both.
Depends on your game engine and content requierment and if current tools offer them.
Most game engine tools are aimd at FPS. So there is more tool choice.
Even for FPS games there could be special key features that requier special feature of the game engine and edit tools.

Crysis interactive jungle key feature, leads to a inhouse physics engine wich can use GPU a bit.
Farcry2 dunia engine uses Havok barely, but have running it's own solution on top of it.
Redfraction feature research for full destruction would lead to a new gameengine and Physics solution for there new nextgen game.
I think what the rumor made me believe.

So it depends on what your game idea is and it's requierment. If the tech behind its is very common a licensable engine or even modding will do. In such case using avaible tools on the market is a smart thing.
If you want to do something special. If it not much different you can extend tools. Like dev's claim to use a heavily modified licence game engine of firm X.
In special cases you need to make your own. If not you reduce your project.


Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this