Site Sections

Sunday, May 18, 2008

Should you build your own engine??

Surfing around this morning and ran across this article from Gamasutra:

Build, Don't Buy Engines

It is interesting to see a large scale developer talk about building your own engines vs. using the pre-packaged engines that everyone in the industry talks about. I think that there is a real truth about what he is saying though. Look at it this way, either you could be learning someone else's technology, which will allow you to be more diverse in the industry, as you can move around in the industry and not have to worry as much about retraining. Also, as a company owner, you can hire those with backgrounds in the common engine tools and save money this way. However, it is true that if you use someone else's technology, you are going to pay for it. Yet, if you spend the time to develop your own engine, this comes with two major benefits: one, its totally customizable however you see fit, allowing you to create the type of game that you want to create. You are not limited to the same FPS shooters that everyone else is building. And two, it's your technology, you can license it yourself and make the same kind of money that companies like Epic and Valve are making for their technology, assuming it is useful for others in the industry.

I am curious what others think about this so feel free to comment and give your two cents.

4 comments:

Chr0n1x said...

I agree on those points, however as they say "Don't re-invent the wheel."

A game developer makes games, now the longer you spend in development, the more costs you incur, and the longer it takes until you can (possibly) recoup those losses.

If you are developing your own engine, you are adding a lot (maybe years) onto your development time just to get on par with the quality of the major commercial engines, even if it will only be used in house.

Inherently every FPS is the same, it is the content that sets them apart. The engine defines the features, and not the look and feel of the game.

Now sure there are some elements that make you recognise an engine, like the streaming issues of an Unreal Engine game. However primarily the engines provide the base work just like an operating system would provide the base code to move the head of a hard drive to write some data.

There is also the issue of actually being able to write performing code that can give you the same features as an engine like the Unreal engine, or the CryEngine.
Those companies have a background in writing engine code, and know how to write top quality features with good performance code. The demand from gaming consumers for top level graphics in AAA titles, as well as all the other features like low latency netcode, high quality audio, etc all mean that when writing from scratch, there is a lot of work to do to match that of a developed professional engine.

From a business standpoint, the potential risk of lost profits from developing your own engine simply does not outweigh the small bonus of knowing the inner workings and tricks of your own engine.
Where even for the large developers, a single failed game can be all it takes to ruin the studio, this benefit simply does not outweight the risks, and unless you have top quality people in your engine team, or a large backing, you simply do not want to risk it when you can simply pay a title licensing fee which is much less than the average development costs for a full next-gen game engine. You then just have to focus on making a great gaming experience and can use the engine's notoriety as an advertising tool to sell your graphics. This cuts years off the development time and can bring in lots of profits.

Unknown said...

Thanks for the comment chr0n1x. You have a serious point, it does seem to make more sense for smaller companies to license a title, especially since it seems that many smaller companies start out as just a group of modders anyways. Its probably a good chance that they do not have the coding background that many top level companies have on their staff. Instead they can focus on the art and level design that makes a game stand out from the others in the pack.

I suppose the best example I can think of is BioShock for using art and level design to change an engine, they used Unreal III but the game doesn't play or feel even remotely like the same game. I am curious as to how much of the actual engine was left after they were done though? I have heard that they made some serious modifications and even used different middleware for aspects of the engine that they didn't care for, and unlike many smaller companies, the group that did BioShock had some real top quality people on their team.

Unknown said...

I rather strenuously disagree with the linked article. Though there are certainly plenty of benefits to building a custom engine, most of them aren't directly related to making games. There's licensing money and, to a certain extent, flexibility, but both of these are more side benefits than anything else.

The article makes it out like creating a game engine only requires talented engineers but that's only half the battle. You also need a solid plan, an overall architectural design that takes as long or longer to perfect than the actual code. In the meantime, for the first year of the project all you're doing it replicating the functionality that already exists in commercially available engines from Valve, Epic et al. By the time you get around to adding the new features that the other engines didn't have you could have simply hacked them in to a third-party solution and be on the business of creating content.

Really, creating an engine is a business decision and not a creative one. The engine we use at my studio has been tasked to do something it was never intended to do, but it gave us a solid and tested framework upon which to start the real work of making the game. It's a lot easier to build new systems on a stable base than it is to create the base wholesale while simultaneously attempting to do new things.

You only need to look at what modders have done to the old Unreal Engines (they turned it into an RTS!) to see that anything but the most wildly unusual game can use existing engine technologies. You don't get to sell the engine later but unless that's something your studio is set up to do anyway it isn't really relevant to your decision process.

Unknown said...

Good point Norman, the best example of a unique use of Unreal is the Lineage series, specifically Lineage II. Using the pre-existing Network capabilities of the engine mixed with some clever integration with a database, NCSoft created a MMORPG out of a First Person Shooter.