View Full Version : 3D Engine: Build vs. Buy
WoolyLoach
07-29-2003, 08:02 AM
Ok, I have a concept. It's a niche-market product but there's been some interest from people I've spoken to on the topic and there's very little competition. Time to start developing!
I've now run into the lovely old problem of "build vs. buy". I'm sure everyone has been here before (lol), build gives more control but takes longer(many many months for a comprehensive engine), buy gives less control but gets your product out the door sooner (usually). Exceptions to every rule aside...
Does anyone have any experience with the end result of each path - is it *really* better to keep total control and spend the extra time to crank out your own audio/graphics engine, or is it actually better to go with a 3rd party library/Open Source (LGPL) engine and start off ahead of the game? I'm concerned about re-inventing the "3d engine" wheel for the bazillionth time for no good business-based reason...
Just FYI the packages I've looked into are all under $1K for licensing. Any more than that and it crosses the threshold of pain! Self-funding does have its downside.. lol..
TIA for any comments, notes, appropriate Web sites, or general flammage.. heh heh..
Akura
07-29-2003, 08:16 AM
Done both ways, products that shipped on time and complete all used commercial engines.
Games that ship VERY VERY later or not at all 90% used custom inhouse engines.
Unless you have a good team of programmers, you will spend a lot of time developing the engine (unless you only need something very simple).
Take a look at OGRE, you can even combine it with ODE and you get a decent renderer along with a physics engine for free :)
svero
07-29-2003, 08:22 AM
I think developing your own in-house technology is valid if you have a good reason for doing it. That is... you're looking at using a custom engine to do something unique or to be a stable technology base for the next 5 yrs or to license it later on. Depends partly on the experience of the people.
Otherwise I think bootstrapping with a 3rd party engine is a perfectly valid way to approach it. There's quite a few decent tools on the market. Even something like Blitz3D migth be worthwhile. I'd also look at garagegames... they have 2 engines that look pretty good.
Jake Stine
07-29-2003, 08:27 AM
The problem still with building your own 3D in-house engine is that DirectX and OpenGL cross-compatability is still not perfect. While it is getting better, you are still going to run into lots of problems where your engine either doesn't look right or doesn't work at all on someone else's PC/video card combo. These types of situations are very difficult for people like us to troubleshoot because we can't go out and buy a PC or video card to test, debug, and fix with.
Unfortunately a lot of your cheaper pre-built engines have the same kind of problems still, so those aren't necessarily a great solution to that. They can be a solution as a big time saver though. You have to figure as a single programmer or even a team of two, it will take half of a year to develop a working and reasonably tested 3D engine from scratch that does the things you need it to do. For many people, the payoff in time from shelling out $1000 or so would far exceed six months of work. In may case it doesn't, but for a lot of people it would I'm sure.
But don't forget! Don't look at it sheerly from a numbers standpoint. If you don't like the pre-built engines then don't buy them. There's not much really rewarding about 'saving time' just to feel confined by a bad API and/or a poorly implemented engine. So if it comes down to not liking any of them them then yes, I think you should build your own. But if there is one you are comfortable with then by all means take that and run with it.
Carrot
07-29-2003, 08:37 AM
I think its even more relevant for most indies because the teams tend to be smaller. It basically comes down to whether you want to spend time creating games or maintaining an engine.
I'm currently in two minds at the minute myself.
The engine I've developed has finally stabilised but will need more work to make it a viable, generic solution for game development in the future. It's not as general as I'd hoped originally and has a lot of code specific to the actual game itself.
I'm just wondering if it worth the hassle.
One other point: unless the engines are well maintained they'll become obsolete in a few years (or even just degenerate!).
I'm thinking maybe I should just let someone else worry about the engine and get on with making games.
Dan MacDonald
07-29-2003, 09:36 AM
All of the indies I know personally who have purchased the Torque engine from garage games have said that it was the one best $100 purchases they ever made. One friend in paticular was really struggleing with build vs. buy. He grudgingly bought to check it out and ended up really loving it.
WoolyLoach
07-29-2003, 09:38 AM
Seems like this isn't an uncommon concern. Personally, at this point I've dug out my ancient Conitec A5 Commercial version and will use it for prototyping, if nothing else. The A6 version looks pretty decent for small games as well.
I take the point about engine maintenance and support.. the game I have in mind is *not* leading-edge, as I don't want to alienate my target market (somewhat casual gamers) so I don't need (or WANT) anything too fancy. I'd also prefer to focus on implementing gameplay, especially since the team is tiny (3 people) and we all have day gigs. I also have somewhat less than zero desire to become an engine/tools licensing company, too many people out there already that are far better at it than I am!
I can easily imagine burning out and/or shipping late by biting off more than we can chew. I do embedded systems development for a large Dutch consumer electronics company (lol) in the day so I'm familiar with what happens when you underestimate and over-commit.. ugh.
I'm looking into Ogre as well - thanks for the suggestion! Doesn't look too bad, I'll investigate more. Torque looks nice as well, I've heard a fair amount about it some time back and it looks like the licensing issue (only distro through them) has been adjusted.
Thanks for the information! :)
Siebharinn
07-29-2003, 12:15 PM
I have to agree with Dan. Look at it like this: Torque is $100. Give yourself an hourly value, say $5 an hour. Can you produce a complete cross-platform 3D engine, with great network support, in 20 hours? Definately worth the money.
Morphecy
07-29-2003, 10:32 PM
@Siebharinn: but there is also the "learning of Torque" ;) so WoolyLoach, take a look at your programming skills. Are you C or Basic user?
Torque will be good choice if you know C (or C++ whatever) :)
Try Blitz3D ($79, www.blitzbasic.com) if you know Basic (Visual Basic for example)
Purchasing ready made product will propably save your time - but remember: there's always "learning of a new tool", you can't just say that $100 (or $79) solution is much cheaper if it takes half year to be a pro. Anyway - I think you can get a grip in both tools for just about few months, the only question is really the C (Torque) or Basic (Blitz3D) knowledge. After saying that - just buy the product.
my three cents :D
Kai-Peter
07-29-2003, 11:27 PM
After a lot of research I developed Space Station Manager using just DirectX. I had three reasons for this:
1. The 3D rendering is really simple and an engine looked overkill
2. No engine supported any decent GUI frameworks
3. I didn't find decent software rendering support and integrating a good software renderer would mean writing the 3D code myself anyway
As an aftertought 1 and 2 have been quite correct. 3 is still valid but I haven't got around to implementing it yet.
My question to those of you who use Torque: Does it support software rendering and what GUI support does it have? Or alternatively, how good is the 2D drawing interface (I could always port my own GUI library)?
Jack_Norton
07-29-2003, 11:45 PM
My question to those of you who use Torque: Does it support software rendering and what GUI support does it have? Or alternatively, how good is the 2D drawing interface (I could always port my own GUI library)?
I am a mad person: bought the Torque engine long time ago (about one month later when it was released) but was never able to put together anything, due to lack of documentation and the fact that I am not really a great C programmer :P
(with Blitz3D I almost finished a game in 5 months... well, ok that's another matter!)
The Torque if I remember well has some really nice 2D Gui, including a Gui Editor with which you can create the various 2D screens interfaces. Experienced users can tell you more, but I think that was really good.
hammon
07-30-2003, 01:37 AM
There's a new $100 3D engine on the market: http://www.cipherengine.com/
I've never used it, but judging from the demos, it's not half bad (incidentally, if you do buy and use it, let me know what you think - I could possibly be using it in a future project).
Siebharinn
07-30-2003, 05:23 AM
Morphecy
Purchasing ready made product will propably save your time - but remember: there's always "learning of a new tool", you can't just say that $100 (or $79) solution is much cheaper if it takes half year to be a pro.
Ok, let's say it takes you six months of hard work to figure out Torque. I still don't think you could build an engine with a similar feature set in that amount of time.
You're right, there is a learning time involved for things, but it is usually far less than the time needed to implement that same solution yourself.
As an indie, your most valuable resource is time. Anything that saves you time is a good thing. As DavidRM once eloquently put it: "for indies, it's not a question of build or buy, it's where do I buy?" I didn't get it at the time, but I do now.
Siebharinn
07-30-2003, 05:39 AM
Kai-Peter
My question to those of you who use Torque: Does it support software rendering and what GUI support does it have? Or alternatively, how good is the 2D drawing interface (I could always port my own GUI library)?
Torque is natively OpenGL, although it has a wrapper library that can call Direct3D. It doesn't do software rendering out of the box, but there might be a community project doing that.
The 2D drawing interface looks pretty good, but I honestly haven't messed with it that much. It's geared around GUI elements, sort of like Windows controls. You have a canvas, and just drop element onto that. Each element is scriptable, so for instance, if you have a "score" element up on the screen, you can call "setScore" anywhere in the script to change the score.
Creating new elements is done in C++, and that's what I'm working through right now. I'll let you know how it goes.
You can download Realm War (http://www.garagegames.com/mg/projects/realmwars/) (a community project built with Torque). Fire up the game and from any screen press f10 to go into the GUI editor.
WoolyLoach
07-30-2003, 12:32 PM
Ok, "buy" it definitely is. A few random comments:
I'm a C/C++ programmer and have been involved in some open-source and commercial game projects, so I prefer an engine I can get to with that. I own Visual Studio .NET so I'm good to go there... the game concept I have is from a first-person perspective but not a shooter. I own Milkshape3D, CharacterFX, and Unwrap3D along with several 2D art tools that my part-time artist uses. Nobody on the team has the $$$$ to dump into 3DS MAX or Maya, alas.
Torque looks decent, not a heck of a lot documentation-wise but there appears to be reasonable community support. Can't beat the cost. Reasonable tool support as well, I think I saw that there was a Milkshape exporter.
Ogre has great stuff for 3D, good tool support, a very active community, and a nice plugin architecture so that I can add to it without catching the LGPL contagion. No real audio or music support from what I can see, but I can add that myself. Integrated physics support with ODE as well. It's free, what more can I say?
Cipher also looks decent for $100 but according to their Website you need 3DS MAX to get models into it.. that's a showstopper right there.
To upgrade my Gamestudio A5 Commercial to Gamestudio A6 Professional (the only way to get packed file support) would cost close to my budget of $1K and it's not looking like it's worth the investment, given the other alternatives.
Right now I'm digging through Ogre, it appears to be the biggest bang for the buck, it provides a lot of functionality and while it's not the all-singing/all-dancing game engine others are its a nice head start on things. I don't have a problem with giving any changes I'd make back to the community since most of the "proprietary" code would be in the main application or in a DLL (so no static linkage LGPL contagion there).
luggage
07-30-2003, 04:25 PM
If you just want packed file support you can use molebox ( www.molebox.com ). Requires no code change, compresses, encrypts and will even pack it all into one file if wanted. ie. your game can consist of just game.exe and that's that.
Scott
WoolyLoach
07-31-2003, 12:38 PM
Thanks for the link to Molebox.. looks *very* interesting. I'm going to test it with one of my old A5 projects and see if it works. If it does, that removes my biggest gripe with A5.
zoombapup
07-31-2003, 02:43 PM
Ive been a torque developer for a few years now.
Its gui is VERY nice, I think the way the gui is designed is pretty good, there are some minor changes Ive made, but other than that, its top notch.
Torque is very good for cross platform dev, has excellent networking and is generally pretty nice to get along with. Only real major downside is the documentation, thats being fixed by garagegames using interns right now.
Ogre looks kinda nice, but it'd need a lot more "in the rough" usage before I'd choose it over torque.
It really depends on the game though, I'd have no problem implementing a directX based "engine" if it was mainly for a pretty simple 3D game.
Phil.
Jack_Norton
07-31-2003, 11:08 PM
Only real major downside is the documentation, thats being fixed by garagegames using interns right now.
That's good to hear. I purchased Torque but, since I am not really good at C/C++, left it because it's really hard to understand without documentation...!!!
But if they do a good job I may give it another try :)