One question that often comes up at the start of a project, whether it be personal or professional, is “Should we build or buy our game engine?”

I’ve approached this question several times, as a developer and as a programming lead. Unfortunately, one truth about this problem is you won’t know if you made the right choice until it’s already too late to go with the other option. That being said, you can try to reduce risk as much as possible by looking at several aspects of the problem up front, and try to go with the best choice at the time. Here are some of the major points of consideration I review when pondering building or buying an engine.

Can my team build the engine?
This is probably the simplest problem. Does your team have the skillset required to build a game engine? Do you have tools people, graphics people, etc? Do you have the time to invest in building the game, the engine, and the tools? If the answer to any of these is no, you’ll have to buy or license an engine. Also, building an engine and toolset is a huge undertaking, which may consume years (especially on the tools side – there’s a saying that anyone can make tools, but it takes a long time and talented people to make useful tools which assist your content creators). If you’re only planning on making a one-off game, building your own engine is likely not what you want to do, because you can’t spread the cost of developing the engine across several projects. All in all, if you don’t have the people, the skills, or the time, building an engine is not an option, and if you’re not going to reuse it, building one is likely not cost-effective.

Does the engine do what I need?
This may sound obvious, but does the engine do what you need? Are you making a racing game, fighting game, RTS, RPG, etc, and you’re considering a 3rd person action engine? Do you have dynamic music, network play, or massively multiplayer needs? There is no universal answer for all games, and if someone tries to sell you one that is, I’d ask some hard questions like “Can this keep up a good framerate when my character is travelling 500 mph? Can it do details like leaves brushing against my character as they walk? Can it handle a server load of several hundred to several thousand people logged in at the same time?” Those are just the tip of the iceburg when it comes to different game styles (racing vs high-detail 3rd person vs MMO). Figure out what your game needs, then find only game engines that match those needs.

Can we afford this engine?
Naturally, budget has to come into play at some point. Luckily, there are a wide range of game engines available, everything from open source to extremely cheap (like Torque) to professional-style (like Vicious Engine) to huge, well-known development environments (like Renderware). Still, the basic truth here is that if you can’t afford it, you can’t use it, no matter how pretty it is.

Does the engine provide source code?
This is a big point. If the engine is completely closed-source, you won’t be able to add any features or make any bug fixes. Or trace calls to rendering or sound playing to even see what is happening. Of course, if you have all the source code, the engine vendor may worry that you’ll just take it, or the ideas, and make your own engine later, so be prepared to sign some heavy NDAs and/or contracts if you try for this angle. On the other hand, if you do make bug fixes, giving them back to the engine provider makes for a nice two-way street, and may get you a discout on your next engine license. If you need to extend the engine, or worry about bugs, only consider engines that provide source code, but be prepared to sign NDAs and contracts promising not to steal that code

What is your area of focus?
Are you looking to build a new system of rendering, or are you trying to build a new game world? Building an engine may not be the best idea if you are trying to extend gameplay more than game functionality. Of course, if no engine can support your gameplay, you’ll need to roll your own (or modify one to suit your needs). Before coding or paying for an engine, be sure to ask yourself – are you building gameplay, or game functionality?

What option lowers risk the most?
Games, by their nature, are very risky ventures. You may get halfway through development only to have funding cut off. You may get halfway through development, only to find that a core gameplay mechanic isn’t nearly as fun as you expected. You may get halfway through development and your senior developers all quit to go work somewhere else for a higher salary. Wherever possible, you have to work to reduce risk. Making an engine can be an extremely risky venture, since it takes so long and so many people. However, if no game engine provides the functionality you need, trying to wedge new functionality into an existing one (which someone else wrote) may be even harder. Reduce your risk when you make decisions, because so many events which are completely out of your control will add risk for you.

Building a game engine is a huge undertaking, but it can be very valuable, especially for independent programmers or small groups – it teaches you a lot about what goes into games, and that knowledge will serve you well as your career develops. But keep in mind that since it is such a huge undertaking, it will put off your ability to put out that game concept you have in mind. From a professional point of view, it comes down to a cost/benefit analysis. Do you have a team that could make the engine, given time? Do you have that time? Are there currently available engines (within your budget) that can be used instead? Could an existing engine be modified to suit your needs? These all need to be answered before any lines of code are written, or any engine selected.

Of course, if anyone is forcing an engine choice on you, or forcing you to choose no engine, then all this may be moot, and you’ll have to go with the flow. But do the research anyway, and try to argue your point. You may be able to change minds if you present the facts in the correct manner.