🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Developing my own game engine vs. using a commercial game engine

Started by
99 comments, last by GalacticCrew 4 years, 10 months ago

Hey folks,

I started developing a small 3D game engine some years ago as a side project next to my job as software product manager / team leader, because I wanted to learn more about graphics programming, AI, etc. As time passed, my game engine got bigger and better and my frustration in my job increased. By the end of 2016 I quit my job, founded my own Indie video game company and created my first game Galactic Crew which will be released later this year. Today, I went to an exhibition called Play NYC and I talked to a lot of game developers about their projects and all but two were using Unity for their projects. Everyone was really excited when I showed them screenshots and told them I created my own game engine for this game.

The thing is, I love game development for two reasons: creativity and technology. I love having an idea in my mind, putting it on paper, creating a documentation and finally creating the game. I also love the technology. I recently added support for Soft Shadowing (using Shadow Mapping) and several Glow effects to my game. It took a few weeks, but I learned a lot of stuff in this time and it felt unbelievable satisfying when I completed it.

I make my living creating video games. The first one will have its final release this year and the second one will start its Early Access phase at the same time. I struggle for quite some time what I should do afterwards. Making money as a solo Indie game developer is not easy and using an environment like Unity gives me a lot of features that would take me a long time to develop by myself. So, creating the next 3D games would be faster and probably more beautiful. In addition, the visual appearance of my game engine will always compete against the big commercial engines which is a fight I cannot win. But I really do not want to abandon my game engine development, because the satisfaction of moments were you have your first flawlessly animated 3D character (using Skinned Animation), including importing FBX files is amazing. Or having your new models rendered in a Physical-Based Rendering Shader... Or reducing GPU load when creating your first Octree-based Scene Graph for scene management... Or having dynamic shadows for all your game's content in (almost) real-time... I don't want to miss that. But I also need to make sure that I can create a new video game before the last one stops producing revenues.

I really would like to hear your opinions. ?

Advertisement

Been working on an engine in my spare time for a few years. It's been on and off, so I'm nowhere close to building a game yet. I've been enjoying the process, but it's very time consuming and it can be daunting comparing the features to Unreal or Unity. I've had doubts whether it's even a good idea, however there are some things I'm exploring that aren't well suited for existing engines (at least not without a lot of work and source level access). For me, it's more of a learning experience, so I'm okay not having something totally complete or competitive. If I were trying to sell a game any time soon, I would certainly choose Unreal or Unity and call it a day. It depends what you are looking for, I think for most people building an engine would be too costly (in terms of time) compared to free or practically free engines available today. If you are more interested in skill acquisition, building a portfolio, etc. then it can still be worthwhile. Or, like me, trying to do something really different and not easy to do in general engines, that could be a valid reason. Otherwise, I think it's more prudent to just use or buy whatever tools you can and make your life a lot easier. Just my opinion.

