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

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

Interesting, but I would really appreciate it if the game had 3rd person camera movement and controls like in No Man's sky. I have this kind of game planned in development to add features missing in No man's sky. For the homebrew vs ready made game engine, it depends on the objective. If the main objective is to learn or develop an own game engine, then the homemade engine is an option, but if the objective is to develop a game that can compete with other titles, then the ready made game engine is the option.

Advertisement

Very interesting topic..

It seems most of us who have attempted (or succeeded) in making an engine did it for the same reason - to challenge ourselves and to have ultimate understanding and control of the things we were making. Its hard to know where exactly to draw the line - like using a physics library seems okay but a GUI editor (that wasnt made by us) is just too easy. Like many others who have taken this path - the only resulting tangible product for myself has been knowledge - this is fine if knowledge is your goal but my goal was a game

What sort of snapped me back to reality was having a child.. I realized how little time there actually is and the only way to reach my goal was to let go - let black boxes be black boxes and focus on what I want in the long term..

I took my gameplay code and moved it over to use urho3d (was the easiest fit I could find) and literally gained years of time... i may actually end up with a game

Making an engine is a full-time job.

My own engine http://esenthel.com/ Esenthel, is 20 years of full-time work. Now it's very advanced, but it required so much time, I couldn't make any big games, as all focus was on the making of an engine.

The plus side, is now when I want to make a game, I have everything I need, and I know how everything works.

If there's a problem, I know where to look.

The struggle is getting any decent income, as the engine market is very competitive.

IMO, if you want to make a simple looking game, you can go with making your own engine. But if you want to make a cool looking game, then you have to stick to existing solutions (engines), as doing your own to be competitive enough, will take all your time and money.

I'm an indie developer that uses his own engine (for 3 games, single platform).

 

By default, I would say using a commercial engine is better, unless those requirements are met:

