Create your own tools, or use someone elses?

Started by
10 comments, last by SuperG 15 years, 4 months ago
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.)
[size=12pt]SoraCross Development"A website dedicated to bringing you high quality games and web designs."
Advertisement
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.
laziness is the foundation of efficiency | www.AdrianWalker.info | Adventures in Game Production | @zer0wolf - Twitter
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.
Thank you both very much for your insight. I've decide to try using other peoples tools for my project. Once again, thank you.
[size=12pt]SoraCross Development"A website dedicated to bringing you high quality games and web designs."
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.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

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.
If you can use someone else's, use someone else's.
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.
[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]
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.
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?

This topic is closed to new replies.

Advertisement