Should I open source my engine?

Started by
7 comments, last by Tutorial Doctor 10 years, 4 months ago

For the purpose of learning I started making a game engine (fully featured, editor, scripting, asset management, .....) over a year ago. Now though its grown into the largest project I have ever undertaken and I am quite proud of it. Its not perfect, but I made it with huge effort and time. So now I come to my dilema. I have two options:

1. Make it open source, and have far better programmers help out and make it even better than I ever could. This would encourage it's use in real world game development and I could sit back and smile in happiness that I started this engine that is used to create games. The biggest reason for doing this is so its development could be aided by others to make it as good as possible. The downside is that I would not be paid for my hours of work. This is a big downside.

2. Make it closed source, and charge some sort of business model to try and make money from it (like Unity). This would mean I would get money from my hours of hard work. The money would be used to live, and improve the engine. The downside is that it may not improve very rapidly with me at the helm and also, the market for selling engine license is very small, and I may not make very much money at all. I could have an asset store type thing and make money in this way as well, although the market is currently dominated by Unity.

Leaning towards making it open source, I thought maybe I could make money in other ways, like selling tech support and training. I have no intention of become rich with this engine, I just need money to pay for food and such. I lean towards open source, because it would make me happy to see it grow, although not completely under my thumb. I have yet to make a decision and I would appreciate hearing other people's thoughts.

Advertisement

I would do the same as your last suggestion. You can make it open source and sell support for it or paid custom features , This way you can also force people by license (like LGPL) to submit patches and fixes and the engine will grow and improve over time.

On the other hand, opening source would require additional work to streamline things, refactor some others and make it easy to use (even if you sell support).

I haven't done the market research for it but isn't building an arbitrary game engine and trying to sell it without any kind of flagship title very risky to begin with? Thinking it from developer's perspective, what can an one-person "untested" engine have to offer that some of the huge and popular commercial engines don't?

Sadly enough, I don't see many developers growing interest into becoming open source developers for you and your engine either. Perhaps I just don't know how good your engine is or could be? :)

If it kicks ass and is open source, preferably with a permissive license, I would see no reason why people would not get excited. However it may not happen overnight.

In either case, open source or not, building the website and community side can be a huge and thankless drain on your time/energy, so factor that in. In the case of my own engine (Urho3D) I deliberately skipped those to save my time and sanity, therefore there's only github/Google project pages and a Google discussion group up. As a consequence the engine took a long time to get known and still isn't very much known smile.png But like said, this was a conscious choice.

Making a successful entry to the game engine market is HARD, especially now that Unity has such a monopoly on indie mind share. This is true even if you provide source and license for free. Two recent and relevant case studies:

1. Havok released their professional-quality engine (Vision) and libraries with much of their middleware as Project: Anarchy under a free license with substantial source code.

2. Torque 3D, which used to have a paid license model, is now completely free and open source with a permissive MIT license.

Even these free, commercial engines have had a hard time gaining traction against Unity, however. More to the point, with professional quality engines with at least some track record in commercial games now available free, you'll have a hard time attracting users if you charge. It's absolutely a huge downside to not get paid for hours of work...but maybe you should try to develop and release a game using your engine. This would help build credibility for your engine, and it's easier to sell a game than an engine.

Really, the question is this: What does your engine offer that's so great it can overcome the momentum of Unity and other engines? You can't be "as good" as Unity and expect to take any of their share, you need to be better. In fact, substantially better, not just a little better. What you have may be very good, it may be your best work; I don't know your pedigree and experience so I can't really speak to what that means. But it does seem unlikely on its face that any one person could develop an engine--together with the associated tools and workflows--to compete with something like Unity. Oh? You don't have really polished tools and workflows? You're dead in the water.

Now, better can mean a lot of things -- it doesn't have to mean higher tech, or I-can-do-everything-unity-does-and-more. It might mean your engine is more limited but also simpler in a way that people can really grasp. It might mean your engine is the very best engine around for 2.5d, physics-based farming sims. Both niche markets. Unity is very general, and while it may not be tuned to particularly excel in any one kind of game, it seems to do well enough in the broad sense. That's actually an incredibly hard thing to compete with, and as a business strategy it might be better to identify where Unity and other engines are lacking, and to really attack that area to build a following among niche markets where Unity and other engines aren't currently a good fit.

Finally, keep in mind that rolling out a successful business isn't something that happens overnight. Having a product to sell isn't a business. You need a solid business plan, the marketing acumen, the logistics (support, payment processing, legalities, etc) in place, a roadmap for your product, and most importantly you need someone to sell your product to. You don't even have the skeleton of a business until you've got all that sorted.

throw table_exception("(? ???)? ? ???");

This is all interesting stuff, and I tend to agree with most of it. I would like to clarify something though. I have no intention of becoming rich from making and selling a game engine, the only reason I made it was to learn more about the tech behind games, nothing more. I only thought about selling it since I felt quite proud of it, and this is almost certainly due to the fact that I made it, not because it's the best engine ever made (it isn't).

Taking in your thoughts, I will probably make it open source, but only after using it myself to make a game that I will sell (I am a game dev after all). This way when I release the source code it will be proven, and besides, making a game with it is probably the best test of it's abilities I can undertake. It will force me to improve it in ways that make it good at making games, then I will release it.

I thank you all for your input!

I would agree with others, it has to be compared to other established Open Source engines (OGRE, etc) and freely available closed source offerings like Unity - the reality is that even if offered for free, you would get a hard time getting people to use it, let alone paying for it (not a judgment on your work, just noting that the existing free alternatives have had a lot more people working on them, for longer, and also have proven themselves with lots of games being written using them).

Also note that there's a difference between an engine for your own stuff, and a supported 3rd party library - I mean yes, if your game is really good, people may take the engine and use it (if it's Open Source), but creating a more general game engine like OGRE needs a lot more work on things like tools, documentation, examples, support, as well as making sure that the API is broad enough to support a range of game types, rather than just the one you are making.

The easier route may be to just use it for your own stuff, and do it for the fun of it - but I think releasing things as Open Source is a good thing anyway.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

All good points. I am using a free and open source game engine called Maratis3D. It was made by one person, Anael Seghezzi. It has been in development for a number of years and although it is a very good engine, it has a lot of things to work out.

One main thing I see is that not many people know about the engine. I actually stumbled across it while watching a Unity tutorial on youtube.

I personally don't like Unity. So I think there is room for another engine. I think Maratis has a good shot, but Anael needs more help to implement basic needed features. It relies heavily on Blender 3D which most people in the industry prefer not to use.

He still needs to find a way to make money in some way, so I suggested a content store. Supposedly that wouldn't be a good idea at this stage since even making content doesn't have a smooth workflow.

One thing I have seen is that Anael doesn't put anything in the engine unless it is 100% sure. That is why the engine is so solid and fast.

There are so many people trying to make a buck on engines that it is almost a relief to have a good engine that is free and open source for beginners who just want to make something.

My idea for a game engine (which I am more than likely never to make) I think would be the best type of game engine, but the scale of it is sort of big. So for now I am using this free engine to test my ideas of an engine.

They call me the Tutorial Doctor.

This topic is closed to new replies.

Advertisement