- your engine is better than the existing commercial engines (in whaterver sense, for example my engine is low tech, can run on outdated machienes, increases my productivity, caters to my personal coding style, was designed for the type of games I'm making)

- you already have the engine written (moste people write those engines when they are "young and stupid", so if you already have an engine that work... well, consider using it)

- you do not make 3D games (the more technically heavy your games are the more tempting and useful commercial engines are)

- you make with it a dozen of games (making engine for a single game is pointless) which basically leads to "you need to churn out those games quickly".

- you are in it long term (for example, if I were using a commercial engine around the time I started (more than 10 years ago) I would be doomed now since those commercial engines are not supported anymore), the longer term you think the more appealing your own engine is.

Also an interesting observation (might be wrong, just an observation), all very old indies seem to use their own engines...

 

Now personal advice (questions to self):

Checking ratings of your game it seems you have a problem with code stability and performance. Would switching to a commercial engine solve it?

How much money you get from your existing game? Are you ready to abandon it? Note that by switching to a new engine you would need to abandon this game (or rewrite which is probably too expensive). Keeping two engines is unsustainable.

Also, checking the reviews it seems you have more pressing problems than engine (unless that's connected to the engine). Like UI or gameplay. Maybe focus on those instead of worrying on graphical capabilities (no one seem to complain the game looks ugly...)

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

 

On 8/12/2018 at 8:54 AM, GalacticCrew said:

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'm at the point of starting out creating my own game engine.  The one thing I tell people about open source is: it's great for businesses, it's CRAP for the developers.

First, there is the quote above: You've put your blood, sweat, and tears into this for a WHILE, and to have a bunch of people from who knows where come in and alter your source code for anything other than the most obvious of bugs is completely frustrating.  They don't share your vision for your game engine, but rather have their ideas of how a game engine should operate and can easily hijack your work.  Second, and this is something my current employer does prolifically, Epic or Unity will look at your stuff, decide, "GalaticCrew has some great ideas in his game engine, let's take them."  They incorporate your open source code into their game engine, and since they didn't alter it, have no need to return anything to your project.  You spent that 1K hours to avoid other game engines, and now those same game engines are using your innovations in their product for the grand total cost of near zero time and zero dollars.  They aren't paying you for your work, but they're certainly going to use it if you do anything truly innovative.  Meanwhile:

On 8/12/2018 at 8:54 AM, GalacticCrew said:

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?". ?

People who are only using UE or Unity, and have no real clue the difficulties and intricacies of game engines ask you dumb AF questions like these, and make BS comments like these!  Dude, you're not crazy, you're fkn genius level intelligent and the people in this MeetUp either recognize that you're more intelligent and skilled than they are, or they're not decent enough programmers to understand the pure power you possess by being able to create a game engine rather than just a game.

I went to one GameDev MeetUp near where I live, and got pretty much the same reaction when I told them my plan to create a game engine.  I never went back to that meet up.  The majority were young children that were, for the most part, artists that didn't have a clue about programming, with a few older guys looking to trick a bunch of young kids into developing their games for them and pay nothing.

I think you already read the correct idea, even though there are a few pages of responses: Work on your games in an "established" game engine, if possible, while you are simultaneously improving your own game engine.  You're basically making games to get paid while you're in the process of having your game engine catch up to the ones around you.  Then, when you're ready, cross over and use only your game engine to develop games with.  Remember that you are a professional game developer now, even though you're on your own.  You need to be able to pay your bills, and you can't afford to do that without having an income.  If this is the way you want to make your way, by developing games, then do it that way.  My choice is to continue working on the game engine at night and work my day job during the day, then when the game engine is set to my liking, start making games with it.  That plan may change if, for whatever reason, I lose my current job, but I don't feel that will be the case.

Good luck.  Godspeed.  All the best in all you do while staying true!

All the best in all you do while staying true.

And that's the only clue I'll give you.

I apologize for not having the time to really review the discussion in this thread, although I'm very pleased with how the community seems to have handled it. Very little black and white, which is good. For my part, I set out building our own tech eight years ago for a variety of reasons, and now I run a funded company with shipping products built on top of that engine. And for as many things as that engine lacks, it has a few key things which allow us to do things that we would have had significant trouble pulling off in UE and are not actually possible in Unity. We're redoubling our effort to bring that engine up to 2020 standards, in our own way and with a mix of custom and off-the-shelf components. I have seven figures of investment (past and future) banking on this project, it's not a toy by any means although it is quite domain specific.

 

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
5 hours ago, OsirisAnkh0716 said:

First, there is the quote above: You've put your blood, sweat, and tears into this for a WHILE, and to have a bunch of people from who knows where come in and alter your source code for anything other than the most obvious of bugs is completely frustrating.  They don't share your vision for your game engine, but rather have their ideas of how a game engine should operate and can easily hijack your work.  Second, and this is something my current employer does prolifically, Epic or Unity will look at your stuff, decide, "GalaticCrew has some great ideas in his game engine, let's take them."  They incorporate your open source code into their game engine, and since they didn't alter it, have no need to return anything to your project.  You spent that 1K hours to avoid other game engines, and now those same game engines are using your innovations in their product for the grand total cost of near zero time and zero dollars.  They aren't paying you for your work, but they're certainly going to use it if you do anything truly innovative

You can do it without worries if you use the right licensing model. I had headaches about this a while ago for a long time but finally found a solution we all are happy with. I don't care yet for having it paid but supported by people using it, so we added AGPLv3 licensing. It prevents people from using your code in their products by enforcing the need of publishing anything regardless of if they took it from yours or made it themself, the AGPL is written to ensure even server side services using your code to offer a download version of it. As Unreals source code is open source too, they can't secretly steal it so no worries here.

A tricky part is providing a version your "customers" can use without the need of publishing the full source of their games but this is simple in two cases:

  • You offer a Unity like solution where anything is played by the engine and you just offer an interface for adding content
  • Place an AGPL Exception file near your source code to grand additional special rights

We use an Exception where we namely grand to ourself the right to publish compiled source code covered by a different license. This sounds redundant in the first look because we have the rights to do so but it helps in case of contributions. The Exception works as long as it exists so if someone contributes source code and has the Exception still intact, we have the right granted to publish the compiled code without an extra agreement with the contributor

6 hours ago, OsirisAnkh0716 said:

People who are only using UE or Unity, and have no real clue the difficulties and intricacies of game engines ask you dumb AF questions like these, and make BS comments like these!  Dude, you're not crazy, you're fkn genius level intelligent and the people in this MeetUp either recognize that you're more intelligent and skilled than they are, or they're not decent enough programmers to understand the pure power you possess by being able to create a game engine rather than just a game.

I don't really care about the odd comments.  However I do find that some people (usually when they are anonymous) get a bit hostile if you're not using an off the shelf engine. I really don't get why. I mean what's with the "you'll fail" comments and down voting because you're doing something differently from others? I'm not really talking about gamedev.net, mostly reddit. In any case, I try to be supportive of people using Unity or UE4.  IMO "roll your own" and "off the shelf" are both valid choices.

Yeah, and some people do this for a hobby or just to be more clever than before.

I've realised that there are many shades in between "game engines". A full blown game engine is still a mountain to climb for a newcomer and not everyone is a professional and knows about the underlying math or had an education in programming. A small framework to handle basic functionality may be written in days. Whatever takes one closer to the goal.

This topic is closed to new replies.

Advertisement