If you're doing it as a hobby, then satisfaction comes first. If you're doing it as a business, then profitability/efficiency come first, and satisfaction be damned :(

For most teams, Unity is the cheapest way to get their game finished. Also, Unity is really just a game engine starter kit - most Unity mid sized studios will still have "engine programmers" / "tools programmers" / "graphics programmers" who spend a lot of time extending the engine to suit the needs of their game. There's a whole range of satisfying development tasks that still exist here... And frustrating ones when you have to fight the engine...

I started my game back when UE3 wanted 25%, Unity was much crappier and Cry Engine wanted like a million dollars... So, we made one, and now it's easy to stick with it out of inertia. If we were starting out right now it would be hard to justify though. 

You also have to factor in the ease of working with content creators as you grow. Plenty of artists will know how to make great content, quickly, in UE4 or Unity or both. On a custom engine, you may discover that you have to spend extra coding time on tooling, importers, integration tasks, etc... If content creators can't use a normal workflow, can't quickly iterate on their work, or need a programmer to hand-hold them when adding content, then they will be deeply unsatisfied and will either follow a bad job or take much longer to do their job. 

There is nothing wrong with doing stuff on your own, and some games do it.   However, as noted above, it has become fairly rare due to the other players in the industry.

Existing engines give an enormous set of existing tools and workflows. The tools have been thoroughly debugged and work reasonably well for many developers around the globe.

Even if you don't go with a major engine, you should still consider minor engines and other tools for the benefits they give. 

As Hodgman just wrote, if you're doing it for a hobby because you love the craft or because you want to learn about those parts of the process then it's great.  As a business decision it is hard to justify: you've got a large pool of free and low-cost tools and engines but you're choosing to re-invent the wheel for some reason. 

@GalacticCrew Sounds like you are doing this all for the right reasons. You can tell from your post that you really love doing it. I'd stick at it, if it were me, but it all depends on your circumstances.

And there is always the 1337 factor of being able to say your game (and engine) is 100% yours.

10 hours ago, frob said:

As Hodgman just wrote, if you're doing it for a hobby because you love the craft or because you want to learn about those parts of the process then it's great.  As a business decision it is hard to justify: you've got a large pool of free and low-cost tools and engines but you're choosing to re-invent the wheel for some reason. 

If I had quit my last job to become a self-employed video game developer without having worked on my game engine for two years, I'd most probably use Unity right now. Otherwise, I had to work for many months on an engine without getting paid. However, I already had a framework and several well-designed components (like an asset converter that converts popular file formats (FBX, 3DS, ...) into my own custom file format). I don't regret my decision making my first two commercial games using my own game engine, because I learned so much and I have all freedom to adjust anything at will.

11 hours ago, cyberpnk said:

It depends what you are looking for, I think for most people building an engine would be too costly (in terms of time) compared to free or practically free engines available today. If you are more interested in skill acquisition, building a portfolio, etc. then it can still be worthwhile. Or, like me, trying to do something really different and not easy to do in general engines, that could be a valid reason. Otherwise, I think it's more prudent to just use or buy whatever tools you can and make your life a lot easier. Just my opinion.

Building the technology behind the games is as much fun for me as creating new game concepts. I won't create an entire tool-set. I'd rather use popular tools for modelling, level design or management-related tasks. For my second game, I used an App on my Android Tablet to create graphs that show which scenes of the game are connected to each other. Then, I expanded my Asset Converter to import the files from this App to create the data structures I need. It's like modelling: I won't even start thinking about developing a new Blender, but rather add support for their file format.

9 hours ago, lonewolff said:

And there is always the 1337 factor of being able to say your game (and engine) is 100% yours.

Hell yeah! When I tell someone I am a self-employed game developer they ask questions like "Oh, cool! Android or iOS?" or "Nice, is it a browser game?". ? I met some other game developers at some sort of Indie meet-up and the organizer introduced me with "This crazy guy here developed his own engine!" and everyone was like "WTF?". ?

11 hours ago, Hodgman said:

If you're doing it as a business, then profitability/efficiency come first, and satisfaction be damned

That's the point I am worried about. For me, the satisfaction comes from the creative process and from creating the technology behind the game. I don't want to miss that. However, if I do not generate enough revenue, I won't be able to continue making games.

Another option I was thinking about is to publish the game engine as open source project. I am actually not a big fan of sharing the result of at least 1,000 working hours for free, but other developers might enjoy using and they can contribute to it by adding their stuff. I will continue what I am doing right now until the end of the year. Then, both games should be released and I have to make a decision how to continue. I am open for more thoughts!

I was developing my engine for years from scratch, starting in .Net and C# using OpenGL from this community when I started to study game development at University. Iterations over iterations later learning and testing so it is mine too, my work and I'm currently at a point to say that I love working with that rather more as with Unity or Unreal. I worked in several studios, on a bunch of projects and intensive with Unreal and all foremost Unity reaching a point where I think (and some experienced people from the industry think that too) that those AAA related software is full of features that might be usefull to most people but lack of features we would need to run our games. Fiddling for workarrounds instead of just developing the game is quite annoying.

It took nearly 10 years until Unity implemented native multi threading support and async code handling, it is a shame while using Unreal is gambling to support certain platforms (I needed to rewrite asset pipeline for a mobile port in Unreal)

I decided a while ago to publish my code on GitHub with same voice in mind that you described above, giving my work of 1 &1/2 year (measured in standard work hours of 9 per day) for free so I wrote an EULA and was fine with publishing for everyone. I decided for a free to use but rev-share for commercial model to value the work and support if needed

1 hour ago, Shaarigan said:

I decided a while ago to publish my code on GitHub with same voice in mind that you described above, giving my work of 1 &1/2 year (measured in standard work hours of 9 per day) for free so I wrote an EULA and was fine with publishing for everyone. I decided for a free to use but rev-share for commercial model to value the work and support if needed

Can you share a link to it? I'd love to check it out. I'd love to see what you've created.

I think, I won't charge anything when I decide to go open source. If I put my engine online than everyone should be able to contribute to it. This should be a greater benefit for me than a royalty-based model. Well, if someone creates a major hit a royalt-based model would be awesome of course.

I know this Unity stuff fighting against you instead of helping your for anything worthwhile and for me UE had been just bloated beyond being useful for fas developing. For that reason I created my engine from scratch back then (LGPL and no royalties... I hate royalties) to put up something which is geared for working fast and efficient but without sacrificing power and versatility as certain other engines do. So I would say just continue with it. You seem to be at a usable point so I would not drop-and-switch engine unless you have to. Unity is a pain. I would not switch there if it can be helped.

Life's like a Hydra... cut off one problem just to have two more popping out.
Leader and Coder: Project Epsylon | Drag[en]gine Game Engine

I'd say, if you have published a game with your engine, it is good for what you need! It is true maybe that by using an established commercial enigne you might save some development time in the future, but on the other hand it looks you already have a good basis, you don't have to pay royalties, and you are not depending on somebody else's code for features and bug fixes, so I'd say go with it as long as it works!

This topic is closed to new replies.

Advertisement